From Simspark
Jump to: navigation, search



Which platforms are supported?

The simulator currently runs on Linux, Mac OS X and Windows platforms.

How can I install SimSpark on my machine?

Choose your platform:

How can I start the simulator?

After successful installation, typing:


should start the simulator and bring up a window displaying the empty soccer field by default. On Mac OS X, you still have to start the simulator from witin directory app/rcssserver3d. In that case do:

cd app/rcssserver3d

How can I stop the simulator?

Either press 'q' when the focus is on the window displaying the ongoing simulation, or press CTRL-C in the terminal window you started the simulator in.

Why don't I see any robots on the field

The simulator does not start any agents by itself. You have to connect an agent to the simulator over the network (port 3100). You can refer to the sample agent 'rcssagent3d' in directory rcssserver3d/rcssagent3d/ to guide you if you like to develop your own agents. Other (better) agent implementations are also available, see below.

I get an error message saying that certain shared libraries can't be opened, how do I solve this?

Firstly you should check whether the libraries are installed correctly, for example, look up the directory '/usr/local/lib/rcssserver3d' to make sure nothing is missing.

Secondly type this command echo $LD_LIBRARY_PATH to examine the libraries are in the directories, if not please do like this: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/rcssserver3d or add it to your ~/.profile to not type it the next time.

Lastly if all is right, please post an email in the mailing list to ask for help, and please provide the information as much as possible.

I keep getting some message about an 'LCP error', do I need to worry?

LCP is short for Linear Complementarity Problem, and this message is printed by ODE which is used as the physical engine in simspark. Generally speaking, it happens when there is too much force upon joints. So please make sure that the action of your robot is normal(just like a human), and you don't need to worry when it happens seldomly.

The simulation is really slow, what can I do?

There are several possible causes:

  • Your are running the simulation the monitor and all connected agents on one single machine. Try running them on different machines.
  • The simulator is running in single threaded mode. Try enable multithreaded mode in the simulator configuration file.
  • You're not using a hardware accelerated rendering. Try installing current OpenGL drivers for your video card.

I heard about a multi-threaded mode in the simulator, how do I enable that?

In file 'spark.rb', you can find this sentence:


Currently there are three places, and they are in functions sparkSetupServer, sparkSetupMonitor and sparkSetupMonitorLogPlayer. They are corresponding to simspark, monitorspark (in network mode) and monitorspark (in logfile mode). Use setMultiThreads(true) to switch on multi-threaded mode as you wanna.

I want to run experiments that need to be repeated many times, How can I do this?

There are some options for this purpose.

  • After agent connects to the simulator and does whatever it should do (like experiments for learning), it can disconnect and reconnect again. This is the simplest way.
  • In case where connecting to simulator is not possible after disconnecting, it's a good idea to close the simulator and start the whole process again. Since doing this with hand is time-consuming (for runs more than 10 times), a script can be used to facilitate this process, like this one from Zigorat base code. Save it as .sh file and add execution permission. The key for this method to work properly is that agent finish the work and quit the simulation, so that it's process will terminate. after that the script closes the simulator.
 #! /bin/sh
# Constants declerations Runs=1 RunCount=$1
while test "$Runs" -le "$RunCount" do echo "Starting run #$Runs"
# Start the simulator cd ~ simspark &>/dev/null & PID=$!
# Wait for the simulator sleep 2
# Start the agent for learning # Here start your own agent cd /home/Klaus/Projects/Zigorat ./zigorat_player
# Wait for the agent to disconnect sleep 1
kill -s 2 $PID
# Wait for simulator to unload sleep 1
# Iterator update Runs=$[Runs+1] done
# Learning session finished echo "Finished"

Robot Models

What robot models are available?

See the files in '/app/simspark/rsg/agent/'. For example, there are leggedsphere, hoap2.

In the Windows installation of rcssserver3d (version 0.6.3), look in this path:

   C:\Program Files\rcssserver3d 0.6.3\share\rcssserver3d\rsg\agent

You will see:

  • nao
  • soccerbot058
  • hoap2

See Models for more information.

How can I build my own robot model?

See Running a Simulation for more information.

My robots are exploding, what's going on?

That is beacuse the ODE is crashed. The robot will fly and break into pieces. You'd better check whether you order the robot to move its joints in a very fast speed(eg.100) or to act in an unusual way(eg. put one leg over it's head).

Is there a 'real' camera sensor available?

No, but there is a 'virtual' camera sensor called Vision Perceptor. It can send the vision information of objects in polar coordinates, which contains angle in the X-Y (horizontal) plane, latitude angle and distance between perceptor and object.


How do I program an agent? Are there any libraries or samples?

Please read the article devoted to Agents.


What improvements are planned?

Please see our Todo page and also the ideas submitted to the Google Summer of Code 2008.

I would like to help, how can I contribute?

Help is always appreciated :-) Please subscribe to the simspark-devel mailing list and let us know you'd like to join our team.


What's this RoboCup thing all about?

See Soccer Simulation for more information.

Personal tools