title | author | institute | abstract | |||
---|---|---|---|---|---|---|
Team speedDreams (Group 03) |
|
Technical University of Munich (TUM) |
This repository contains the source code of 'Team speedDreams', which implements an autonomous parking scenario for the lil4 practical course. |
The result of our work can be seen in this short video:
.
+-- doc
| +-- reports // (contains all reports taken during the practical course)
| | +-- final // (our final report)
| +-- talks // (contains all talks held during the pracitcal course)
| | +-- final // (our final presentation)
| | +-- lightning // (contains subfolders with the initials for each group member)
+-- ecu // (contains code for the ecus)
| +-- autonomousParking // (our autonomous parking ecu)
+-- genode // (the official genode 16.08)
+-- simulators // (the collection of simulators in use)
| +-- speed-dreams // (also contains the code changes done to speed-dreams)
| +-- sumo // (was planned to be used in conjunction with the SimCoupler but was omitted for this practical course)
+-- tools // (additional tools or utility software)
| +-- genode-world // (genode-world repository of argos-research)
| +-- protobuf // (contains the protobuf message definitions of *State* and *Control*)
| +-- QEMU-SA-VM // (contains code for the S/A VM)
| +-- SimCoupler // (was planned to be used as module between SD2 and S/A VM but was omitted for this pracitcal course)
+-- Makefile // (used in SA/VM)
+-- README.md // (readme of this project)
- Mosquitto (https://mosquitto.org/), which is not provided by this repository
- Run time dependencies, which can be looked up in the respective directories of the simulators and genode
- Libboost (vers. 1.58 or higher)
- Protobuf (library and compiler in vers. 3)
- The repository consists of multiple submodules, which first need to be fetched via
git submodule update --init
.
In simulators/speed-dreams execute the following commands:
mkdir -p build
cd build
cmake ../ -DCMAKE_CXX_FLAGS=-fpermissive -DOPTION_PARKING=ON
make
cd genode/repos
ln -s ../../tools/genode-world world # link the genode-world repository into the genode file structure
cd ../../
make jenkins_build_dir # creates a build directory, use the Makefile to configure different platforms, etc.
make toolchain # prepares the 16.08 toolchain of genode, used for the compilation process
make ports # prepares necessary library ports for genode
make vde # starts up a vde_switch and tap device
# Please make sure you have isohybrid installed, which is part of the syslinux-utils (Ubuntu)
- Please follow the instructions in SA/VM, but it's only necessary to do this process once (so don't redo it if you already did all the step in SA/VM).
- One can adapt the address and port SD2 listens on for the QEMU SA/VM connection in simulations/speed-dreams/src/drivers/human/human.cpp
- For the SA/VM and ECU, one can adapt the configuration by using the
*.run
files in the respective directories
- Start a mosquitto server
- Start speed-dreams 2 by executing
./simulators/speed-dreams/build/games/speed-dreams-2
- Configure a race in speed-dreams to consist of 3 usr bots and 1 human player (use the espie track) and start it
- Start up the QEMU SA/VM by executing
make -C build/genode-foc_x86_64/ run/savm
(it will connect to speed-dreams) - Start up the QEMU ECU by executing
make -C build/genode-foc_x86_64/ run/ecu
- In speed-dreams: press the 'enter' key and reduce the simulation time to 0.25 by pressing the '-' key two times (this may be unnecessary, depending on your configuration - if you're unsure, just use 0.25 and slowly increase the simulation speed with the '+' key until it becomes unresponsive)
- Use the provided mosquitto_pub by mosquitto to publish the go command:
./mosquitto_pub -h <ip-address> -p <port> -t state -m 'go; 1'
- The bot will now autonomously park, the controls will be reactivated once the car is done parking
- To abort the parking manoeuver, just publish go with value 0:
./mosquitto_pub -h <ip-address> -p <port> -t state -m 'go; 0'