solidworks转urdf插件导出参数详解
创始人
2025-05-30 09:26:39
0

是用solidworks成功导出了一次urdf,记录一下导出时各参数的说明。

  • 基座的设置
  • 中间连杆的设置
  • 末端坐标系的设置

你需要做的:先定义好你的 坐标系基准轴。可以看一下B站这个up主的系列视频的P4。

基于MALTAB/Simulink、Coppeliasim的六轴机械臂仿真

感觉网上关于urdf参数讲得有点让人摸不着头脑,自己导出成功了嘛,所以还是做一下总结。

基座的设置

urdf还是很规范的, 首先它让你定义基座:base_link。可以看到需要定义Link NameGlobal Origin Coordinate SystemLink ComponentsNumber of child links
在这里插入图片描述

  • Line Name我设置为link0(基坐标系,名字设置为自己想要的就行)

  • Global Origin Coordinate System设置为frame0(这个坐标系就是世界坐标系,没错我让基座坐标系和世界坐标系重合了!),我一般建立三维装配体的时候设置装配体的原点和装配体内坐标系原点重合。这样导入三维模型就不会发现原点的偏移。

  1. Global Origin Coordinate System在这里插入图片描述
  • Link Components选中你的基座标系的零件(如上图蓝色的零件),有几个选几个。基座认为是固定动的,和世界坐标系固连。这方便机器人所有的坐标都是在正确的世界坐标系定义。

  • Number of child links就是接下去支链的个数(和当前连杆连接的其他的连杆的个数),串联机器人连接的连杆就一个,并联机器人连接的连杆可能不止一个,看情况来,我这里是一个。

中间连杆的设置

中间关节是和末端坐标系进行区分的:中间坐标系有运动副,末端坐标系没有运动副,末端坐标系的设置在后面也会讲到。

我们点击中间连杆(带有运动副的),以link1为例,可以看到需要定义Link NameJoint NameReference Coordinate System``Reference AxisJoint TypeLink ComponentsNumber 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 AxisJoint Type我感觉很多博客没有讲清楚,为了讲清楚我放张图上来。

  1. 轴线在这里插入图片描述

  2. 坐标系
    在这里插入图片描述

  • 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我放张图上来。

  1. linkEnd坐标系:末端坐标系是零件的尾Link Components同link6。在这里插入图片描述
  2. link6坐标系:link6坐标系是零件的头Link Components同linkEnd。
    在这里插入图片描述
  • Number of child links:是支链的个数后面没有其他连杆了,设置为0

输出可能有的bug,目前碰到的:

SolidWorks转urdf导出模型错位解决

记录一下,以后说不定还要用。

其他参考

  1. 机器人模型导入MATLAB(二):导入Simscape URDF格式
  2. SolidWorks导出机械臂的URDF模型各个关节坐标系设置
  3. 【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学
  4. Solidworks 2016中导出URDF文件
  5. SolidWorks生成urdf在MATLAB中导入
  6. SolidWorks转.urdf格式机器人模型导入Matlab

相关内容

热门资讯

湘潭最新学区划分,最新或202... 湘潭公办小学招生范围按照义务教育免试就近入学原则,市区公办小学实行依街道划片招生。本文为您介绍湘潭小...
衡阳最新学区划分,最新或202... 衡阳公办小学招生范围按照义务教育免试就近入学原则,市区公办小学实行依街道划片招生。本文为您介绍衡阳小...
湖南最新学区划分,最新或202... 为方便家长和学生们了解自己孩子所就读的小学或是自己孩子的户口究竟在不在想要入读的中学的学区范围内,小...
株洲最新学区划分,最新或202... 洲公办小学招生范围按照义务教育免试就近入学原则,市区公办小学实行依街道划片招生。本文为您介绍株洲小学...
【SpringBoot16】S... 每次登录都要输入密码,会很麻烦,实现一个记住登录状态的功能,...
长沙最新学区划分,最新或202... 芙蓉区东茅街小学 解放西路以南,大古巷以北,蔡锷南路以西,黄兴路步行街以东。修业小学 建湘南路以西,...
ESP8266-NodeMCU... 目录 安装 ESP8266-NodeMCU开发板驱动 为ESP8266-NodeMCU搭建Ardui...
揭阳最新学区划分,最新或202... 揭阳公办小学招生范围按照义务教育免试就近入学原则,市区公办小学实行依街道划片招生。本文为您介绍揭阳小...
云浮最新学区划分,最新或202... 云浮公办小学招生范围按照义务教育免试就近入学原则,市区公办小学实行依街道划片招生。本文为您介绍云浮小...
东莞最新学区划分,最新或202... 孩子的入学教育,已经成为中国家长们心中不可绕过的一道坎。小编特意为家长们整理了《 最新或2023(历...
潮州最新学区划分,最新或202... 近日,教育部首次在官方文件中提出,针对择校冲动强烈的地方实施“多校划片”。一时间,大家围绕“学区房真...
中山最新学区划分,最新或202... 太阳教育网小编为您整理了关于中山市幼升小学区划分详情的相关信息,希望对您有帮助,想了解更多请继续关注...
MySQL的COUNT语句,竟... 关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以...
一文讲解电源技术中的安森美深力... 一文讲解电源技术中的安森美深力科NCP1680AAD1R2G NCP1680是一个CrM PFC控制...
阳江最新学区划分,最新或202... 南恩学校一、马南湾南路、环城北路、北门街、横石街和东边巷以东,西平路、东门路以西,环城东路、万福路以...
清远最新学区划分,最新或202... 清远公办小学招生范围按照义务教育免试就近入学原则,市区公办小学实行依街道划片招生。本文为您介绍清远小...
河源最新学区划分,最新或202... 在河源房地产市场,以前人们买房往往更关心周边他们环境和商业配套,教育配套曾经一度被忽略。近几年来,虽...
Python基础(二十一):a... 简介argparse 模块主要用于处理 Python 命令行参数和选项,程序定义好所需...
用Pytorch构建第一个神经... 本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.ne...
俞敏洪:家庭教育的灵魂是人品教... 我之所以能够在这谈谈家庭教育的心得,确实是因为我接触的孩子太多了。我看到过很多幸福的学生,也看到了很...