Announcements

UberSim Directions

This file describes UberSim, how to get the code, and how to use it. For a more detailed description of UberSim, see our recent publication.
Brett Browning and Erick Tryzelaar. UberSim: A Realistic Simulation Engine for Robot Soccer. In Proceedings of Autonomous Agents and Multi-Agent Systems, AAMAS'03, Australia, July 2003, Accepted for poster.

Getting the Code

To get the code you need to use CVS and the code repository on calvin. This means you need an account on the machine calvin.prodigy.cs.cmu.edu. If you are part ofthe small-size development team you probably already have this account. These instructions assume you are using Z shell. If you are unsure, type echo $SHELL to find out what shell you are using. If the result is zsh then you are using Z shell. For help on Z shell, or some other shell, see our linux help appendix.

If you are using on of the lab machines, chances are you have a shell function in your ~/.zshrc resource script that sets the environment variables for you. In this case just type ubersim and the environment variables should be set for you. If this doesn't work, or you are not on a lab machine, then you need to set up the CVSROOT and CVS_RSH environment variables as follows.:
~/> export CVSROOT=:ext:calvin.prodigy.cs.cmu.edu:/home/small/ubersim/repository
~/> export CVS_RSH=ssh

Now you need to create a directory to check the code out and run the CVS command. This works as:
~/> mkdir ubersim
~/> cd ubersim
~/ubersim/> cvs co ubersim

You will now see a whole bunch of text output and CVS will create an ubersim directory containing all the code. You might also have to enter a password to access your user account on calvin. If you already have a code checkout, and want to update your copy then you want to execute instead:
~/ubersim/> cvs upd -d
Now you need to make the code, which is described in the next section.

Making the Code/Compiling

To compile/make the code you need to set one more environment variable. This is the environment variable that tells the compiler where ODE (Open Dynamics Engine) code is. If you are using a lab machine, and the ubersim shell funciton worked, then this is already done. If not then follow the instructions below.

If you are using a lab machine, this code is in /usr/local/ODE. If you are not using a lab machine, then you need to get and compile ODE. See the instructions for getting and compiling ODE below. Set the ODEHOME variable to point to the ODE base directory, for a lab machine this is:
~/ubersim/> export ODEHOME=/usr/local/ODE
Now you are ready to compile. This is just like the small-size code and can be done with the make command from the base directory. From our fresh checkout before, we need to go to the ubersim root and do a make as:
~/ubersim/> cd ubersim
~/ubersim/ubersim/> make
UberSim will now start compiling. This might take a while. If you get any errors then email the ubersim-list@cs.cmu.edu for help. By default UberSim will be compiled with OpenGL support. If you don't have graphics acceleration, this will be really slow. If you do not want OpenGL support you must edit the Makefile.common in the root directory (ie from the example ~/ubersim/ubersim/Makefile.common). You need to comment out the line with a # value:
CFLAGS += -DUSE_OPENGL

Running the Code

To run the code you need a compiled copy of the CMDragons code. You can get the 2002 code from the CMDragons'02 download page or by checking out a copy from CVS.

To run UberSim you need to specify an additional environment variable as:

~/> export UBERSIMCONFIG=~/ubersim/config

This should point to wherever the config directory is located. A good choice is often ../config if you run ubersim from the bin directory. If you are using a lab machine, the ubersim command will do all this for you.

Now run the code as:

~/ubersim/ubersim/> cd bin
~/ubersim/ubersim/bin> ./ubersim

The simulator will now startup and print out some status information. Once started you can start soccer and the gui for the small-size code. See the small-size page for details on how to do this.

Getting and Compiling ODE

You can get the latest version of ODE from the ODE web site: http://www.q12.org/ode. Alternatively you can get a copy of ODE from calvin.prodigy.cs.cmu.edu using scp. You do this by:
somedir/> scp -r calvin.prodigy.cs.cmu.edu:/usr/local/ODE .
You will be prompted for a password. This might take a while. Once it completes you will have a copy of the code. You need to do a make clean and then a make to update the code as follows.
somedir/> cd ODE
somedir/ODE> make clean
somedir/ODE> mak
e
ODE will now compile. If you have the glx packages with OpenGL then it will be compiled in. If not then only the ODE engine will be made. The compilation will produce a few lib files in the target directory. These will be used by UberSim during the make stage to link in ODE.

Email: ubersim-list@cs.cmu.edu for any problems.