SolidWorks导出机械臂的URDF模型各个关节坐标系设置

这篇具有很好参考价值的文章主要介绍了SolidWorks导出机械臂的URDF模型各个关节坐标系设置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

郑重提示:为了记录自己在学习过程中遇到的问题,所以记录了这篇博客。。在后面学习的过程中发现之前这篇博客记录的导出URDF模型坐标系设置方法存在一些问题,不好写DH参数表,,更更要命的是,好些朋友都收藏了这篇博客,为了不误导大家,再次对以下内容做出修改,并给出DH参数表。该方法是目前为止,我认为最好理解的一种建立坐标系方法----感觉上属于标准DH参数表建立方法的分支


再多说一句,大家都知道,建立坐标系的方法不是唯一的,分为标准DH参数和修正DH参数,采用标准DH参数建立方法只适用于“链式”机械臂,也就是我用到的这种串联机械臂,假使用于并联机械臂则会产生歧义。什么是并联机械臂呢?如下图这种闭环机械臂。采用修正DH参数方法的话,虽然不会产生歧义,但是非常不好理解。所以如下内容是我能想到的一种最好理解的应用与 于“链式”机械臂的坐标系建立方法

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

并联机械臂


小提示:我建立机械臂的目的是想在Ubuntu中使用Gazebo进行仿真,在仿真过程中遇到的很多问题也愿意和大家分享比如颤抖,上天,倒地啥的。不多说,进入正题

机械臂模型下载

首先下载模型,我使用的模型是ABB-IRB2600-20这款机械臂,可以在官网上下载,给出官网连接如下:https://new.abb.com/products/robotics/zh/robots/paint-robots/irb-52大家可以复制打开这个连接,然后下载这款机械臂。

我下载好并装配好的机械臂如下:

对了,大家下载好的机械臂没有夹爪,这个夹爪是我自己画,并装配上去的,因为我要仿真抓取。

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

建立坐标系,首先要求大家规范一点,自己别把自己搞乱了:

Link代表骨骼,就是每一个部分。joint代表关节,就是两个关节的组合。举个栗子,大家想象自己的腿,就可以写成,Link_小腿,Link_大腿,组合成joint_膝盖。这就很有印象了吧!

为了理解,特意修改了机械臂每一个部分的取名,大家可以不用修改里面模型的名字,我只是给大家规范一下:

大家下载的机械臂只有从其中的base_link到link6这七个部分,既从底座到末端法兰盘,从link7_1往后都是我自己添加的夹爪。

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

 哪里是base_link呢?如下图:

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

右下角就是base_link(蓝色底座),大家可能会问,难道我是傻子,不知道这里是base_link吗?我特意说这里,是因为后面在Gazebo仿真的时候需要把base_link和世界坐标系固定,否则你的机械臂会飞起来或者整体倒在地上(原因之一),当然固定了坐标系机械臂也不一定能支棱起来,但这部分必须要。

建立坐标系三步走,先点,再线,后坐标系

第一步:点在哪里呢?以base_link为栗子:如下:

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

 这个点很好找吧?装配的时候就将底座放在了原点位置,我给它取名叫做base_link_point。这里简单!

第二步:线在哪里?这个线叫做轴线,是为了下一个Link建立的旋转轴线,如下图:

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

 这根轴是不是就是下一个关节Link1旋转所围绕的轴线?没错,我给他取名为axis1,大家可能要问了,为什么不叫axis_base_link呢?因为base_link是固定的不需要轴,还有,我前面提到的,建立轴线是为了给下一个Link建立轴线。

第三步:坐标系在哪里?如下图

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

我们选中刚刚建立的base_link_point这个点,然后点击Solidworks的顶部的插入--参考几何体--坐标系,建立坐标系。注意:建立的这个坐标系有两点要求

第一:Z轴要和旋转轴重合,一定要重合,必须重合。但是Base_link不一样,因为它是固定的,它没有旋转轴,所以我们让它的Z轴朝上。这里可能还看不出来,大家感受不到,我在下一个栗子,大家可能有所感受。

第二:X轴“垂直”且“相交”于  “上一个Link”的  旋转轴,这话是不是很绕?不要紧。这里也看不出来,因为Base_link是固定的,自己自己没有旋转轴,所以让X轴朝前,我们看下个例子。


小提示:注意,axis1是Link1的旋转轴,不是Base_link的,所以上图坐标系cordinate0和原点坐标系相同。

这样,两个轴被规定了方向,那么第三根轴Y轴就会自己确定。第三根轴是怎么确定的呢?,根据右手坐标系,看下图:

