This repository implements a safe autonomous racing example using ILQR and rollout-based shielding, which relies on JAX for real-time computation performance based on automatic differentiation and just-in-time (JIT) compilation. The repo is primarily developed and maintained by Haimin Hu, a PhD student in the Safe Robotics Lab. Zixu Zhang, Kai-Chieh Hsu and Duy Nguyen also contributed much to the repo (their original repo is here).
This repo depends on the following packages:
- jax=0.4.19
- jaxlib=0.4.16
- matplotlib=3.5.1
- numpy=1.21.5
- pyspline=1.5.1
- python=3.10
- yaml=0.2.5
Please refer to the Colab Notebook for a demo usage of this repo.
Alternatively, you can directly run the main script:
python3 example_racecar.py
Distributed under the BSD 3-Clause License. See LICENSE
for more information.
Haimin Hu - @HaiminHu - haiminh@princeton.edu
If you found this repository helpful, please consider citing one of the following papers that turned this repository into research contributions.
- ILQR-based safety filter:
@article{hu2023active,
title={Active uncertainty reduction for safe and efficient interaction planning: A shielding-aware dual control approach},
author={Hu, Haimin and Isele, David and Bae, Sangjae and Fisac, Jaime F},
journal={The International Journal of Robotics Research},
pages={02783649231215371},
year={2023},
publisher={SAGE Publications Sage UK: London, England}
}
- ILQR-based Stackelberg game solver:
@inproceedings{hu2024plays,
title={Who Plays First? Optimizing the Order of Play in Stackelberg Games with Many Robots},
author={Hu, Haimin and Dragotto, Gabriele and Zhang, Zixu and Liang, Kaiqu and Stellato, Bartolomeo and Fisac, Jaime F},
booktitle={Proceedings of Robotics: Science and Systems},
year={2024}
}
- ILQ-based game solver for data-aware planning:
@inproceedings{lidard2024blending,
title={Blending Data-Driven Priors in Dynamic Games},
author={Lidard, Justin and Hu, Haimin and Hancock, Asher and Zhang, Zixu and Contreras, Albert Gim{\'o} and Modi, Vikash and DeCastro, Jonathan and Gopinath, Deepak and Rosman, Guy and Leonard, Naomi and others},
booktitle={Proceedings of Robotics: Science and Systems},
year={2024}
}
This repo is inspired by the following projects:
- Princeton Race Car
- Ellipsoidal Toolbox (ET)
- ellReach: Ellipsoidal Reachable Set Computation for Linear Time-Varying Systems (under development)