Matlab - Solidworks 机器人模型联合仿真(2)如何把CAD文件转化成URDF文件

前沿: 在进行机器人仿真时建模往往是一项比较繁琐的工作,URDF(Unified Robot Description Format,统一机器人描述格式)作为一个很常用的机器人描述格式,能很方便的让我们进行机器人动力学和运动学仿真。Matlab、ROS、V-rep都支持URDF,这里介绍一种可以直接把sw文件转化成URDF格式的方法。
1.准备工作 1.1 去这里下载solidworks to urdf插件安装包,然后直接安装(安装位置随意,装哪里sw都能识别,需要注意的是这个插件面向的是sw2018及更新版本的sw,旧版本可能会用不了,盗版sw也有可能用不了,如果出问题建议重装更新版本的sw)
【Matlab - Solidworks 机器人模型联合仿真(2)如何把CAD文件转化成URDF文件】1.2 打开sw,点击工具-插件,在SW2URDF处打勾勾。接着在文件下拉菜单里就会多一个Export as URDF选项,然后我们就可以愉快的使用了。(也会有安装插件并打勾之后未出来这个选项的情况出现,我就遇到了这种情况,不才,未找到解决方法,重装了sw)
2.DH法建立机械臂坐标系 2.1 准备机械图纸
准备好机械图纸,确定好各个连杆关节之间的关系,没有图纸的在这里下载,我这边的机械模型如下:
Matlab - Solidworks 机器人模型联合仿真(2)如何把CAD文件转化成URDF文件
文章图片

  • 基底和转动台由转动关节1相连
  • 转动台与连杆1由转动关节2相连
  • 连杆1与连杆2由转动关节3相连
2.2 确定初始位置
确定一个机械臂的初始位置,并把你的机械模型的CAD也调整到初始位置
Matlab - Solidworks 机器人模型联合仿真(2)如何把CAD文件转化成URDF文件
文章图片

如果你是使用配合来调整的话,为了防止完全定义的装配体影响生成的URDF文件,调整完初始位置记得压缩掉相关配合,给装配体留下相应的自由度,不然系统自动生成的坐标系的位置不正确。
2.3 附上坐标轴
提取出机械臂的简化模型,并按照DH法附上关节坐标系
Matlab - Solidworks 机器人模型联合仿真(2)如何把CAD文件转化成URDF文件
文章图片

我这里红色是x轴,蓝色是z轴,绿色是y轴
3.把模型转换成URDF格式 3.1 生成关节坐标轴和坐标系
打开你的机械模型,点击file——File-Export as URDF
界面左边会出现导出选项(这是我未调整初始位形时截的图,但不影响讲解。这里我们先让系统自动帮我们生成关节轴和坐标系,然后再自行调整,其实更好的做法是我们自己定义好关节主轴,然后再用urdf导出工具选择关节对应的主轴生成urdf)
Matlab - Solidworks 机器人模型联合仿真(2)如何把CAD文件转化成URDF文件
文章图片

  1. 先点击第一个模块,也就是我们机械模型的基底
  2. 命名 link name 为 base
  3. base为我们固定的世界坐标系提供参考,系统会自动帮我们配置世界坐标系位置
  4. base 连着一个子模块,也就是转动台。于是把child link 数目调至1
  5. 进行下一个link的配置,点击empty,再点击转动台
    Matlab - Solidworks 机器人模型联合仿真(2)如何把CAD文件转化成URDF文件
    文章图片
  6. 点击模型里的转动台
  7. 给连杆起名字
  8. 给关节起名字
  9. 参考坐标系,现在我们没有定义坐标系,让系统自动生成,等下自己调整
  10. 参考坐标轴,同上放默认,等下自己调整
  11. 选你的关节类型,我们这里是转动关节,因此选择 revolute
  12. 转动台连着一个子连杆,因此子连杆数目调至1
  13. 再点击 empty 再点击连杆1,以此类推完成所有的配置
最后一个link 没有子连杆,因此子连杆数目默认0就可以。 待所有关节和连杆配置完成以后,点击preview and export
Matlab - Solidworks 机器人模型联合仿真(2)如何把CAD文件转化成URDF文件
文章图片

这时系统会自动根据你的配置来放置坐标轴和坐标系,几秒钟之后弹出窗口:
Matlab - Solidworks 机器人模型联合仿真(2)如何把CAD文件转化成URDF文件
文章图片

这里可以点击左边窗口的 link 来查看并且修改一些参数,这时我们还不能直接点击next。我们还需要检查并调整刚刚系统自动生成的坐标系和坐标轴。
3.2 调整坐标系
关掉这个窗口,看我们的模型窗口,我们发现我们的模型多了一些坐标轴和坐标系。
Matlab - Solidworks 机器人模型联合仿真(2)如何把CAD文件转化成URDF文件
文章图片

仔细查看这几个坐标系
  • Origin_global 就是系统定义的全局坐标系
  • Origin_global1 ~ Origin_global3 就是我们的关节所在的坐标系
  • Axis_joint1~ Axis_joint3 是我们的关节轴
仔细观察各个坐标系,我们发现它与我们之前自己根据DH法定义的坐标系不同,因此需要我们做出相关调整。
  1. 选中坐标轴
  2. 点击 edit feature 进入坐标系调整页面
  3. 根据情况调整
这里不再赘述。
3.3 应用调整好的坐标系
坐标系调整结束之后,再次点击file——File-Export as URDF,然后重复3.1的步骤,只不过Coordinate system 和 axis 需要选择我们刚刚调整过的最终的坐标系和坐标轴。所有关节和link都要配置。
Matlab - Solidworks 机器人模型联合仿真(2)如何把CAD文件转化成URDF文件
文章图片

配置结束之后继续点击preview,进行最后的参数调整。
3.4 最后的参数调整及生成urdf文件
在弹出的窗口里是给我们做关节参数调整的。点击左边窗口的各个joint可以查看关节坐标系的位置和方向。我们查看三个关节,发现关节2的旋转正方向不对,这里我们改成 1
Matlab - Solidworks 机器人模型联合仿真(2)如何把CAD文件转化成URDF文件
文章图片

初学者,其他参数我们暂时不管,点击下一步。
弹出第二个参数调整,这里是连杆参数的窗口,我们查看各个连杆,发现Inertia那一栏很多超级小的数字,可以改为0Matlab - Solidworks 机器人模型联合仿真(2)如何把CAD文件转化成URDF文件
文章图片

如果最后参数确认无误的话,再点击Export URDF and Meshes…(如果点击左边的Export URDF only的话,系统只会生成urdf文件,在仿真的时候没有mesh文件,因此你不能看到3D仿真图形)
选择生成文件的位置,并保存,很快提示你生成成功。我们定位到文件位置,最终生成了下面的这些文件。
Matlab - Solidworks 机器人模型联合仿真(2)如何把CAD文件转化成URDF文件
文章图片

大功告成,下一篇讲解如何把 urdf 导入到 matlab 进行仿真

    推荐阅读