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.
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).
You can use any type of computer/OS/language you want. You can work in groups or alone.