Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mrpt/mrpt_path_planning
Self-driving (autonomous navigation) algorithms for 2D robots/vehicles based on mrpt-nav
https://github.com/mrpt/mrpt_path_planning
mrpt navigation path-planning robotics selfdriving simulation
Last synced: 3 months ago
JSON representation
Self-driving (autonomous navigation) algorithms for 2D robots/vehicles based on mrpt-nav
- Host: GitHub
- URL: https://github.com/mrpt/mrpt_path_planning
- Owner: MRPT
- License: bsd-3-clause
- Created: 2019-05-04T15:57:05.000Z (over 5 years ago)
- Default Branch: develop
- Last Pushed: 2024-09-16T22:31:49.000Z (4 months ago)
- Last Synced: 2024-09-17T11:22:39.503Z (4 months ago)
- Topics: mrpt, navigation, path-planning, robotics, selfdriving, simulation
- Language: C++
- Homepage:
- Size: 1.08 MB
- Stars: 13
- Watchers: 4
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.rst
- License: LICENSE
Awesome Lists containing this project
README
[![CI Linux](https://github.com/jlblancoc/selfdriving/actions/workflows/build-linux.yml/badge.svg)](https://github.com/jlblancoc/selfdriving/actions/workflows/build-linux.yml) [![Documentation Status](https://readthedocs.org/projects/selfdriving/badge/?version=latest)](https://selfdriving.readthedocs.io/en/latest/?badge=latest)
# mrpt_path_planning
Path planning and navigation algorithms for robots/vehicles moving on planar environments.
This library builds upon mrpt-nav and the theory behind PTGs to generate libraries of "motion primitives"
for vehicles with arbitrary shape and realistic kinematics and dynamics.## Status on ROS build farm
| Distro | Build dev | Build releases | Stable version |
| --- | --- | --- | --- |
| ROS 1 Noetic (u20.04) | [![Build Status](https://build.ros.org/job/Ndev__mrpt_path_planning__ubuntu_focal_amd64/badge/icon)](https://build.ros.org/job/Ndev__mrpt_path_planning__ubuntu_focal_amd64/) | [![Build Status](https://build.ros.org/job/Nbin_uF64__mrpt_path_planning__ubuntu_focal_amd64__binary/badge/icon)](https://build.ros.org/job/Nbin_uF64__mrpt_path_planning__ubuntu_focal_amd64__binary/) | [![Version](https://img.shields.io/ros/v/noetic/mrpt_path_planning)](https://index.ros.org/search/?term=mrpt_path_planning) |
| ROS 2 Humble (u22.04) | [![Build Status](https://build.ros2.org/job/Hdev__mrpt_path_planning__ubuntu_jammy_amd64/badge/icon)](https://build.ros2.org/job/Hdev__mrpt_path_planning__ubuntu_jammy_amd64/) | [![Build Status](https://build.ros2.org/job/Hbin_uJ64__mrpt_path_planning__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Hbin_uJ64__mrpt_path_planning__ubuntu_jammy_amd64__binary/) | [![Version](https://img.shields.io/ros/v/humble/mrpt_path_planning)](https://index.ros.org/search/?term=mrpt_path_planning) |
| ROS 2 Iron (u22.04) | [![Build Status](https://build.ros2.org/job/Idev__mrpt_path_planning__ubuntu_jammy_amd64/badge/icon)](https://build.ros2.org/job/Idev__mrpt_path_planning__ubuntu_jammy_amd64/) | [![Build Status](https://build.ros2.org/job/Ibin_uJ64__mrpt_path_planning__ubuntu_jammy_amd64__binary/badge/icon)](https://build.ros2.org/job/Ibin_uJ64__mrpt_path_planning__ubuntu_jammy_amd64__binary/) | [![Version](https://img.shields.io/ros/v/iron/mrpt_path_planning)](https://index.ros.org/search/?term=mrpt_path_planning) |
| ROS 2 Jazzy @ u24.04 | [![Build Status](https://build.ros2.org/job/Jdev__mrpt_path_planning__ubuntu_noble_amd64/badge/icon)](https://build.ros2.org/job/Jdev__mrpt_path_planning__ubuntu_noble_amd64/) | [![Build Status](https://build.ros2.org/job/Jbin_uN64__mrpt_path_planning__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Jbin_uN64__mrpt_path_planning__ubuntu_noble_amd64__binary/) | [![Version](https://img.shields.io/ros/v/jazzy/mrpt_path_planning)](https://index.ros.org/search/?term=mrpt_path_planning) |
| ROS 2 Rolling (u24.04) | [![Build Status](https://build.ros2.org/job/Rdev__mrpt_path_planning__ubuntu_noble_amd64/badge/icon)](https://build.ros2.org/job/Rdev__mrpt_path_planning__ubuntu_noble_amd64/) | [![Build Status](https://build.ros2.org/job/Rbin_uN64__mrpt_path_planning__ubuntu_noble_amd64__binary/badge/icon)](https://build.ros2.org/job/Rbin_uN64__mrpt_path_planning__ubuntu_noble_amd64__binary/) | [![Version](https://img.shields.io/ros/v/rolling/mrpt_path_planning)](https://index.ros.org/search/?term=mrpt_path_planning) |## Build requisites
- [MRPT](https://github.com/MRPT/mrpt/) (>=2.12.0)
- [mvsim](https://github.com/MRPT/mvsim/) (optional to run the live control simulator).In Ubuntu 22.04 or newer, installed it with:
```
sudo apt install libmrpt-dev
```For older versions of Ubuntu:
```
# MRPT from this PPA (or build from sources if preferred, or from ROS package `mrpt2`):
sudo add-apt-repository ppa:joseluisblancoc/mrpt
sudo apt update
sudo apt install libmrpt-dev
```## Use in your code
From your CMake script:
```
find_package(mrpt_path_planning REQUIRED)
target_link_libraries(YOUR_TARGET mpp::mrpt_path_planning)
```## Demo runs
```
# bin/path-planner-cli --write-planner-parameters tps-rrtstar.yaml
```Command-line app to test the A* planner:
```
build-Release/bin/path-planner-cli -g "[4 2.5 45]" -s "[0.5 0 0]" \
--planner "mpp::TPS_Astar" \
-c share/ptgs_holonomic_robot.ini \
--obstacles share/obstacles_01.txt \
--planner-parameters share/mvsim-demo-astar-planner-params.yaml \
--costmap-obstacles share/costmap-obstacles.yaml
``````
build-Release/bin/path-planner-cli --write-planner-parameters tps-rrtstar.yaml
# Edit tps-rrtstar.yaml as desired
build-Release/bin/path-planner-cli \
-g "[4 2.5 45]" -s "[0.5 0 0]" \
-p share/ptgs_holonomic_robot.ini \
--obstacles share/obstacles_01.txt \
--planner-parameters tps-rrtstar.yaml \
--max-iterations 1000 \
--costmap-obstacles share/costmap-obstacles.yaml \
--random-seed 3
```GUI with live navigation simulator:
```
# Holonomic robot:
build-Release/bin/selfdriving-simulator-gui \
--waypoints share/mvsim-demo-waypoints01.yaml \
-s share/mvsim-demo.xml \
-p share/ptgs_holonomic_robot.ini \
--nav-engine-parameters share/nav-engine-params.yaml \
--planner-parameters share/mvsim-demo-astar-planner-params.yaml \
--prefer-waypoints-parameters share/costmap-prefer-waypoints.yaml \
--global-costmap-parameters share/costmap-obstacles.yaml \
--local-costmap-parameters share/costmap-obstacles.yaml \
-v DEBUG# Ackermann vehicle:
build-Release/bin/selfdriving-simulator-gui \
--waypoints share/mvsim-demo-waypoints01.yaml \
-s share/mvsim-demo.xml \
-p share/ptgs_ackermann_vehicle.ini \
--nav-engine-parameters share/nav-engine-params.yaml \
--planner-parameters share/mvsim-demo-astar-planner-params.yaml \
--prefer-waypoints-parameters share/costmap-prefer-waypoints.yaml \
--global-costmap-parameters share/costmap-obstacles.yaml \
--local-costmap-parameters share/costmap-obstacles.yaml \
-v DEBUG
```