A modular software stack for scaled autonomous head-to-head racing on 1/10th-scale vehicles, built on commercial off-the-shelf hardware. Used by ForzaETH and the D-ITET Center for Project Based Learning (PBL) at ETH Zurich.
Accompanying this repository, a paper titled ForzaETH Race Stack - Scaled Autonomous Head-to-Head Racing on Fully Commercial off-the-Shelf Hardware is available on Journal of Field Robotics, detailing the system's architecture, algorithms, and performance benchmarks.
NOTE: For extensions on said paper, tied to specific publications, please refer to the later paragraph Additional Publications
NOTE: We have a ROS2 version of this stack, check out the other branches of this repo!
- Installation
- Quick Start
- Getting started
- Contributing
- Acknowledgement
- Citing ForzaETH Race Stack
- Additional Publications
We provide an installation guide here.
To launch a quick end-to-end simulation and run time trials:
# Start the simulator with the base system
roslaunch stack_master base_system.launch map_name:=<map> racecar_version:=NUC2 sim:=True
# Run time trials with the default controller
roslaunch stack_master time_trials.launchAfter installation, the car (or the simulation environment) is ready to be tested. For examples on how to run the different modules on the car, refer to the stack_master README. As a further example, the time-trials or the head-to-head checklists are a good starting point.
Or check out our video playlist on Youtube:
Note: Click on the thumbnails to watch the videos.
In case you find our package helpful and want to contribute, please either raise an issue or directly make a pull request. To create pull request please follow the guidelines in CONTRIBUTING.
This project would not be possible without the use of multiple great open-sourced code bases as listed below:
- f1tenth_system
- F1TENTH Racecar Simulator
- Veddar VESC Interface
- Cartographer
- Cartographer ROS Integration
- global_racetrajectory_optimization
- RangeLibc
- BayesOpt4ROS
- cpu_monitor
If you found our race stack helpful in your research, we would appreciate if you cite it as follows:
@article{baumann2024forzaeth,
title={ForzaETH Race Stack—Scaled Autonomous Head-to-Head Racing on Fully Commercial Off-the-Shelf Hardware},
author={Baumann, Nicolas and Ghignone, Edoardo and K{\"u}hne, Jonas and Bastuck, Niklas and Becker, Jonathan and Imholz, Nadine and Kr{\"a}nzlin, Tobias and Lim, Tian Yi and L{\"o}tscher, Michael and Schwarzenbach, Luca and others},
journal={Journal of Field Robotics},
year={2024},
publisher={Wiley Online Library}
}
Please refer to the system_identification README.
Predictive Spliner: Data-Driven Overtaking in Autonomous Racing Using Opponent Trajectory Prediction
Please refer to the predictive-spliner README.
This project is licensed under the MIT License. See the LICENSE file for details.