This course is an introduction to robotics from a computer scientist’s perspective. While robotics is inherently broad and interdisciplinary, we will primarily focus on ideas with roots in computer science, as well as the roles that a computer scientist would play in a robotics research or engineering task. At the same time, students will learn the necessary tools for communication and cooperation with other engineers in order to develop a working robot system, including the ability to read and implement ideas from robotics research papers.
- Efficiently and critically read and analyze seminal technical research papers.
- Implement ideas or algorithms described in technical papers for real problems.
- Develop kinematic models for an arbitrary manipulator or wheeled robot.
- Solve the forward, inverse, and differential kinematics problems.
- Develop simple feedback controllers for an arbitrary motion control problem.
- Understand and implement different trajectory planning approaches.
- Utilize probabilistic approaches, e.g. particle and Kalman filters, for state estimation, localization, and mapping.
- Incorporate relevant ideas in computer vision and the visual servoing problem.
Data structures (COMS 3134/3137), but strong preference will be given to those who have taken artificial intelligence (COMS 4701) or machine learning (COMS 4771) and performed well. Relevant ideas from these courses will be reviewed; students are expected to seek help if needed, either from the teaching staff or on their own. Mathematical maturity with probability and linear algebra is expected, along with sufficient programming experience such that students can debug code on their own.
List of Topics
- Course introduction
- Rigid body motions
- Forward kinematics
- Inverse kinematics
- Differential kinematics
- Inverse differential kinematics
- Numerical inverse kinematics
- Trajectory planning
- Mobile robots and planning
- Bug algorithms
- Motion control
- Roadmap methods (VGRAPH, voronoi)
- Cell decomposition
- Potential fields
- Probabilistic planning (PRM, RRT)
- Bayesian filtering
- Kalman and particle filters
- Graph SLAM
- EKF-SLAM and FastSLAM
- Image processing
- Pose estimation and visual servoing
- Model learning
- Reinforcement learning
- Advanced applications