python-motion-planning 1.0__tar.gz → 1.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-1.0 → python_motion_planning-1.1}/PKG-INFO +24 -12
- {python_motion_planning-1.0 → python_motion_planning-1.1}/README.md +23 -6
- {python_motion_planning-1.0 → python_motion_planning-1.1}/pyproject.toml +3 -8
- python_motion_planning-1.1/src/python_motion_planning/__init__.py +4 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/local_planner/__init__.py +1 -5
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/planner/control_factory.py +0 -4
- {python_motion_planning-1.0/python_motion_planning → python_motion_planning-1.1/src}/python_motion_planning.egg-info/PKG-INFO +24 -12
- python_motion_planning-1.1/src/python_motion_planning.egg-info/SOURCES.txt +67 -0
- {python_motion_planning-1.0/python_motion_planning → python_motion_planning-1.1/src}/python_motion_planning.egg-info/requires.txt +0 -5
- python_motion_planning-1.1/src/python_motion_planning.egg-info/top_level.txt +1 -0
- python_motion_planning-1.0/python_motion_planning/local_planner/ddpg.py +0 -630
- python_motion_planning-1.0/python_motion_planning/local_planner/dqn.py +0 -687
- python_motion_planning-1.0/python_motion_planning/python_motion_planning.egg-info/SOURCES.txt +0 -68
- python_motion_planning-1.0/python_motion_planning/python_motion_planning.egg-info/top_level.txt +0 -7
- {python_motion_planning-1.0 → python_motion_planning-1.1}/LICENSE +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1}/setup.cfg +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/curve_generation/__init__.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/curve_generation/bezier_curve.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/curve_generation/bspline_curve.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/curve_generation/cubic_spline.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/curve_generation/curve.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/curve_generation/dubins_curve.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/curve_generation/fem_pos_smooth.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/curve_generation/polynomial_curve.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/curve_generation/reeds_shepp.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/__init__.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/evolutionary_search/__init__.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/evolutionary_search/aco.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/evolutionary_search/evolutionary_search.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/evolutionary_search/pso.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/graph_search/__init__.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/graph_search/a_star.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/graph_search/d_star.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/graph_search/d_star_lite.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/graph_search/dijkstra.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/graph_search/gbfs.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/graph_search/graph_search.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/graph_search/jps.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/graph_search/lazy_theta_star.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/graph_search/lpa_star.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/graph_search/s_theta_star.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/graph_search/theta_star.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/graph_search/voronoi.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/sample_search/__init__.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/sample_search/informed_rrt.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/sample_search/rrt.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/sample_search/rrt_connect.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/sample_search/rrt_star.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/global_planner/sample_search/sample_search.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/local_planner/apf.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/local_planner/dwa.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/local_planner/local_planner.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/local_planner/lqr.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/local_planner/mpc.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/local_planner/pid.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/local_planner/rpp.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/__init__.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/agent/__init__.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/agent/agent.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/environment/__init__.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/environment/env.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/environment/node.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/environment/point2d.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/environment/pose2d.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/helper/__init__.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/helper/math_helper.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/planner/__init__.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/planner/curve_factory.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/planner/planner.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/planner/search_factory.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/plot/__init__.py +0 -0
- {python_motion_planning-1.0 → python_motion_planning-1.1/src}/python_motion_planning/utils/plot/plot.py +0 -0
- {python_motion_planning-1.0/python_motion_planning → python_motion_planning-1.1/src}/python_motion_planning.egg-info/dependency_links.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: python-motion-planning
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.1
|
|
4
4
|
Summary: Motion planning algorithms for Python
|
|
5
5
|
Maintainer-email: Yang Haodong <913982779@qq.com>, Wu Maojia <2223942063@qq.com>
|
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
|
@@ -690,12 +690,7 @@ Requires-Dist: matplotlib
|
|
|
690
690
|
Requires-Dist: cvxopt
|
|
691
691
|
Requires-Dist: osqp
|
|
692
692
|
Requires-Dist: tqdm
|
|
693
|
-
Requires-Dist: torch
|
|
694
|
-
Requires-Dist: torchvision
|
|
695
693
|
Requires-Dist: tensorboard==2.12.0
|
|
696
|
-
Requires-Dist: mkdocs
|
|
697
|
-
Requires-Dist: mkdocstrings
|
|
698
|
-
Requires-Dist: mkdocs-material
|
|
699
694
|
|
|
700
695
|
|
|
701
696
|
# Introduction
|
|
@@ -737,15 +732,25 @@ python_motion_planning
|
|
|
737
732
|
├─planner
|
|
738
733
|
└─plot
|
|
739
734
|
```
|
|
735
|
+
|
|
740
736
|
* The global planning algorithm implementation is in the folder `global_planner` with `graph_search`, `sample_search` and `evolutionary search`.
|
|
737
|
+
|
|
741
738
|
* The local planning algorithm implementation is in the folder `local_planner`.
|
|
739
|
+
|
|
742
740
|
* The curve generation algorithm implementation is in the folder `curve_generation`.
|
|
743
741
|
|
|
744
|
-
##
|
|
745
|
-
The code was tested in python=3.10.
|
|
742
|
+
## Install
|
|
743
|
+
*(Optional)* The code was tested in python=3.10. We recommend using `conda` to install the dependencies.
|
|
744
|
+
|
|
745
|
+
```shell
|
|
746
|
+
conda create -n pmp python=3.10
|
|
747
|
+
conda activate pmp
|
|
748
|
+
```
|
|
749
|
+
|
|
750
|
+
To install the repository, please run the following command in shell.
|
|
746
751
|
|
|
747
752
|
```shell
|
|
748
|
-
pip install -
|
|
753
|
+
pip install python-motion-planning
|
|
749
754
|
```
|
|
750
755
|
|
|
751
756
|
## Run
|
|
@@ -774,11 +779,13 @@ planner = search_factory("a_star", start=(5, 5), goal=(45, 25), env=pmp.Grid(51,
|
|
|
774
779
|
planner.run() # run both planning and animation
|
|
775
780
|
```
|
|
776
781
|
|
|
777
|
-
More examples can be found in the folder `examples
|
|
782
|
+
More examples can be found in the folder `examples` in the repository.
|
|
778
783
|
|
|
779
784
|
## Documentation
|
|
780
785
|
|
|
781
|
-
|
|
786
|
+
For more details, you can refer to [online documentation](https://ai-winter.github.io/python_motion_planning/).
|
|
787
|
+
|
|
788
|
+
The documentation is auto-generated using mkdocs. To do this, enter the root directory and run
|
|
782
789
|
|
|
783
790
|
```shell
|
|
784
791
|
python generate_mkdocs.py
|
|
@@ -814,6 +821,7 @@ Planner | Version
|
|
|
814
821
|
|
|
815
822
|
|
|
816
823
|
## Local Planner
|
|
824
|
+
|
|
817
825
|
| Planner | Version | Animation
|
|
818
826
|
|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------| --------------------------------------------------
|
|
819
827
|
| **PID** | [](https://github.com/ai-winter/python_motion_planning/blob/master/local_planner/pid.py) | 
|
|
@@ -825,7 +833,8 @@ Planner | Version
|
|
|
825
833
|
| **MPC** | [](https://github.com/ai-winter/python_motion_planning/blob/master/local_planner/mpc.py) | 
|
|
826
834
|
| **MPPI** |  |
|
|
827
835
|
| **Lattice** |  |
|
|
828
|
-
| **
|
|
836
|
+
| **DQN** |  |
|
|
837
|
+
| **DDPG** |  |
|
|
829
838
|
|
|
830
839
|
## Curve Generation
|
|
831
840
|
|
|
@@ -844,6 +853,7 @@ Planner | Version
|
|
|
844
853
|
|
|
845
854
|
# Papers
|
|
846
855
|
## Global Planning
|
|
856
|
+
|
|
847
857
|
* [A*: ](https://ieeexplore.ieee.org/document/4082128) A Formal Basis for the heuristic Determination of Minimum Cost Paths
|
|
848
858
|
* [JPS:](https://ojs.aaai.org/index.php/AAAI/article/view/7994) Online Graph Pruning for Pathfinding On Grid Maps
|
|
849
859
|
* [Lifelong Planning A*: ](https://www.cs.cmu.edu/~maxim/files/aij04.pdf) Lifelong Planning A*
|
|
@@ -867,7 +877,9 @@ Planner | Version
|
|
|
867
877
|
* [DDPG: ](https://arxiv.org/abs/1509.02971) Continuous control with deep reinforcement learning
|
|
868
878
|
|
|
869
879
|
## Curve Generation
|
|
880
|
+
|
|
870
881
|
* [Dubins: ]() On curves of minimal length with a constraint on average curvature, and with prescribed initial and terminal positions and tangents
|
|
871
882
|
|
|
872
883
|
# Acknowledgment
|
|
884
|
+
|
|
873
885
|
* Our visualization and animation framework of Python Version refers to [https://github.com/zhm-real/PathPlanning](https://github.com/zhm-real/PathPlanning). Thanks sincerely.
|
|
@@ -38,15 +38,25 @@ python_motion_planning
|
|
|
38
38
|
├─planner
|
|
39
39
|
└─plot
|
|
40
40
|
```
|
|
41
|
+
|
|
41
42
|
* The global planning algorithm implementation is in the folder `global_planner` with `graph_search`, `sample_search` and `evolutionary search`.
|
|
43
|
+
|
|
42
44
|
* The local planning algorithm implementation is in the folder `local_planner`.
|
|
45
|
+
|
|
43
46
|
* The curve generation algorithm implementation is in the folder `curve_generation`.
|
|
44
47
|
|
|
45
|
-
##
|
|
46
|
-
The code was tested in python=3.10.
|
|
48
|
+
## Install
|
|
49
|
+
*(Optional)* The code was tested in python=3.10. We recommend using `conda` to install the dependencies.
|
|
50
|
+
|
|
51
|
+
```shell
|
|
52
|
+
conda create -n pmp python=3.10
|
|
53
|
+
conda activate pmp
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
To install the repository, please run the following command in shell.
|
|
47
57
|
|
|
48
58
|
```shell
|
|
49
|
-
pip install -
|
|
59
|
+
pip install python-motion-planning
|
|
50
60
|
```
|
|
51
61
|
|
|
52
62
|
## Run
|
|
@@ -75,11 +85,13 @@ planner = search_factory("a_star", start=(5, 5), goal=(45, 25), env=pmp.Grid(51,
|
|
|
75
85
|
planner.run() # run both planning and animation
|
|
76
86
|
```
|
|
77
87
|
|
|
78
|
-
More examples can be found in the folder `examples
|
|
88
|
+
More examples can be found in the folder `examples` in the repository.
|
|
79
89
|
|
|
80
90
|
## Documentation
|
|
81
91
|
|
|
82
|
-
|
|
92
|
+
For more details, you can refer to [online documentation](https://ai-winter.github.io/python_motion_planning/).
|
|
93
|
+
|
|
94
|
+
The documentation is auto-generated using mkdocs. To do this, enter the root directory and run
|
|
83
95
|
|
|
84
96
|
```shell
|
|
85
97
|
python generate_mkdocs.py
|
|
@@ -115,6 +127,7 @@ Planner | Version
|
|
|
115
127
|
|
|
116
128
|
|
|
117
129
|
## Local Planner
|
|
130
|
+
|
|
118
131
|
| Planner | Version | Animation
|
|
119
132
|
|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------| --------------------------------------------------
|
|
120
133
|
| **PID** | [](https://github.com/ai-winter/python_motion_planning/blob/master/local_planner/pid.py) | 
|
|
@@ -126,7 +139,8 @@ Planner | Version
|
|
|
126
139
|
| **MPC** | [](https://github.com/ai-winter/python_motion_planning/blob/master/local_planner/mpc.py) | 
|
|
127
140
|
| **MPPI** |  |
|
|
128
141
|
| **Lattice** |  |
|
|
129
|
-
| **
|
|
142
|
+
| **DQN** |  |
|
|
143
|
+
| **DDPG** |  |
|
|
130
144
|
|
|
131
145
|
## Curve Generation
|
|
132
146
|
|
|
@@ -145,6 +159,7 @@ Planner | Version
|
|
|
145
159
|
|
|
146
160
|
# Papers
|
|
147
161
|
## Global Planning
|
|
162
|
+
|
|
148
163
|
* [A*: ](https://ieeexplore.ieee.org/document/4082128) A Formal Basis for the heuristic Determination of Minimum Cost Paths
|
|
149
164
|
* [JPS:](https://ojs.aaai.org/index.php/AAAI/article/view/7994) Online Graph Pruning for Pathfinding On Grid Maps
|
|
150
165
|
* [Lifelong Planning A*: ](https://www.cs.cmu.edu/~maxim/files/aij04.pdf) Lifelong Planning A*
|
|
@@ -168,7 +183,9 @@ Planner | Version
|
|
|
168
183
|
* [DDPG: ](https://arxiv.org/abs/1509.02971) Continuous control with deep reinforcement learning
|
|
169
184
|
|
|
170
185
|
## Curve Generation
|
|
186
|
+
|
|
171
187
|
* [Dubins: ]() On curves of minimal length with a constraint on average curvature, and with prescribed initial and terminal positions and tangents
|
|
172
188
|
|
|
173
189
|
# Acknowledgment
|
|
190
|
+
|
|
174
191
|
* Our visualization and animation framework of Python Version refers to [https://github.com/zhm-real/PathPlanning](https://github.com/zhm-real/PathPlanning). Thanks sincerely.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "python-motion-planning"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.1"
|
|
8
8
|
description = "Motion planning algorithms for Python"
|
|
9
9
|
maintainers = [
|
|
10
10
|
{name = "Yang Haodong", email = "913982779@qq.com"},
|
|
@@ -20,12 +20,7 @@ dependencies = [
|
|
|
20
20
|
"cvxopt",
|
|
21
21
|
"osqp",
|
|
22
22
|
"tqdm",
|
|
23
|
-
"
|
|
24
|
-
"torchvision",
|
|
25
|
-
"tensorboard==2.12.0",
|
|
26
|
-
"mkdocs",
|
|
27
|
-
"mkdocstrings",
|
|
28
|
-
"mkdocs-material"
|
|
23
|
+
"tensorboard==2.12.0"
|
|
29
24
|
]
|
|
30
25
|
classifiers = [
|
|
31
26
|
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
|
@@ -37,4 +32,4 @@ classifiers = [
|
|
|
37
32
|
Repository = "https://github.com/ai-winter/python_motion_planning"
|
|
38
33
|
|
|
39
34
|
[tool.setuptools.packages.find]
|
|
40
|
-
where = ["
|
|
35
|
+
where = ["src"]
|
|
@@ -4,8 +4,6 @@ from .apf import APF
|
|
|
4
4
|
from .rpp import RPP
|
|
5
5
|
from .lqr import LQR
|
|
6
6
|
from .mpc import MPC
|
|
7
|
-
from .ddpg import DDPG
|
|
8
|
-
from .dqn import DQNPlanner
|
|
9
7
|
|
|
10
8
|
__all__ = [
|
|
11
9
|
"DWA",
|
|
@@ -13,7 +11,5 @@ __all__ = [
|
|
|
13
11
|
"APF",
|
|
14
12
|
"RPP",
|
|
15
13
|
"LQR",
|
|
16
|
-
"MPC"
|
|
17
|
-
"DDPG",
|
|
18
|
-
"DQNPlanner"
|
|
14
|
+
"MPC"
|
|
19
15
|
]
|
|
@@ -23,9 +23,5 @@ class ControlFactory(object):
|
|
|
23
23
|
return LQR(**config)
|
|
24
24
|
elif planner_name == "mpc":
|
|
25
25
|
return MPC(**config)
|
|
26
|
-
elif planner_name == "ddpg":
|
|
27
|
-
return DDPG(actor_load_path="models/actor_best_example.pth",
|
|
28
|
-
critic_load_path="models/critic_best_example.pth",
|
|
29
|
-
**config)
|
|
30
26
|
else:
|
|
31
27
|
raise ValueError("The `planner_name` must be set correctly.")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: python-motion-planning
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.1
|
|
4
4
|
Summary: Motion planning algorithms for Python
|
|
5
5
|
Maintainer-email: Yang Haodong <913982779@qq.com>, Wu Maojia <2223942063@qq.com>
|
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
|
@@ -690,12 +690,7 @@ Requires-Dist: matplotlib
|
|
|
690
690
|
Requires-Dist: cvxopt
|
|
691
691
|
Requires-Dist: osqp
|
|
692
692
|
Requires-Dist: tqdm
|
|
693
|
-
Requires-Dist: torch
|
|
694
|
-
Requires-Dist: torchvision
|
|
695
693
|
Requires-Dist: tensorboard==2.12.0
|
|
696
|
-
Requires-Dist: mkdocs
|
|
697
|
-
Requires-Dist: mkdocstrings
|
|
698
|
-
Requires-Dist: mkdocs-material
|
|
699
694
|
|
|
700
695
|
|
|
701
696
|
# Introduction
|
|
@@ -737,15 +732,25 @@ python_motion_planning
|
|
|
737
732
|
├─planner
|
|
738
733
|
└─plot
|
|
739
734
|
```
|
|
735
|
+
|
|
740
736
|
* The global planning algorithm implementation is in the folder `global_planner` with `graph_search`, `sample_search` and `evolutionary search`.
|
|
737
|
+
|
|
741
738
|
* The local planning algorithm implementation is in the folder `local_planner`.
|
|
739
|
+
|
|
742
740
|
* The curve generation algorithm implementation is in the folder `curve_generation`.
|
|
743
741
|
|
|
744
|
-
##
|
|
745
|
-
The code was tested in python=3.10.
|
|
742
|
+
## Install
|
|
743
|
+
*(Optional)* The code was tested in python=3.10. We recommend using `conda` to install the dependencies.
|
|
744
|
+
|
|
745
|
+
```shell
|
|
746
|
+
conda create -n pmp python=3.10
|
|
747
|
+
conda activate pmp
|
|
748
|
+
```
|
|
749
|
+
|
|
750
|
+
To install the repository, please run the following command in shell.
|
|
746
751
|
|
|
747
752
|
```shell
|
|
748
|
-
pip install -
|
|
753
|
+
pip install python-motion-planning
|
|
749
754
|
```
|
|
750
755
|
|
|
751
756
|
## Run
|
|
@@ -774,11 +779,13 @@ planner = search_factory("a_star", start=(5, 5), goal=(45, 25), env=pmp.Grid(51,
|
|
|
774
779
|
planner.run() # run both planning and animation
|
|
775
780
|
```
|
|
776
781
|
|
|
777
|
-
More examples can be found in the folder `examples
|
|
782
|
+
More examples can be found in the folder `examples` in the repository.
|
|
778
783
|
|
|
779
784
|
## Documentation
|
|
780
785
|
|
|
781
|
-
|
|
786
|
+
For more details, you can refer to [online documentation](https://ai-winter.github.io/python_motion_planning/).
|
|
787
|
+
|
|
788
|
+
The documentation is auto-generated using mkdocs. To do this, enter the root directory and run
|
|
782
789
|
|
|
783
790
|
```shell
|
|
784
791
|
python generate_mkdocs.py
|
|
@@ -814,6 +821,7 @@ Planner | Version
|
|
|
814
821
|
|
|
815
822
|
|
|
816
823
|
## Local Planner
|
|
824
|
+
|
|
817
825
|
| Planner | Version | Animation
|
|
818
826
|
|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------| --------------------------------------------------
|
|
819
827
|
| **PID** | [](https://github.com/ai-winter/python_motion_planning/blob/master/local_planner/pid.py) | 
|
|
@@ -825,7 +833,8 @@ Planner | Version
|
|
|
825
833
|
| **MPC** | [](https://github.com/ai-winter/python_motion_planning/blob/master/local_planner/mpc.py) | 
|
|
826
834
|
| **MPPI** |  |
|
|
827
835
|
| **Lattice** |  |
|
|
828
|
-
| **
|
|
836
|
+
| **DQN** |  |
|
|
837
|
+
| **DDPG** |  |
|
|
829
838
|
|
|
830
839
|
## Curve Generation
|
|
831
840
|
|
|
@@ -844,6 +853,7 @@ Planner | Version
|
|
|
844
853
|
|
|
845
854
|
# Papers
|
|
846
855
|
## Global Planning
|
|
856
|
+
|
|
847
857
|
* [A*: ](https://ieeexplore.ieee.org/document/4082128) A Formal Basis for the heuristic Determination of Minimum Cost Paths
|
|
848
858
|
* [JPS:](https://ojs.aaai.org/index.php/AAAI/article/view/7994) Online Graph Pruning for Pathfinding On Grid Maps
|
|
849
859
|
* [Lifelong Planning A*: ](https://www.cs.cmu.edu/~maxim/files/aij04.pdf) Lifelong Planning A*
|
|
@@ -867,7 +877,9 @@ Planner | Version
|
|
|
867
877
|
* [DDPG: ](https://arxiv.org/abs/1509.02971) Continuous control with deep reinforcement learning
|
|
868
878
|
|
|
869
879
|
## Curve Generation
|
|
880
|
+
|
|
870
881
|
* [Dubins: ]() On curves of minimal length with a constraint on average curvature, and with prescribed initial and terminal positions and tangents
|
|
871
882
|
|
|
872
883
|
# Acknowledgment
|
|
884
|
+
|
|
873
885
|
* Our visualization and animation framework of Python Version refers to [https://github.com/zhm-real/PathPlanning](https://github.com/zhm-real/PathPlanning). Thanks sincerely.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
src/python_motion_planning/__init__.py
|
|
5
|
+
src/python_motion_planning.egg-info/PKG-INFO
|
|
6
|
+
src/python_motion_planning.egg-info/SOURCES.txt
|
|
7
|
+
src/python_motion_planning.egg-info/dependency_links.txt
|
|
8
|
+
src/python_motion_planning.egg-info/requires.txt
|
|
9
|
+
src/python_motion_planning.egg-info/top_level.txt
|
|
10
|
+
src/python_motion_planning/curve_generation/__init__.py
|
|
11
|
+
src/python_motion_planning/curve_generation/bezier_curve.py
|
|
12
|
+
src/python_motion_planning/curve_generation/bspline_curve.py
|
|
13
|
+
src/python_motion_planning/curve_generation/cubic_spline.py
|
|
14
|
+
src/python_motion_planning/curve_generation/curve.py
|
|
15
|
+
src/python_motion_planning/curve_generation/dubins_curve.py
|
|
16
|
+
src/python_motion_planning/curve_generation/fem_pos_smooth.py
|
|
17
|
+
src/python_motion_planning/curve_generation/polynomial_curve.py
|
|
18
|
+
src/python_motion_planning/curve_generation/reeds_shepp.py
|
|
19
|
+
src/python_motion_planning/global_planner/__init__.py
|
|
20
|
+
src/python_motion_planning/global_planner/evolutionary_search/__init__.py
|
|
21
|
+
src/python_motion_planning/global_planner/evolutionary_search/aco.py
|
|
22
|
+
src/python_motion_planning/global_planner/evolutionary_search/evolutionary_search.py
|
|
23
|
+
src/python_motion_planning/global_planner/evolutionary_search/pso.py
|
|
24
|
+
src/python_motion_planning/global_planner/graph_search/__init__.py
|
|
25
|
+
src/python_motion_planning/global_planner/graph_search/a_star.py
|
|
26
|
+
src/python_motion_planning/global_planner/graph_search/d_star.py
|
|
27
|
+
src/python_motion_planning/global_planner/graph_search/d_star_lite.py
|
|
28
|
+
src/python_motion_planning/global_planner/graph_search/dijkstra.py
|
|
29
|
+
src/python_motion_planning/global_planner/graph_search/gbfs.py
|
|
30
|
+
src/python_motion_planning/global_planner/graph_search/graph_search.py
|
|
31
|
+
src/python_motion_planning/global_planner/graph_search/jps.py
|
|
32
|
+
src/python_motion_planning/global_planner/graph_search/lazy_theta_star.py
|
|
33
|
+
src/python_motion_planning/global_planner/graph_search/lpa_star.py
|
|
34
|
+
src/python_motion_planning/global_planner/graph_search/s_theta_star.py
|
|
35
|
+
src/python_motion_planning/global_planner/graph_search/theta_star.py
|
|
36
|
+
src/python_motion_planning/global_planner/graph_search/voronoi.py
|
|
37
|
+
src/python_motion_planning/global_planner/sample_search/__init__.py
|
|
38
|
+
src/python_motion_planning/global_planner/sample_search/informed_rrt.py
|
|
39
|
+
src/python_motion_planning/global_planner/sample_search/rrt.py
|
|
40
|
+
src/python_motion_planning/global_planner/sample_search/rrt_connect.py
|
|
41
|
+
src/python_motion_planning/global_planner/sample_search/rrt_star.py
|
|
42
|
+
src/python_motion_planning/global_planner/sample_search/sample_search.py
|
|
43
|
+
src/python_motion_planning/local_planner/__init__.py
|
|
44
|
+
src/python_motion_planning/local_planner/apf.py
|
|
45
|
+
src/python_motion_planning/local_planner/dwa.py
|
|
46
|
+
src/python_motion_planning/local_planner/local_planner.py
|
|
47
|
+
src/python_motion_planning/local_planner/lqr.py
|
|
48
|
+
src/python_motion_planning/local_planner/mpc.py
|
|
49
|
+
src/python_motion_planning/local_planner/pid.py
|
|
50
|
+
src/python_motion_planning/local_planner/rpp.py
|
|
51
|
+
src/python_motion_planning/utils/__init__.py
|
|
52
|
+
src/python_motion_planning/utils/agent/__init__.py
|
|
53
|
+
src/python_motion_planning/utils/agent/agent.py
|
|
54
|
+
src/python_motion_planning/utils/environment/__init__.py
|
|
55
|
+
src/python_motion_planning/utils/environment/env.py
|
|
56
|
+
src/python_motion_planning/utils/environment/node.py
|
|
57
|
+
src/python_motion_planning/utils/environment/point2d.py
|
|
58
|
+
src/python_motion_planning/utils/environment/pose2d.py
|
|
59
|
+
src/python_motion_planning/utils/helper/__init__.py
|
|
60
|
+
src/python_motion_planning/utils/helper/math_helper.py
|
|
61
|
+
src/python_motion_planning/utils/planner/__init__.py
|
|
62
|
+
src/python_motion_planning/utils/planner/control_factory.py
|
|
63
|
+
src/python_motion_planning/utils/planner/curve_factory.py
|
|
64
|
+
src/python_motion_planning/utils/planner/planner.py
|
|
65
|
+
src/python_motion_planning/utils/planner/search_factory.py
|
|
66
|
+
src/python_motion_planning/utils/plot/__init__.py
|
|
67
|
+
src/python_motion_planning/utils/plot/plot.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
python_motion_planning
|