Skip to content

uulm-mrm/guided-extended-hybrid-astar

Repository files navigation

Guided and Extended Hybrid A*

Description

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.

Links

Arxiv Pre-Print: https://arxiv.org/abs/2310.06974
IEE Explore: https://doi.org/10.1109/ITSC57777.2023.10422264

Citation

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}}

Videos

Known and Unknown Environments

IMAGE ALT TEXT HERE IMAGE ALT TEXT HERE

Advanced motion capabilities

IMAGE ALT TEXT HERE

Setup

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

Configuration

Sim configuration

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.

Library configuration

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.

Troubleshooting

GLFW Error

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 $DISPLAYand set it with e.g. export DISPLAY=:1

Contribute

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

Credits

The provided repository uses code which was published by other developers. A detailed enumeration can be found here: src/freespace_planner/LICENSES.yaml