I’m making a self driving RC car for my senior project. It will be guided by GPS waypoints and utilize GPS data as well as inertial movement readings to accurately localize itself. I am also currently toying with the idea of cameras and distance sensors so the car/robot won’t be so “blind”. But that is a stretch goal far beyond my current capacities (need to get the car to move first).
My previous (brief) experience with Arduino equipped me with a false sense of confidence when I bought a Beaglebone Black and started my project. Embedded Linux is something I have absolutely no experience with; but regardless, time for the fun to begin.
For the project I have:
- Beaglebone Black
- Sparkfun’s MPU-6050 Breakout Board
- Adafruit “Ultimate” GPS Breakout
- and a used toy RC Car
A lot of this project is inspired by Jason Dorweiler’s Autonomous Car.
Gameplan (rough, semi-overlapping, and in no particular order)
-
Get the sensors working with the BBB. I want to be able to get proper readings as well as play with some of the extra features of the two sensors.
-
Set up ROS. I want to use ROS (Robot Operating System) to handle all the scafolding for the “brains” of the car. Also there are some nice testing tools that I don’t have to write myself… hopefully this will save me time in the long run.
-
Navigation, localization and driving algorithms. Use Kalman Filter, dead reckoning and PID control to let the robot figure out where it is going.
-
Get a toy RC car and modify it. The steering in toy-grade RC cars is often just a motor that goes hard-left or hard-right, replacing it with a servo will give me much more control over the robot.
-
Integrate sensors, navigation/planning algorithms, and driving interface into ROS.
-
Tune PID and…
-
Drive!
-
Maybe even have cameras and distance sensors to give the robot “eyes” and do obstacle avoidance…