Moveit更换默认规划器KDL为TraceIk

大家好,我是默默无闻小小鱼,最近有很多小伙伴关注了小鱼,感谢下大家的关注~
感谢
今天说说如何给moveit更换默认的运动规划求解器,主要是将默认的KDL更换成Trac-Ik。

1.KDL介绍

Kinematics and Dynamics Library (KDL)是MoveIt!中的默认运动学求解器。

官方介绍:https://www.orocos.org/kdl.html
具有六个旋转关节的串行机器人手臂的骨架。这是运动学结构的一个示例,将运动建模和规范简化为参考系相对运动的几何问题。运动学和动力学库 (KDL) 开发了一个独立于应用程序的框架,用于运动学链的建模和计算,例如机器人、生物力学人体模型、计算机动画人物、机床等。它提供了几何对象(点、框架)的类库, line,… ),各种系列的运动链(串行、人形、并行、移动、…),以及它们的运动规范和插值。

KDL
KDL是基于数值解,求解速度慢,在使用的个过程中,经常会提示规划失败、求解失败,所以我们要更换其他的求解器

2.Trac-IK

Trac-IK提供替代 KDL 中流行的反向雅可比方法的反向运动学求解器。具体来说,KDL 的收敛算法基于牛顿方法,在存在关节限制的情况下效果不佳。

一句话:基于KDL做了优化,本质还是数值解。

TRAC-IK 同时运行两个 IK 实现。一种是对 KDL 基于牛顿的收敛算法的简单扩展,该算法通过随机跳跃检测和减轻由于联合限制引起的局部最小值。第二种是 SQP(顺序二次规划)非线性优化方法,它使用更好地处理关节限制的拟牛顿方法。默认情况下,当这些算法中的任何一个收敛到答案时,IK 搜索会立即返回。

官方仓库:https://bitbucket.org/traclabs/trac_ik/src/HEAD/

来一章对比图
不同算法求解率和求解速度

3.Trac-IK安装配置

3.1 安装
  • ubuntu20
sudo apt-get install ros-noetic-trac-ik
  • ubuntu18
sudo apt-get install ros-melodic-trac-ik

3.2 配置

修改moveit生成的功能包中config目录下的kinematics.yaml文件内容。

替换 kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin (或类似)为 kinematics_solver: trac_ik_kinematics_plugin/TRAC_IKKinematicsPlugin

其他参数:

  • kinematics_solver_timeout(以秒为单位的超时,例如 0.005)
  • position_only_ik ARE
  • solve_type可以是 Speed、Distance、Manipulation1、Manipulation2默认为Speed

不需要的参数

  • kinematics_solver_attempts参数:与 KDL 不同,TRAC-IK 求解器在卡住时已经自动分重新启动
  • kinematics_solver_search_resolution 也不适用

完成修改后重新运行demo.launch即可,在启动日志中若看到Trae-IK则更换成功

4.总结

除了Trac-IK,还有IKFAST可以使用,但配置过程相对复杂,小鱼后面探索总结下,看看能不能做一个脚本,帮助大家轻松完成安装和配置。

今天就到这里~

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值