前言: 在进行机器人仿真时,建模往往是一项比较繁琐的工作,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)
- 先点击第一个模块,也就是我们机械模型的基底
- 命名 link name 为 base
- base为我们固定的世界坐标系提供参考,系统会自动帮我们配置世界坐标系位置
- base 连着一个子模块,也就是转动台。于是把child link 数目调至1
- 进行下一个link的配置,点击empty,再点击转动台
- 点击模型里的转动台
- 给连杆起名字
- 给关节起名字
- 参考坐标系,现在我们没有定义坐标系,让系统自动生成,等下自己调整
- 参考坐标轴,同上放默认,等下自己调整
- 选你的关节类型,我们这里是转动关节,因此选择 revolute
- 转动台连着一个子连杆,因此子连杆数目调至1
- 再点击 empty 再点击连杆1,以此类推完成所有的配置
最后一个link 没有子连杆,因此子连杆数目默认0就可以。 待所有关节和连杆配置完成以后,点击preview and export
这时系统会自动根据你的配置来放置坐标轴和坐标系,几秒钟之后弹出窗口:
这里可以点击左边窗口的 link 来查看并且修改一些参数,这时我们还不能直接点击next。我们还需要检查并调整刚刚系统自动生成的坐标系和坐标轴。
3.2 调整坐标系
关掉这个窗口,看我们的模型窗口,我们发现我们的模型多了一些坐标轴和坐标系。
仔细查看这几个坐标系
- Origin_global 就是系统定义的全局坐标系
- Origin_Joint1 ~ Origin_Joint3 就是我们的关节所在的坐标系
- Axis_joint1~ Axis_joint3 是我们的关节轴
仔细观察各个坐标系,我们发现它与我们之前自己根据DH法定义的坐标系不同,因此需要我们做出相关调整。
- 选中坐标轴
- 点击 edit feature 进入坐标系调整页面
- 根据情况调整
这里不再赘述。
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 菜单下面找找试试看