SolidWorks导出机械臂的URDF模型各个关节坐标系设置SolidWorks导出机械臂的URDF模型各个关节坐标系设置

 伸出右手,那么x轴就是四根手指的指向,z轴就是大拇指的指向,然后四指稍微弯一个九十度就是y轴的指向了,是不是超级好理解?这时要候抬杠的可能问了,四指往外翻呢?如果你能弯成90度,那我就承认我错了。


我们举第二个栗子,因为Base_link这个栗子大家可能觉得,不就是这样吗?这么多废话。我废话的原因是想让大家建立这么个概念。

我们快速跳过Link1的坐标系和旋转轴:如下

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

Link1的坐标系和Base_link的坐标系类似 ,注意这个Z轴和axis1是重合的,同时上图cordinate1的X轴是垂直且相交于base_link自己的旋转轴,但是base_link又没有自己的旋转轴啊!所以我们又让x轴朝前。-----------这个cordinate1的x轴本来要“垂直且相交”与上一个Link,也就是base_link的旋转轴,但是base_link自己没有旋转轴,所以就让x轴统一朝向前方了

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

 注意Link1确定的旋转轴axis2是给Link2准备的旋转轴

分割线---------------------------------------------------------

栗子:Link2坐标系栗子,注意是Link2,不是Link1,Link1坐标系和Base_Link一样,如分割线以上所述。

第一步:点在哪里?如下图

SolidWorks导出机械臂的URDF模型各个关节坐标系设置SolidWorks导出机械臂的URDF模型各个关节坐标系设置

 估计讲到这里大家就蒙圈了,这个点为什么在这里?你这样想----后面我们要在这个点上建立坐标系,同时满足Z轴重合与旋转轴axis2,同时X轴垂直且相交与axis1轴,你没看错,X轴垂直相交于上一个Link也就是Link1的旋转轴axis1,那这个点是不是应该在这里?--------有简洁方法确定这个点吗?有嘞!首先像上图左边红线一样建立一个基准面把机械臂分成两半,那么点link2_point就是axis2和红线基准面的交点。

不知道点在哪里是吗?那先想在这个点上建立坐标系的Z轴是不是必须和旋转轴线重合?那这个点就必须在这个  “旋转轴”  线上是不是?link2_point在axis2上,具体在旋转轴线上哪里呢?那我问你在哪里才能让X轴垂直且相交于上一个旋转轴呢?

我知道讲到这里你看不懂是吧?我也不想的,要不坚持一下再往后看看,我尽量讲清楚一点哈!再往下看看你绝对能懂!

第二步,线在哪里?

注意这里的线是为了给下一个关节建立的,和本关节没太大关系,如下图:

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

 看到了吧?就这个很小的圆柱的轴线,我给他取名叫做axis3,大家估计傻了,这个关节叫做Link2,你给这个旋转轴叫做axis3?没错,我说了,这是给下一个关节Link3准备的

第三步:坐标系在哪里?

选中Link2_point,然后点击顶部的插入--参考几何体--坐标系,建立坐标系。这个时候,坐标系的方向就有说法了,如下图:

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

 我说了,坐标系有两点要注意:

第一,Z轴要和旋转轴重合,可以看到这个cordinate2的Z轴和axis2是不是重合了?不清楚axis2往前翻。这是Link1为Link2准备的axis2.---Z轴要和旋转轴重合,我们再统一让它朝向右边

第二:X轴“垂直”且“相交”于  “上一个Link”的  旋转轴,也就是X轴垂直且相交与axis1,看上图,你是不是突然就“提壶灌顶”?终于明白为什么要建一个红色基准面再来确定link2_point这个点了吧?注意X轴不仅要垂直,还要延长线相交于上一个旋转轴


举例到这里了,大家应该非常清楚坐标系的建立规则了吧?一定要记住这三步走战略,先点,后线最后坐标,以及我说的两点方向注意。

其他关节的坐标系我也贴出来给大家看吧!怕你们不清楚:

Link3的坐标系:

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

蓝色这个部分就是Link3,它的坐标系就是cordinate3,看到Z轴了吧?和它的旋转轴axis3是重合的,X轴则垂直相交于上一个旋转轴axis2----延长线垂直相交

讲到这里你应该都懂了吧?----坐标系cordinate3的坐标点Link3_point就是axis3和红色基准面的交点,-----建立到最后你会发现,所有坐标系都在红色基准面上

Link4坐标系:

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

这个Link4的Z轴大家肯定没异议了吧?这个X轴垂直且相交于axis3

到这里,建立坐标系的规则全部给大家讲解完毕了,如果有问题,可以在下面问,或者我建立的有问题,欢迎大家指出。

给出DH参数表如下:

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

SolidWorks导出机械臂的URDF模型各个关节坐标系设置


