mirror of
https://github.com/AtsushiSakai/PythonRobotics.git
synced 2026-04-22 03:00:22 -04:00
223 lines
9.5 KiB
Markdown
223 lines
9.5 KiB
Markdown
# PythonRobotics
|
||
|
||
Python sample codes for robotics algorithm.
|
||
|
||
# Table of Contents
|
||
=================
|
||
|
||
* [PythonRobotics](#pythonrobotics)
|
||
* [Requirements](#requirements)
|
||
* [Path Planning](#path-planning)
|
||
* [Dijkstra grid search](#dijkstra-grid-search)
|
||
* [A star grid search](#a-star-grid-search)
|
||
* [Model Predictive Trajectory Generator](#model-predictive-trajectory-generator)
|
||
* [Path optimization sample:](#path-optimization-sample)
|
||
* [Lookup table generation sample:](#lookup-table-generation-sample)
|
||
* [State Lattice Planning](#state-lattice-planning)
|
||
* [Uniform polar sampling results:](#uniform-polar-sampling-results)
|
||
* [Biased polar sampling results:](#biased-polar-sampling-results)
|
||
* [Lane sampling results:](#lane-sampling-results)
|
||
* [RRT](#rrt)
|
||
* [RRTStar](#rrtstar)
|
||
* [RRT Car](#rrt-car)
|
||
* [RRTStarCar](#rrtstarcar)
|
||
* [RRTStarCar_reeds_sheep](#rrtstarcar_reeds_sheep)
|
||
* [Dubins path planning](#dubins-path-planning)
|
||
* [Reeds Shepp planning](#reeds-shepp-planning)
|
||
* [Closed Loop RRT*](#closed-loop-rrt)
|
||
* [Path tracking](#path-tracking)
|
||
* [Pure pursuit tracking](#pure-pursuit-tracking)
|
||
* [Rear wheel feedback control](#rear-wheel-feedback-control)
|
||
* [Linear–quadratic regulator (LQR) control](#linearquadratic-regulator-lqr-control)
|
||
* [License](#license)
|
||
* [Author](#author)
|
||
|
||
# Requirements
|
||
|
||
- numpy
|
||
|
||
- scipy
|
||
|
||
- matplotlib
|
||
|
||
- [pyReedsShepp](https://github.com/ghliu/pyReedsShepp) (Only for reeds sheep path and RRTStarCar_reeds_sheep)
|
||
|
||
# Path Planning
|
||
|
||
Path planning algorithm.
|
||
|
||
## Dijkstra grid search
|
||
|
||
This is a 2D grid based shortest path planning with Dijkstra's algorithm.
|
||
|
||

|
||
|
||
In the animation, cyan points are searched nodes.
|
||
|
||
## A star grid search
|
||
|
||
This is a 2D grid based shortest path planning with A star algorithm.
|
||
|
||

|
||
|
||
In the animation, cyan points are searched nodes.
|
||
|
||
It's heuristic is 2D Euclid distance.
|
||
|
||
|
||
## Model Predictive Trajectory Generator
|
||
|
||
This script is a path planning code with model predictive trajectory generator.
|
||
|
||
### Path optimization sample:
|
||
|
||

|
||
|
||
### Lookup table generation sample:
|
||
|
||

|
||
|
||
see:
|
||
- [Optimal rough terrain trajectory generation for wheeled mobile robots](http://journals.sagepub.com/doi/pdf/10.1177/0278364906075328)
|
||
|
||
|
||
|
||
## State Lattice Planning
|
||
|
||
This script is a path planning code with state lattice planning.
|
||
|
||
This code uses the model predictive trajectory generator to solve boundary problem.
|
||
|
||
|
||
### Uniform polar sampling results:
|
||
|
||

|
||
|
||

|
||
|
||
### Biased polar sampling results:
|
||
|
||

|
||
|
||

|
||
|
||
### Lane sampling results:
|
||
|
||

|
||
|
||

|
||
|
||
|
||
|
||
## RRT
|
||
|
||
Rapidly Randamized Tree Path planning sample.
|
||
|
||

|
||
|
||
This script is a simple path planning code with Rapidly-Exploring Random Trees (RRT)
|
||
|
||
see (in Japanese) :
|
||
|
||
[PythonによるRapidly-Exploring Random Trees (RRT)パスプランニングサンプルプログラム - MyEnigma](http://myenigma.hatenablog.com/entry/2016/03/23/092002)
|
||
|
||
## RRTStar
|
||
|
||

|
||
|
||
This script is a path planning code with RRT \*
|
||
|
||
- [Incremental Sampling-based Algorithms for Optimal Motion Planning](https://arxiv.org/abs/1005.0416)
|
||
|
||
|
||
## RRT Car
|
||
|
||

|
||
|
||
Path planning for a car robot with RRT and dubins path planner.
|
||
|
||
|
||
## RRTStarCar
|
||
|
||

|
||
|
||
Path planning for a car robot with RRT\* and dubings path planner.
|
||
|
||
|
||
## RRTStarCar_reeds_sheep
|
||
|
||
)
|
||
|
||
Path planning for a car robot with RRT\* and reeds sheep path planner.
|
||
|
||
## Dubins path planning
|
||
|
||
A sample code for Dubins path planning.
|
||
|
||
[Dubins path - Wikipedia](https://en.wikipedia.org/wiki/Dubins_path)
|
||
|
||

|
||

|
||

|
||
|
||
## Reeds Shepp planning
|
||
|
||
A sample code with Reeds Shepp path planning.
|
||
|
||

|
||

|
||

|
||
|
||
## Closed Loop RRT\*
|
||
|
||
A sample code with closed loop RRT\*.
|
||
|
||

|
||

|
||

|
||
|
||
see:
|
||
|
||
- [Motion Planning in Complex Environments
|
||
using Closed-loop Prediction](http://acl.mit.edu/papers/KuwataGNC08.pdf)
|
||
|
||
- [Real-time Motion Planning with Applications to
|
||
Autonomous Urban Driving](http://acl.mit.edu/papers/KuwataTCST09.pdf)
|
||
|
||
- [[1601.06326] Sampling-based Algorithms for Optimal Motion Planning Using Closed-loop Prediction](https://arxiv.org/abs/1601.06326)
|
||
|
||
# Path tracking
|
||
|
||
Path tracking algorithm samples.
|
||
|
||
## Pure pursuit tracking
|
||
|
||
Path tracking simulation with pure pursuit steering control and PID speed control.
|
||
|
||

|
||

|
||

|
||
|
||
|
||
## Rear wheel feedback control
|
||
|
||
Path tracking simulation with rear wheel feedback steering control and PID speed control.
|
||
|
||

|
||
|
||
## Linear–quadratic regulator (LQR) control
|
||
|
||
Path tracking simulation with LQR steering control and PID speed control.
|
||
|
||

|
||
|
||
|
||
# License
|
||
|
||
MIT
|
||
|
||
# Author
|
||
|
||
Atsushi Sakai ([@Atsushi_twi](https://twitter.com/Atsushi_twi))
|
||
|