Need help with control?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

131 Stars 55 Forks GNU General Public License v3.0 40 Commits 5 Opened issues


A repository for control benchmarking code

Services available


Need anything else?

Contributors list

# 145,097
36 commits


StudyWolf Control repo

This is a repository to hold the code I've developed for simulating control systems performing different benchmarking tasks. The development and theory of the controllers are described at


The control directory requires that you have docopt installed::

pip install docopt

Additionally, there are a number of arm models available, if you wish to use anything other than the 2 link arm coded in python, then you will have to compile the arm. You can compile the arms by going in to the arms/num_link/ folder and running setup::

python build_ext -i

This will compile the arm for you into a shared object library that's accessible from Python.

A final requirement is the pydmps library, which can be installed::

pip install pydmps

NOTE: The arms have only been tested on linux and currently don't compile on Mac.


To run the basic control code, from the base directory::


Where you can find the arm options in the Arm directory subfolders (arm1, arm1python, arm2, arm2python, arm2pythontodorov, arm3),the control types available are in the controllers subfolder (gc, osc, lqr, ilqr, dmp, trace), and the tasks are those listed in the Task directory (followmouse, postural, randommovements, reach, write).

There are also a bunch of options, browse through the header code to find them all!

If you would like to use the PyGame visualization you must have PyGame installed. To call up the PyGame visualization append --use_pygame=True to the end of your call.

Writing to file

To write to file, run setting the writetofile flag to True::

python ARM CONTROL TASK --writetofile=True

NOTE: You must create a directory structure in the root folder 'data/arm{2,3}/taskname/controllername'.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.