https://github.com/eric-heiden/grips
Gradient-Informed Path Smoothing for Wheeled Mobile Robots (GRIPS)
https://github.com/eric-heiden/grips
nonholonomic path-smoothing trajectory-generation
Last synced: about 1 year ago
JSON representation
Gradient-Informed Path Smoothing for Wheeled Mobile Robots (GRIPS)
- Host: GitHub
- URL: https://github.com/eric-heiden/grips
- Owner: eric-heiden
- License: mit
- Created: 2017-09-14T02:32:39.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-10-02T17:35:31.000Z (over 7 years ago)
- Last Synced: 2024-06-07T15:03:43.905Z (about 2 years ago)
- Topics: nonholonomic, path-smoothing, trajectory-generation
- Language: C++
- Size: 189 KB
- Stars: 115
- Watchers: 7
- Forks: 46
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Gradient-Informed Path Smoothing for Wheeled Mobile Robots (GRIPS)
C++ implementation of a post-smoothing approach that improves the quality of paths generated by sampling-based planners.
> Planning smooth trajectories is important for the safe, efficient and
> comfortable operation of mobile robots, such as wheeled robots moving in
> crowded environments or cars moving at high speed. Asymptotically optimal
> sampling-based motion planners can be used to generate such trajectories
> eventually. However, to achieve the necessary efficiency for the real-time
> operation of robots, one often uses their initial feasible trajectories or the
> trajectories of non-optimal planners instead, typically after a post-smoothing
> step. We propose a gradient-informed post-smoothing algorithm, called GRIPS,
> that deforms given trajectories by locally optimizing the placement of
> vertices while satisfying the system's kinodynamic constraints. We show
> experimentally that GRIPS typically produces trajectories of significantly
> higher smoothness and smaller length than several existing post-smoothing
> algorithms.
If using GRIPS for scientific publications, please cite the following paper:
```
@inproceedings{heiden2018grips,
author={Heiden, Eric and Palmieri, Luigi and Koenig, Sven and Arras, Kai O. and Sukhatme, Gaurav S.},
booktitle={IEEE International Conference on Robotics and Automation (ICRA)},
title={Gradient-Informed Path Smoothing for Wheeled Mobile Robots},
year={2018}
}
```
## Requirements
* CMake >=3
* Eigen 3
* [OMPL ~1.3.1](https://github.com/ompl/ompl/releases)
* Qt5 (ensure the Qt Charts and SVG packages are installed)
## Content
The following CMake targets are available:
| CMake target | Description |
| ----------------- | ---------------------------------------------------------------------------------- |
| `homotopy_test` | Compares paths from Theta* and A* before/after post-smoothing w.r.t homotopy class |
| `benchmark` | Compares different post-smoothing and path planning algorithms (cf. Table 1) and generates statistics JSON in `log` folder |
| `shortening_test` | Compares path-shortening results on hand-crafted path (Fig. 2) |
| `showcase` | Visualizes post-smoothing of Theta* path in S-shaped environment (Fig. 3) |
## Used third-party tools
* [nlohmann/json](https://github.com/nlohmann/json) to store path statistics data for plotting
* [palmieri/posq](https://github.com/palmieri/posq) steer function for differential drive robots