3.3.2 Move_group节点编译
MoveIt !中的设置助手(Setup Assistant)可以简化设计编译工作,帮助使用者配置机器人,从而完成move_group节点的编译,能够协助完成以下几个方面任务:
(1) URDF转化为SRDF:使用机器人的URDF文件创建增强的语义机器人描述文件(SRDF,定义移动组,末端执行器和自我干涉碰撞信息等。
(2)完成其他配置文件的生成,这些文件用于指定机器人的运动学解算器、关节控制器、关节限制、运动规划对象以及传感器等。这些文件将会存放在生成的config文件夹中。
(3为关键的运动规划和运动控制模块创建启动文件,包括碰撞检查、运动规划、移动组节点、关节轨迹控制管理器等。
使用码垛机器人的URDF文件,通过运行MoveIt!设置助手,完成码垛机器人的坐标、移动组、虚拟关节、以及预设姿态等配置,生成相关运动控制文件。首先运行设置助手,它提供了友好的交互界面,其显示如图3-11所示。
(1)加载机器人URDF模型。载入机器人的URDF文件,完成后,在软件界面的右侧可以看见码垛机器人的图像,如图3-12所示,并且可以像在RViz中对机器人模型进行旋转、移动以及缩放等。
(2)创建碰撞免检矩阵。碰撞矩阵列出了所有不能相互碰撞的杆件,例如,由于运动关系约束,机器人手腕不能与基座产生碰撞。当涉及到机器人运动规划的时候,不检查这些连接对于碰撞的影响,节省CPU运行时间,提高检测效率。
(3)添加虚拟关节。虚拟关节主要用于机器人与世界坐标系的连接,在这里将机器人的base_ link基座固定到一个世界坐标系base_ odour上,代表机器人相对于世界是固定的,如图3-13所示。
(4)添加机器人规划组。规划组用来描述码垛机器人不同的语义部分,例如机械臂部分、抓手部分等。给每个规划组分别命名并且暂时选择一种运动学解析器,选择对应的串行运动链或该规划组所包含的所有连杆、关节信息完成规划组的创建。这里,针对码垛机器人完成了机器人本体结构的规划组以及抓手结构的规划组,如图3-14所示,为后面使用控制命令对规划组的控制奠定基础。
(5)定义机器人的预设姿态。通过定义机器人的几个姿态,可以方便后续的工作。例如,机器人的初始状态resting,由于ROS的机器人运动规划默认在机器人当前状态进行,设置初始状态作为每次运动的起始参考点;定义某种运动姿态,
可以方便测试机器人是否控制正常。如图3-15所示是码垛机器人的定义的两种运动状态。
(6)生成配置文件。最后一步是生成ROS包中码垛机器人所有的配置文件。完成后在交互界面上将可以看到“成功生成配置文件包”,然后退出设置助手。
通过以上操作过程,设置助手将码垛机器人结构构型、末端操作手、给定姿态等配置保存在SRDF文件中,该文件使用用来描述运动规划组的杆件、关节、组成链等组成部分,使用存储给定机器人的resting以及testing姿态,使用来描述机器人的末端操作手以及与其相连接的机器人末端杆件,使用来描述为该机器人设置的虚拟关节,以及使用来描述机器人的碰撞免检矩阵。