AI for Robotics
One might think that controlling a robot should be very precise: you tell it to move exactly 30cm forward and it does, right? But it never quite works out that way in the real world. Perhaps the robot’s wheels slip a bit, so it stops at 27cm. Or the 90° corner ends up a few degrees off, and before long your robot is far from where you expected it to be.
Fortunately, the field of statistics gives us a great way to deal with these kinds of discrepancies: the Gaussian function. On average, for every time the wheel turns a bit too far one way, there was probably another time where it went to far the other way: all summed up, it fits a normal distribution (also referred to as the Bell curve).
Sebastian Thrun is well known for his work with self-driving cars at Google and Stanford, including acting as development lead for Stanley, the autonomous vehicle that won the 2005 DARPA Grand Challenge. He’s also one of the authors of the textbook Probabilistic Robotics, which is full of algorithms and techniques used in most autonomous vehicles today. And he designed Georgia Tech’s AI for Robotics class.
For this class, I implemented foundational components including:
- for tracking: Kalman filters and particle filters
- for planning: A* search and Dynamic Programming
- for control: path smoothing and PID controller
…and put them together with a complete SLAM algorithm to wrap it up. All told, the simulations in each class project were a great way to really understand the algorithms in application and enjoy the challenge at the same time.