Skip to content

Commit 4b9e221

Browse files
committed
Merge branch 'dev'
2 parents abeecc5 + 9c80317 commit 4b9e221

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+10158
-51246
lines changed

README.md

Lines changed: 50 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@
88
* `Path Planning`: It's based on path constraints (such as obstacles), planning the optimal path sequence for the robot to travel without conflict between the start and goal.
99
* `Trajectory planning`: It plans the motion state to approach the global path based on kinematics, dynamics constraints and path sequence.
1010

11+
This repository provides the implementations of common `Motion planning` algorithms, including path planners on N-D grid and controllers for path-tracking, a visualizer based on matplotlib and a toy physical simulator to test controllers.
12+
1113
The theory analysis can be found at [motion-planning](https://blog.csdn.net/frigidwinter/category_11410243.html).
1214

1315
We also provide [ROS C++](https://github.com/ai-winter/ros_motion_planning) version and [Matlab](https://github.com/ai-winter/matlab_motion_planning) version.
1416

15-
This repository provides the implementations of common `Motion planning` algorithms. **Your stars and forks are welcome**. Submitting pull requests or joining our development team are also welcome. For trivial modification, please directly contribute to `dev` branch. For big modification, please [contact](#contact) us before you contribute.
17+
**Your stars and forks are welcome!**
1618

1719
# Quick Start
1820

@@ -32,8 +34,9 @@ python_motion_planning
3234
| └─path_tracker
3335
├─path_planner
3436
| ├─graph_search
35-
| └─sample_search
36-
└─curve_generation
37+
| ├─sample_search
38+
| └─hybrid_search
39+
└─curve_generator
3740
```
3841

3942
## Install
@@ -47,7 +50,7 @@ conda activate pmp
4750
To install the repository, please run the following command in shell.
4851

4952
```shell
50-
pip install python-motion-planning==2.0.dev1
53+
pip install python-motion-planning==2.0.dev2
5154
```
5255

5356
## Run
@@ -56,37 +59,48 @@ Please refer to the Tutorials part of [online documentation](https://ai-winter.g
5659

5760
# Demos
5861
## Path Planner
59-
62+
### Graph Search
6063
|Planner|2D Grid|3D Grid
6164
|-------|-------|-------
62-
**GBFS**|Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
63-
**Dijkstra**|![dijkstra_2d.svg](assets/dijkstra_2d.svg)|![dijkstra_3d.svg](assets/dijkstra_3d.svg)
64-
**A\***|![a_star_2d.svg](assets/a_star_2d.svg)|![a_star_3d.svg](assets/a_star_3d.svg)
65-
**JPS**|Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
65+
**Dijkstra**|![dijkstra_2d.svg](assets/dijkstra_2d.svg)|![dijkstra_3d.png](assets/dijkstra_3d.png)
66+
**GBFS**|![gbfs_2d.svg](assets/gbfs_2d.svg)|![gbfs_3d.png](assets/gbfs_3d.png)
67+
**A\***|![a_star_2d.svg](assets/a_star_2d.svg)|![a_star_3d.png](assets/a_star_3d.png)
68+
**JPS**|![jps_2d.svg](assets/jps_2d.svg)|![jps_3d.png](assets/jps_3d.png)
69+
**Theta\***|![theta_star_2d.svg](assets/theta_star_2d.svg)|![theta_star_3d.png](assets/theta_star_3d.png)
70+
**Lazy Theta\***|![lazy_theta_star_2d.svg](assets/lazy_theta_star_2d.svg)|![lazy_theta_star_3d.png](assets/lazy_theta_star_3d.png)
6671
**D\***|Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
6772
**LPA\***|Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
6873
**D\* Lite**|Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
69-
**Theta\***|![theta_star_2d.svg](assets/theta_star_2d.svg)|![theta_star_3d.svg](assets/theta_star_3d.svg)
70-
**Lazy Theta\***|Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
71-
**S-Theta\***|Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
7274
**Anya**|Not implemented|Not implemented
73-
**Voronoi**|Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
74-
**RRT**|![rrt_2d.svg](assets/rrt_2d.svg)|![rrt_3d.svg](assets/rrt_3d.svg)
75-
**RRT\***|![rrt_star_2d.svg](assets/rrt_star_2d.svg)|![rrt_star_3d.svg](assets/rrt_star_3d.svg)
75+
76+
### Sample Search
77+
|Planner|2D Grid|3D Grid
78+
|-------|-------|-------
79+
**RRT**|![rrt_2d.svg](assets/rrt_2d.svg)|![rrt_3d.png](assets/rrt_3d.png)
80+
**RRT\***|![rrt_star_2d.svg](assets/rrt_star_2d.svg)|![rrt_star_3d.png](assets/rrt_star_3d.png)
81+
**RRT-Connect**|![rrt_connect_2d.svg](assets/rrt_connect_2d.svg)|![rrt_connect_3d.png](assets/rrt_connect_3d.png)
7682
**Informed RRT**|Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
77-
**RRT-Connect**|Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
83+
**PRM**|Not implemented|Not implemented
84+
85+
### Evolutionary Search
86+
|Planner|2D Grid|3D Grid
87+
|-------|-------|-------
7888
| **ACO** |Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
7989
| **GA** |Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
8090
| **PSO** |Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
8191

92+
### Hybrid Search
93+
|Planner|2D Grid|3D Grid
94+
|-------|-------|-------
95+
**Voronoi Planner**|![voronoi_planner_2d.svg](assets/voronoi_planner_2d.svg)|![voronoi_planner_3d.png](assets/voronoi_planner_3d.png)
8296

8397
## Controller
8498

8599
We provide a toy simulator with simple physical simulation to test controllers (path-trakcers). The toy simulator supports multi-agents/multi-robots. The available robots include `CircularRobot` (Omnidirectional) and `DiffDriveRobot` (Only support moving forward and backward). Currently only 2D simulator is provided. 3D simulator has not been implemented.
86100

87101
In the following demos, the blue robot 1 is the `CircularRobot`, and the orange robot 2 is the `DiffDriveRobot`.
88102

89-
|Planner|2D|3D
103+
|Controller|2D|3D
90104
|-------|-------|-------
91105
|**Path Trakcer**|![path_tracker_2d.gif](assets/path_tracker_2d.gif)|Not implemented
92106
| **Pure Pursuit** |![pure_pursuit_2d.gif](assets/pure_pursuit_2d.gif)|Not implemented
@@ -106,7 +120,7 @@ In the following demos, the blue robot 1 is the `CircularRobot`, and the orange
106120

107121
The visualization of the curve generators has not been implemented in current version. They can be visualized in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1).
108122

109-
| Planner |2D|3D|
123+
|Generator|2D|3D|
110124
| ------- | -------------------------------------------------------- | --------------------------------------------------------
111125
| **Polynomia** | ![polynomial_curve_python.gif](assets/polynomial_curve_python.gif)|Not implemented
112126
| **Bezier** |![bezier_curve_python.png](assets/bezier_curve_python.png)|Not implemented
@@ -116,6 +130,24 @@ The visualization of the curve generators has not been implemented in current ve
116130
| **Reeds-Shepp** |![reeds_shepp_python.png](assets/reeds_shepp_python.gif)|Not implemented
117131
| **Fem-Pos Smoother** |![fem_pos_smoother_python.png](assets/fem_pos_smoother_python.png)|Not implemented
118132

133+
# Future Works
134+
135+
* N-D controllers (path-trackers).
136+
137+
* Path planning for robotic arms.
138+
139+
* Path planning on topological map.
140+
141+
* Application on ROS2.
142+
143+
* Application in mainstream robot simulation environments (e.g. Gazebo, Carla, Airsim, PyBullet, MuJoCo, Issac Sim).
144+
145+
* More mainstream motion planning algorithms.
146+
147+
* Performance optimization.
148+
149+
Contributors are welcome! For trivial modification, please directly contribute to `dev` branch. For big modification, please [contact](#contact) us before you contribute.
150+
119151
# Contact
120152

121153
Long-term maintainers:

assets/a_star_3d.png

111 KB
Loading

assets/dijkstra_3d.png

230 KB
Loading

0 commit comments

Comments
 (0)