Instructor, Senior Lecturer
In Artificial Intelligence for Robotics, learn from Sebastian Thrun, the leader of Google and Stanford's autonomous driving team, how to program all the major systems of a robotic car. This class will teach students basic methods in Artificial Intelligence, including probabilistic inference, planning and search, localization, tracking, mapping and control, all with a focus on robotics. Extensive programming examples and assignments will apply these methods in the context of building self-driving cars and autonomous vehicles.
Students will be expected to complete six problem sets and multiple projects that apply the methods learned in this class.
Upon successfully completing this course, you will be able to:
- Implement filters (including histogram, Kalman, and particle filters) in order to localize moving objects whose locations are subject to noise.
- Implement search algorithms (including Dijkstra's, A*, and Value Iteration) to plan the shortest path from one point to another subject to costs on different types of movement.
- Implement PID controls to smoothly correct an autonomous robot’s course.
- Implement path smoothing algorithms to reduce the jaggedness of a robot's path.
- Implement a SLAM algorithm for a robot moving in at least two dimensions.
Summer 2023 syllabus and schedule (PDF)
Spring 2023 syllabus and schedule (PDF)
Fall 2022 syllabus and schedule (PDF)
Note: Sample syllabi are provided for informational purposes only. For the most up-to-date information, consult the official course documentation.
You can view the lecture videos for this course here.
Before Taking This Class...
Suggested Background Knowledge
You should be able to navigate the command line (terminal) and execute Python scripts. Students should know Python:
- Working knowledge of Python (built-in data types, declaring/invoking functions/classes, OOP, loop constructs, conditional statements, exception handling, basic debugging skills, understand stack traces and use them to fix code)
- If you don't have working knowledge of Python, then you should be proficient in another language and be able to learn Python quickly and autonomously (this course assumes you know Python from the start)
- Check out Georgia Tech's Introduction to Python Programming professional certificate program on edX if you'd like to get up to speed beforehand.
Students should also have strong knowledge of probability and linear algebra (see Georgia Tech's Introductory Linear Algebra, Applications of Linear Algebra, and Probability/Random Variables professional certificate programs on edX).
For prospective students who are unsure if their computer science experience provides sufficient background for this course, the questions below will help gauge preparedness. If you answer "no" to any of the following questions, it may be beneficial to refresh your knowledge of this material prior to taking CS 7638:
- Do you have programming experience, preferably in Python?
- Do you have a strong understanding of linear algebra (undergraduate level)?
- Do you have a strong understanding of probability (undergraduate level)?
- Have you taken any courses (either from your undergraduate studies or MOOCs) in machine learning, computer vision, or robotics?
Technical Requirements and Software
- Browser and connection speed: An up-to-date version of the Chrome browser with Honorlock extension is required for taking exams. We support Mozilla Firefox or Microsoft Edge for all other activities. 2+ Mbps connection speed is recommended.
- Python (version 3.8 or higher) development environment
- Operating system:
- PC: Windows 10 with latest updates installed
- Mac: OS X 10.14 or higher with latest updates installed
- Linux: any recent distribution that has the supported browsers installed (may need access to Windows/Mac for Honorlock extension on exams)
All Georgia Tech students are expected to uphold the Georgia Tech Academic Honor Code. This course may impose additional academic integrity stipulations; consult the official course documentation for more information.