机器人学回炉重造(1):正运动学、标准D-H法与改进D-H法的区别与应用(附ABB机械臂运动学建模matlab代码)

写在前面

学习代码都记录在个人github上,欢迎关注~

书读百遍,其义自见。

要想当一名合格的机器人工程师,机器人学就是base_link,看多少遍都不为过。现在回炉重造一下,记录一下学习笔记(以照片形式,打公式太费劲了),防止以后笔记本不见了。

正运动学

首先是旋转矩阵的理解。

在这里插入图片描述

在理解旋转矩阵的基础之上,理解一些姿态的表现方式,例如欧拉角等。

然后进入最基本的工作,计算正运动学。正运动学就是根据关节角度,计算机器人工具坐标系(末端执行器end_effector)在机器人基座标系(base_link)下的位姿。

D-H建模方法

我这里只介绍一种,Modified D-H法,即改进D-H参数法,另外还有标准D-H参数法,我就不做笔记了。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结改进D-H参数法建立的基本顺序及四个参数的具体定义。

在这里插入图片描述

两个简单的例子。Xi在Zi-1和Zi的公法线上,方向人为选择,最终只会影响α角的正负。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实例

在这里插入图片描述

建立改进D-H坐标系

以ABB一款机械臂为例,采用改进D-H参数法。该机械臂6个关节都是转动关节,前3个关节确定手腕参考点的位置,后3个关节确定手腕的方位。和大多数工业机器人一样,后3个关节轴线交于一点,因此将该点作为手腕的参考点,也选作为连杆坐标系{4},{5}和{6}的原点。在改进D-H坐标系中,{0}和{1}一般重合,O1为轴1和轴2公法线在轴1上的交点,此时关节1和关节2在z方向上的偏置没有体现出来,对于整个机械臂各关节的相对运动来说并没有影响。
先建立改进D-H坐标系如下

在这里插入图片描述

改进D-H参数表

根据坐标系和上文提到的各个参数量的具体定义,填写D-H参数表如下

iαi-1ai-1diθi
1000θ1
2pi/2L1=3200θ2
30L3=9750θ3
4pi/2L5=200L6=887θ4
5-pi/200θ5
6pi/200θ6

Matlab仿真程序(Modified DH)

% Modified DH
% ABB robot
clear;
clc;
th(1) = 0; d(1) = 0; a(1) = 0; alp(1) = 0;
th(2) = 0; d(2) = 0; a(2) = 0.320; alp(2) = pi/2;   
th(3) = 0; d(3) = 0; a(3) = 0.975; alp(3) = 0;
th(4) = 0; d(4) = 0.887; a(4) = 0.2; alp(4) = pi/2;
th(5) = 0; d(5) = 0; a(5) = 0; alp(5) = -pi/2;
th(6) = 0; d(6) = 0; a(6) = 0; alp(6) = pi/2;
% DH parameters  th     d    a    alpha  sigma
L1 = Link([th(1), d(1), a(1), alp(1), 0], 'modified');
L2 = Link([th(2), d(2), a(2), alp(2), 0], 'modified');
L3 = Link([th(3), d(3), a(3), alp(3), 0], 'modified');
L4 = Link([th(4), d(4), a(4), alp(4), 0], 'modified');
L5 = Link([th(5), d(5), a(5), alp(5), 0], 'modified');
L6 = Link([th(6), d(6), a(6), alp(6), 0], 'modified');
robot = SerialLink([L1, L2, L3, L4, L5, L6]); 
robot.name='ABBRobot-6-dof';
robot.display() 
% Forward Pose Kinematics
theta = [0, 120, -15, 0, 0, 0]*pi/180;
robot.teach();
robot.plot(theta); 
t0 = robot.fkine(theta)    %末端执行器位姿

运行结果
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

建立标准D-H坐标系

和改进D-H参数法不同的是:

  • 改进D-H参数法α和a的下标均为i-1,而标准D-H中两个参数的下标均为i;
  • 改进D-H中Xi是Zi和Zi+1的公垂线,而在标准D-H中Xi是Zi-1和Zi的公垂线;
  • 在使用两种方法时,一般先使各θi角为0进行建模;
  • 标准D-H中各参数定义如下:
    • αi angle(Zi-1, Zi)about Xi
    • ai distance ({i-1}, {i} origin) along Xi,因为建模时一般让theta=0,那么xi和xi-1实际上是一个方向
    • di distance (Xi-1, Xi) along Zi-1
    • θi angle (Xi-1, Xi) about Zi
      在这里插入图片描述
      在这里插入图片描述

