SolidWorks生成urdf在MATLAB中导入

去年在CSDN上学会了怎么用SolidWorks制作urdf并且导入MATLAB中。学习过程走了不少弯路,前一段时间还有人在闲鱼让我教他怎么生成。
CSDN上的教程很丰富但也会有不少问题,当时花了两天的时间才制作出我想要的模型,因此在这里总结一些经验。

目录

  • 一、SolidWorks软件安装 sw_urdf_exporter插件
  • 二、制作urdf文件
    • 1、建立基准轴和坐标系
    • 2、打开插件制作urdf
  • 三、urdf文件的MATLAB的导入
    • 1、MATLAB显示urdf
    • 2、MATLAB控制urdf运动
  • 四、总结

一、SolidWorks软件安装 sw_urdf_exporter插件

这个过程有很多教程了,都很详细,我就不赘述了。
这里放一个教程详细的连接。
链接: 给SolidWorks软件安装 sw_urdf_exporte.

二、制作urdf文件

我以PUMA 560机械臂为例,生成一遍urdf文件。最好先将每个连杆上的零件生成一个整体零件以便于后续的选择。

1、建立基准轴和坐标系

(1)如图所示,将装配体按照初始位姿调整各零件的相对位置。

SolidWorks生成urdf在MATLAB中导入_第1张图片
(2)如图所示,针对各个关节轴线插入基准轴。
SolidWorks生成urdf在MATLAB中导入_第2张图片
(3)如图所示,3D草图画出各轴线交点。SolidWorks生成urdf在MATLAB中导入_第3张图片
(4)如图所示,根据自己建立好的DH或改进DH参数表插入坐标系。
SolidWorks生成urdf在MATLAB中导入_第4张图片

2、打开插件制作urdf

(1)如图所示,在此处打开插件。
SolidWorks生成urdf在MATLAB中导入_第5张图片
(2)如图所示,打开插件后会进入如图所示的界面。SolidWorks生成urdf在MATLAB中导入_第6张图片
(3)如图所示,先设置base_link。从上到下设置名字、选择坐标系、选择基座零件和设置后面的子杆。
SolidWorks生成urdf在MATLAB中导入_第7张图片
(4)如图所示,点击此处进入1杆的设置。
SolidWorks生成urdf在MATLAB中导入_第8张图片
(5)如图所示,1杆(link1)的设置和基座不一样了。从上到下为link名称、joint名称、坐标系选择、基准轴选择、关节类型、连杆零件和连杆子杆(一般为1,但在小车中四个轮子就是4)。
SolidWorks生成urdf在MATLAB中导入_第9张图片
(6)如图所示,link2的设置和link1相似,一样的步骤。
SolidWorks生成urdf在MATLAB中导入_第10张图片
(7)如图所示,到最后一个link时,前面的步骤一样,只需将子杆设为0。并点击箭头所指处进入urdf调整界面。
SolidWorks生成urdf在MATLAB中导入_第11张图片
(8)如图所示,为urdf的调整界面。
SolidWorks生成urdf在MATLAB中导入_第12张图片
(9)如图所示,点击joint1进行设置。
2方框内容为先前设置的信息,检查是否有误,可在此处更改。
3方框为关节角限制,必须添加,否则可能会出错。
SolidWorks生成urdf在MATLAB中导入_第13张图片
(10)如图所示,joint2页进行如joint1的检查和修改。SolidWorks生成urdf在MATLAB中导入_第14张图片
(11)如图所示,将所有的joint设置完后,点击右下角箭头所指出,进入下一界面——link内容的修改。
SolidWorks生成urdf在MATLAB中导入_第15张图片
(12)如图所示,link的设置界面。
SolidWorks生成urdf在MATLAB中导入_第16张图片
(13)如图所示,首先点击link1,进行修改。
划重点
2方框的内容有时会有个不为零的数,可以不用修改。但很多情况是0,因此必须进行修改,这在许多博客里面没提到,可能他们是导入的ROS,在导入MATLAB时,不设置会显示杂乱。
可以设为很小的值,但必须要有,我设置的是0.00001。因为我只用到了运动学的模拟,没用到动力学的部分,因此没有影响。
SolidWorks生成urdf在MATLAB中导入_第17张图片
(14)如图所示,link2也进行如link1的修改。
SolidWorks生成urdf在MATLAB中导入_第18张图片
(15)如图所示,将所有的link修改完后,点击右下角的箭头所示的按钮Finish。
SolidWorks生成urdf在MATLAB中导入_第19张图片
(16)如图所示,点击完成后,会出来一个文件保存。
划重点
文件的命名不能带汉字最好是英文加数字。我曾经就命名为H1,其他的也行。
这一点在许多大佬的博客里面也都有强调。
SolidWorks生成urdf在MATLAB中导入_第20张图片
(17)如图所示,为我修改后的名称。
SolidWorks生成urdf在MATLAB中导入_第21张图片
(18)如图所示,点击保存后会弹出一个小框,点击确定就行。到此就完成了 urdf文件的生成。SolidWorks生成urdf在MATLAB中导入_第22张图片

三、urdf文件的MATLAB的导入

1、MATLAB显示urdf

首先MATLAB2017以及之后的版本才支持导入urdf。
将刚刚制作的文件夹整个加入MATLAB路径。
运行如下所示代码。

robot=importrobot('puma560.urdf');
show(robot);

即可出现如图所示的可视化模型。
SolidWorks生成urdf在MATLAB中导入_第23张图片

2、MATLAB控制urdf运动

运行如下所示代码

robot=importrobot('puma560.urdf');
 robot.DataFormat='column';robot.DataFormat='column';%数据格式为列,row为行;为‘row'时q0要转置为q0’
 show(robot,[-pi/4 pi/4 0 0 0]','PreservePlot',false);%机械臂演示

则可出现如图所示的效果。
SolidWorks生成urdf在MATLAB中导入_第24张图片
想要这个urdf连续运动,可以写个for循环。还可制成GIF动图。
下面这个就是我去年做的那个模型的GIF,还挺流畅。

四、总结

必须注意的两个方面
1、连杆的moment of inertia(惯性矩)为零的话,必须得修改。
2、生成的文件命名不要带汉字,最好是字母和数字组合。

内容比较多,主要考虑到新手友好。
我把三维模型和制作的urdf传到下载资源里面了。
链接: puma560模型和urdf.zip.

你可能感兴趣的:(SolidWorks生成urdf在MATLAB中导入)