Skip to content

embedded-software-laboratory/p-dmpc

Repository files navigation

Prioritized Motion Planning for Connected Vehicles

Open in MATLAB Online

Demonstration

This is a demonstration of the software in the Cyber-Physical Mobility Lab.

Demo

Setup

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.

MATLAB R2023a

Install MATLAB R2023a with the following toolboxes:

  • Matlab Coder
  • Parallel Computing Toolbox
  • Statistics and Machine Learning Toolbox
  • ROS Toolbox

System Requirements for MATLAB 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
    1. Install Python 3.8
      sudo apt install python3.8 python3.8-venv python3.8-dev
    2. Setup Python in the MATLAB command window:
      pyenv(Version="3.8")
    3. If Matlab cannot find Python, try:
      pyenv(Version=/usr/bin/python3.8)
  • C++ compiler
    1. Install GCC and G++ Version 7.x+
      sudo apt install gcc-7 g++-7
    2. 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
    3. Setup the compiler in the MATLAB command window:
      mex -setup

Setup Details

More detailed information including troubleshooting can be found in ./docs/Setup_Details.md.

Experiments

  1. Execute startup.m to open the project
    • Compilation of priority_queue should succeed
  2. 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.

References

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.

Paper Repository

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.

Paper Repository Video

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.

Paper Repository

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.

Paper Repository Video

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

Paper Repository

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.

Paper Repository Video

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.

Paper Repository Video Code Ocean

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.

Paper Repository Video

The code is implemented in the CPM Lab software repository. The High Level Controller is implemented in C++ and is named "dynamic_priorities".

Acknowledgements

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).

About

Prioritized Distributed Model Predictive Control for Networked Motion Planning

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages