MoveIt!是ROS中一个重要的集成化开发平台,由一系列功能包组成,提供运动规划、操作控制、3D感知、运动学等功能模块,是ROS社区中使用度排名前三的功能包,目前已经支持AUBO-E5机械臂。
MoveIt!中集成了众多工具集软件,集成了各种库,包括:
运动规划(Motion Planning):MoveIt!只需提供遨博机器人URDF模型,就可以调用几大运动规划库的规划算法(如OMPL,SBPL,CHMOP),自动生成机器人运动轨迹。
轨迹插值(Trajectory Processing):由于大多数规划器只能返回一系列路径点,MoveIt!可以根据机器人的控制参数(速度、加速度限制等)重新处理路径,生成一条带有时间戳、位置、速度、加速度信息的完整轨迹。
操作(Manipulation):根据识别的物体生成一系列动作抓取物体(pick-and-place)目前MoveIt!本身这部分功能还比较弱,不涉及任何反馈、动力学、re-grasp等操作问题。
3D感知(Perception):可以利用传感器采集的点云或深度图像,生成用于碰撞检测的OctoMap,OctoMap为八叉树形式表示点云,可以大大降低存储空间,同时,这些3D OctoMap也可以依据贝叶斯准则不断实时更新。这样,机器人就可以避开真实世界的障碍物了。
运动学(Kinematics):目前可以支持多种运动学求解器,如OpenRave的封闭解ikfast、Orocos的数值解KDL、考虑关节极限的数值解Trac_ik、用户自己定义的基于service的求解器。
碰撞检测(Collision Checking):碰撞检测是运动规划的一大难题,如果采用基于采样的规划算法,那么需要对每个采样点做有效性判断,这时候就需要进行碰撞检测。所以,运动规划需要提供一个**的碰撞检测算法。FCL(Flexible Collision Library),可以非常快速地实现各种几何体(3D面片、OctoMap、基本几何体)的碰撞检测。
控制(Control):属于机器人控制接口,可以让MoveIt!发布机器人需要的控制指令。
交互(Interaction):MoveIt!给开发者提供了三种交互方式,直观的RViz图形界面、快速编程的Python、丰富的高级功能的C++。
MoveIt!中的众多功能都使用插件机制集成,并提供了丰富的接口。这样用户可以方便的覆写插件功能,而无需接触框架的核心。
了解更多遨博机器人
文章来源网络,如有侵权请联系删除- 下一篇:遨博智能线下实训课——遨博机器人
- 上一篇:遨博i5示教器详解——遨博机器人