Rust library containing multiple Rapidly-exploring Random Tree variants for trajectory planning and behavior generation that were compared in A Comparative Study of Rapidly-exploring Random Tree Algorithms Applied to Ship Trajectory Planning and Behavior Generation.
Wrapped for use with Python. Uses PyO3 as interface, and maturin for building the library as a Python package. Typically used with the colav-simulator framework for generating obstacle ship trajectories or as an own-ship trajectory planner.
If you are using RRTs for ship trajectory planning or behavior generation in your work, please use the following citation:
@article{tengesdal2025comparative,
title={A Comparative Study of Rapidly-exploring Random Tree Algorithms Applied to Ship Trajectory Planning and Behavior Generation},
author={Tengesdal, Trym and Pedersen, Tom Arne and Johansen, Tor Arne},
journal={Journal of Intelligent \& Robotic Systems},
volume={111},
number={1},
pages={1--19},
year={2025},
publisher={Springer}
}
Install rustup on your computer: (https://www.rust-lang.org/tools/install):
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shInstall uv (https://docs.astral.sh/uv/getting-started/installation/):
curl -LsSf https://astral.sh/uv/install.sh | shInstall project:
uv sync --group test # To get colav-simulator aswell
uv run maturin develop --uvThe rust library is now built and installed as a Python package.
Run/debug an example under examples/ to check the installation.
- Properly separate the rust library functionality from the PyO3 wrapping framework, to allow for easy usage in Rust without considering Python.
- Use optimization-based steering.