下载sw_urdf_exporter插件
下载后直接运行sw2urdfSetup.exe,将文件安装在SOLIDWORKS安装路径下
进入SOLIDWORKS打开要转换的三维模型,点击设置旁边的下三角,点击插件。
弹出插件对话框,划到对话框最底部,如上图所示即表示插件成功安装并运行,如果打开图中标的插件没勾选上勾选即可。
通过图示的工具创建参考点、坐标系以及旋转轴。坐标系方向要和ROS中坐标系方向对应,轴要与坐标系重合。我的图是STP格式的,后面加的两个轮子有一个转动自由度,转换时选择好各个link的实体,铰点类型和坐标系会根据模型默认生成。最好还是自己设置一下,靠谱。
依次点击“工具—Tools—Export as URDF”,进入到配置界面。
第一个link默认是base_link,这里不用改;2是base_link的坐标系,点击选择提前创建的坐标系;3是选择属于base_link的实体被选中的实体会变成蓝色,再次点击蓝色的实体可以取消选择;4是选择base_link的子link个数,底盘下有6个轮子,这里就加到6;5中会呈现各个link间的关系树。
点击上图中标记5关系树中link名称,可以进入到如下的子link配置。
标记1、2是命名;3是坐标系选择,4是轴选择,5是连接类型的选择,6是link实体的选择,7显示当前在编辑的link和link关系树。其他的配置类似。
配置完所有link后,点击“Preview and Export”选项
检查参数无误后点击next
点击“Export URDF and Meshes”。选择路径对导出文件进行保存。
最终会生成ROS的一个功能包,文件命名时注意ROS中功能包的命名格式要求。
将SOLIDWORK生成的文件直接复制到自己的ros工作空间的src目录下,进行编译
编译后运行:
roslaunch agv_model display.launch
agv_model是导出时命名的文件名即功能包的名字。
第一次运行时可能会出现这样的警告或错误(我第一次是报错,第二次是警告):
[ WARN] [1640595919.252928445]: The root link base_link has an inertia specified in the URDF, but KDL does not support a root link with an inertia. As a workaround, you can add an extra dummy link to your URDF.
在~/“工作空间”/src/agv_model/urdf下的.urdf文件中加入下面几行代码就可以消除警告或错误。