我的机械网

搜索
查看: 2946|回复: 22

怎么把Proe画出来的3D模型转换成URDF文件格式?

[复制链接]

0

主题

0

回帖

-1

积分

限制会员

积分
-1
发表于 2017-3-5 16:42:02 | |阅读模式
各位网友请注意:我的机械网所有附件、百度网盘提取码、机械资料、PDF资料、压缩包文件均需要回帖后才能下载!
想把Proe画出来的模型放到gazebo中仿真,但是需要一个urdf文件,我查到solidworks可以转成urdf的格式,可是Proe画的模型在solidworks上不兼容,不知到怎么办才好,请大神们帮帮忙。

0

主题

0

回帖

0

积分

小白会员

Rank: 1

积分
0
发表于 2017-3-5 17:42:14 |
42收藏,31赞,大家都不随手点赞的么~
============
接着上周微信公众号的内容讲,正好填个坑。
首先,URDF(Unified Robot Description Format)是ROS中使用的一种机器人描述文件,它以HTML的形式定义一个机器人。包含的内容有:连杆、关节名称,运动学参数、动力学参数、可视化模型、碰撞检测模型等。
那么,如何建立URDF文件呢?
一)初级篇
ROS目前提供了SolidWorks转URDF的插件,叫做sw_urdf_exporter。
当然,你的源文件现在在Pro-E中,这个问题不大,可以用IGS或者STEP等格式转换成SolidWorks可以打开的格式(装配体的相对位置还在,但装配关系会丢掉)。之后就可以继续操作了。
这个真的简单易用,你安装好SolidWorks后,再安装这个插件,重新打开SW,你就会发现里面多了一个叫做SW2URDF的插件。勾选启用之。
如上图操作之后就可以进入这个插件的界面:
如上图所示,你可以设置每个连杆、关节名称、对应的模型文件、属性、旋转轴、参考坐标系(可以采用自己预先定义的坐标系,也可以自动生成)等。
当你设置好所有连杆后,点击Preview and Export,便会自动生成各坐标轴(如果没有自己预先指定的话)
之后会弹出让你具体设置连杆与关节参数的界面:
结束之后,便会生成一个package,包含launch文件,每个连杆STL文件,URDF文件,纹理(没用过)。
这个package是可以直接在ROS中运行的。效果如图:
(我好像少设置了一个关节)

二)进阶篇/强迫症篇
上面初级篇可能存在几个问题:

  • 模型无纹理(只能指定整个零件颜色,零件无纹理)
  • 在双臂机器人(树状结构)上经常出错
  • 不能用于并机器人(闭链结构)
  • 可视化模型与碰撞模型相同
  • 容易引入不必要的误差(参数完全不符合设计参数,pi的引入等)
所以,进阶篇简单说说怎么自己写一个一看就很厉害的URDF。
首先,要了解URDF文件的书写格式:
以上几个是我平时会用到的URDF内容。其实很简单,只需要按照html的tag来写每部分的内容即可。包括相应模型文件的位置等。

之后就可以开始动手写了。这个难度不大,我就直接说如何解决上面提到的几个问题吧:

  • 模型无纹理(只能指定整个零件颜色,零件无纹理)
ROS的URDF目前只支持两种格式的模型文件,STL与DAE。我们都知道,STL文件只记录了文件的三维坐标信息,没有纹理信息。DAE则是另一种xml格式的模型文件,可以包含文件的纹理等信息。所以我们的关注点就在于如何从SolidWorks等3D建模软件中导出纹理的dae文件。
我尝试过无数种方法后,最终确定的一条有效方法如下:


  • 在双臂机器人(树状结构)上经常出错
自己写就好了,但是对于多臂机器人,如果每条臂构型一样的话,可以考虑采用xacro格式来写,这样可以大大减少工作量。
例如,我写的这个SDA5F机器人的模型文件,两条臂采用的是同一个xacro文件。


  • 不能用于并机器人(闭链结构)
将闭链的其中一个关节描述成mimic_joint,转换成串联或树状结构。

  • 可视化模型与碰撞模型相同
URDF可以单独指定可视化模型与碰撞模型。我们正好对两者有不同的需求:
可视化模型:尽量精细、漂亮,最好与实际机器人尺寸相同;
碰撞模型:尽量精简、可以适当大于机器人尺寸。
所以,在自己写URDF的时候可以充分利用这一特性。


  • 容易引入不必要的误差(参数完全不符合设计参数,pi的引入等)
因为在写URDF的时候,我们需要指定不同连杆之间的初始相对位置。如果两者的坐标系存在姿态偏差的话,我们就会引入弧度值,尤其是无理数3.141592654的引入。
这时候有两种做法:
a) 在blender中将所有连杆的坐标系设置成同向(所有关节0°时),这样你在URDF中装配的时候就没有pi了;
b) 采用xacro可参数化的特点,定义一个常数变量pi=3.14159265359(甚至更高精度都可以),这样既精简又可靠。

最后,秀一波我做的SDA5F模型:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 一键登录:

x

0

主题

0

回帖

-1

积分

限制会员

积分
-1
发表于 2017-3-5 17:31:13 |
用SW导出URDF文件后,在MOVEIT配置导入的时候出现ResourceNotFound,没有机械臂但显示的是配置成功的问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 一键登录:

x

0

主题

0

回帖

0

积分

小白会员

Rank: 1

积分
0
发表于 2017-3-5 17:18:24 |
Proe 的话没有直接转换的方法。如果是要把CAD文件转换成通用格式的话会很麻烦。所以最好就是在solidworks里面重画。这样最省时间。

0

主题

0

回帖

-1

积分

限制会员

积分
-1
发表于 2017-3-5 17:06:21 |
你好 我想问一下你在soildworks是怎么弄成urdf格式的,我下载了个插件 但是soildworks插件勾选后没有显示出来

0

主题

0

回帖

-1

积分

限制会员

积分
-1
发表于 2017-3-5 16:54:22 |
先 转为 igs  或者 stp等通用格式, 就可以在SolidWorks中打开,再转为为URDF文件即可!

4

主题

333

回帖

1573

积分

金牌会员

Rank: 6Rank: 6

积分
1573
发表于 2017-5-15 12:05:21 |
很经典,收藏了!

7

主题

366

回帖

1698

积分

金牌会员

Rank: 6Rank: 6

积分
1698
发表于 2017-5-29 19:31:25 |
楼主的头像是本人吗?

7

主题

382

回帖

1724

积分

金牌会员

Rank: 6Rank: 6

积分
1724
发表于 2017-5-31 15:48:54 |
帖子很有深度!

4

主题

340

回帖

1593

积分

金牌会员

Rank: 6Rank: 6

积分
1593
发表于 2017-6-1 23:20:58 |
很多天不上线,一上线就看到这么给力的帖子!
快速回复 返回顶部 返回列表