Skip to content

Latest commit

 

History

History
61 lines (44 loc) · 3.69 KB

16745.md

File metadata and controls

61 lines (44 loc) · 3.69 KB

16-745: Optimal Control and Reinforcement Learning

Category Difficulty (out of 5)
HW 3
Quizzes 2
Project 3

The course provides a hands-on approach to design control algorithms that make robots move and interact with the environment efficiently and robustly. It covers a broad range of topics, including reinforcement learning, system identification, state estimation, numerical optimization, classical optimal control, linear systems theory, and nonlinear dynamics. It is more an optimal control class with a little taste of learning approaches.

  • Two lectures per week.
  • Each week there is a quiz with questions related to the previous week's lectures.
  • You get to work on 4 assignments in Julia programming language.
  • Final project required.
  • At the end of the semester, there 3 case studies that are analyzed in class (How to land a rocket, how to drive a car, how to walk).
  • This class is traditionally offered in Spring.

Lectures

Taking into consideration the varied backgrounds of the students in the lecture, the course is organized to start each topic with a gradual and accommodating introduction and ends with a code implementation of the algorithms.

Overview of topics covered are:

  1. Dynamics, Stability, Discrete-Time Dynamics Intro
  2. Optimization Intro and Numerical Optimization Methods
  3. Optimal Control Intro, Pontryagin, Shooting Methods, & LQR Intro
  4. Dynamic Programming & Intro to Convexity
  5. Convex Model-Predictive Control
  6. Intro to Trajectory Optimization, Iterative LQR, & DDP
  7. Direct Trajectory Optimization, Collocation, & SQP
  8. Attitude Intro: SO(3) & Quaternions
  9. Trajectory Optimization for Hybrid Systems
  10. Data-Driven Methods & Iterative Learning Control
  11. Stochastic Optimal Control & LQG
  12. Robust Control & Minimax DDP
  13. RL from an Optimal Control Perspective
  14. Practical Tips & Tricks, Control History
  15. Case studies: How to land a rocket, how to drive a car, how to walk

The course also has a recitation which discusses in-depth the concepts taught in class, and also a going through the HWs.

Homeworks

You are expected to submit your homework every two weeks, and the assignments are not excessively difficult, allowing ample time to work on them. The course employs the programming language Julia. If you are unfamiliar with Julia, there is no need to worry, as there is a HW0 designed to acquaint you with the language, as well as a tutorial at the beginning of the semester. The homework assignments comprise of 2-3 questions in the format of Jupyter notebooks, which require you to complete certain TODOs and, on occasion, carry out some equation derivations.

Quizzes

Quizzes typically comprise questions related to the content covered in the previous week's lectures. While some questions may simply reiterate fundamental concepts, others may demand a deeper comprehension of the methods discussed.

Project

The final project consists of applying the methods and tools learned in class to control a robot. You can form a team of up to 5 people. The project is very open-ended, as you may align your it with your research or even endeavor to undertake a project that you find enjoyable.

How to do well

  • Pay attention to lectures and ask questions. Commonly, instructors in CMU take great interest in providing thorough responses and finds pleasure in engaging with the class.
  • Attend recitations; they are a great complement to lectures and can further assist you in reviewing concepts, particularly if you do not have a strong background in linear systems and control.
  • Brush up on your Julia skills.
  • Start the final project early.
  • Have a lot of fun! I really enjoyed this course.