It’s that final project time of year again at MIT, and I thought I’d write a few posts about the projects I’ll be working on for the next month and a half. This first one is for my class 6.832 – Underacted Robotics, and is about a bunch of my favorite things: robotics, dynamical systems, optimization and gymnastics.
Gymnastics is a beautiful sport. Gymnasts learn to execute skills that are physically demanding and technically complex. This execution is often elegant and mesmerizing to watch, but is is also optimal in some sense? If it is, how sensitive is this optimality to changes in parameters? What would the skill look like if we changed some of the physical constraints, or changed the notion of optimality? The goal of this project is to use methods of computational control and nonlinear optimization to get a simulated gymnast to perform various skills on the parallel bars. It is hoped that one would be able to find optimal trajectories and control policies to carry out the skill, given only a short sequence of points in phase space to define the skill. I will complete the project in several stages:
1. Modeling the system (April 5, 2011)
First, I will create a model of a gymnast and figure out the equations of motion. Initially, this model will be very simple and will consist of a triple pendulum, where the the three pieces represent the legs, torso and arms, and the two joints represent the hips and shoulders. I will experiment with various torque limits at the joints, including the case where the shoulder joint is unactuated. I will also experiment with various physical constraints on the system such as those imposed by what angles the hip and shoulder joints can physically assume and those imposed by having to maintain a grip on the bars at all times.
Deliverable: Matlab simulation of model gymnast.
2. Trajectory Optmization (April 20, 2011)
To perform the skill, the gymnast must go through a sequence of points in phase space that roughly define the skill. We will call these the skill constraints. These can be, for example, the desired start and end points of the skill. The gymnast can go through infinitely many trajectories that satisfy the skill constraints. I will define an objective that maps trajectories to costs and use trajectory optimization to find locally optimal trajectories. Two candidate trajectory optimization methods that I will consider are Real-time Recurrent Learning (RTRL), which makes it easy to implement constraints for all time, and Direct Collocation, which is fast, and makes it easier to initialize with trajectories in the vicinity of the desired minima.
Deliverable: Show simulation of trajectory and associated cost for each step along the optimization process. Compare simulated trajectory with optimal trajectory.
3. Trajectory Stabilization (May 1, 2011)
Once the optimal trajectory is determined, we must make sure that the dynamics of the system actually stay close to the optimal trajectory. External perturbations or insufficient accuracy during simulation can result in divergence from the optimal trajectory, and we can use something called a Linear Quadratic Regulator to stabilize the trajectory. The Linear Quadratic Regulator penalizes deviations from the desired position, as well as the exertion of force. The result is that the system follows the optimal trajectory closely with minimal exertion of effort.
Deliverable: Stabilize optimal trajectory. Show that the simulated trajectory stays near optimal trajectory when stabilization is on. Show that this holds with random small perturbations of the system as well.
4. Possible Extensions (May 10, 2011)
Some possible extensions include:
(a) Build the robot and run the algorithms on it.
(b) Add extra joints and see if the optimal trajectories change.
(c) Demonstrate a “full” parallel bar routine (with the obvious constraints that the gymnast has no knees and elbows, can’t release and re-grip the bar and can’t separate his legs). Another extension is to remove some of these constraints.
As I make progress on these, I’ll post here about any interesting results. Stay tuned!
(Edit: I was taking this class as a listener and didn’t have time to do it, but I will be taking it for real in Spring 2012, so hopefully I can finally do this!)