Matlab – Solidworks 机器人建模(2)如何把CAD文件转化成URDF文件

149
0
2021年1月27日 09时07分

 

前言: 在进行机器人仿真时,建模往往是一项比较繁琐的工作,URDF(Unified Robot Description Format,统一机器人描述格式)作为一个很常用的机器人描述格式,能很方便的让我们进行机器人动力学和运动学仿真。Matlab、ROS、V-rep都支持URDF,这里介绍一种可以直接把solidworks文件转化成URDF格式的方法。

 

1.准备工作

 

1.1 去这里(http://wiki.ros.org/sw_urdf_exporter)下载solidworks to urdf插件安装包,然后直接安装(安装位置随意,装哪里sw都能识别,需要注意的是这个插件面向的是sw2018及更新版本的sw,旧版本可能会用不了,盗版sw也有可能用不了,如果出问题建议重装更新版本的sw)

 

1.2 打开sw,点击工具-插件,在SW2URDF处打勾勾。接着在文件下拉菜单里就会多一个Export as URDF选项(注意:新版本的插件Export as URDF在Tools菜单下面),然后我们就可以愉快的使用了。(也会有安装插件并打勾之后未出来这个选项的情况出现,我就遇到了这种情况,不才,未找到解决方法,重装了sw)

 

2.DH法建立机械臂坐标系

 

2.1 准备机械图纸

 

准备好机械图纸,确定好各个连杆关节之间的关系,没有图纸的在这里(https://download.csdn.net/download/zhelijun/12026565)下载,我这边的机械模型如下:

 

在这里插入图片描述

 

  • 基底和转动台由转动关节1相连
  • 转动台与连杆1由转动关节2相连
  • 连杆1与连杆2由转动关节3相连

 

2.2 确定初始位置

 

确定一个机械臂的初始位置,并把你的机械模型的CAD也调整到初始位置

 

在这里插入图片描述

 

如果你是使用配合来调整的话,为了防止完全定义的装配体影响生成的URDF文件,调整完初始位置记得压缩掉相关配合,给装配体留下相应的自由度,不然系统自动生成的坐标系的位置不正确。

 

2.3 附上坐标轴

 

提取出机械臂的简化模型,并按照DH法附上关节坐标系

 

在这里插入图片描述

 

我这里红色是x轴,蓝色是z轴,绿色是y轴

 

3.把模型转换成URDF格式

 

3.1 生成关节坐标轴和坐标系

 

打开你的机械模型,点击file——File-Export as URDF

注意:新版本的插件Export as URDF在Tools菜单下面

界面左边会出现导出选项(这是我未调整初始位形时截的图,但不影响讲解。这里我们先让系统自动帮我们生成关节轴和坐标系,然后再自行调整,其实更好的做法是我们自己定义好关节主轴,然后再用urdf导出工具选择关节对应的主轴生成urdf)

 

在这里插入图片描述

 

  1. 先点击第一个模块,也就是我们机械模型的基底
  2. 命名 link name 为 base
  3. base为我们固定的世界坐标系提供参考,系统会自动帮我们配置世界坐标系位置
  4. base 连着一个子模块,也就是转动台。于是把child link 数目调至1
  5. 进行下一个link的配置,点击empty,再点击转动台

 

在这里插入图片描述

 

  1. 点击模型里的转动台
  2. 给连杆起名字
  3. 给关节起名字
  4. 参考坐标系,现在我们没有定义坐标系,让系统自动生成,等下自己调整
  5. 参考坐标轴,同上放默认,等下自己调整
  6. 选你的关节类型,我们这里是转动关节,因此选择 revolute
  7. 转动台连着一个子连杆,因此子连杆数目调至1
  8. 再点击 empty 再点击连杆1,以此类推完成所有的配置

 

最后一个link 没有子连杆,因此子连杆数目默认0就可以。 待所有关节和连杆配置完成以后,点击preview and export

 

在这里插入图片描述

 

这时系统会自动根据你的配置来放置坐标轴和坐标系,几秒钟之后弹出窗口:

 

在这里插入图片描述

 

这里可以点击左边窗口的 link 来查看并且修改一些参数,这时我们还不能直接点击next。我们还需要检查并调整刚刚系统自动生成的坐标系和坐标轴。

 

3.2 调整坐标系

 

关掉这个窗口,看我们的模型窗口,我们发现我们的模型多了一些坐标轴和坐标系。

 

在这里插入图片描述

 

仔细查看这几个坐标系

 

  • Origin_global 就是系统定义的全局坐标系
  • Origin_Joint1 ~ Origin_Joint3 就是我们的关节所在的坐标系
  • Axis_joint1~ Axis_joint3 是我们的关节轴

 

仔细观察各个坐标系,我们发现它与我们之前自己根据DH法定义的坐标系不同,因此需要我们做出相关调整。

 

  1. 选中坐标轴
  2. 点击 edit feature 进入坐标系调整页面
  3. 根据情况调整

 

这里不再赘述。

 

3.3 应用调整好的坐标系

 

坐标系调整结束之后,再次点击file——File-Export as URDF,然后重复3.1的步骤,之前配置过的选项都在,只不过Coordinate system 和 axis 需要选择我们刚刚调整过的最终的坐标系和坐标轴。所有关节和link都要配置。

 

在这里插入图片描述

 

配置结束之后继续点击preview,进行最后的参数调整。

 

3.4 最后的参数调整及生成urdf文件

 

在弹出的窗口里是给我们做关节参数调整的。点击左边窗口的各个joint可以查看关节坐标系的位置和方向。我们查看三个关节,发现关节2的旋转正方向不对,这里我们改成 1

 

在这里插入图片描述

 

对于初学者,其他参数我们暂时不管,点击下一步。

 

弹出第二个参数调整,这里是连杆参数的窗口,我们查看各个连杆,发现Inertia那一栏很多超级小的数字来自于量化误差,可以改为0

 

在这里插入图片描述

 

如果最后参数确认无误的话,再点击Export URDF and Meshes…(如果点击左边的Export URDF only的话,系统只会生成urdf文件,在仿真的时候没有mesh文件,因此你不能看到3D仿真图形)

 

选择生成文件的位置,并保存,很快提示你生成成功。我们定位到文件位置,最终生成了下面的这些文件。

 

在这里插入图片描述

 

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

 

4. 可能出现的问题

 

4.1 完全定义了结构报错

 

如果你通过添加配合再压缩来配置初始位置,即便你的模型自由度没有问题,有时插件也会提醒你可能完全定义了结构,导致无法成功导出URDF

 

在这里插入图片描述

 

解决办法:重新装配一下出问题的配合部位即可,但是似乎不能通过配合来配置初始位置了

 

4.2 找不到Export as URDF选项

 

去Tools 菜单下面找找试试看

 

发表评论

后才能评论