-
Notifications
You must be signed in to change notification settings - Fork 68
Home
Robocar World Championship is intended to offer a common research platform for developing urban traffic control algorithms and for investigating the relationship between smart cities and robot cars with particular attention to spread of robot cars of the near future. At the heart of this initiative is the Robocar City Emulator. It will enable researchers to test and validate their theories and models.
We already have a working prototype called Justine. In the spirit of RERO ("release early, release often") it has been released in "version 0.1 Police edition" for the competition called "Debrecen 1". This initial rapid prototype has very limited features but we think it can be used to start building a community of people who share an interest in this subject.
- Each competition is assigned to a city. Competitions are played on a rectangular area of the OSM (OpenStreetMap) map of the given city that is defined by GPS coords minlat, minlon, maxlat and maxlon. This area is referred to as the "City Operating Area".
- Routine cars, smart cars and guided cars may be placed onto the City Operating Area in which cop multiagents pursue gangster agents for ten minutes. Cops are guided cars and these are controlled by the competing teams.
First of all, you will need a map. For example, let's choose Berlin. The OSM Berlin map can be found at https://www.openstreetmap.org/export#map=10/52.5074/13.4225 The OSM XML file can be exported from this page. (If the selected region is too large you can use the mirror links around the map.) In the following, it is assumed that you will save the exported OSM map in the berlin.osm
file.
The following steps can also be seen in a YouTube video at http://youtu.be/_FNoFqlygyE
You can obtain the source code by cloning the git repo with command git clone https://code.google.com/p/robocar-emulator/
[nbatfai@desteny temp]$ git clone https://code.google.com/p/robocar-emulator/
Cloning into 'robocar-emulator'...
remote: Counting objects: 347, done.
Receiving objects: 100% (347/347), 357.38 KiB | 0 bytes/s, done.
Resolving deltas: 100% (61/61), done.
[nbatfai@desteny temp]$
The rcemu
directory contains the sources of Robocar City Emulator that is a GNU autoconf based project.
Change to this directory and enter the command autoreconf --install
to generate the configure
script.
[nbatfai@desteny rcemu]$ autoreconf --install
libtoolize: putting auxiliary files in `.'.
libtoolize: copying file `./ltmain.sh'
configure.ac:42: installing './config.guess'
configure.ac:42: installing './config.sub'
configure.ac:22: installing './install-sh'
configure.ac:22: installing './missing'
src/Makefile.am: installing './depcomp'
configure.ac: installing './ylwrap'
[nbatfai@desteny rcemu]$
The configure script checks for presence of headers and libraries required to build Robocar City Emulator:
[nbatfai@desteny rcemu]$ ./configure
...
checking for the Boost thread library... (cached) yes
checking boost/asio.hpp usability... yes
checking boost/asio.hpp presence... yes
checking for boost/asio.hpp... yes
checking for osmium/osm/relation.hpp... yes
checking for osmium/io/any_input.hpp... yes
checking for library containing shm_open... -lrt
checking for shm_open... yes
checking for flex... flex
checking lex output file root... lex.yy
checking lex library... none needed
checking whether yytext is a pointer... no
checking for flex... flex
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: executing depfiles commands
config.status: executing libtool commands
[nbatfai@desteny rcemu]$
It is likely you will see some error messages due to missing packages like libosmium or Boost. (If you cannot fix them you may find them in the FAQ or you can ask on the mailing list.)
If you have no errors you can build the program using make
:
[nbatfai@desteny rcemu] make
...
make[1]: Leaving directory `/home/nbatfai/ROBOCAR/temp/robocar-emulator/justine/rcemu/src'
make[1]: Entering directory `/home/nbatfai/ROBOCAR/temp/robocar-emulator/justine/rcemu'
make[1]: Nothing to be done for `all-am'.
make[1]: Leaving directory `/home/nbatfai/ROBOCAR/temp/robocar-emulator/justine/rcemu'
[nbatfai@desteny rcemu]
After compiling, you can run the program smartcity
.
[nbatfai@desteny rcemu]$ src/smartcity --osm=../berlin.osm --city=Berlin --shm=BerlinSharedMemory --node2gps=../berlin-lmap.txt
To run the traffic server, open another command window and start the command traffic
:
[nbatfai@desteny rcemu]$ src/traffic --port=10007 --shm=BerlinSharedMemory
To build the display program, open a third command window and change to directory rcwin
. It is a Java project based on Maven. It can be built using the command mvn
:
[nbatfai@desteny rcwin]$ mvn clean compile package site assembly:assembly
To run the display program, enter the following command:
[nbatfai@desteny rcwin]$ java -jar target/site/justine-rcwin-0.0.16-jar-with-dependencies.jar ../berlin-lmap.txt
Open a further terminal window and using the following command line:
[nbatfai@desteny ~]$ (sleep 1; echo "<init Norbi 500 g>"; sleep 1)|telnet localhost 10007
500 gangster agents will be connected to the traffic server.
And finally start our own agent program
[nbatfai@desteny rcemu]$ src/samplemyshmclient --port=10007 --shm=BerlinSharedMemory --team=BerlinPolice
If everything is OK, you will see all agents in the display window as it is shown in the following pictures:
The submission process is divided into the following two steps.
Each team must fill out the Team Qualification Paper and return it to Robocar World Championship - Robocar City Emulator mailing list. The file rcarwcup-qualification.xml
is a DocBook 5.1 XML document that can be edited by any text editor. Please submit it in PDF form. Creating PDF is as simple as typing make
in the qualification
directory:
[nbatfai@desteny qualification]$ make
rm -vf rcarwcup-qualification.pdf rcarwcup-qualification.epub
xmllint --xinclude rcarwcup-qualification.xml --output output.xml
xmllint --relaxng http://docbook.org/xml/5.1CR3/rng/docbookxi.rng output.xml --noout
output.xml validates
rm -f output.xml
dblatex -T native rcarwcup-qualification.xml -p robocaremu-hu.xls
Build the book set list...
Build the listings...
XSLT stylesheets DocBook - LaTeX 2e (0.3.5)
===================================================
Stripping NS from DocBook 5/NG document.
Processing stripped document.
Image 'dblatex' not found
Image '' not found
Build rcarwcup-qualification.pdf
'rcarwcup-qualification.pdf' successfully built
[nbatfai@desteny qualification]$
Your software must be released under an open source license (like the GPL) and should run under GNU/Linux systems. The preferred build tools for building your software are CMake, GNU autoconf/automake or Apache Maven. Your program can only be submitted as source package created by one of these build tools. Submissions may be sent directly to Organizers or to Robocar World Championship - Robocar City Emulator mailing list.
A sample program (called SampleClient) has been written to demonstrate how client agent can communicate with traffic server through TCP. It is written in C++11 and uses Boost Graph Library to implement routing. It creates the BGL graph from the map graph that is placed in the shared memory segment by the smartcity program.
If you use this sample program as the basis for your own software you may submit the package created by the command make dist-bzip2:
[nbatfai@desteny rcemu]$ make dist-bzip2
[nbatfai@desteny rcemu]$ ls -l *.bz2
-rw-rw-r--. 1 nbatfai nbatfai 526623 Dec 26 22:28 justine-0.0.17.tar.bz2
In this case, it is enough to edit the myshmclient.cpp. (But, of course, you may write your client agents from scratch using any programming languages such as C++11, Java, Python or R.)
The purpose of this competition is to start building a community.
Norbert Bátfai, PhD., University of Debrecen, IT Dept. [email protected] Competition announcement: https://www.facebook.com/events/755155657892240/
- There is no entry fee.
- The competition do not require personal presence. (Moreover, competitors cannot be present in person.)
- There is no reward or prize. (Play the game for the game's sake :)
- Each team play each other team twice therefore there are N(N-1) rounds where N denotes the number of teams.
- The smartcity server: Ubuntu 14.04.1 LTS (Trusty Tahr), gcc version 4.9.1, Boost 1.55
- Deadline for submission of Team Qualification Paper: 20 January.
- Deadline for submission of the latest source code version: 24 January.
- Competition rounds: 28 January.
- Competition report: 30 January.
- TQPs: http://justine.inf.unideb.hu/2015/Europe/Hungary/Debrecen/2/TQPs/
- Traffic logs: http://justine.inf.unideb.hu/2015/Europe/Hungary/Debrecen/2/TrafficLogs/
- Competition report: http://justine.inf.unideb.hu/2015/Europe/Hungary/Debrecen/2/CompetitionReport/
If you wish to create your own competition please send us the following data:
The purpose of the competition: ...
... Competition announcement: ...
- ...
- The smartcity server: ...
- Deadline for submission of Team Qualification Paper: ...
- Deadline for submission of the latest source code version: ...
- Competition rounds: ...
- Competition report: ...
- TQPs:
- Traffic logs:
- Competition report:
The purpose of this competition is to start gathering the first experiences and finding bugs in the source code.
Norbert Bátfai, PhD., University of Debrecen, IT Dept. [email protected]
- There is no entry fee.
- The competition do not require personal presence. (Moreover, competitors cannot be present in person.)
- There is no reward or prize. (Play the game for the game's sake :)
- Each team play each other team twice therefore there are N(N-1) rounds where N denotes the number of teams.
- The smartcity server: Ubuntu 14.04.1 LTS (Trusty Tahr), gcc version 4.9.1, Boost 1.55
- Deadline for submission of Team Qualification Paper: 16 December.
- Deadline for submission of the latest source code version: 17 December.
- Competition rounds: 18-19 December.
- Competition report: 20 December.
- TQPs: http://robocar.inf.unideb.hu/~norbi/2014.12.18/TDPs/
- Traffic logs: http://robocar.inf.unideb.hu/~norbi/2014.12.18/trafficlogs/
- Competition report: http://robocar.inf.unideb.hu/~norbi/2014.12.18/TDPs/RobocarJegyzokonyvDebrecen2014_12_18_19.pdf (only Hungarian)
- City Operating Area: a city operating area is the rectangular part of the OSM map in which the competitions are played.
Team | Date | Points |
---|---|---|
RSM | 2015 | 68 |
Kurea | 2015 | 64 |
PoniPolice | 2015 | 50 |
SampleClient | 2015 | 44 |
FoTeL | 2015 | 42 |
FTS | 2015 | 20 |
Team | Date | Points |
---|---|---|
FoTeL | 2014 | 37 |
PoniPolice | 2014 | 37 |
RoboSheriff | 2014 | 33 |
SampleClient | 2014 | 25 |
BDSRSTNT | 2014 | 7 |
B0LEX | 2014 | 7 |
Team | Date | Competition | Gangsters |
---|---|---|---|
FoTeL | 12/2014 | Debrecen-1 | 100/53 |