
DWA 动态窗口法:机器人一边走一边"临时躲障碍"的官方演示动图(官方已实现,截自项目 README 素材)
这是一个叫 python_motion_planning 的开源运动规划库:它把 Dijkstra、A*、JPS、RRT 等几十种路径规划算法,和 Pure Pursuit、PID 等轨迹跟踪算法,全部打包成一行行可跑的 Python 代码,还自带 matplotlib 可视化。你改一行地图参数、换一个算法类名,就能在窗口里亲眼看到机器人"怎么找路、怎么躲障碍、怎么沿着曲线走"。截至 2026-08-14,GitHub API 显示该仓库 1072★;官方 README 还列出了同作者 ROS C++ 版和 Matlab 版。视频仅作为演示入口,不作为技术能力证据。
先看它会什么
官方已实现三大类算法全家桶:全局找路、局部避障、轨迹跟踪,都在一张栅格地图上可视化跑给你看
01 图搜索类:Dijkstra、GBFS、A*、JPS、Theta* 等,搜索扩张过程一步步画出来,一眼看懂"哪种算法更聪明"
02 采样类:RRT、RRT*、RRT-Connect 随机撒点长树找路,还有 Voronoi 混合搜索,2D/3D 栅格都能画
03 动态控制:DWA、APF 局部避障,Pure Pursuit、PID 轨迹跟踪,配一个玩具物理仿真器,蓝色全向车、橙色差速车沿路稳稳开
除了这三类,库里还带轨迹生成器:Dubins、Reeds-Shepp、Bezier、B 样条等曲线一键生成。按 2.0.1 官方文档当前可运行列表,可直接看到 20+ 种规划器、控制器与曲线生成器;D*、LPA*、MPC 等若干项目仅在旧版实现或尚未迁移,不能按当前版“一键运行”。

A* 在 2D 栅格地图上的搜索结果与扩张节点(官方已实现,项目 README 演示图)

RRT 随机采样树:树是怎么"长"到终点的,动图/静态图都能看(官方已实现,项目 README 演示图)
复现雷达
复现难度 ★☆☆☆☆:会 pip install 就能跑,改参数需要一点 Python 基础
首次跑通 10—30 分钟(装环境 + 跑官方示例)
完整玩透 1—2 小时(改地图、换算法、看 3D、录课件动画)
预算 软件新增费用 0 元(复用已有电脑;本文核对 PyPI 包可下载);进阶 ROS 实验还需要兼容的 Ubuntu/ROS 环境与相应设备
前置 Python 3.6+(官方在 3.10 验证),Windows/Mac/Linux 均可
适合谁 中小学生可在教师带领下看动画入门;具备 Python 基础者可改参数;高校与竞赛学习者可对照算法原理使用官方演示素材
为什么值得玩
路径规划是扫地机、送餐机器人、自动驾驶的"大脑"之一,但大多数教材只有公式和伪代码。这个库把抽象算法变成看得见、改得动的动画:搜到的路径、扩张的节点、躲障碍的轨迹全部实时画出来。一句话价值:它让"算法"从课本走进屏幕,10 分钟建立机器人怎么找路的直觉,还能直接录成教学 GIF。
它是怎么工作的
它的运行逻辑就是机器人运动规划的经典三段式:输入地图与起终点 → 全局规划出一条无碰路径 → 局部控制跟踪这条路径并实时避障。你可以把"全局规划"理解成先看地图定大方向,"局部控制"理解成边走边看、随时修正。库内的玩具物理仿真器让第二段也能跑起来。

输入—处理—输出三段式工作原理(本文自绘,依据官方文档整理,非项目官方图)

