This course introduces students to foundational mathematical models and algorithms used to implement intelligent manipulation skills in autonomous robots, such as those used in industrial and warehouse automation, household service robots, space exploration, and medical robotics. Topics will include:

  • Robot arm motion. 2D/3D transformations, 2D/3D geometry, forward and inverse kinematics, motion representations, configuration space.
  • Contact mechanics. Coulomb and other friction models, grasp wrench space, force closure and form closure, elasticity and compliance, physics simulation.
  • Planning and control. Grasp planning, motion planning, rearrangement planning, task-and-motion planning, force control.
  • Perception. Visual sensors, calibration, working with RGB-D cameras, 3D computer vision, object pose recognition, non-rigid registration, segmentation.
  • Learning for manipulation. Learning-based grasp planning, affordance detection, some reinforcement learning.

Course content will consist of lectures, homework assignments, and simulation-based programming assignments.  Programming will be performed using the Python language.


Data structures, algorithms, linear algebra, and a second course in calculus (CS 225, CS 374, MATH 241, and MATH 415 or equivalents.) Recommended courses include differential equations, computer graphics, optimization, AI, or ML, but these are not assumed as prerequisites.

Textbook and readings

Most readings will be in the online Robotic Systems book draft. Some readings will be excerpted from the following online texts: