是用solidworks成功导出了一次urdf,记录一下导出时各参数的说明。
你需要做的:先定义好你的 坐标系和 基准轴。可以看一下B站这个up主的系列视频的P4。
基于MALTAB/Simulink、Coppeliasim的六轴机械臂仿真
感觉网上关于urdf参数讲得有点让人摸不着头脑,自己导出成功了嘛,所以还是做一下总结。
基座的设置
urdf还是很规范的, 首先它让你定义基座:base_link。可以看到需要定义Link Name
、Global Origin Coordinate System
、Link Components
、Number of child links
-
Line Name
我设置为link0(基坐标系,名字设置为自己想要的就行) -
Global Origin Coordinate System
设置为frame0(这个坐标系就是世界坐标系,没错我让基座坐标系和世界坐标系重合了!),我一般建立三维装配体的时候设置装配体的原点和装配体内坐标系原点重合。这样导入三维模型就不会发现原点的偏移。
Global Origin Coordinate System
![]()
-
Link Components
选中你的基座标系的零件(如上图蓝色的零件),有几个选几个。基座认为是固定动的,和世界坐标系固连。这方便机器人所有的坐标都是在正确的世界坐标系定义。 -
Number of child links
就是接下去支链的个数(和当前连杆连接的其他的连杆的个数),串联机器人连接的连杆就一个,并联机器人连接的连杆可能不止一个,看情况来,我这里是一个。
中间连杆的设置
中间关节是和末端坐标系进行区分的:中间坐标系有运动副,末端坐标系没有运动副,末端坐标系的设置在后面也会讲到。
我们点击中间连杆(带有运动副的),以link1为例,可以看到需要定义Link Name
、Joint Name
、Reference Coordinate System``Reference Axis
、Joint Type
、Link Components
、Number of child links
-
Parent Link
:父连杆是上一个连接的连杆link0。 -
Link Name
:设置为当前连杆link1(名字设置为自己想要的就行)。 -
Joint Name
:设置为joint1(名字设置为自己想要的就行)。 -
Reference Coordinate System``Reference Axis
: 设置为当前连杆(这里是link1)的坐标系,我这里设置是z轴沿轴线方向(没错这里的轴线和上面的Reference Axis
的轴线是同一个方向的)。设置这个坐标系的目的是为了让这个坐标系绕着下一个属性Reference Axis
设置的轴线进行旋转。 -
Reference Axis
:设置为前一个连杆(这里是基座link0)和当前连杆(这里是link1)之间的运动副的轴线(旋转副就是转轴的轴线,移动副就是移动的方向)。 -
Joint Type
:这里要设置运动副的类型,主要有:- revolute - 旋转副,其极限位置由 upper and lower limits 决定
- continuous - 旋转副,无位置限制
- prismatic - 移动副,其极限位置由 upper and lower limits 决定
- fixed - 固定副,关节不可运动,可以用来描述末端。
- floating - 六自由度关节。
- planar - 平面副。
这里我的运动副都设置成有限制转角的revolute,还是根据实际来操作。
关于
Reference Axis
和Joint Type
我感觉很多博客没有讲清楚,为了讲清楚我放张图上来。
轴线
坐标系
-
Link Components
:和基座一样,选中link1对应的零件。 -
Number of child links
:是支链的个数(和当前连杆连接的其他的连杆的个数),这里是1。
其他中间关节如法炮制。
末端坐标系的设置
我们一般还关心末端的位置和姿态,这里我设置了末端的坐标系,但是这个坐标系不能绕任何轴旋转。
和前面的中间关节有几个地方设置得不一样:
-
Parent Link
:父连杆是上一个连接的连杆link6。 -
Link Name
:设置为当前连杆名linkEnd(名字设置为自己想要的就行)。 -
Joint Name
:设置为jointEnd(名字设置为自己想要的就行)。 -
Reference Coordinate System``Reference Axis
: 设置为末端坐标系。 -
Reference Axis
:不能绕任何轴旋转,设置为None。 -
Joint Type
:设置为 fixed - 固定副,用来描述末端。 -
Link Components
:选中和link6(注意link6是它的父连杆)一样的零件,可以理解为:父连杆link6定义的坐标系是零件的头【有旋转副】,这里末端也用和link6一样的零件,它定义的坐标系是零件的尾,也就是末端。
还是一样,为了讲清楚
Link Components
我放张图上来。
- linkEnd坐标系:末端坐标系是零件的尾,
Link Components
同link6。![]()
- link6坐标系:link6坐标系是零件的头,
Link Components
同linkEnd。![]()
-
Number of child links
:是支链的个数后面没有其他连杆了,设置为0。
输出可能有的bug,目前碰到的:
SolidWorks转urdf导出模型错位解决
记录一下,以后说不定还要用。文章来源:https://www.toymoban.com/news/detail-487405.html
其他参考文章来源地址https://www.toymoban.com/news/detail-487405.html
- 机器人模型导入MATLAB(二):导入Simscape URDF格式
- SolidWorks导出机械臂的URDF模型各个关节坐标系设置
- 【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学
- Solidworks 2016中导出URDF文件
- SolidWorks生成urdf在MATLAB中导入
- SolidWorks转.urdf格式机器人模型导入Matlab
到了这里,关于solidworks转urdf插件导出参数详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!