This is the framework of the SSL-Team ER-Force. Its main features are:
- Simulating SSL games with a varying number of robots on different possible field sizes
- Control robots, either autonomously using a Typescript/Lua AI script or manually
- Create recordings of the game and play them back
Note, that development of the ER-Force autoref does not happen in this
repository - there is a separated repository found
here. However, to ease the
development of our AI scripts, it is contained as a
git Submodule here. To
use it, clone the repository using the
--recurse-submodules flag. If you
already cloned it, you can also use
git submodule init && git submodule update --recursive.
Table of Contents
- Getting started and compiling the framework
- Contained programs
- Language services and Tests
Getting started and compiling the framework
First, see here on how to setup a build environment.
You may then compile the various
contained in the framework, or all of them using
Note for Robocup 2021 participants If you just intend to use the simulator to connect with your own software over the network, you only need to build the Simulator CLI.
Contained programs (and their corresponding Makefile Target)
Ra and Horus
The main program we use for development. Offers a GUI the various features provided by the framework.
- Simulating a SSL game
- Control robots either manually or autonomously using a Typescript/Lua AI script
- Send commands to real robots using a wireless transceiver
- Create recordings of the game and play them back (using the Logplayer Horus)
...and many more. For a more complete description, see here.
Simulate the physics of a SSL game. The program will receive a team's robot commands encoded using the SSL simulation protocol and broadcast the state of the world (i.e. positions of robots and the ball) using the SSL vision protocol.
simulator-cli takes two command line arguments:
-g short_file_namesets the initial geometry to one of the defaults in
--realism short_file_namesets the initial realism to on of the defaults in
Both of these argument take a
short_file_name, i.e. just the filename without the path or the extension.
For example, to start the binary with no realism and 2018 setup, call
simulator-cli -g 2018 --realism None
This repo also contains various utilities:
amun-cli- run an AI script from the command line.
loganalyzer- analayze the memory usage of a log file.
logcutter-cli- merge together multiple logs and remove unwanted sections.
replay-cli- replay a log with an AI script. Can also be used for profiling.
visionanalyzer- convert a SSL vision log to our own format and run the autoref on it.
visionextractor- extract a SSL vision log from our own log format.
These executables are found alongside the Ra executable. Run them with
-h for further usage information.
Language services and Tests
A guide for setting up linting services and editor integration is provided at docs/language-services.md. This is mostly for internal usage but may be interesting if you wish to contribute.