Skip to content

Commit ecf2c19

Browse files
committed
v2.0.dev2
1 parent c70b7be commit ecf2c19

File tree

5 files changed

+49
-10
lines changed

5 files changed

+49
-10
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ python_motion_planning
3434
| └─path_tracker
3535
├─path_planner
3636
| ├─graph_search
37-
| └─sample_search
37+
| ├─sample_search
38+
| └─hybrid_search
3839
└─curve_generator
3940
```
4041

assets/rrt_3d_discrete.png

75.5 KB
Loading

mkdocs.yml

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ site_description: Motion planning algorithms for Python.
9191
site_author: Wu Maojia, Yang Haodong
9292
site_url: http://localhost:8000
9393
use_directory_urls: false
94-
copyright: Copyright @ 2023-2025, Wu Maojia, Yang Haodong.
94+
copyright: Copyright @ 2023-2026, Wu Maojia, Yang Haodong.
9595
repo_url: https://github.com/ai-winter/python_motion_planning/
9696
nav:
9797
- Home: index.md
@@ -102,6 +102,7 @@ nav:
102102
- 1.2 - Path Planner:
103103
- 1.2.1 - Graph Search: tutorials/2d/path_planner/graph_search.md
104104
- 1.2.2 - Sample Search: tutorials/2d/path_planner/sample_search.md
105+
- 1.2.3 - Hybrid Search: tutorials/2d/path_planner/hybrid_search.md
105106
- 1.3 - Controller:
106107
- 1.3.1 - Path Tracker: tutorials/2d/controller/path_tracker.md
107108
- 2 - 3D:
@@ -110,6 +111,7 @@ nav:
110111
- 2.2 - Path Planner:
111112
- 2.2.1 - Graph Search: tutorials/3d/path_planner/graph_search.md
112113
- 2.2.2 - Sample Search: tutorials/3d/path_planner/sample_search.md
114+
- 2.2.3 - Hybrid Search: tutorials/3d/path_planner/hybrid_search.md
113115
- API Reference:
114116
- common:
115117
- env:
@@ -128,12 +130,6 @@ nav:
128130
- CircularRobot: api\common\env\robot\circular_robot\CircularRobot.md
129131
- diff_drive_robot:
130132
- DiffDriveRobot: api\common\env\robot\diff_drive_robot\DiffDriveRobot.md
131-
- tmp:
132-
- BaseAgent: api\common\env\robot\tmp\BaseAgent.md
133-
- SimpleAgent: api\common\env\robot\tmp\SimpleAgent.md
134-
- BaseController: api\common\env\robot\tmp\BaseController.md
135-
- RandomController: api\common\env\robot\tmp\RandomController.md
136-
- MultiAgentNavEnv: api\common\env\robot\tmp\MultiAgentNavEnv.md
137133
- types:
138134
- TYPES: api\common\env\types\TYPES.md
139135
- world:
@@ -142,13 +138,19 @@ nav:
142138
- toy_simulator:
143139
- ToySimulator: api\common\env\world\toy_simulator\ToySimulator.md
144140
- utils:
141+
- child_tree:
142+
- ChildTree: api\common\utils\child_tree\ChildTree.md
145143
- frame_transformer:
146144
- FrameTransformer: api\common\utils\frame_transformer\FrameTransformer.md
147145
- geometry:
148146
- Geometry: api\common\utils\geometry\Geometry.md
149147
- visualizer:
150-
- visualizer:
151-
- Visualizer: api\common\visualizer\visualizer\Visualizer.md
148+
- base_visualizer:
149+
- BaseVisualizer: api\common\visualizer\base_visualizer\BaseVisualizer.md
150+
- visualizer_2d:
151+
- Visualizer2D: api\common\visualizer\visualizer_2d\Visualizer2D.md
152+
- visualizer_3d:
153+
- Visualizer3D: api\common\visualizer\visualizer_3d\Visualizer3D.md
152154
- controller:
153155
- base_controller:
154156
- BaseController: api\controller\base_controller\BaseController.md
@@ -163,6 +165,8 @@ nav:
163165
- PID: api\controller\path_tracker\pid\PID.md
164166
- pure_pursuit:
165167
- PurePursuit: api\controller\path_tracker\pure_pursuit\PurePursuit.md
168+
- rpp:
169+
- RPP: api\controller\path_tracker\rpp\RPP.md
166170
- random_controller:
167171
- RandomController: api\controller\random_controller\RandomController.md
168172
- curve_generator:
@@ -190,11 +194,22 @@ nav:
190194
- AStar: api\path_planner\graph_search\a_star\AStar.md
191195
- dijkstra:
192196
- Dijkstra: api\path_planner\graph_search\dijkstra\Dijkstra.md
197+
- gbfs:
198+
- GBFS: api\path_planner\graph_search\gbfs\GBFS.md
199+
- jps:
200+
- JPS: api\path_planner\graph_search\jps\JPS.md
201+
- lazy_theta_star:
202+
- LazyThetaStar: api\path_planner\graph_search\lazy_theta_star\LazyThetaStar.md
193203
- theta_star:
194204
- ThetaStar: api\path_planner\graph_search\theta_star\ThetaStar.md
205+
- hybrid_search:
206+
- voronoi_planner:
207+
- VoronoiPlanner: api\path_planner\hybrid_search\voronoi_planner\VoronoiPlanner.md
195208
- sample_search:
196209
- rrt:
197210
- RRT: api\path_planner\sample_search\rrt\RRT.md
211+
- rrt_connect:
212+
- RRTConnect: api\path_planner\sample_search\rrt_connect\RRTConnect.md
198213
- rrt_star:
199214
- RRTStar: api\path_planner\sample_search\rrt_star\RRTStar.md
200215
plugins:

tutorials/3d/map/grid.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,14 @@ vis = Visualizer3D()
6060
vis.plot_grid_map(map_)
6161
vis.show()
6262
vis.close()
63+
```
64+
65+
3D visualization is based on PyVista. If you want to save the figure, you need to set argument `off_screen` to `True` and comment `vis.show()`. Below is an example to save a figure:
66+
67+
```python
68+
vis = Visualizer3D(show_axes=False, off_screen=True)
69+
vis.plot_grid_map(map_)
70+
# vis.show()
71+
vis.savefig("../assets/rrt_3d_discrete.png")
72+
vis.close()
6373
```

tutorials/3d/path_planner/sample_search.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,19 @@ vis.plot_expand_tree(path_info["expand"])
6161
vis.show()
6262
vis.close()
6363
```
64+
Sample search planners plan in continuous space by default. If you want to plan in discrete grid map, just set argument `discrete` to `True`. For example:
65+
66+
```python
67+
planner = RRT(map_=map_, start=start, goal=goal, discrete=True)
68+
```
69+
70+
Print results:
71+
```
72+
[(25, 5, 5), (24, 10, 7), (25, 11, 12), (27, 14, 15), (27, 18, 19), (26, 21, 22), (21, 22, 23), (16, 23, 24), (11, 23, 26), (6, 21, 27), (5, 25, 25)]
73+
{'success': True, 'start': (25, 5, 5), 'goal': (5, 25, 25), 'length': 51.21681787317005, 'cost': 51.21681787317005, 'expand': {(25, 5, 5): Node((25, 5, 5), None, 0, 0), ...}}
74+
```
75+
76+
![rrt_3d_discrete.png](../../../assets/rrt_3d_discrete.png)
6477

6578
For asymptoticaly optimal sample search planners like **RRT\***, you can set argument `stop_until_sample_num` to `True` and configure `sample_num` to wait for a better result. For example:
6679

0 commit comments

Comments
 (0)