python-motion-planning 2.0.dev2__tar.gz → 2.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/PKG-INFO +22 -15
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/README.md +20 -14
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/pyproject.toml +2 -1
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/__init__.py +1 -1
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/env/map/grid.py +394 -129
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/utils/geometry.py +18 -29
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/path_planner/sample_search/rrt.py +5 -5
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/path_planner/sample_search/rrt_connect.py +2 -2
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/path_planner/sample_search/rrt_star.py +31 -11
- python_motion_planning-2.0.1/src/python_motion_planning/traj_optimizer/__init__.py +2 -0
- python_motion_planning-2.0.1/src/python_motion_planning/traj_optimizer/base_curve_generator.py +53 -0
- python_motion_planning-2.0.1/src/python_motion_planning/traj_optimizer/curve_generator/__init__.py +2 -0
- python_motion_planning-2.0.1/src/python_motion_planning/traj_optimizer/curve_generator/point_based/__init__.py +2 -0
- python_motion_planning-2.0.1/src/python_motion_planning/traj_optimizer/curve_generator/point_based/bspline.py +256 -0
- python_motion_planning-2.0.1/src/python_motion_planning/traj_optimizer/curve_generator/point_based/cubic_spline.py +115 -0
- python_motion_planning-2.0.1/src/python_motion_planning/traj_optimizer/curve_generator/pose_based/__init__.py +4 -0
- python_motion_planning-2.0.1/src/python_motion_planning/traj_optimizer/curve_generator/pose_based/bezier.py +121 -0
- python_motion_planning-2.0.1/src/python_motion_planning/traj_optimizer/curve_generator/pose_based/dubins.py +355 -0
- python_motion_planning-2.0.1/src/python_motion_planning/traj_optimizer/curve_generator/pose_based/polynomial.py +197 -0
- python_motion_planning-2.0.1/src/python_motion_planning/traj_optimizer/curve_generator/pose_based/reeds_shepp.py +606 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning.egg-info/PKG-INFO +22 -15
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning.egg-info/SOURCES.txt +12 -10
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning.egg-info/requires.txt +1 -0
- python_motion_planning-2.0.dev2/src/python_motion_planning/curve_generator/__init__.py +0 -9
- python_motion_planning-2.0.dev2/src/python_motion_planning/curve_generator/bezier_curve.py +0 -131
- python_motion_planning-2.0.dev2/src/python_motion_planning/curve_generator/bspline_curve.py +0 -271
- python_motion_planning-2.0.dev2/src/python_motion_planning/curve_generator/cubic_spline.py +0 -128
- python_motion_planning-2.0.dev2/src/python_motion_planning/curve_generator/curve.py +0 -64
- python_motion_planning-2.0.dev2/src/python_motion_planning/curve_generator/dubins_curve.py +0 -348
- python_motion_planning-2.0.dev2/src/python_motion_planning/curve_generator/fem_pos_smooth.py +0 -114
- python_motion_planning-2.0.dev2/src/python_motion_planning/curve_generator/polynomial_curve.py +0 -226
- python_motion_planning-2.0.dev2/src/python_motion_planning/curve_generator/reeds_shepp.py +0 -736
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/LICENSE +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/setup.cfg +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/__init__.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/env/__init__.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/env/map/__init__.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/env/map/base_map.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/env/node.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/env/robot/__init__.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/env/robot/base_robot.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/env/robot/circular_robot.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/env/robot/diff_drive_robot.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/env/types.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/env/world/__init__.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/env/world/base_world.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/env/world/toy_simulator.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/utils/__init__.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/utils/child_tree.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/utils/frame_transformer.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/visualizer/__init__.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/visualizer/base_visualizer.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/visualizer/visualizer_2d.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/common/visualizer/visualizer_3d.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/controller/__init__.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/controller/base_controller.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/controller/path_tracker/__init__.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/controller/path_tracker/apf.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/controller/path_tracker/dwa.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/controller/path_tracker/path_tracker.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/controller/path_tracker/pid.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/controller/path_tracker/pure_pursuit.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/controller/path_tracker/rpp.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/controller/random_controller.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/path_planner/__init__.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/path_planner/base_path_planner.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/path_planner/graph_search/__init__.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/path_planner/graph_search/a_star.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/path_planner/graph_search/dijkstra.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/path_planner/graph_search/gbfs.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/path_planner/graph_search/jps.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/path_planner/graph_search/lazy_theta_star.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/path_planner/graph_search/theta_star.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/path_planner/hybrid_search/__init__.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/path_planner/hybrid_search/voronoi_planner.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning/path_planner/sample_search/__init__.py +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning.egg-info/dependency_links.txt +0 -0
- {python_motion_planning-2.0.dev2 → python_motion_planning-2.0.1}/src/python_motion_planning.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-motion-planning
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: Motion planning algorithms for Python
|
|
5
5
|
Maintainer-email: Wu Maojia <omige@mail.nwpu.edu.cn>, Yang Haodong <913982779@qq.com>
|
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
|
@@ -685,6 +685,7 @@ Requires-Python: >=3.6
|
|
|
685
685
|
Description-Content-Type: text/markdown
|
|
686
686
|
License-File: LICENSE
|
|
687
687
|
Requires-Dist: numpy
|
|
688
|
+
Requires-Dist: numba
|
|
688
689
|
Requires-Dist: scipy
|
|
689
690
|
Requires-Dist: matplotlib
|
|
690
691
|
Requires-Dist: osqp
|
|
@@ -697,6 +698,8 @@ Dynamic: license-file
|
|
|
697
698
|
|
|
698
699
|
# Introduction
|
|
699
700
|
|
|
701
|
+
`Python Motion Planning` repository provides the implementations of common `Motion planning` algorithms, including path planners on N-D grid, controllers for path-tracking, trajectory optimizers, a visualizer based on matplotlib and a toy physical simulator to test controllers.
|
|
702
|
+
|
|
700
703
|
`Motion planning` plans the state sequence of the robot without conflict between the start and goal.
|
|
701
704
|
|
|
702
705
|
`Motion planning` mainly includes `Path planning` and `Trajectory planning`.
|
|
@@ -704,8 +707,6 @@ Dynamic: license-file
|
|
|
704
707
|
* `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.
|
|
705
708
|
* `Trajectory planning`: It plans the motion state to approach the global path based on kinematics, dynamics constraints and path sequence.
|
|
706
709
|
|
|
707
|
-
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.
|
|
708
|
-
|
|
709
710
|
The theory analysis can be found at [motion-planning](https://blog.csdn.net/frigidwinter/category_11410243.html).
|
|
710
711
|
|
|
711
712
|
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.
|
|
@@ -732,7 +733,8 @@ python_motion_planning
|
|
|
732
733
|
| ├─graph_search
|
|
733
734
|
| ├─sample_search
|
|
734
735
|
| └─hybrid_search
|
|
735
|
-
└─
|
|
736
|
+
└─traj_optimizer
|
|
737
|
+
└─curve_generator
|
|
736
738
|
```
|
|
737
739
|
|
|
738
740
|
## Install
|
|
@@ -746,7 +748,7 @@ conda activate pmp
|
|
|
746
748
|
To install the repository, please run the following command in shell.
|
|
747
749
|
|
|
748
750
|
```shell
|
|
749
|
-
pip install python-motion-planning
|
|
751
|
+
pip install python-motion-planning
|
|
750
752
|
```
|
|
751
753
|
|
|
752
754
|
## Run
|
|
@@ -803,7 +805,7 @@ In the following demos, the blue robot 1 is the `CircularRobot`, and the orange
|
|
|
803
805
|
| **PID** ||Not implemented
|
|
804
806
|
| **APF** ||Not implemented
|
|
805
807
|
| **DWA** ||Not implemented
|
|
806
|
-
| **RPP**
|
|
808
|
+
| **RPP** ||Not implemented
|
|
807
809
|
| **LQR** |Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
|
|
808
810
|
| **MPC** |Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
|
|
809
811
|
| **MPPI** |Not implemented|Not implemented
|
|
@@ -812,19 +814,22 @@ In the following demos, the blue robot 1 is the `CircularRobot`, and the orange
|
|
|
812
814
|
| **DQN** |Not implemented|Not implemented
|
|
813
815
|
| **DDPG** |Implemented in [V1.0](https://github.com/ai-winter/python_motion_planning/tree/v1.0), not migrated|Not implemented
|
|
814
816
|
|
|
815
|
-
##
|
|
817
|
+
## Trajectory Optimizer
|
|
818
|
+
### Curve Generator
|
|
819
|
+
#### Point-based
|
|
816
820
|
|
|
817
|
-
|
|
821
|
+
|Generator|2D|3D|
|
|
822
|
+
| ------- | -------------------------------------------------------- | --------------------------------------------------------
|
|
823
|
+
| **Cubic Spline** ||Not implemented
|
|
824
|
+
| **BSpline** ||Not implemented
|
|
818
825
|
|
|
826
|
+
#### Pose-based
|
|
819
827
|
|Generator|2D|3D|
|
|
820
828
|
| ------- | -------------------------------------------------------- | --------------------------------------------------------
|
|
821
|
-
| **Polynomia** | |Not implemented
|
|
826
|
-
| **Reeds-Shepp** ||Not implemented
|
|
827
|
-
| **Fem-Pos Smoother** ||Not implemented
|
|
829
|
+
| **Polynomia** | |Not implemented
|
|
830
|
+
| **Bezier** ||Not implemented
|
|
831
|
+
| **Dubins** ||Not implemented
|
|
832
|
+
| **Reeds-Shepp** ||Not implemented
|
|
828
833
|
|
|
829
834
|
# Future Works
|
|
830
835
|
|
|
@@ -834,6 +839,8 @@ The visualization of the curve generators has not been implemented in current ve
|
|
|
834
839
|
|
|
835
840
|
* Path planning on topological map.
|
|
836
841
|
|
|
842
|
+
* Sample search with Dubins or Reeds-Shepp curves.
|
|
843
|
+
|
|
837
844
|
* Application on ROS2.
|
|
838
845
|
|
|
839
846
|
* Application in mainstream robot simulation environments (e.g. Gazebo, Carla, Airsim, PyBullet, MuJoCo, Issac Sim).
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
# Introduction
|
|
3
3
|
|
|
4
|
+
`Python Motion Planning` repository provides the implementations of common `Motion planning` algorithms, including path planners on N-D grid, controllers for path-tracking, trajectory optimizers, a visualizer based on matplotlib and a toy physical simulator to test controllers.
|
|
5
|
+
|
|
4
6
|
`Motion planning` plans the state sequence of the robot without conflict between the start and goal.
|
|
5
7
|
|
|
6
8
|
`Motion planning` mainly includes `Path planning` and `Trajectory planning`.
|
|
@@ -8,8 +10,6 @@
|
|
|
8
10
|
* `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.
|
|
9
11
|
* `Trajectory planning`: It plans the motion state to approach the global path based on kinematics, dynamics constraints and path sequence.
|
|
10
12
|
|
|
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
|
-
|
|
13
13
|
The theory analysis can be found at [motion-planning](https://blog.csdn.net/frigidwinter/category_11410243.html).
|
|
14
14
|
|
|
15
15
|
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.
|
|
@@ -36,7 +36,8 @@ python_motion_planning
|
|
|
36
36
|
| ├─graph_search
|
|
37
37
|
| ├─sample_search
|
|
38
38
|
| └─hybrid_search
|
|
39
|
-
└─
|
|
39
|
+
└─traj_optimizer
|
|
40
|
+
└─curve_generator
|
|
40
41
|
```
|
|
41
42
|
|
|
42
43
|
## Install
|
|
@@ -50,7 +51,7 @@ conda activate pmp
|
|
|
50
51
|
To install the repository, please run the following command in shell.
|
|
51
52
|
|
|
52
53
|
```shell
|
|
53
|
-
pip install python-motion-planning
|
|
54
|
+
pip install python-motion-planning
|
|
54
55
|
```
|
|
55
56
|
|
|
56
57
|
## Run
|
|
@@ -107,7 +108,7 @@ In the following demos, the blue robot 1 is the `CircularRobot`, and the orange
|
|
|
107
108
|
| **PID** ||Not implemented
|
|
108
109
|
| **APF** ||Not implemented
|
|
109
110
|
| **DWA** ||Not implemented
|
|
110
|
-
| **RPP**
|
|
111
|
+
| **RPP** ||Not implemented
|
|
111
112
|
| **LQR** |Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
|
|
112
113
|
| **MPC** |Implemented in [V1.1.1](https://github.com/ai-winter/python_motion_planning/tree/v1.1.1), not migrated|Not implemented
|
|
113
114
|
| **MPPI** |Not implemented|Not implemented
|
|
@@ -116,19 +117,22 @@ In the following demos, the blue robot 1 is the `CircularRobot`, and the orange
|
|
|
116
117
|
| **DQN** |Not implemented|Not implemented
|
|
117
118
|
| **DDPG** |Implemented in [V1.0](https://github.com/ai-winter/python_motion_planning/tree/v1.0), not migrated|Not implemented
|
|
118
119
|
|
|
119
|
-
##
|
|
120
|
+
## Trajectory Optimizer
|
|
121
|
+
### Curve Generator
|
|
122
|
+
#### Point-based
|
|
120
123
|
|
|
121
|
-
|
|
124
|
+
|Generator|2D|3D|
|
|
125
|
+
| ------- | -------------------------------------------------------- | --------------------------------------------------------
|
|
126
|
+
| **Cubic Spline** ||Not implemented
|
|
127
|
+
| **BSpline** ||Not implemented
|
|
122
128
|
|
|
129
|
+
#### Pose-based
|
|
123
130
|
|Generator|2D|3D|
|
|
124
131
|
| ------- | -------------------------------------------------------- | --------------------------------------------------------
|
|
125
|
-
| **Polynomia** | |Not implemented
|
|
130
|
-
| **Reeds-Shepp** ||Not implemented
|
|
131
|
-
| **Fem-Pos Smoother** ||Not implemented
|
|
132
|
+
| **Polynomia** | |Not implemented
|
|
133
|
+
| **Bezier** ||Not implemented
|
|
134
|
+
| **Dubins** ||Not implemented
|
|
135
|
+
| **Reeds-Shepp** ||Not implemented
|
|
132
136
|
|
|
133
137
|
# Future Works
|
|
134
138
|
|
|
@@ -138,6 +142,8 @@ The visualization of the curve generators has not been implemented in current ve
|
|
|
138
142
|
|
|
139
143
|
* Path planning on topological map.
|
|
140
144
|
|
|
145
|
+
* Sample search with Dubins or Reeds-Shepp curves.
|
|
146
|
+
|
|
141
147
|
* Application on ROS2.
|
|
142
148
|
|
|
143
149
|
* Application in mainstream robot simulation environments (e.g. Gazebo, Carla, Airsim, PyBullet, MuJoCo, Issac Sim).
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "python-motion-planning"
|
|
7
|
-
version = "2.0.
|
|
7
|
+
version = "2.0.1"
|
|
8
8
|
description = "Motion planning algorithms for Python"
|
|
9
9
|
maintainers = [
|
|
10
10
|
{name = "Wu Maojia", email = "omige@mail.nwpu.edu.cn"},
|
|
@@ -15,6 +15,7 @@ license = {file = "LICENSE"}
|
|
|
15
15
|
requires-python = ">=3.6"
|
|
16
16
|
dependencies = [
|
|
17
17
|
"numpy",
|
|
18
|
+
"numba",
|
|
18
19
|
"scipy",
|
|
19
20
|
"matplotlib",
|
|
20
21
|
"osqp",
|