当前位置:首页>资讯 >技术知识>【ABB】带连杆的ABB机器人正运动学计算

【ABB】带连杆的ABB机器人正运动学计算

2020-07-02 来源:JQRZX |责任编辑:小球球 浏览数:980 全球焊接网

核心提示:1. IRB1410 机器人为典型的带连杆的ABB机器人,J3电机如图所示。J3电机置于底部,可以减轻上部的机构重量2. 运动时,J3电机带动J3连杆。3轴,J3连杆,上臂和后端连杆构成如图的平行四边形结构。3. 所以,若2轴电机转

1. IRB1410 机器人为典型的带连杆的ABB机器人,J3电机如图所示。J3电机置于底部,可以减轻上部的机构重量

2. 运动时,J3电机带动J3连杆。3轴,J3连杆,上臂和后端连杆构成如图的平行四边形结构。

3. 所以,若2轴电机转动,但3轴电机不转动,此时3轴和大臂的夹角会变化(没有连杆的机器人,2轴电机转动,3轴电机不转动,3轴和大臂夹角不会变化)

以上两幅图片,3轴均为0度,但由于2轴转动,3轴与大臂夹角不一样

4. 对于不带连杆的机器人正运动学,可以通过dh参数转化为各个轴的位姿矩阵,将6个位姿矩阵右乘即可得到当前机器人末端的笛卡尔坐标,具体参见  机器人如何从各轴角度算出当前XYZ

5. 但对于带连杆机器人,2轴的变化会导致3轴与大臂夹角发生变化。由于平行四边形结构的缘故,实质3轴与大臂夹角变化刚好等于2轴变化角度的负数。

6. 故在位姿矩阵右乘时,只需在右乘到轴3 矩阵后,再右乘一个旋转矩阵,将夹角补偿回来即可。

7. 1410机器人DH参数如下

8. 针对1410类似带连杆机器人,机器人正运动学RAPID实现方法如下

 LOCALVAR num alpha{6}:=[0,-90,0,-90,90,90];

   LOCALVAR num a{6}:=[0,150,600,120,0,0];

   LOCALVAR num theta{6}:=[0,-90,0,0,-180,0];

LOCALVAR num d{6}:=[475,0,0,720,0,85];

!1410 机器人DH参数


VAR num no_dependent;

!3轴与大臂夹角

   PROC test_dh_pose()

       VAR num curr_angle{6}:=[0,0,0,0,0,0];

       VAR pose pose10{6};

       VAR pose pose_cal:=[[0,0,0],[1,0,0,0]];

       VAR jointtarget jtmp;

       jtmp:=CJointT();

       curr_angle{1}:=jtmp.robax.rax_1;

       curr_angle{2}:=jtmp.robax.rax_2;

       curr_angle{3}:=jtmp.robax.rax_3;

       curr_angle{4}:=jtmp.robax.rax_4;

       curr_angle{5}:=jtmp.robax.rax_5;

       curr_angle{6}:=jtmp.robax.rax_6;

       FOR i FROM 1 TO 6 DO

           IF i=3 THEN

               no_dependent:=-curr_angle{2};

             !夹角等于2轴运动的负数

           endif

           pose10{i}:=f_dh2pose(i,alpha{i},a{i},theta{i}+curr_angle{i},d{i});

       ENDFOR

       FOR i FROM 1 TO 6 DO

           pose_cal:=PoseMult(pose_cal,pose10{i});

       ENDFOR

ENDPROC


   FUNC pose f_dh2pose(num i,num alpha,num a,num theta,num d)

       VAR pose pose1:=[[0,0,0],[1,0,0,0]];

       pose1:=PoseMult(pose1,[[0,0,0],orientzyx(0,0,alpha)]);

       pose1:=PoseMult(pose1,[[a,0,0],orientzyx(0,0,0)]);

       pose1:=PoseMult(pose1,[[0,0,0],orientzyx(theta,0,0)]);

       pose1:=PoseMult(pose1,[[0,0,d],orientzyx(0,0,0)]);

      IF i=3 THEN

           pose1:=PoseMult(pose1,[[0,0,0],orientzyx(no_dependent,0,0)]);

       endif

       !针对轴3坐标系,需要再多乘一次旋转,将夹角补偿回来

       RETURN pose1;

   ENDFUNC

打赏
分享到:
0相关评论
阅读上文 >> 广东省重大专项车规级MEMS固态激光雷达研发项目启动仪式在镭神智能圆满召开
阅读下文 >> 中国(上海)机器视觉展visionchina展商名单公布

大家喜欢看的

  • 品牌
  • 资讯
  • 展会
  • 视频
  • 图片
  • 供应
  • 求购
  • 商城

版权与免责声明:

注明稿件来源的内容均为自动转载信息、企业用户或网友注册发布,本网转载出于传递更多信息的目的;如转载信息涉及版权问题,请及时联系网站客服,我们将第一时间对相关内容进行删除处理。同时对于资讯内容及用户评论等信息,本网并不表示赞同其观点或证实其内容的真实性;亦不承担任何法律责任。


本文地址:http://www.qqweld.com/news/show-1196.html

转载本站原创文章请注明来源:全球焊接网 或原稿来源。

推荐新闻

更多

微信“扫一扫”
即可分享此文章

友情链接

  • 旗下平台:货源网

  • 旗下平台:玩具网

2018-2023 QQWELD.COM All Rights Reserved 全球焊接网版权所有 丨 冀ICP备2024057666号-1
访问和使用全球焊接网,即表明您已完全接受和服从我们的用户协议。