上一篇我们通过Moveit!设置助手获取了Moveit!配置包,在配置包的config文件夹中有在演示模式里测试机械臂导航的所有配置文件。
目录
1.1 <robot>
1.2 <group>
1.3 <group_state>
1.4 <end effector>
1.5 <disable_collisions>
SRDF文件
命名方式为<your robot>.srdf,例如上篇所导出的配置包内,srdf文件的文件名为seven_dof_arm.srdf。
srdf文件全称'Semantic Robot Description Format',机器人语义描述格式。与urdf不同,但是在大多数的使用情况下更实用,它包含了语义信息的成分。
srdf是一个纯文本的文件,可以通过文本编辑器查阅。srdf文件包含的标签很多,几个关键的标签定义如下:
1.1 <robot>
整个文档的根标签,所有的信息都包含在这个标签下。
<robot name="seven_dof_arm">
1.2 <group>
对应一个规划组,呈现了组里的关节,连杆等。
上篇中的机械臂被分为了两个规划组,‘arm'和'gripper'。
机械臂‘arm’部分:
<group name="arm">
<chain base_link="base_link" tip_link="grasping_frame" />
</group>
夹持器‘gripper'部分:
<group name="gripper">
<link name="gripper_finger_link1" />
<link name="gripper_finger_link2" />
<joint name="finger_joint1" />
<joint name="finger_joint2" />
</group>
对比上篇在配置助手中对规划组的设置,可以看出是完全一致的。
1.3 <group_state>
预设位姿信息。在上篇中我随意设置了一个命名为'a'的位姿,在这个标签下可以查看到具体的关节角度信息。
<group_state name="a" group="arm">
<joint name="elbow_pitch_joint" value="1.3778" />
<joint name="elbow_roll_joint" value="-0.0786" />
<joint name="gripper_roll_joint" value="-0.267" />
<joint name="shoulder_pan_joint" value="0.3035" />
<joint name="shoulder_pitch_joint" value="-0.0852" />
<joint name="wrist_pitch_joint" value="-1.3138" />
<joint name="wrist_roll_joint" value="-0.0319" />
</group_state>
1.4 <end effector>
标明了末端执行器的规划组及其父级连杆。
<end_effector name="robot_eef" parent_link="grasping_frame" group="gripper" parent_group="arm" />
1.5 <disable_collisions>
存储了在经过碰撞检测后的结果。