OMPL学习--第二篇之Moveit!与OMPL的交互机制

3 篇文章 7 订阅

Moveit! OMPL

1. Moveit!简介

Moveit!是一个机器人相关工具集,它结合了运动规划,操纵,三维感知,运动学,控制和导航的最新进展它提供了一个易于使用的平台,开发先进的机器人应用程序,评估新的机器人设计和建筑集成的机器人产品它广泛应用于工业,商业,研发和其他领域。
move_group是Movelt!的核心节点,节点本身并不具备丰富的功能,主要完成各功能包、插件的集成,为用户提供一组ROS操作和服务。它通过消息和服务的方式接收机器人发布的云点信息、关节状态消息以及TF坐标转换外还需要ROS参数服务器提供机器人的运动学参数,这些运动学参数可根据机器人的URDF模型(SRDF和配置文件)生成。

SRDF:获取机器人模型配置信息,并通过Movelt! Setup Assistant生成。

在这里插入图片描述The move_group node

2. 运动规划实现机制

通过上面的介绍我们可以知道,Moveit!通过插件的形式灵活的调用各种各样的工具,如运动学插件、碰撞检测库、运动规划库等。其中Moveit!默认使用的运动规划库是OMPL。
使用Moveit!为机械臂规划路径时,主要经过以下几个步骤:
Step1:指定机械臂目标位姿;
Step2:通过move_group节点发送运动规划请求给OMPL;
Step3:OMPL求解并生成一个轨迹规划结果作为响应,并通过后处理返回给Moveit!执行规划动作。
在这里插入图片描述
The Motion Planning Pipeline: Motion planners and Plan Request Adapters

–move_group需要将明确的运动规划请求发送给OMPL,可以指定一些约束条件让运动规划去 check。请求包括关节位置约束、姿态约束、可见性约束、关节约束、用户自定义约束等。
规划请求适配器(Plan Request Adapters)能够对规划请求做预处理(pre-processing)、对规划响应做后处理(post-processing)。

  • :预处理可以应对一些如关节起始状态超出关节限制的场景;
  • :说白了,OMPL生成的轨迹就是很多组空间点组成的点序列,这些点是不带时间、速度、加速度信息的,所以这段序列并不能直接发给moveit!,需要经过规划请求适配器进行后处理,将OMPL生成点序列转换为时间参数化的轨迹。

Moveit!提供了一组默认的运动规划适配器,其中每个适配器都具有特定的功能:
FixStartStateBound:修复joint的初始极限
FixWorkspaceBound:设置默认尺寸的工作空间
FixStartStateCollision:如果已有的joint配置文件会导致碰撞,则adapter可以采样新的碰撞配置文件,并且根据jiggle-factor因子修改已有的配置文件
FixStartStatePathConstraint:如果机器人的初始姿态不满足路径约束,则adapter可以找到附近满足约束的姿态作为机器人的初始姿态
AddTimeParameterization(重点掌握):为OMPL生成的点序列添加速度和加速度等信息(按距等分)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值