建立标准D-H坐标系如下
在这里插入图片描述

标准D-H参数表

iαiaidiθi
1pi/20.3200.450θ1
200.9750θ2
3pi/20.2000θ3
4-pi/200.887θ4
5pi/200θ5
6000.200θ6

Matlab仿真程序(Standard D-H)

% Standard DH
% ABB robot
clear;
clc;
th(1) = 0; d(1) = 0.450; a(1) = 0.320; alp(1) = pi/2;
th(2) = 0; d(2) = 0; a(2) = 0.975; alp(2) = 0;   
th(3) = 0; d(3) = 0; a(3) = 0.200; alp(3) = pi/2;
th(4) = 0; d(4) = 0.887; a(4) = 0; alp(4) = -pi/2;
th(5) = 0; d(5) = 0; a(5) = 0; alp(5) = pi/2;
th(6) = 0; d(6) = 0.200; a(6) = 0; alp(6) = 0;
% DH parameters  th     d    a    alpha  sigma
L1 = Link([th(1), d(1), a(1), alp(1), 0]);
L2 = Link([th(2), d(2), a(2), alp(2), 0]);
L3 = Link([th(3), d(3), a(3), alp(3), 0]);
L4 = Link([th(4), d(4), a(4), alp(4), 0]);
L5 = Link([th(5), d(5), a(5), alp(5), 0]);  
L6 = Link([th(6), d(6), a(6), alp(6), 0]);
robot = SerialLink([L1, L2, L3, L4, L5, L6]); 
robot.name='ABBRobot-6-dof';
robot.display() 
theta = [0, 120, -15, 0, 0, 0]*pi/180;
robot.teach();
robot.plot(theta); 
t = robot.fkine(theta)    %末端执行器位姿

运行结果
从两个方法的末端姿态计算结果可以看出,不完全一致,这是因为两个方法的基座标位置不一样,并且改进dh法建模坐标系{6}没有建到工具坐标系上,而是在手腕位置,而标准dh法则是建到了末端工具坐标系上,这也就直接导致在[0 0 0 0 0 0]末端姿态的pz不一样,转换关系为0.887-0.45+0.2=0.637。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

相关推荐
机器人学导论——分析、系统及应用 【原 书 名】 Introduction to Robotics:Analysis,Systems,Applications【原出版社】 Prentice Hall/Pearson【作 者】(美)Saeed B.Niku 【译 者】 孙富春 朱纪洪 刘国栋【丛 书 名】 国外计算机科学教材系列 【内容简介】  本书系统地介绍了机器人的基本组成和工作原理。全书共分9章,其中第1章介绍必要的基础知识,如机器人的发展历史、机器人的组成与特点、机器人语言及机器人应用等。第2章和第3章分析机器人的运动学。第4章分析机器人的动力学。第5章讨论机器人在关节空间和直角坐标空间的路径和轨迹规划。第6章介绍机器人的各种驱动装置,如液压和气动装置、直流伺服电机及步进电机等。第7章讨论用于机器人的各种传感器。第8章介绍机器人视觉系统。第9章介绍用于机器人的模糊控制方。同时,本书每章后面均有参考文献和习题。本书内容丰富,反映了机器人学的基础知识以及与其相关的先进理论和技术。该书可作为机械、自动化及计算机等专业本科高年级学生或研究生的教材,也可供从事机器人学研究的教师或其他人员学习和参考。本书特点 ·全面介绍了机器人运动学、动力学和重要的机器人子系统 ·介绍了微处理器和机械电子机器人的应用,并用整章篇幅讨论了视觉系统的图像处理和图像分析 ·包含了面向应用的设计项目、大量的举例以及习题作业 ·在第2章的末尾介绍了一个实际的设计项目。并在后续各章末尾均要求读者将所学知识运用于该设计实例,其用意在于使读者学习完本书后,能设计出一个完整的机器人本书可用于高年级本科生或一年级研究生的机器人课程,对于实践工程师们也是一本极好的参考书,可以帮助他们完成机器人的设计和开发工作。
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页