1、插件下载
在开始导入之前,需要在Solidworks中下载SolidWorks to URDF Exporter的这个插件
下载地址:sw_urdf_exporter - ROS Wiki
我的Soliworks版本为2024,我们直接下载最新版的插件即可
安装完成后,直接可以在工具中可以找到
如果没有找到该选项,就点击设置——插件中勾选。
2、导出过程
以本次参加比赛的底盘为例,首先预处理,将整个装配体重新组合,形成几部分关键的零件,这些零件主要是用于gazebo仿真,在仿真过程中需要配置相关参数等,或者其他作用。
2.1 拆分重组
,在配置urdf中各个Link和Joint的时候,如果零件越多,需要配置的次数也就越多,这里我和师兄学习,将大大小小的子装配体模块化,再生成零件,因此我主要把底盘拆分成三部分:底盘主体base、电机motor、车轮weel。
2.2 建立坐标系、轴系
这里我认为的重点如下:
主体部分:点、坐标系
转动部分:点、参考轴、坐标系
详细的参考系tree:
2.3 配置Link、Joint
Link:相当于你要配置的一个关节,通俗来说就是人体中的各个部件
Joint:就是连接关节的方式
开始配置过程:
- 确立主体部分base_Link(名字可自由更改)作为最大的父系零件,确定关节对应的零件base和对应生成的零件坐标系,连接着4个二级Link:rf_motor_Link、 rf_motor_Link、rf_motor_Link、rf_motor_Link。(框内的数字4代表这个部件(base_Link)安装了有4个子部件(二级Link))
- 配置二级Link(motor),确定对应的零件以及坐标系,选择连接方式(电机与主体部分)为固定(fixed),在二级Link下安装三级Link(weel)。
- 配置三级Link(weel),步骤一样
3.遇到问题以及解决办法
3.1 urdf文件参数缺失或多生问题
在我生成模型的urdf过程中,不是一次发现文件中丢失了相关数据,如我的一个Joint的所有参数基本全为0,并且也有时候多生成了一个Joint。
解决方法:重新生成一次就能解决,手动删除。
3.2 urdf文件中坐标系问题
通过查阅相关资料和实践,在urdf模型里的base_Link(parents)的坐标系方向和gazebo里的世界坐标系是相关联的,因此通常希望每次模型生成在原点(或者特定的点),将模型的坐标系布置在你模型的几何中心或者底部中心位置比较好,但是在我在仿真过程中总是发现:在gazebo中打开移动我的模型,他的坐标系不和Solidworks中设置的一样,并且发生了改变,个人猜想,在最后生成的步骤中,软件默认将原点设置在质点上
解决方法:生成的最后一步将base_Link的origin参数全部更改0
3.3 urdf在gazebo中打开直接炸模
在urdf生成完后,在gazebo仿真,具体的仿真过程可以参考我的【仿真教程】,导入到gazebo中,发现我的模型出现了一些问题:
(1)有一个轮子感觉没安装上去甚至更糟
(2)车体完全不受控制的运动
解决方法:根据我师兄以前的解决方案,在生成的时候人为的将mass(质量)设置小一点。