A Hybrid-A* planner with early stopping for efficient path planning.
Further, the capabilities of the U-Shift vehicles can be activated to enable the extended abilities to rotate around its rear axis.
![](https://private-user-images.githubusercontent.com/57749046/306599023-df41c8cb-8261-4dd7-a64d-efae3bb90998.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ1NDM1MzksIm5iZiI6MTcyNDU0MzIzOSwicGF0aCI6Ii81Nzc0OTA0Ni8zMDY1OTkwMjMtZGY0MWM4Y2ItODI2MS00ZGQ3LWE2NGQtZWZhZTNiYjkwOTk4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI0VDIzNDcxOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ1ODM0MWUyMDZlNjBlNjFiZWUxMjJlMGUyOWQ2MmFkZDEyMDU5M2RmNzA4MjI4MWVhZjA1Y2MyZmYzMmQ4NjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.K3Q97OoQKyQM1RUY0gwSPTIDRB4hQR6o61fzS_xB3UU)
Arxiv Pre-Print: https://arxiv.org/abs/2310.06974
IEE Explore: https://doi.org/10.1109/ITSC57777.2023.10422264
The paper was published at the IEEE ITSC 2023 and can be cited as stated below.
@INPROCEEDINGS{10422264,
author={Schumann, Oliver and Buchholz, Michael and Dietmayer, Klaus},
booktitle={2023 IEEE 26th International Conference on Intelligent Transportation Systems (ITSC)},
title={Efficient Path Planning in Large Unknown Environments with Switchable System Models for Automated Vehicles},
year={2023},
volume={},
number={},
pages={2466-2472},
keywords={Adaptation models;Runtime;Navigation;Switches;Path planning;Planning;Standards},
doi={10.1109/ITSC57777.2023.10422264}}
Clone the repository and update the submodules.
git submodule update --init --recursive
Change into the docker directory and build the docker image. This may take a while.
cd docker
./build.sh
Run the docker, everything from here will be executed inside it.
./run.sh
Follow the instructions given at the start of the docker
colcon build
source colcon_build/install/setup.bash
ros2 run freespace_planner simulation.py
src/freespace_planner/ros2/scripts/sim_config/sim_config.yml
The SCENARIO_NAME controls which map to use.
ALL_VISIBLE decides if the environment is previously known.
src/freespace_planner/library/config/config.yml
src/freespace_planner/library/config/params.yml
Here, all the library params can be adjusted. Some can also be set during runtime in the Gui.
If you receive the error:
Could not initialize GLFW!
Verify that the DISPLAY variable is set to the same value inside the docker as outside with echo $DISPLAY
and set it with e.g. export DISPLAY=:1
You are welcome to contribute to every part of this project. Given the fact, that the python part is already planned to be replaced by C++, it would be more beneficial to contribute to the C++ part :)
The provided repository uses code which was published by other developers. A detailed enumeration can be found here: src/freespace_planner/LICENSES.yaml
- fitpack: spline routines of scipy
- pyReedsShepp: RS Curve generation
- VoronoiDiagramGenerator: Voronoi diagram generation