A machine learning based algorithm for controlling an 'acrobot', a two body robot with very interesting(challenging) dynamics. This repository also houses an acrobot simulator and code to interface with acrobot hardware. Most of the code is housed in pyode/src/
A summary of my work from a research perspective here can be found here: http://www.davidmichelman.com/acrobot.pdf
The meat of the control algorithm is here
Some Cython 5 dimensional interpolation code is here
A bunch of simulation and UI code can be found here
This paper has a fairly good description of acrobots and the difficulties in controlling them
Windows ODE bindings can be downloaded here
Here are some pretty (and completely out of context) pictures. They were generated when testing early controllers:
Q1 is the base joint angle (attached to the ground, no motor) and Q2 is the middle joint angle (the middle joint with a motor in it). There's a dot at every point the acrobot visited in a short simulation run (keep in mind that neither axis is time).
Contact David Michelman ([email protected]) with any questions.