0898-08980898
本文摘要:本文作者qqfly,上海交通大学机器人所博士生,本科毕业于清华大学机械工程系,主要研究方向机器视觉与运动规划,本文亮相作者微信公众号:Nao(ID:qRobotics),本站已获得许可。
本文作者qqfly,上海交通大学机器人所博士生,本科毕业于清华大学机械工程系,主要研究方向机器视觉与运动规划,本文亮相作者微信公众号:Nao(ID:qRobotics),本站已获得许可。两个月前(机器人操作系统ROS | 概述篇)给自己凿了个坑,说道要写写MoveIt,但仍然没有动手。主要有两个原因:1)这两个月主要在写出小论文,却是博士生要毕业还得看论文,无法靠公众号读者量共享亲率;2)必要谈MoveIt或许必须凿更加多坑,仍然没有想好怎么写出较为好。
主要是因为机器人运动规划牵涉到过于多基础内容,如果跳过不谈就不会变为新的坑;一时半会又不了看完。所以,这次就从初学者如何利用MoveIt较慢搭起机器人运动规划平台来讲吧,再行展出Big Picture,其他细节内容以后有空再行渐渐堆。但可能会坑的地方我会用(坑)标示出来。MoveIt是什么再行看个视频讲解吧:看完了视频,大家应当对MoveIt有一个大约的印象了。
用MoveIt官网(moveit.ros.org)的众说纷纭:它是目前最先进设备的移动(坑)操作者机器人软件,统合了最先进设备的运动规划、操作者、3D感官、运动学、掌控与导航系统算法。为这方面的开发人员获取了一个十分便捷的研发平台。这个众说纷纭不过于直观,换回个众说纷纭就是MoveIt = RobotGo,翻译成中文就是“机器人,回头你!”所以,MoveIt的主要就是一款致力于让机器人需要自主运动及其涉及技术的软件,它的所有模块都是环绕着运动规划的构建而设计的。
下面大约讲解下它的一些功能模块。*运动规划(Motion Planning):运动规划的讲解内容之前公众号早已上过了,要让一个机器人构建运动规划,必须再行将机器人抽象化到构形空间(C-Space)。
MoveIt就可以老大大家把这些工作给做到了,只需获取机器人URDF模型,就可以调用几大运动规划库(坑)的规划算法(如OMPL,SBPL,CHMOP),自动分解机器人运动轨迹。*操作者(Manipulation):这个目前还较为很弱,就是根据辨识的物体分解一系列动作捕捉物体(pick-and-place),不牵涉到任何对系统、动力学、re-grasp等操作者问题,所以我一般都不必这个模块。
*3D感官(Perception):这个并不是说道MoveIt统合了物体辨识、环境建模等模块,而是它可以利用传感器(坑)收集的信息(点云或深度图像)分解用作碰撞检测的OctoMap。OctoMap这个东西挺好的,做到SLAM的同学应当理解,它就是以八叉树形式回应点云,可以大大降低存储空间,它看上去就跟你们玩游戏的minecraft差不多。同时,这些3D OctoMap也可以依据贝叶斯准则大大动态改版。
这样,机器人就可以避免真实世界的障碍物了。*运动学(Kinematics):运动学机器人工作空间与构形空间(C-Space)的同构关系,所以MoveIt就它也还包括在自己系统内。目前它可以反对多种运动学解法器,如OpenRave的ikfast(堵塞解法)、Orocos的KDL(数值解法)、Trac_ik(考虑到关节无限大的数值解法)、基于service的解法器(用户自己定义)。
(坑)*碰撞检测(Collision Checking):碰撞检测是运动规划的众多难题,如果使用基于使用的规划算法,那么我们必须对每个取样点做到有效性辨别,这时候就必须展开碰撞检测。所以,运动规划必须获取一个高效的碰撞检测算法。幸而,香港城市大学的潘佳大神写出了个FCL(Flexible Collision Library),可以十分较慢地构建各种几何体(3D面片、OctoMap、基本几何体)的碰撞检测。
(这个不是坑,必要用很好用,但以后有机会可以只想说道说道,当真潘大神会看朋友圈,不至于班门弄斧)。
本文来源:OD体育-www.hnzj2021.com