Solves the Reeds-Shepp path planning problem 15x faster on average than OMPL's implementation.
Paper attachment TBD.
Reduces set of cases to consider down to 20 and introduces a new partition that speeds up the computation of the shortest path.
Requires SFML & OMPL. It has a demo in main.cpp that computes and draws paths between randomly generated start/end configurations.
Also contains an implemntation of "An efficient algorithm to find a shortest path for a car-like robot".
This table presents sample benchmarking results of our proposed planner against OMPL's implementation of the original Reeds-Shepp algorithm and against our implementation of Desaulniers1995.
Performed on idle Linux Intel i9-13980HX.
Method | Average Time per State (µs) | Time Ratio to OMPL | Maximum Path Length Error | Average Path Length Error |
---|---|---|---|---|
Proposed | 0.0827 | 15.12 | 9.82e-15 | 3.28e-16 |
Desaulniers1995 | 0.216 | 5.79 | 5.82e-15 | 2.77e-16 |
OMPL | 1.25 | 1 | - | - |
Table: Benchmarking results of our proposed planner against OMPL's implementation of the original Reeds-Shepp algorithm and against our implementation of Desaulniers1995.
3D partition of regions in the configuration space. Each color refers to a unique region (out of 20) where one identified path type is certainly the shortest. 1 million configurations
1e8 final configuration samples spanning
Type | Occurrences | Speedup |
---|---|---|
1 | 6829417 | 11.5399 |
2 | 8684623 | 13.1266 |
3 | 9879506 | 12.3335 |
4 | 7630623 | 13.4698 |
5 | 6732552 | 12.8536 |
6 | 6683699 | 11.8223 |
7 | 791193 | 11.4474 |
8 | 2287070 | 11.8638 |
9 | 554434 | 11.7778 |
10 | 2529318 | 11.9787 |
11 | 1985832 | 10.639 |
12 | 11555 | 10.8744 |
13 | 7494149 | 10.3889 |
14 | 8013981 | 11.3507 |
15 | 7714423 | 9.52923 |
16 | 9776168 | 11.3254 |
17 | 1118135 | 10.2761 |
18 | 9897533 | 11.0233 |
19 | 138503 | 9.18825 |
20 | 1247286 | 8.42923 |
Set compiler path if needed. Make sure SFML:
sudo apt install libsfml-dev
and OMPL libraries:
https://ompl.kavrakilab.org/installation.html
are installed, then:
sudo apt install cmake
sudo apt install g++
mkdir build && cd build
cmake ..
make
Troubleshooting build issues with OMPL:
By default, OMPL installs in /usr/local/include/ompl-1.6/ompl. Create a symbolic link so that it can be properly located:
sudo ln -s /usr/local/include/ompl-1.6/ompl /usr/local/include/ompl
Similarly, create Eigen symbolic links so that required files can be found by OMPL:
cd /usr/include
sudo ln -sf eigen3/Eigen Eigen
sudo ln -sf eigen3/unsupported unsupported
After making any changes to the library paths or creating symbolic links, run the ldconfig command to update the system's cache of shared libraries:
sudo ldconfig
After building, you can verify that the required libraries have been properly found using ldd, for example:
ldd ./acceleratedRSPlanner
To use this project, follow these simple steps: