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. Dynamic replanning
  6. Combinatorial motion planning
  7. Sampling-based planning (PRM, RRT)
  8. Probabilistic models
  9. Bayes and particle filters
  10. Kalman filters, EKF and localization
  11. EKF-SLAM, particle filter SLAM
  12. Robot perception
  13. Convolutional neural networks
  14. Reinforcement and imitation learning
  15. Foundation and world models