导出URDF模型

上半部分完成了坐标系的建立,后面就可以导出URDF模型了,大家一定要像我这样建立坐标系,然后给每一个坐标系取容易分辨的名字,否则,自己就晕死了,比如:

Base_link,Link+123456,cordinate+0123456,axis+123456这样,为了方便后面不出错。

给大家看我自己的:

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

 然后点击Export as URDF如下:

大家可能发现自己没有这个,别急,因为你没安装这个插件,你可以自己搜索这个插件的安装文章,很多的!我这里就不举例了。

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

 初步给大家看我的,这是我建立好的,大家的肯定啥都没有,别急,看后面

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

 首先在Link Name这里给第一个Link取名字,第一个肯定叫做base_link

然后Global Origin Cordinate System就是你为每一个关节Link建立的坐标系,第一个我建立的是Cordinate0

然后Link Components就是说哪一个部分是base_link,你在右边模型中点击底座,将它加进去。

Number of child links就是和base_link连接的关节有几个,肯定只有一个啦!你点一下框里的上升三角形加1,那么最下面加粗的base_link后面就会多出一行。


然后点击左下角base_link衍生出来的哪一行,出现类似的页面

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

和上一个页面不同的是,它多了joint Name,Reference Axis和joint Type这三个。

首先Link Name肯定写link1了,是输入,不是选,规范一点。

然后Joint Name 肯定就输入joint1了

Reference Cordinate System肯定就是cordinate1,你自己建立的Link1的坐标系

Reference Axis就是这个关节绕哪根轴旋转,选择我们建立好的axis1

joint Type有好几种,这个revolute就是有限制的圆周运动

然后Link Components就在右边模型中直接选择Link1,可以点击右边的模型树,或者直接在模型中选择。

Number of child links框的上三角形点一下就又可以继续添加下一个关节了。

后面每一个关节的选择我想大家应该就清楚了,这个Joint Type是每一个关节的类型,因为都是绕轴的旋转,可以都选择revolute,这是有限制旋转角度的,后面可以调节。其他类型大家可以搜索一下它的意思,有无限制角度的旋转,平移,一个平面上的旋转平移等类型,但机械臂主要是revolute类型的。


设置完成之后,点击Preview and Export

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

 会出现这个界面

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

可以点击每一个joint查看一下是否设置正确

注意:

大家看到我Limit这里是设置了参数的,因为我们选择的joint Type类型是revolute,所以这个lower是旋转角度的下限,upper是旋转角度的上限,effort是扭矩的大小,velocity是转动速度。

注意点:

第一:lower或者upper是弧度制,大家一开始不知道自己机械臂每一个关节旋转多少角度,所以lower可以填写-3.14,然后upper可以填写3.14意思是360度全方位旋转,无限制,具体多少需要借助RViz里面的可视化工具粗略查看,我这里是查看后设置的。

第二:这个effort一定要填写数值,一定,一定。如果你写0,那么意味着机械臂各个转矩没有限制力的大小,那么无限大,这会在后面的仿真过程中造成抖动,剧烈抖动。当然,这是问题的其中之一,还有其他原因。

第三:velocity也要填写数字,它缺少了会造成什么影响,我现在还没发现。可以填写1

以上三点千万小心,尤其是effort。泪啊!


然后点击Next,会出现如下界面,这里面有两个造成机械臂在仿真中发生剧烈抖动,以及瘫倒在地上的原因,由于篇幅原因,方法我就不细说了。后面也可以修改的

 SolidWorks导出机械臂的URDF模型各个关节坐标系设置

 点击:Export URDF and Meshs,保存起来就行了,别点错了。

对了,名字千万不要取中文,因为在Ubuntu虚拟机+ROS仿真的时候不能有中文,会报警告的,不符合命名规范。你保存成什么名字,那这个机器人就是什么名字,修改起来很烦

SolidWorks导出机械臂的URDF模型各个关节坐标系设置

 保存的文件如下:

SolidWorks导出机械臂的URDF模型各个关节坐标系设置


好了,从设置坐标系到导出URDF的过程以及相应需要注意什么已经讲解完毕了,非常匠心了。文章来源地址https://www.toymoban.com/news/detail-451426.html

