This is the container repository of the TUM FTM Teleoperated Driving Software Stack. The stack is ROS-based and tested on Ubuntu 18.04 and 20.04 with ROS Melodic/Noetic, only. We are currently working on ROS2
support.
Within this repository, the ROS packages are grouped thematically in the following submodules:
- wsp/src/tod_common
- wsp/src/tod_vehicle_interface
- wsp/src/tod_perception
- wsp/src/tod_operator_interface
- wsp/src/tod_control
A video, showcasing the software on three different vehicle systems is available on YouTube.
The system architecture is depicted in the following graphic. The color of the packages corresponds to the grouping of the packages in the respective submodules.
Use the following commands to clone, build and run the TUM FTM Teleoperated Driving Software Stack. A more extensive documentation for the usage of the software can be found under doc/
.
-
Clone this repository.
-
Initialize all submodules.
git submodule update --recursive --init
-
Install the dependencies of each respective package. A list of dependencies with install commands is found in each package's README. Alternatively, use the docker images from the folder
docker
. -
Create the config of your vehicle with the corresponding
vehicleID
, following the template in thetod_vehicle_interface/tod_vehicle_config
package. -
Several nodes are waiting for the
vehicleID
to be available on the parameter server. See packagetod_core
for more details. -
Build and source the workspace.
cd wsp catkin config --extend /opt/ros/$ROS_DISTRO catkin init --workspace . rosdep install --from-paths src --ignore-src -y --rosdistro=$ROS_DISTRO catkin build source devel/setup.bash # or `setup.zsh`, depending on your shell
-
On the vehicle side:
-
Set your
vehicleID
in thetod_common/tod_launch/launch/vehicle.launch
and launch the vehicle nodes.roslaunch tod_launch vehicle.launch
-
-
On the operator side:
-
Set your
vehicleID
in thetod_common/tod_launch/launch/operator.launch
and launch the operator nodes.roslaunch tod_launch operator.launch
-
In the Manager GUI, enter the IP addresses for the vehicle and the operator side, hit connect, select the control mode and hit start to start with the teleoperation.
-
A rosbag for a playback demo has been recorded in the SVL Driving Simulator. Execute the following steps to run the demo.
- Download the rosbag from here and place it under the following file path:
/home/$USER/Documents/ToD_Playback/lgsvl.bag
. - In
both.launch
, setvehicleID:=lgsvl
- In
vehicle.launch
, setmode:=playbackAll
(ormode:=playbackSim
, seedoc/
for a detailed description of the launch modes). - After having built and sourced the workspace, run
roslaunch tod_launch both.launch
. - In the Manager GUI, enter the localhost (
127.0.0.1
) as both, the broker and operator IP address. - Hit connect.
The data from the rosbag (cameras, laser scanner, vehicle state data) will be played back and visualized the the tod_visual
window.
The paper is available on IEEE. A presentation of the software stack is available on mediatum.
@INPROCEEDINGS{9742859,
author={Schimpe, Andreas and Feiler, Johannes and Hoffmann, Simon and Majstorović, Domagoj and Diermeyer, Frank},
booktitle={2022 International Conference on Connected Vehicle and Expo (ICCVE)},
title={Open Source Software for Teleoperated Driving},
year={2022},
pages={1-6},
doi={10.1109/ICCVE52871.2022.9742859}}