https://github.com/ethanjameslew/rrt_merci
RRT Implementation used for GRAIC Racing Competition
https://github.com/ethanjameslew/rrt_merci
autonomous-racing autonomous-vehicles graic path-planning robotics-competition rrt rrt-star
Last synced: 12 months ago
JSON representation
RRT Implementation used for GRAIC Racing Competition
- Host: GitHub
- URL: https://github.com/ethanjameslew/rrt_merci
- Owner: EthanJamesLew
- License: bsd-3-clause
- Created: 2022-06-01T03:58:54.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-06-15T18:02:31.000Z (almost 4 years ago)
- Last Synced: 2023-03-04T05:23:36.330Z (over 3 years ago)
- Topics: autonomous-racing, autonomous-vehicles, graic, path-planning, robotics-competition, rrt, rrt-star
- Language: Rust
- Homepage:
- Size: 17.2 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MERCI RRT Path Planners
Implementations of RRT-based algorithms used in [GRAIC 2.0](https://popgri.github.io/Race/outreach/) Competition by team
MERCI (MEthodological Racing Computer Intelligence). **MERCI placed 1st in the Head-to-Head category.**

| Rapidly Exploring Random Trees (RRT) | RRT* |
|----------------------------------------|-------------------------------------------------|
|  |  |
## Overview
The RRT implementations are designed for 2D vehicle racing, containing
* Planners
* Rapidly Exploring Random Trees (RRT)
* RRT*
* [TODO] Kinematic RRT
* Dubins Path
* [TODO] Dynamic RRT
* LQR RRT?
* Obstacles
* Circles
* Rectangles
* Convex Polygons
* Parallel Curves
* Smoothers
* Random Path Smoothing (obstacle aware)
* Samplers
* Uniform
* [TODO] Sobol
## Benchmarks
We have a crude [benchmarks](./notebooks/rrt-benchmark.ipynb) notebook. We see that for RRT implementations, MerciPy achieves planning **10s to 100s of times faster than an existing python implementation**.
## References
Algorithms were taken from their respective papers. Also, Pythonrobotics implementations were referenced.
### PythonRobotics
> Sakai, A., Ingram, D., Dinius, J., Chawla, K., Raffin, A., & Paques, A. (2018). Pythonrobotics: a python code collection of robotics algorithms. arXiv preprint arXiv:1808.10703.
### RRT
> LaValle, S. M., & Kuffner Jr, J. J. (2001). Randomized kinodynamic planning. The international journal of robotics research, 20(5), 378-400.
### RRT*
> Karaman, S., & Frazzoli, E. (2011). Sampling-based algorithms for optimal motion planning. The international journal of robotics research, 30(7), 846-894.
## Python Bindings
See the [mercipy](./mercipy) folder.