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. Topics include motion planning, state estimation, localization and mapping, kinematics, and robot learning.

Course Objectives

  • Identify and define some of the algorithmic problems that roboticists have to solve.
  • Understand the challenges of interfacing algorithms with physical systems.
  • Implement a variety of local, search-based, and sampling-based planning algorithms.
  • Implement Kalman and Bayes filters for state estimation and localization.
  • Use homogeneous transformations to model robot kinematics.
  • Solve the forward, inverse, and differential kinematics problems for robot manipulators.
  • Describe analytical and implement numerical solutions for inverse kinematics.
  • Gain an awareness for learning-based approaches in robotics.

Prerequisites

  • Data Structures
  • Familiarity with Python
  • Linear algebra
  • Multivariable calculus
  • Multivariate statistics

List of Topics

  1. Robot configurations, motion planning
  2. Bug algorithms
  3. Potential functions
  4. Graph search
  5. Roadmaps (Visibility graphs, Voronoi graphs)
  6. Cell decomposition
  7. Sampling-based planning (PRM, RRT)
  8. Kalman filters
  9. Bayes filters, particle filters
  10. EKF-SLAM, particle filter SLAM
  11. Rigid body motions
  12. Forward kinematics
  13. Velocity kinematics
  14. Inverse kinematics
  15. Supervised learning
  16. Reinforcement learning
  17. Computer vision