当前位置: 首页 > news >正文

0 - 简介与安装 - Python运动规划库教程(Python Motion Planning)

简介

运动规划(Motion planning)是在起点和终点之间无冲突地规划机器人状态序列的过程。

运动规划主要包括路径规划(Path planning)轨迹规划(Trajectory planning)

  • 路径规划(Path Planning):基于路径约束(如障碍物),规划机器人从起点到终点无冲突行驶的最优路径序列。
  • 轨迹规划(Trajectory planning):在已知路径序列的基础上,结合运动学、动力学约束,规划机器人沿全局路径运动的状态。

本仓库提供了常见运动规划算法的Python实现,包括基于 N 维栅格的路径规划算法、用于路径跟踪的控制器、轨迹优化器、支持 2D 和 3D 的可视化工具,以及一个用于测试控制器的简易物理仿真器。

仓库Github地址:https://github.com/ai-winter/python_motion_planning/
仓库文档地址:https://ai-winter.github.io/python_motion_planning/latest/

欢迎 Star, Fork 和 Contribute!

快速开始

概览

源码文件结构如下所示:

python_motion_planning ├─common | ├─env | | ├─map | | ├─robot | | └─world | ├─utils | └─visualizer ├─controller | └─path_tracker ├─path_planner | ├─graph_search | ├─sample_search | └─hybrid_search └─traj_optimizer └─curve_generator

安装

(可选)本代码在 python=3.10 环境下测试通过,其他相近版本理论上也可使用。推荐使用conda安装依赖。

conda create-npmppython=3.10conda activate pmp

安装本仓库,请在终端中运行以下命令:

pipinstallpython-motion-planning

演示

路径规划器

图搜索(Graph Search)

规划器2D 栅格3D 栅格
Dijkstra
GBFS
A*
JPS
Theta*
Lazy Theta*

采样搜索(Sample Search)

规划器2D 栅格3D 栅格
RRT
RRT*
RRT-Connect

混合搜索(Hybrid Search)

规划器2D 栅格3D 栅格
Voronoi Planner

控制器

我们提供了一个带有简单物理仿真的玩具级模拟器,用于测试控制器(路径跟踪器)。该模拟器支持多智能体/多机器人。可用的机器人类型包括CircularRobot(全向移动)和DiffDriveRobot(仅支持前进和后退)。目前仅提供 2D 模拟器,3D 模拟器尚未实现。

在以下演示中,蓝色的机器人 1 为CircularRobot,橙色的机器人 2 为DiffDriveRobot

控制器2D3D
Path Tracker未实现
Pure Pursuit未实现
PID未实现
APF未实现
DWA未实现
RPP未实现

轨迹优化器

曲线生成器

基于路径点
生成器2D3D
Cubic Spline未实现
BSpline未实现
基于位姿点
生成器2D3D
Polynomia未实现
Bezier未实现
Dubins未实现
Reeds-Shepp未实现
http://www.cnnetsun.cn/news/1877518.html

相关文章:

  • 借助爱毕业aibiye的深度学习改写功能,论文中30%以上的重复内容可被智能优化,使最终成果更具学术价值和原创性。
  • 别再自己造轮子了!用这个Vue3+Java开源WMS,30分钟搞定仓库管理系统部署
  • 【狂神说Java】学习笔记Day(09/10)
  • 【openclaw实用Skill】songsee 技能
  • 【daft框架】和ray分布式计算的结合运行自定义函数
  • 【青少年CTF S1·2026 公益赛】时间胶囊留言板
  • 属性图:节点、边与属性的图模型
  • 【CTF | pwn篇】从ctfshow入门到进阶:栈溢出实战技巧全解析
  • TexLive极简安装法:5分钟搞定基础版+中英文支持(附磁盘空间不足解决方案)
  • 从理论到硅片:二值化CNN在FPGA上的高效部署实践
  • Spring AI Alibaba 1.1
  • c++读取整个文件到字符串方法 c++如何一次性读取文件
  • ESOP软硬件方案为3C产线提供全方位防错保障
  • AEB标配率接近8成!强规临近,存量红利在哪
  • devops系列(一) Nginx 反向代理与负载均衡:一台服务器扛不住怎么办
  • MCP与Agent协同的智能体架构设计
  • 代码随想录算法训练营第七天补卡| leetcode144\145\94 二叉树的左右中序遍历
  • ViPER4Windows音频补丁工具:Windows 10/11系统兼容性问题终极解决方案
  • 深度解析ImageNet分类任务中的卷积神经网络架构优化策略
  • 【数据结构与算法】第43篇:Trie树(前缀树/字典树)
  • 通义千问3-4B真实体验:本地部署生成测试用例,效率提升实测
  • 压力测试下的心态管理:当线上告警电话响起时
  • 别再瞎测了!手把手教你用泰克/安捷伦示波器搞定USB2.0信号质量(Device/Hub模式实战)
  • 从HTTP到K8s探针:彻底搞懂HTTPGet健康检查
  • 全网最全:零基础学深度学习需要学哪些框架?PyTorch 和 TensorFlow 选哪个?
  • 告别手写脚本!用Frida-Trace自动Hook Android App的Java方法(附实战Demo)
  • ToClaw真的能让AI Agent落地吗?先看清它的代价与边界
  • Python语言的12个基础知识点小结
  • 基于STM32的智能家居安防系统设计与实现
  • LangChain4j 1.0.0-beta2踩坑记:从社区版DashScope依赖到SpringBoot自动配置的完整避坑指南