Optimization Methods for Robotics

CS 5757, Cornell University, Spring 2026
Instructor: Preston Culbertson
Lectures: Tue / Thu, 8:40 am – 9:55 am, Gates Hall 114

Overview

Modern robotics relies heavily on numerical optimization, especially when working with complex dynamics, constraints, and imperfect models. This course focuses on the optimization methods that underpin model-based robotics and control, with an emphasis on practical implementation and real robotic systems.

You will learn how to formulate and solve robotics problems such as inverse kinematics, trajectory optimization, control, and estimation using modern optimization tools. By the end of the course, you will be able to go beyond black-box or closed-form solutions and build optimization-based approaches tailored to real robotics problems, culminating in an open-ended final project of your choosing.

Course Topics

  • Formulating robotics problems (planning, control, and state estimation) as optimizations.
  • Numerical methods (gradient-based and gradient-free) for solving optimization problems.
  • Handling rotations, rigid-body transformations, and constraints.
  • Robust optimization under model mismatch and contact.

Course Staff

Photo of Prof. Culbertson

Instructor

Preston Culbertson

pdc79@cornell.edu

Office hours: Thursdays, 2-4 PM, CIS 459

Photo of Shengmiao (Samuel) Jin

Teaching Assistant

Shengmiao (Samuel) Jin

sj887@cornell.edu

Office hours: Thursdays, 5-7 PM, Malott 301H

Course Logistics

Resources

  • Course website - all course information and materials will be posted here.
  • Ed Discussion forum - for asking and answering questions about the course material.
  • Gradescope - for submitting assignments and viewing grades/feedback.
  • Canvas - final grades and assignment solutions will be posted here.

Prerequisites

This course assumes the following background:

  • Comfortable programming in Python. All assignments will be in Python and will make use of NumPy and JAX. Students with substantial programming experience in another language (e.g. C/C++, MATLAB, Julia) should be able to transition quickly.

  • Foundations in linear algebra and calculus. You should be comfortable working with vectors and matrices, and with derivatives and gradients. Familiarity with Hessians will be helpful.

  • Basic probability and statistics. You should be familiar with random variables, probability distributions, expectation, variance, and Bayes’ rule.

The following background is helpful but not required:

  • Some exposure to optimization concepts, such as gradient descent or convexity.

  • Some exposure to robotics, for example kinematics, dynamics, or control.

Students without the recommended background are still encouraged to enroll, but may need to do some independent review during the semester.


Assignments and Grading

Course grades are determined by homework and a final project.

  • Homework (50%) Four assignments will be given at roughly three week intervals.
  • Final Project (45%) Work may be done individually or in teams of up to three. Projects should investigate a problem related to optimal or learning based control or estimation. Evaluation is divided across a project proposal (5%), a milestone report (10%), and a final report with a three minute video (30%).
  • Participation (5%) We will assess participation credit based on engagement in lectures (e.g., answering in-class polling questions), and responding to the intro- and mid-semester surveys.
  • Bonus (up to 5%) Students earn 0.5% of extra credit for each staff-endorsed answer on Ed Discussion, up to a total of 5%.

Syllabus

The syllabus for the course can be found here.


Schedule

The tentative schedule for the course can be found here.

Course Materials

This course does not have a required textbook. Selected readings and lecture materials will be provided throughout the semester. The course draws on material from several textbooks, including the following.

Additional references on robotics and optimization that may be useful include:

We also will provide some resources for scientific programming in Python.

  • For Python basics and numpy usage, we suggest the resources from CS 231n at Stanford, found here.
  • For JAX, we recommend the official tutorial which covers the key concepts (jit, grad, vmap, and random numbers) used in this course.
  • We also recommend some short docs on crimes against matrices and crimes against jax.jit to help with common issues in linear algebra and JAX.