利用Solidworks三维建模 ,导出URDF文件,并在ros中使用

38 篇文章 6 订阅
31 篇文章 43 订阅

Google或者百度,搜索sw_urdf_exporter的插件。这里官方推荐使用SolidWorks2017。

我使用的是虚拟机ROS_INDIGO+win7的SW2017。

win7 下下载sw_urdf_exporter后安装即可,然后打开SolidWorks

点击小齿轮旁边的下拉菜单,选择插件,然后拉到插件最底下有个sw2urdf的插件,点击选中,然后保存。

再转化之前需要画好零件图并且装配好。如下,我选择的是四轮的机器人,如下

我在车子body的底部中心创建参考几何体的中心点,然后以此原点,设置坐标系26,作为世界坐标系。这里根据你的模型复杂程度,创建旋转轴和坐标系,我这里比较简单,SolidWorks待会可以自动帮我生成需要的坐标轴和旋转轴。

创建完坐标系(或者需要的旋转轴),选择SolidWorks图标旁边的左拉菜单小箭头,选择工具,然后在下拉菜单中找到File,选择Export as urdf。

打开如图的图面,选择刚才创建的坐标轴(创建这个坐标系是为了之后的使用,他是位于世界坐标原点的位置)为参考坐标系,选择你的base_link,这里我偷懒了选择了轴也为机器人body的部分,输入子连接数目4个,分别为四个轮子。一开始是empty link,点击左下角的empt link 然后设置。(这里是我起了名字之后截得图,见下一步)

为了方便我的link名字和joint的名字都是1,2,3,4,选择一个轮子,轮子会变蓝,方框里也会出现link的名字,如果误选中其他的,,选择左边的 unit components的框下你不需要的,del掉就行。这里我之前没有创建轴和参考系,选择系统为我生成,也可以选择自己创建的坐标系和旋转轴。

按步骤操作完所有的子link,然后点击preview and export,如果你没有完全设置完所有的子连接会报错。进入如下的步骤

可以点击子连接,查看连接情况,我这里的坐标系和轴都是系统为我计算生成的,你可以仔细查看核对下,然后点击NEXT,进入下一页。(有些人说这里要设置velocity以便于之后的仿真,我还没做到这一步,我只是为了显示下,可以给一个速度0.02m/s)。

这里可以设置颜色和外观,我没有设置。直接点击finish 然后选择文件夹保存,我选得是和虚拟机共享的文件夹(虚拟机,设置,选项,共享文件夹设置)。可以实现虚拟机的Linux和win7主机实现文件共享。

将文件夹copy到工作目录下src/文件夹下,修改package.xml中的邮箱,以及修改URDF文件夹为robots(这里是因为生成 的launch文件打开的urdff文件路径有问题)。然后就可以roscore,roslaunch  display.launch文件了,他还提供了gazebo.launch,一个在rviz打开,一个在gazebo中打开。

成功后如下图

写在后面,需要更改map的参考系改为base_link,图形就会正确了。有时候电脑的虚拟机带不动rviz,可能出现图形的不能正确显示,我笔记本就是这样,同样的在台式机可以显

 

*******************************************更****************新********************************************************

之前的模型创建过程再重新走一遍,基本可以完成。但是在gazebo中的显示时候会抖动,发现SolidWorks在创建时候,默认的惯性矩阵都为0,可以利用solidworks的评估,然后质量属性工具计算出惯性矩阵,然后使用重心那个矩阵,可以使抖动消失。

 

 

*******************************************更****************新********************************************************

2020.12.05更新

今天更新一下实验室机械臂的三维模型,导出URDF文件,在ros中使用

上图即机械臂的装配图,各部位均已作出合理调整(我们需要对机械臂的姿态作出合理调整,这是因为在生成URDF文件时,默认当前机械臂的姿态为初始位置,可在Solidworks中通过简单约束调整位置,最后要记得去除这些约束,保证各部位可实现预期的运动)。

1.建立合理坐标系

机械臂的URDF文件转化关键是在建坐标系,机械臂的每个关节都在围绕自己的独立坐标系运动,后面会有自己建立坐标系不合理出现的情况。

