# Trajectory Optimization

- Matthew Kelly

## Trajectory Optimization - Learning the Theory

← Trajectory Optimization Tutorial: Video ( YouTube )
← Trajectory Optimization Tutorial: Slides ( html )

This presentation is an excellent place to start learning about trajectory optimization. It was designed to be accessable to anyone with a basic background in numerical methods. I watch the comments on the YouTube video, and will generally answer questions within a few days.

← An Introduction to Trajectory Optimization ( .pdf )

This tutorial is targeted at first-year graduate students that are interested in learning about trajectory optimization. It starts with a broad overview of the field and then teaches the basics of direct collocation through simple examples. The paper is 44 pages long and will be published in SIAM Review in December 2017.

← Aiming a canon: learn trajectory optimization by picture ( html )

I think about trajectory optimization (and most math) visually, and I find that visual demonstrations can be a useful teaching tool. This tutorial shows how shooting and collocation methods work using the example of aiming a canon. Rather than detailed mathematics, I focus instead on making clear visual representations of the techniques.

← Trajectory Optimization Terminology ( html )

Trajectory optimization is a field that is filled with complex terminology. This is made more challenging by the fact that many author use the same words to mean different things, or different words to mean the same thing. Here I walk through several sub-topics and clearly define and provide context for several of the most important terms.

← Transcription Methods for Trajectory Optimization ( .pdf )

I wrote this 14 page report when I was first learning to write my own trajectory optimization code and learn about trajectory optimization as it is used in legged locomotion. It focuses on transcription methods, including both collocation and shooting methods, as well as how to deal with hybrid systems.

## Trajectory Optimization - Implementation

In order to really learn trajectory optimization you will need to write some code.
Here are a few examples of how to implement trajectory optimization in Matlab.

← Aiming a canon

Matlab implementation of the canon-aiming tutorial above. Contains simple implementations with single shooting, multiple shooting, and direct collocation.

← An optimal hammer swing

This simple tutorial shows how to implement a multiple shooting method in Matlab. The example problem is that of a periodic hammer swing, where the hammer bounces off of a table. It shows how to do trajectory optimization on a (very simple) hybrid system.

← OptimTraj: Trajectory optimization library for Matlab

OptimTraj is a general-purpose trajectory optimization library that I wrote for Matlab. While writing it I made a special effort to make the code readable with lots of comments and a clear organization; it is designed to be read as a tutorial. OptimTraj comes with several examples that show how to code up a variety of problems, starting simple (pendulum) and working up to a walking gait for a 5-link biped model.