运动规划 (Motion Planning)

1运动规划 (Motion Planning)

我们这里讲的运动规划,有别于轨迹规划 (Path Planning)。一般来说,path planning用于无人车/无人机领域,而motion planning主要用于机械臂,类人机器人领域。当然了,这两者没有本质的区别,理论上说MoveIt!和OMPL同样可以用于无人车无人机的规划,但不免有些杀鸡用牛刀的感觉。两者规划的空间维度不同,导致他们的难易程度不同。举例说明,如果不考虑速度加速度,只考虑位置的话,无人车轨迹规划维度是3 (x,y,和角度), 无人机是6 (x,y,z,和另外3个量确定空间的旋转角度)。确定3D空间的一个姿势(pose)需要6个变量,而对于关节数大于6的机械臂结构,它的规划空间维度就大于6,成为冗余系统(redundant system),从而使规划问题变得更为复杂。所谓冗余系统,就是说,存在多种关节角度配置能够使得终端达到相同的位姿,存在无数的解。这是达到的最终姿势有无数个解,那么如何到达这个最终姿势,整个运动的轨迹,更是存在无数个解。


既然存在无数的解,那么问题来了。很明显,存在两种不同的方向,一种是找到最好的那个解,另一种是快速的找到一个有效的解。前者,大部分算法使用最优规划 (Optimization-based Planning),后者使用采样规划 (Sampling-based Planning)。具体的区别和算法,不在这里赘述。

2 开源运动规划库 (OMPL)

接上文,而OMPL (Open Motion Planning Library), 开源运动规划库,就是一个运动规划的C++库,其包含了很多运动规划领域的前沿算法。虽然OMPL里面提到了最优规划,但总体来说OMPL还是一个采样规划算法库。而采样规划算法中,最出名的莫过于 Rapidly-exploring Random Trees (RRT) 和 Probabilistic Roadmap (PRM)了, 当然,这两个是比较老的,还有很多其他新算法。

3. 逆运动学 (Inverse Kinematics)

  • 什么是逆运动学(IK)?简单说,就是把终端位姿变成关节角度,q=IK(p)。p是终端位姿(xyz),q是关节角度。
  • 为什么要用IK?OMPL是采样算法,也就是要在关节空间采样。 这与无人车的规划有一个最明显的区别,无人车的目标就是在采样空间, e.g. 目标是(x,y), 采样空间也是(x,y). 但是对于机械臂,目标是终端空间位置(xyz), 但采样空间却是关节空间(q0,q1,...qN)。有了IK之后,我们就可以把三维空间的目标p转化为关节空间的目标q。那么这样就会让采样算法能算的更快,具体方法不赘述,这样的算法有RRT-Connect,BKPIECE等等双向采样算法。

4. MoveIt!


问:我不想看也看不懂OMPL和各种算法,但是我想让机械臂动起来,怎么办?
答:那这正是MoveIt!的设计初衷。Move It!让它动起来!
OMPL是运动规划的“规划”部分,而MoveIt!是OMPL的ROS接口。当然这不完全准确,OMPL有单独的ROS接口,但依旧很繁杂,而MoveIt是OMPL ROS接口的接口。。。而且MoveIt!还结合了其他一些功能,总之MoveIt!就是个大接口。。

  • MoveIt!能做什么?一句话,MoveIt!就是一个模块化的接口,让你在最短时间内,不用自己写太多代码,就能配置出一个ROS Package来为你的机械臂做运动规划。
<think>好的,用户想了解Autoware中关于运动规划motion planning)的文档和教程。首先,我需要确认Autoware的官方资源,尤其是他们的文档网站。Autoware通常将文档托管在GitHub Pages或专门的文档平台上,比如autowarefoundation.github.io。 接下来,我应该考虑用户可能需要的关键部分:运动规划模块的概述、配置方法、API使用示例以及实际教程。Autoware中的运动规划可能涉及全局路径规划和局部轨迹规划,比如使用A*或RRT算法进行全局规划,以及使用MPC或基于样条的规划进行局部避障。 另外,用户可能需要具体的代码示例或ROS节点的配置方法。例如,如何设置路径规划的参数文件,或者如何通过ROS话题发布目标点。同时,Autoware可能有现成的教程,比如在GitHub的wiki页面或官方培训材料中,这些需要被引用。 还要注意区分不同版本的Autoware,比如Autoware.AI和Autoware.Universe,它们的文档结构可能不同。用户如果没有指定版本,可能需要提供通用信息或分别说明。 最后,需要检查是否有社区贡献的教程,比如博客文章或视频教程,这些可以作为补充资源推荐给用户。同时提醒用户参考官方文档以确保信息的准确性,并注意版本兼容性。</think>关于Autoware中运动规划Motion Planning)的文档和教程,以下是关键信息汇总: ### 1. 官方文档资源 - **核心架构**:Autoware的运动规划模块采用分层架构,包含全局路径规划(Global Planner)和局部轨迹规划(Local Planner)两个层级[^1]。 - **功能说明**:全局规划使用$A^*$或$RRT^*$算法生成粗粒度路径,局部规划通过动态窗口法(DWA)或模型预测控制(MPC)实现实时避障[^2]。 $$ \min_{u} \int_{t_0}^{t_f} \| \dot{x} - f(x,u) \|^2 dt \quad \text{(MPC优化目标)} $$ ### 2. 配置指南 - **参数文件**:在`planning.yaml`中设置规划参数,包括最大加速度($a_{max}$)、曲率约束($\kappa_{max}$)等动力学限制[^3] - **ROS接口**: ```bash rostopic pub /planning_goal geometry_msgs/PoseStamped ... ``` ### 3. 实践教程 - **仿真测试**:建议通过LGSVL或CARLA模拟器验证规划算法,需加载高精度地图(HD Map)作为输入[^4] - **真实车辆部署**:需校准定位系统(如GNSS+IMU)与规划模块的时间同步,误差应小于$100ms$[^5]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值