This assignment uses the Open Dynamics Engine (ODE, www.ode.org) to explore trajectory planning and optimization. Below are ODE demo programs and Linux and Windows versions of the necessary include and library files to compile them. Documentation and the source code for ODE is available from www.ode.org. Download the appropriate file below. The readme.txt file in the top level lists what the directories are. ode-demos includes the source and compiled versions for the demo programs that came with ODE. cga-demos includes the source and compiled versions for demo programs written by CGA.


Linux: Demo programs for ODE and libraries


Windows: Demo programs for ODE and libraries

E&S Library has "Visual Studio 6" installation CD for loan. This has Visual C++ on it.


Mac instructions


Linux: ass1c.cpp, ass1d.cpp, executables, and new Makefile


Windows: ass1c.cpp, ass1d.cpp, executables, and .dsp, .dsw files for VS6


Assignment 1

Part 1: Optimize the trajectory of a pendulum with friction. The program cga-demos/ass1a.cpp gives an example of an answer to this part, using a simple servo. Note that the score is printed out for each second of simulated time. See if you can find a way to swing the pendulum up with a smaller score.

Part 2: Optimize the trajectory of a 2 link pendulum with friction. The program cga-demos/ass1b.cpp gives an example of an answer to this part, using a simple servo. Note that the score is printed out for each second of simulated time. See if you can find a way to swing the 2 link pendulum up with a smaller score.

Part 3: Redo Part 1 with an unknown initial starting point. The program ass1c.cpp (see links above) shows how we will give an initial state as command line arguments to the program:
ass1c.exe 2.1 5.3
This works under Linux, so we will be testing your programs under linux. For some reason command line arguments do not work under Windows, so edit the program to change the initial state. Let us know if you figure out how to fix this problem. The range of initial states we will test on will have a maximum energy of 20 (roughly twice the energy of the goal position).

Part 4: Redo Part 2 with an unknown initial starting point. The program ass1d.cpp (see links above) shows how we will give an initial state as command line arguments to the program:
ass1d.exe 2.1 5.3 -1.2 3.4
This works under Linux, so we will be testing your programs under linux. For some reason command line arguments do not work under Windows, so edit the program to change the initial state. Let us know if you figure out how to fix this problem. The range of initial states we will test on will have a maximum energy of 20 (roughly twice the energy of the goal position).


What to turn in?

Generate a web page describing what you did. Include links to your source and compiled code in either .zip, .tar, or .tar.gz format. Be sure to list the names of all the members of your group. Mail the URL of your web page to cga@andrew and cc darrinb@andrew and pmichel@andrew [You complete the address, we are trying to avoid spam.] The writeup is just as important as the code.


Service Pack 6 for Visual Studio 6.


You can use any type of computer/OS/language you want. You can work in groups or alone.