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
- Rigid-body transformations
- Configuration spaces
- Forward, inverse, and velocity kinematics
- Search-based planning
- Dynamic replanning
- Combinatorial motion planning
- Sampling-based planning (PRM, RRT)
- Probabilistic models
- Bayes and histogram filters
- Particle filters and MC localization
- Kalman filters, EKF and localization
- Bayes filters, particle filters
- EKF-SLAM, particle filter SLAM
- Grid occupancy mapping
- EKF-SLAM, FastSLAM
- Robot perception
- Convolutional neural networks
- Reinforcement and imitation learning