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
- Robot configurations, motion planning
- Bug algorithms
- Potential functions
- Graph search
- Roadmaps (Visibility graphs, Voronoi graphs)
- Cell decomposition
- Sampling-based planning (PRM, RRT)
- Kalman filters
- Bayes filters, particle filters
- EKF-SLAM, particle filter SLAM
- Rigid body motions
- Forward kinematics
- Velocity kinematics
- Inverse kinematics
- Supervised learning
- Reinforcement learning
- Computer vision