The repository implements some decision-making and contingency planning methods.
If you find this work useful or interesting, please kindly give me a star ⭐, thanks!😀
- System: Ubuntu 20.04 (Tested on Win11 WSL2 )
- Python 3.8.10: numpy == 1.24.4 matplotlib == 3.7.4 casadi == 3.6.5
-
Navigate to the root folder
-
Uncomment the corresponding code block of settings in
ContingencyMPC/CMPC.py
(enableCMPC - obstacle pops out
as follows)# CMPC - obstacle pops out obs_pop = True Pc = 0.25 # Cost weight for contingency control # # CMPC - obstacle does not pop out # obs_pop = False # Pc = 1e-2 # for unique minimum solution # # RMPC # obs_pop = False # Pc = 1.0 - 1e-2
-
Run the script
python3 ContingencyMPC/CMPC.py
-
The anime and figures are saved in
ContingencyMPC/log/
- CMPC - obstacle pops out (at k = 4)
- at k = 5, the nominal planner observes this movement and recognizes the contingency has occurred
- CMPC - obstacle pops out (at k=4)
- RMPC
- assumes the worst case evolution of the scene (follow the contingency planner, the red triangles), even though the obstacle never pops out
- Alsterda, John P. and J. Christian Gerdes. “Contingency Model Predictive Control for Linear Time-Varying Systems.” ArXiv abs/2102.12045 (2021): n. pag.
- Alsterda, John P., Matthew Brown and J. Christian Gerdes. “Contingency Model Predictive Control for Automated Vehicles.” 2019 American Control Conference (ACC) (2019): 717-722.
-
Uncomment the corresponding code block of settings in
Game-Theoretic Motion Planning/Game.py
KF = 0.01 KL = 1 - KF # distF = 20 # collision ditance (conservative) distF = 10 # collision ditance (agressive) distL = 15 Kinfluence = 0 # KF = 0.5 # KL = 1 - KF # distF = 20 # collision ditance # distL = 20 # Kinfluence = 1 # add Jinfluence
-
Run the script
python3 Game-Theoretic Motion Planning/Game.py
-
The anime and figures are saved in
Game-Theoretic Motion Planning/log/
- Aggressive follower: Leader (automated vehicles) performs an aggressive lane change
- Conservative follower: Leader accelerates before performing lane change (also the Fig 4. of [Burger, 2022])
- Burger, Christoph, Johannes Fischer, Frank Bieder, Ömer Sahin Tas and Christoph Stiller. “Interaction-Aware Game-Theoretic Motion Planning for Automated Vehicles using Bi-level Optimization.” 2022 IEEE 25th International Conference on Intelligent Transportation Systems (ITSC) (2022): 3978-3985.
- Burger, Christoph and Martin Lauer. “Cooperative Multiple Vehicle Trajectory Planning using MIQP.” 2018 21st International Conference on Intelligent Transportation Systems (ITSC) (2018): 602-607.
-
Uncomment the corresponding code block of settings in
Game-Theoretic Motion Planning/CMPCGame.py
# scenario decel = True # whether follower will decelarate # decel = False
-
Run the script
python3 Game-Theoretic Motion Planning/CMPCGame.py
-
The anime and figures are saved in
Game-Theoretic Motion Planning/log/
- Follower decelerate
- Follower does not decelerate
- Wei, Junqing, John M. Dolan and Bakhtiar Litkouhi. “Autonomous vehicle social behavior for highway entrance ramp management.” 2013 IEEE Intelligent Vehicles Symposium (IV) (2013): 201-207.
- [附代码]融合Leader-Follower Game和Contingency MPC的预测决策规划 - 知乎 (zhihu.com)