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

General List of Topics

  1. Rigid-body transformations
  2. Configuration spaces
  3. Forward and inverse kinematics
  4. Search-based planning
  5. Sampling-based planning (PRM, RRT)
  6. Feedback control
  7. Trajectory generation
  8. Trajectory optimization
  9. Probabilistic models
  10. Bayes and particle filters
  11. Kalman filters, EKF and localization
  12. EKF-SLAM, particle filter SLAM
  13. Robot perception
  14. CNNs and computer vision
  15. Reinforcement and imitation learning
  16. Foundation and world models