COMS 4733, Computational Aspects of Robotics

This course is an introduction to fundamental problems and algorithms in robotics from a computer scientist’s perspective. While robotics is inherently a broad and interdisciplinary field, we will primarily focus on ideas with roots in computer science, as well as the roles that a computer scientist would play in robotics research or engineering tasks. Topics include configuration spaces, kinematics, search and sampling-based planning, state estimation, localization and mapping, perception, and learning.

Course Objectives

  • Identify and define overarching algorithmic problems in robotics.
  • Define configuration space representations of robots and their environments.
  • Derive and the forward and velocity kinematics of robot manipulators.
  • Implement a variety of search-based, combinatorial, and sampling-based planning algorithms.
  • Formulate and use models of robot system components, including motion and sensor models.
  • Derive and implement Kalman and Bayes filters for state estimation, localization, and mapping.
  • Gain an awareness of perception and learning applications in robotics.

Prerequisites

  • Data Structures
  • Proficiency in Python
  • Linear algebra
  • Multivariable calculus
  • Probability and statistics

List of Topics

  1. Rigid-body transformations
  2. Configuration spaces
  3. Forward, inverse, and velocity kinematics
  4. Search-based planning
  5. Dynamic replanning
  6. Combinatorial motion planning
  7. Sampling-based planning (PRM, RRT)
  8. Probabilistic models
  9. Bayes and histogram filters
  10. Particle filters and MC localization
  11. Kalman filters, EKF and localization
  12. Bayes filters, particle filters
  13. EKF-SLAM, particle filter SLAM
  14. Grid occupancy mapping
  15. EKF-SLAM, FastSLAM
  16. Robot perception
  17. Convolutional neural networks
  18. Reinforcement and imitation learning