玩MoveIt!的第一步就是需要创建机器人的URDF文件。
什么是URDF? -->https://www.jianshu.com/p/9488b7a5f616
下面以OPENARM机械臂 Victor 5 为例,Solidworks版本2016 64bit:
1. 安装URDF插件
ROS提供了Solidworks插件sw_urdf_exporter,下载后运行sw2urdfSetup.exe进行安装,安装完成后打开Solidworks,在菜单栏选项下拉菜单中找到 插件 点击。
在弹出窗口中拖到下方其他插件中,勾选SW2URDF, 确定。
2. 打开3D模型
打开Victor 5的装配体,如下图。
添加坐标系和转动轴
URDF中需要定义每个连杆的坐标系和关节的转动轴。通过Solidworks 菜单 - 插入 - 参考几何体 - 基准轴/坐标系来添加。
Victor5除去夹爪有4个joint,相应的有5个link。
2.1. 添加基准轴
首先我们给每个joint添加基准轴
- axis0
- axis1
- axis2
- axis3
2.2 添加坐标系
接着添加link原点的坐标系,再添加坐标系时需要选择原点,因此我们先通过 菜单 - 插入 - 参考几何体 - 点 先定义每个link原点的位置,如下图。
- origin0
- origin1
- origin2
- origin3
- origin_gripper
然后我们在这些原点位置添加坐标系。
- coordinate0
- coordinate1
- coordinate2
- coordinate3
- coordinate_gipper
3. 输出URDF
URDF中会定义joint的旋转范围(joint limit), 为了使后面配置参数方便,我们先将机器人模型调整到一个合适的位置:
- Victor5 在初始时默认的位置是当舵机都为90度,我们将模型位置调整到默认位置,这样设置旋转范围就是(-90°,90°)
准备就绪,可以开始生成URDF。
点击 菜单 - 工具 - Files -> Export as URDF (勾选SW2URDF插件后会出现)
左侧会出现配置窗口
对于Victor5,我们需要配置如下的连杆关系:
3.1 base_link
机械臂的底座作为base_link:
- link名称输入 base_link
- 坐标系选择coordinate0
- link components选择相应连杆部件 (选中的会标蓝)
- 子连杆数量输入1
3.2 link1
第一个舵机带动的连杆为link1
- link名称输入 link1
- joint名称输入 joint1
- 坐标系选择coordinate1
- Reference axis 选择 axis0
- 关节类型选择 revolute
- link components选择相应连杆部件 (选中的会标蓝)
- 子连杆数量输入1
3.3 link2
第二个舵机带动的连杆为link2
- link名称输入 link2
- joint名称输入 joint2
- 坐标系选择coordinate2
- Reference axis 选择 axis1
- 关节类型选择 revolute
- link components选择相应连杆部件 (选中的会标蓝)
- 子连杆数量输入1
3.4 link3
第三个舵机带动的连杆为link3
- link名称输入 link3
- joint名称输入 joint3
- 坐标系选择coordinate3
- Reference axis 选择 axis2
- 关节类型选择 revolute
- link components选择相应连杆部件 (选中的会标蓝)
- 子连杆数量输入1
3.5 gripper_link
第四个舵机带动的连杆为gripper_link,这个连杆会安装夹爪
- link名称输入 gripper_link
- joint名称输入 joint_gripper
- 坐标系选择coordinate_gripper
- Reference axis 选择 axis3
- 关节类型选择 revolute
- link components选择相应连杆部件 (选中的会标蓝)
- 子连杆数量输入0
3.6 Preview and Export
点击 Preview and Export ...
这时会弹出对话框配置joint和link的参数,逐个点击查看每个joint和link,基本上可以保持默认参数。另外我们需要设置一下joint的运动范围。
由于我们刚刚已经把位置调整到90°位置,这里我们limit就可以都设置成(-1.57,1.57)。
最后,点击 Finish 生成文件,插件会自动生成一个ROS package,包括可以在rviz中显示模型的launch文件。