这个机械臂一共6个关节,我们也就需要建立6个坐标系,哦,还要加上一个总体视角的坐标系,这是用于确定整个机械臂的位置的(在装配图中设计时没有注意默认的坐标系,装配出来的模型和默认的坐标系偏差较大,建立此坐标系方便后期的设计)

  1. 建立坐标系前明确各部位是如何运动的,绕哪一根轴做怎样的运动,在机械臂中都是旋转运动,我们一般都是设置成绕Z轴旋转
  2. 6个坐标系是相互独立的,但让我们更加直观理解,尽量保证几个坐标系的各轴方向相同,如Z轴在竖直方向时,尽量都设置成竖直向上的
  3. 我们可以提前建立几个基准轴,参考点,方便后面的坐标系的位置与方向的确定
  4. 建立坐标系时,只需要确定两根轴就可以,这里建议首先确定Z轴
  5. 建立坐标系时可以根据自己的习惯,对相应的坐标系合理命名

                        

2.输出URDF文件设置

“工具”---“Tools”---“Export as URDF”,进入设置,具体画面如下图

 

1.这是对应机械臂的各个关节,在设置时先选择一个关节进行修改,上图是在对基准线进行设置

2.这是选择初始坐标系

3.这一块选择的是在当前坐标系下关联的的部位,即选中的蓝色部分是在当前坐标系下进行运算,在选择这一部分时记住不要和其他坐标系的部位选择重复,否则会在两个坐标系里都出现该部位(不理解可以自己试一下)

4.这是选中的部位的子关节的数目,在这个机械臂中有子关节的情况下,子关节数目都是1

5.这是从一个CSV文件中导入相应参数的按钮,我们没有用到

6.这是查看生成的URDF文件并准备生成一个URDF package的按钮,等各关节的坐标系选择完毕,子关节部位及数目设定完后再点击,进行后面的设置

                  

上图是在设置lumbar关节

1.关节名:lumbar

2.相匹配的坐标系:Origin_lumbar (这是前面建立的坐标系)

3.与运动相关的轴:基准轴1 (前面用于确定Z轴的基准轴,在这里做旋转轴)

4.关节类型:revolute(确定关节运动类型,此处是旋转的)

后面几个关节设置相似,在此不再赘述,贴上设置图片

    

   

在最后finger后面已经没有子关节了,子关节数目是0

这些设置完成后,点击生成URDF文件并生成一个URDF package的按钮,会弹出一个窗口,我们要确保每个关节的Joint type, Coordinate system, Axis设置正确,根据机械臂运动的实际情况,参考自己建立的坐标系,设置其运动的角度范围(此处用弧度表示)

对6个关节设置完成后,点击next按钮,可以在新窗口中设置不同关节部位的颜色,修改其RGB值,使其更加美观(颜色设置不是重点,可以后面再说,当然在生成的package中的urdf文件夹中的.urdf文件也可以修改其RGB值进行调色)

目前生成URDF文件的设置基本上已经完成了,点击Export URDF and Meshes按钮,选择合适位置生成一个文件夹,接下来就要到ros中检验模型是否正确

3.将文件夹移动到工作空间中编译调试

将文件夹移动到~/catkin_ws/src/路径中,在终端中输入相应命令,单独编译包,运行调出RVIZ模型

cd ~/catkin_ws/      //切换到工作空间中
catkin_make -DCATKIN_WHITELIST_PACKAGES="redwall"   //单独编译包,此处redwall是本人生成package的包名,根据自己的包名进行修改
roslaunch redwall display.launch    //调出RVIZ模型

在终端中会出现缺少某某程序的错误,缺什么就装什么,下面举例我在运行时出现的错误

sudo apt-get install ros-kinetic-joint-state*   //joint-state*是缺少的程序

下图是生成正确的模型,经过合理调色后,如图

在生成模型时坐标系建立的不合理,还留下了几张图

此次实验,主要还是去不断尝试,不要怕出错,错多了才会有感觉,一两遍是很难成功的,本人回收站里丢了九个文件夹

  • 53
    点赞
  • 395
    收藏
    觉得还不错? 一键收藏
  • 41
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值