PID 轨迹跟踪:机器人沿规划路径行驶的官方演示动图(官方已实现,截自项目 README 素材)
软件清单与成本
• 软件:python-motion-planning(PyPI,当前版本 2.0.1,本文核对)+ matplotlib + numpy
• 电脑:任何能跑 Python 3.6+ 的电脑;3D 演示建议稍好一点的图形环境
• 硬件:不需要!纯软件项目,软件新增费用 0 元(复用已有电脑;官方项目无硬件 BOM,许可证为 GPL-3.0)
• 进阶可选:作者同名 ROS C++ 版 ros_motion_planning(3566★,GPL-3.0),需要 Ubuntu + ROS 环境
• 教学配套:官方在线文档带 Tutorials,CSDN 专栏有中文原理讲解,B 站有 A*/RRT* 系列开源讲解视频
最短复现路线
第 1 步 确认 Python 环境:终端执行 python --version
成功标志:输出版本号 ≥3.6。没有就装 Python 3.10。
第 2 步 一条命令装库:pip install python-motion-planning
成功标志:显示 Successfully installed python-motion-planning-2.0.1。装不上先看排错表。
第 3 步 复制官方教程的完整可运行代码(A* 示例在 tutorials/2d/path_planner/graph_search.md)
成功标志:弹出 matplotlib 窗口,显示栅格地图和 A* 搜出的路径与扩张节点。
第 4 步 换算法对比:把 AStar 换成 Dijkstra、JPS、RRTStar
成功标志:看到不同搜索方式和路径长度;地图障碍物也可以自己改。
第 5 步(进阶) 跑轨迹跟踪:官方 tutorials/2d/controller/path_tracker.md 里的 Pure Pursuit / PID 示例
成功标志:蓝、橙两个小车沿着规划路径移动的动画出现,可以直接录屏当课件。
排错要点
现象:pip install 超时/失败 先判断:网络到 PyPI 不通 → 正确做法:换国内镜像 pip install python-motion-planning -i https://pypi.tuna.tsinghua.edu.cn/simple;不要反复裸连硬等
现象:窗口弹出但全黑/无图 先判断:matplotlib 后端不适配 → 正确做法:换成 TkAgg 后端,或检查系统图形环境;不要以为库装错了
现象:import 报错/没有 AStar 类 先判断:装的是不是新版 → 正确做法:确认 pip list 里是 2.0.1,并按官方文档从 python_motion_planning.path_planner 导入;不要照抄旧版本博客代码
现象:远程服务器上 3D 演示无窗口 先判断:无图形界面 → 正确做法:本地跑,或用 Jupyter notebook 内联显示;不要在无显示环境硬跑 GUI
现象:找不到某算法(如 LPA*、MPC) 先判断:版本差异 → 正确做法:这些在 v1.1.1 中实现、未迁移到 2.0.1,按官方文档列表核对;不要误以为缺失就是 Bug
三个魔改方向
入门(魔改设想):改地图尺寸、障碍物密度和起终点,对比 Dijkstra 与 A* 扩张节点数量,理解"启发式"到底省了多少步。
中级(魔改设想):给 RRT* 加自己的统计指标(路径长度、搜索耗时、树节点数),跑 50 次取平均;或者把结果录成 GIF,做成班级课件动画。
进阶(魔改设想):接作者同名 ROS C++ 版 ros_motion_planning,在 Gazebo 仿真里让 AGV 实跑同一套算法,打通"算法→导航栈→仿真车"全链路。
边界说明
• 这是纯软件库,不含实体机器人硬件;想让它真正动起来,需要接作者提供的 ROS 版或自己配底盘
• 2D 功能最全;3D 目前仅部分路径规划器支持,控制器与轨迹生成器暂无 3D(官方文档核对)
• v1.1.1 中的 D*、LPA*、D* Lite、Informed RRT*、ACO、GA、PSO、LQR、MPC 等尚未全部迁移到 2.0.1,以官方文档列表为准
• GPL-3.0 协议:修改和分发需遵守开源协议,商业使用请先评估合规
• 作者:GitHub 维护者 @ai-winter(杨浩东)与 @omigeft(吴茂嘉),B 站账号 Mr_Winter_ 的算法讲解视频累计播放数万(本文核对)
• 0 元预算仅指软件本体与教学素材;教学使用建议配一台带图形界面的电脑
• 软件项目无实体安全风险,但从公共网络安装依赖存在供应链风险,建议在可信环境安装;教学演示时注意用眼与屏幕时间
官方来源
主仓库(1072★,GPL-3.0):https://github.com/ai-winter/python_motion_planning
在线文档与教程:https://ai-winter.github.io/python_motion_planning/
PyPI 安装包:https://pypi.org/project/python-motion-planning/
ROS C++ 版(3566★):https://github.com/ai-winter/ros_motion_planning
中文原理专栏(CSDN):https://blog.csdn.net/frigidwinter/category_11410243.html
B 站 A* 开源讲解(B级线索,仅作演示入口):https://www.bilibili.com/video/BV1Mz421S766/
成本与当前版算法清单按 2026-08-14 官方仓库、官方文档与 PyPI 核对;正文演示图与动图来自项目仓库素材,并按“官方已实现/本文核对/魔改设想”区分。封面为概念插画,不是项目真实界面。
下一篇你更想看哪个?
选 A:把 ROS 版运动规划在 Gazebo 仿真里跑起来
选 B:用 A* 做一个避障小车课件动画教程
评论区打 A 或 B,我按票数高的先做。