COMS 4733, Computational Aspects of Robotics

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.

Course Objectives

  • 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

  1. Course introduction
  2. Rigid body motions
  3. Forward kinematics
  4. Inverse kinematics
  5. Differential kinematics
  6. Inverse differential kinematics
  7. Numerical inverse kinematics
  8. Trajectory planning
  9. Mobile robots and planning
  10. Bug algorithms
  11. Motion control
  12. Roadmap methods (VGRAPH, voronoi)
  13. Cell decomposition
  14. Potential fields
  15. Probabilistic planning (PRM, RRT)
  16. Bayesian filtering
  17. Kalman and particle filters
  18. Graph SLAM
  19. EKF-SLAM and FastSLAM
  20. Image processing
  21. Pose estimation and visual servoing
  22. Model learning
  23. Reinforcement learning
  24. Advanced applications