This is a demonstration of the software in the Cyber-Physical Mobility Lab.
The following setup instructions are intended for Ubuntu 18.04. You can find more detailed information on the setup in Ubuntu 18.04 and other OSs with the link at the end of this section.
Install MATLAB R2023a with the following toolboxes:
- Matlab Coder
- Parallel Computing Toolbox
- Statistics and Machine Learning Toolbox
- ROS Toolbox
Vehicles communicate using the MATLAB ROS toolbox. Their custom messages are compiled with the MATLAB built-in function ros2genmsg(), for which you must have Python and a C++ compiler for your platform (ROS Toolbox Requirements).
For MATLAB R2023a
- Python
- Install Python 3.8
sudo apt install python3.8 python3.8-venv python3.8-dev - Setup Python in the MATLAB command window:
pyenv(Version="3.8") - If Matlab cannot find Python, try:
pyenv(Version=/usr/bin/python3.8)
- Install Python 3.8
- C++ compiler
- Install GCC and G++ Version 7.x+
sudo apt install gcc-7 g++-7 - Set them as the default compiler
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7 - Setup the compiler in the MATLAB command window:
mex -setup
- Install GCC and G++ Version 7.x+
More detailed information including troubleshooting can be found in ./docs/Setup_Details.md.
- Execute startup.m to open the project
- Compilation of priority_queue should succeed
- Execute main.m to run an experiment
- Select the environment "Simulation"
- Select the control strategy "prioritized"
- Push the "Start" button to start the experiment
- Options that do not work in this setup are:
- Environments: CPM Lab
More detailed information including lab experiments can be found in ./docs/Run_Experiments.md.
Please refer to the respective publication if you are using it for your work. If you use the software in general, please cite the dissertation. Thank you very much!
P. Scheffe, "Prioritized Motion Planning for Connected Vehicles", RWTH Aachen University, Department of Computer Science, 2025. doi: 10.18154/RWTH-2025-07834.
Checkout the the software version 8.0. The results of the publication can be reproduced by running
open graph_based_planning.prj
eval_phd()The simulation results are produced in the CPM Lab on 20 Intel NUCs. The results can partly be reproduced on a single computer by changing computation_mode = ComputationMode.parallel_physically to computation_mode = ComputationMode.parallel_threads.
The results are saved in the folder "results".
P. Scheffe, J. Kahle and B. Alrifaee, "Simultaneous Computation of Multiple Prioritizations in Distributed MPC", arXiv preprint arXiv:2501.10781.
Checkout the the software version 7.0. The results of the publication can be reproduced by running
open graph_based_planning.prj
eval_exploration()The simulation results are produced in the CPM Lab on 20 Intel NUCs. The results can partly be reproduced on a single computer by changing computation_mode = ComputationMode.parallel_physically to computation_mode = ComputationMode.parallel_threads.
The results are saved in the folder "results".
P. Scheffe, J. Kahle and B. Alrifaee, "Graph Coloring to Reduce Computation Time in Prioritized Planning", arXiv preprint arXiv:2501.10812.
Checkout the the software version 7.0. The results of the publication can be reproduced by running
open graph_based_planning.prj
eval_coloring_paper()The results are saved in the folder "results".
P. Scheffe, J. Xu and B. Alrifaee, "Limiting Computation Levels in Prioritized Trajectory Planning with Safety Guarantees", 2024 European Control Conference (ECC), Stockholm, Sweden, 2024, doi: 10.23919/ECC64448.2024.10591179.
Checkout the the software version 5.0. The results of the publication can be reproduced by running
open graph_based_planning.prj
eval_parallel_computation_prediction_inconsistency()
eval_parallel_computation_CLs()The results are saved in the folder "results".
Scheffe, P., Pedrosa, M.V.A., Flaßkamp, K., Alrifaee, B. (2024). Prioritized Trajectory Planning for Networked Vehicles Using Motion Primitives. In: Stiller, C., Althoff, M., Burger, C., Deml, B., Eckstein, L., Flemisch, F. (eds) Cooperatively Interacting Vehicles. Springer, Cham. doi: 10.1007/978-3-031-60494-2_9
Checkout the the software version 3.0. The results of the publication can be reproduced by running
open graph_based_planning.prj
spp_book()The results are saved in the folder "results".
P. Scheffe and B. Alrifaee, "A Scaled Experiment Platform to Study Interactions Between Humans and CAVs", 2023 IEEE Intelligent Vehicles Symposium (IV), Anchorage, AK, USA, 2023, doi: 10.1109/IV55152.2023.10186623.
This paper has won the Young Research Award of ITSS Germany 2023.
Checkout the the software version 2.0. The results of the publication can be reproduced by running
hdv_reachable_set_experiment()The results are saved in the folder "results".
P. Scheffe, M. V. A. Pedrosa, K. Flaßkamp and B. Alrifaee, "Receding Horizon Control Using Graph Search for Multi-Agent Trajectory Planning", in IEEE Transactions on Control Systems Technology, 2022, doi: 10.1109/TCST.2022.3214718.
Checkout the the software version 1.0. The results of the publication can be reproduced by running
eval_rhgs()The results are saved in the folder "results".
P. Scheffe, G. Dorndorf, and B. Alrifaee, “Increasing Feasibility with Dynamic Priority Assignment in Distributed Trajectory Planning for Road Vehicles”, in IEEE International Conference on Intelligent Transportation Systems (ITSC), 2022, pp. 3873–3879. doi: 10.1109/ITSC55140.2022.9922028.
The code is implemented in the CPM Lab software repository. The High Level Controller is implemented in C++ and is named "dynamic_priorities".
This research is supported by the Deutsche Forschungsgemeinschaft (German Research Foundation) within the Priority Program SPP 1835 "Cooperative Interacting Automobiles" (grant number: KO 1430/17-1).

