March 27, 2011

Senior Project: The Plan

While sitting across from a beautiful ocean with the wind blowing across my face and my eyes peering at a screen of moving electrons, I concluded that it was due time to post my plan for my Senior Project.

Overview: I am going to take a remote-controlled car and modify it with a micro-controller and distance sensors so that it will be able to drive itself around with minimal collisions.

Deeper Summary: As I have said, I am building an autonomous car. My car will not have the roughly 3.2 m3 interior volume of the Toyota Prius. Instead, I am taking a remote controlled car as a base and installing two components in it that, with some software, should make the car autonomous. The reason for using an RC car as a base is that it comes already with a chassis and motors. I merely need to hook up a micro-controller (mini computer) to the motors to hijack their functionality and control them myself.

Stage One: The first stage in my plan is to find an RC car and dismantle it. The ideal car will be decent-sized, will be spacious under the plastic shell, and will provide easy access to motors which are easily hijacked. Inside an RC car is a circuit board used to communicate with the remote control. This board will be obsolete with my build, so I can yank it out and replace it with my micro-controller.

Stage Two: I will then proceed to attach the motors to my micro-controller. I won't know how to specifically do this until I take the RC car apart and look at the motors, but the best case will be that I just need to strip and then plug the motor wires into the micro-controller. The worst case would be getting whole new motors, or having to get a separate motor control board to drive the motors. I will also need to provide power to the micro-controller. During the build phase this can be done with an external power supply, but when I finish I will need to find a way to make the power supply of the RC car compatible with my micro-controller. Once the motors are connected, I will need to write a program for the micro-controller to test the motors to make sure everything works.

Stage Three: With the motors working, it will be time to think about my object detection sensors. I am considering two types of sensors right now - infrared and sonar. I will need to perform some tests to decide which type of sensor will be best used for my car, and then I will need to attach it to the car.

Stage Four: By this point I will be almost done. With the sensors working and attached to my car, all that is left is to write the program that will drive the car around and avoid hitting objects. By the time I have reached this stage, I hope to have come up with a novel solution that I can program efficiently.

Final Stage: With everything working, I expect to have enough time left to play with my car. Using wood blocks or bricks, I can set up a box with obstacles in it and let the car drive itself around without collisions.

- - - - - - - - - - - - - -

So that is my plan. We'll see how it goes and I will be sure to post my progress as I progress. I don't plan to start for another week or two, but until then I will put up a post talking about the micro-controller I have ordered, as well as the two types of sensors I plan to test.

'Til next time, stay classy!

Next: Senior Project: How Stuff Works

Sources Consulted: [1].

March 18, 2011

Senior Project Kickoff

With the school year winding to a close, it is time for me to start my Senior Project. This project is of the student's choice (in this instance, mine), but it must be approved by a project mentor and the committee. I have the whole month of May off of school to work on this project, but there is no harm starting now!

People can do any of many things for their project. Some people take internships, others write research papers, and there are also those people who choose to spend their time running (likely in circles).

The Google Car
Me, I've chosen to do something a bit different. I am going to build an artificially intelligent car. While the car won't be as cool as Google's, it will be able to drive around without crashing into objects. There are many ways to accomplish this, from easy to extremely complex. The Roomba, for instance, is an unintelligent vacuum cleaner that works by running around and hitting things. When it hits an object, it knows it cannot continue forward, and thus goes elsewhere. On the extreme side of the spectrum is the Google Car. This car works by using a LIDAR, ultrasonic sensors, speedometers, GPS, cameras, and many more components. It creates a virtual image of its environment, combined with current GPS tracking technology, to figure out where it needs to go and how to get there.

So which version of intelligence am I going to implement? Seeing how I only have a couple months to teach myself about using artificial intelligence to drive a car, and then build that car, I am going for the most logical implementation: Google Car 2.0. I'm kidding, that would take at least twice as long as I've got. My plan is to create a car that uses one or more sensors to drive around. The car's purpose? Sadly, it won't be anything more than moving randomly and avoiding collisions for as long as the battery lasts. But just wait and see, the car will be plenty exciting.

So what is the purpose of this blog? Every Senior Project must be accompanied by its certified Senior Project Journal. As I tend to have bad handwriting, and you can't print out videos, I figured I would write my journal on a blog. Now, whether this blog turns into a brand sparklingly new precedent for the greater Senior Project community, or becomes a big flop with all of the entries occurring the week before my presentation, that is yet to be seen.

But what I do know is that until the flop-date, there will be some juicy blog posts that will suddenly appear, including (but not limited to):
  • Official informal plan of what I will accomplish, and how that will be accomplished
  • Some informational articles talking about what I have learned and how that applies to this project
  • How to disassemble your car (hopefully without breaking it)
  • What it is like to open up a box of parts
And, some time before May, I hope to get get an interview with an expert in artificial intelligent cars, to both enlighten me and enlighten whomever is spending their daylight hours reading these pixels.

So until next time, stay classy!

Next: Senior Project: The Plan