到了这里,关于SolidWorks导出机械臂的URDF模型各个关节坐标系设置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 设置Solidworks导出文件的坐标系,stl坐标系平移

    在OpenGL中使用导出的stl模型时发现坐标系不在原点: 使用solidworks 打开这个stl,发现果然不对  不满意,必须改过来!!! 首先打开solidworks原文件 新建坐标系   建立完成---坐标系1    输出时点击-选项  输出坐标系--坐标系1  然后保存就完成了。 再看看    end 上边方法复

    2024年02月11日
    浏览(136)
  • SolidWorks STP模型->URDF->Webots proto模型

    参考: 从solidworks导出URDF模型_sw_urdf镜像下载-CSDN博客 solidworks模型利用sw2urdf生成urdf模型导入CoppeliaSim(v-rep)步骤及相关错误(以及导入到ros的Rviz中用moveit进行路径规划)_逆风的少年的博客-CSDN博客 ①从sw_urdf_exporter - ROS Wiki下载sw2urdfSetup.exe文件,下载后点击安装  ②SW中:工具

    2024年02月21日
    浏览(52)
  • 机械臂的雅克比矩阵推导

    p i = p i − 1 + R i − 1 r i − 1 , i i − 1 mathbf{p}_{i}=mathbf{p}_{i-1}+mathbf{R}_{i-1} mathbf{r}_{i-1, i}^{i-1} p i ​ = p i − 1 ​ + R i − 1 ​ r i − 1 , i i − 1 ​ p i − 1 mathbf{p}_{i-1} p i − 1 ​ 是 { i − 1 } {i-1} { i − 1 } 坐标系的原点的向量, p i mathbf{p}_{i} p i ​ 是 { i } {i} { i } 坐标系的原

    2024年02月15日
    浏览(60)
  • (7)机械臂的速度雅克比矩阵

    前面介绍了机器人的逆运动学解法又几何法和代数法得到的都是机器人逆运动学的解析解,但是由于解析解可能不存在,所以需要寻求新的方法。这里介绍速度级的雅克比方法(Jacobian)。雅克比方法求机器人的运动学逆解对于不同类型的机械臂求解过程是相同的,而且不要

    2024年02月01日
    浏览(41)
  • 用ArcGIS模型构建器生成、导出Python转换空间坐标系的代码

      本文介绍在 ArcMap 软件中,通过创建 模型构建器 ( ModelBuilder ),导出 地理坐标系 与 投影坐标系 之间相互 转换 的 Python 代码的方法。   在 GIS 领域中,矢量、栅格图层的投影转换是一个经常遇见的问题;而由于地理坐标系与投影坐标系各自都分别具有很多不同的种

    2024年01月18日
    浏览(46)
  • 机械臂的动力学分析-工业机器人

    工业机器人动力学研究采用的方法有很多,例如拉格朗日法、牛顿-欧拉法、高斯法、凯恩法等,在此重点介绍牛顿-欧拉法和拉格朗日法。牛顿-欧拉法需要从运动学出发求得加速度,并计算各内作用力。对于较复杂的系统,此种分析方法十分复杂与麻烦。而拉格朗日法,只需

    2023年04月08日
    浏览(42)
  • (6)六轴机械臂的运动学正、逆解

    下面在前面的ur5机械臂的DH参数基础是对其正逆解进行求解,为了后面能在MATLAB中利用stl文件进行实际显示,这里以标准DH参数为例进行讲解。( 修正DH参数在用plot3d函数是显示失败,不知道是不是这个函数只能显示标准dh参数的机械臂模型,有知道的网友可以在评论里告知一

    2023年04月09日
    浏览(51)
  • Solidworks2018 修改默认坐标系

    问题描述 :Soliwoks 2018默认坐标系是y轴朝上,而Comsol坐标系默认是z轴朝上,个人习惯z轴朝上,而Solidworks 2018不能修改默认坐标系,本文提供一种修改思路。 Solidworks视图 Comsol同步的视图 在设置-默认模板-零件中找到默认模板位置,在文件中打开进行编辑(可以另存作为自己

    2024年02月01日
    浏览(34)
  • Aloha 机械臂的学习记录3——AWE:Pycharm运行代码记录

    之前的博客创作了三偏关于Aloha_AWE的 liunx终端 指令运行代码的示例: Aloha 机械臂的学习记录——AWE:Bimanual Simulation Suite: https://blog.csdn.net/qq_54900679/article/details/134889183?spm=1001.2014.3001.5502 Aloha 机械臂的学习记录1——AWE:Bimanual Simulation Suite(Save waypoints) : https://blog.csdn.net/qq_5

    2024年01月24日
    浏览(60)
  • 我终于实现Moveit+gazbeo对机械臂的联合仿真控制了

          开发机械臂,别的问题都好商量,但是对于实体机械臂这个烧钱的东西来说,绝对是一大批开发者的拦路虎。方法总比困难多。对于没有实体机械臂只能进行仿真的人来说,gazebo可真是太香了。但是浏览了一众网上的的教程,一步一步跟着走了无数遍,最终面临的问题

    2024年01月18日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包