OPENARM - Solidworks生成URDF

玩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,在菜单栏选项下拉菜单中找到 插件 点击。

OPENARM - Solidworks生成URDF_第1张图片

在弹出窗口中拖到下方其他插件中,勾选SW2URDF, 确定。

OPENARM - Solidworks生成URDF_第2张图片

2. 打开3D模型

打开Victor 5的装配体,如下图。

OPENARM - Solidworks生成URDF_第3张图片
Solidwork 3D模型

添加坐标系和转动轴

URDF中需要定义每个连杆的坐标系和关节的转动轴。通过Solidworks 菜单 - 插入 - 参考几何体 - 基准轴/坐标系来添加。

OPENARM - Solidworks生成URDF_第4张图片

Victor5除去夹爪有4个joint,相应的有5个link。

2.1. 添加基准轴

首先我们给每个joint添加基准轴

  • axis0
  • axis1
  • axis2
  • axis3
OPENARM - Solidworks生成URDF_第5张图片

2.2 添加坐标系

接着添加link原点的坐标系,再添加坐标系时需要选择原点,因此我们先通过 菜单 - 插入 - 参考几何体 - 点 先定义每个link原点的位置,如下图。

  • origin0
  • origin1
  • origin2
  • origin3
  • origin_gripper
OPENARM - Solidworks生成URDF_第6张图片

然后我们在这些原点位置添加坐标系。

  • coordinate0
  • coordinate1
  • coordinate2
  • coordinate3
  • coordinate_gipper
OPENARM - Solidworks生成URDF_第7张图片

3. 输出URDF

URDF中会定义joint的旋转范围(joint limit), 为了使后面配置参数方便,我们先将机器人模型调整到一个合适的位置:

  • Victor5 在初始时默认的位置是当舵机都为90度,我们将模型位置调整到默认位置,这样设置旋转范围就是(-90°,90°)

准备就绪,可以开始生成URDF。

点击 菜单 - 工具 - Files -> Export as URDF (勾选SW2URDF插件后会出现)

OPENARM - Solidworks生成URDF_第8张图片

左侧会出现配置窗口


OPENARM - Solidworks生成URDF_第9张图片

对于Victor5,我们需要配置如下的连杆关系:


OPENARM - Solidworks生成URDF_第10张图片

3.1 base_link

机械臂的底座作为base_link:

  • link名称输入 base_link
  • 坐标系选择coordinate0
  • link components选择相应连杆部件 (选中的会标蓝)
  • 子连杆数量输入1
OPENARM - Solidworks生成URDF_第11张图片

3.2 link1

第一个舵机带动的连杆为link1

  • link名称输入 link1
  • joint名称输入 joint1
  • 坐标系选择coordinate1
  • Reference axis 选择 axis0
  • 关节类型选择 revolute
  • link components选择相应连杆部件 (选中的会标蓝)
  • 子连杆数量输入1
OPENARM - Solidworks生成URDF_第12张图片

3.3 link2

第二个舵机带动的连杆为link2

  • link名称输入 link2
  • joint名称输入 joint2
  • 坐标系选择coordinate2
  • Reference axis 选择 axis1
  • 关节类型选择 revolute
  • link components选择相应连杆部件 (选中的会标蓝)
  • 子连杆数量输入1
OPENARM - Solidworks生成URDF_第13张图片

3.4 link3

第三个舵机带动的连杆为link3

  • link名称输入 link3
  • joint名称输入 joint3
  • 坐标系选择coordinate3
  • Reference axis 选择 axis2
  • 关节类型选择 revolute
  • link components选择相应连杆部件 (选中的会标蓝)
  • 子连杆数量输入1
OPENARM - Solidworks生成URDF_第14张图片

3.5 gripper_link

第四个舵机带动的连杆为gripper_link,这个连杆会安装夹爪

  • link名称输入 gripper_link
  • joint名称输入 joint_gripper
  • 坐标系选择coordinate_gripper
  • Reference axis 选择 axis3
  • 关节类型选择 revolute
  • link components选择相应连杆部件 (选中的会标蓝)
  • 子连杆数量输入0
OPENARM - Solidworks生成URDF_第15张图片

3.6 Preview and Export

点击 Preview and Export ...

这时会弹出对话框配置joint和link的参数,逐个点击查看每个joint和link,基本上可以保持默认参数。另外我们需要设置一下joint的运动范围。
由于我们刚刚已经把位置调整到90°位置,这里我们limit就可以都设置成(-1.57,1.57)。

OPENARM - Solidworks生成URDF_第16张图片
OPENARM - Solidworks生成URDF_第17张图片

最后,点击 Finish 生成文件,插件会自动生成一个ROS package,包括可以在rviz中显示模型的launch文件。

OPENARM - Solidworks生成URDF_第18张图片

你可能感兴趣的:(OPENARM - Solidworks生成URDF)