ROS Interface for ProSeCo Planning - Probabilistic Semantic Cooperative Planning
The ProSeCo Planning C++ library can be found here.
An introduction to the project can be found here
├── README.md # This file
├── CMakeLists.txt # Project level CMake file
├── doc # Documentation
├── config # Configuration files
│ ├── evaluator # Configuration of the evaluator
│ ├── hyperparameter_optimization # Configuration of the hyperparameter optimization
│ ├── options # Configuration of the planning algorithm
│ └── scenarios # Configuration of the different scenarios
├── python
| └── proseco # ProSeCo Planning Python package
| ├── evaluator # Module for the evaluation of the algorithm
| ├── dashboard # Module for the visualization of the evaluator results
| ├── hyperparameter_optimization # Module for the optimization of the hyperparameters
| ├── testing # End-to-end tests for the ProSeCo Planning C++ library
| ├── tests # Unit tests for the ProSeCo Planning Python package
| ├── utility # Module with utility functions
| └── visualization # Module with visualization functions
├── include
│ └── ros_proseco_planning # Header files
└── src # Source files
Please follow the instructions in the ProSeCo Planning workspace to get started with the library.
- Source the environment:
. proseco_ws/devel_isolated/setup.bash
- Activate the Python virtual environment
- Start a ROS core:
roscore
cd python/proseco && python evaluator/evaluator.py -c config.json -y -s
cd python/proseco && python dashboard/index.py
cd python/proseco && python hyperparameter_optimization/optimize.py -f optimizer -c config.json
The behavior of the algorithm can be configured entirely by changing the CUE/JSON based configuration files.
The options determine the algorithm's configuration.
The scenarios describe different traffic scenarios with which the algorithm can be evaluated.
The evaluation configuration determines the evaluation that is being performed.
The ProSeCo Planning workspace provides a script to format all .cpp
, .h
and .py
files.
All .cpp
and .h
files must be formatted using clang-format.
All .py
files must be formatted using black.
All .json
and .html
files must be formatted using Prettier.
All .cue
files must be formatted using cue, e.g. cue fmt <file_name>
.
The documentation for the ROS package can be found here.
The documentation can be generated using doxygen.
cd doc && doxygen Doxyfile
The documentation can be generated using sphinx.js
cd doc && python generate_docs.py
The resulting binary can be profiled using:
valgrind --tool=callgrind --callgrind-out-file=callgrind.out --instr-atstart=no ./proseco_planning_node ros_proseco_planning_node example_options.json sc01.json
kcachegrind callgrind.out
Please refer to the respective publication if you are using it for your work. Thank you very much 🙂!