机器人学导论 二、正运动学,MDH法

机器人学导论 二、正运动学

  • 前言
  • 关节与连杆
    • 编号
  • 连杆参数
    • 连杆的描述
    • 连杆连接的描述
    • 关节变量
  • 连杆坐标系
    • 中间连杆坐标系建立
    • 首尾连杆坐标系建立
      • 首坐标系
      • 尾坐标系
    • 连杆参数与连杆坐标系
    • 连杆变换
  • MDH法使用步骤
  • 后记

前言

本篇学习机械臂的正运动学,MDH法。

关节与连杆

关节joint,连杆link,是机械臂的基本组成结构。

关节包括转动关节和移动关节,一般仅有一个自由度。

一个关节把相邻两连杆连接,n个关节把n+1个连杆连接起来,具有n个自由度。

编号

把固定基座作为第0个连杆,机械臂末端的连杆作为第n个连杆。

连杆参数

连杆的描述

两个相邻关节轴之间的公垂线的长度,称为连杆的长度。

两个相邻关节轴之间形成的角度,称为连杆的转角。
机器人学导论 二、正运动学,MDH法_第1张图片
上图中,连杆i-1的长度是其近端关节轴i-1与远端关节轴i之间的公垂线长度 a i − 1 a_{i-1} ai1

连杆i-1的转角是其近端关节轴i-1与远端关节轴i形成的角度 α i − 1 \alpha_{i-1} αi1,至于角度的正负号,可以根据后面建立坐标系时再确定。

连杆连接的描述

两个相邻连杆之间的距离,称为连杆偏距。

两个相邻连杆绕公共关节轴旋转的夹角,称为关节角。

机器人学导论 二、正运动学,MDH法_第2张图片
上图中,关节i是连杆i-1和连杆i的公共关节。

由于实际的连杆是弯曲的,可以将公垂线段 a i − 1 a_{i-1} ai1 a i a_i ai 看作代替曲连杆的直连杆i-1,i

直连杆i-1,i之间的距离是关节i的连杆偏距 d i d_i di

直连杆i-1沿关节轴i旋转到直连杆i的角度是关节角 θ i \theta_i θi

关节变量

一个连杆可以使用上面的连杆长度、连杆转角、连杆偏距、关节角四个参数确定。

对于转动关节,关节角可变,另三个参数不变。

对于移动关节,连杆偏距可变,另三个参数不变。

可变的参数称为关节变量。

连杆坐标系

连杆坐标系用于描述相邻连杆之间的相对位置关系。

连杆坐标系编号与连杆编号相同,称为 { i } \{i\} {i}

中间连杆坐标系建立

为连杆i建立坐标系:

以关节轴i作为Z轴,以连杆iZ轴的交点作为原点,以连杆i作为X轴指向关节轴i+1,以右手定则确定Y轴

例外:如果连杆i的长度 a i = 0 a_i=0 ai=0(此时连杆i,i+1Z轴相交),以交点作为原点,以两个Z轴所在平面的垂线作为X轴,方向可以有两种选择,而 α i \alpha_i αi的符号就由X轴方向决定。

每个坐标轴的建立都要满足右手定则。
机器人学导论 二、正运动学,MDH法_第3张图片
上图中,可以按这个顺序来建立坐标系:

首先找到所有的关节轴i-1,i

然后确定坐标系 { i − 1 } \{i-1\} {i1},以关节轴作为 Z ^ i − 1 \hat Z_{i-1} Z^i1,直连杆i-1作为 X ^ i − 1 \hat X_{i-1} X^i1,再右手定则确定 Y ^ i − 1 \hat Y_{i-1} Y^i1

然后确定坐标系 { i } \{i\} {i}

首尾连杆坐标系建立

对于首尾连杆0,n,有特殊的建系方法。

首坐标系

坐标系 { 0 } \{0\} {0}在基座上,一般作为参考系。

第一个关节变量为0时,规定坐标系 { 0 } \{0\} {0} { 1 } \{1\} {1}重合。

当第一个关节为转动关节, d 1 = 0 d_1=0 d1=0;第一个关节为移动关节, θ 1 = 0 \theta_1=0 θ1=0

尾坐标系

坐标系 { n } \{n\} {n}的原点和x轴方向可以任意选取,但要尽量使得连杆参数为0。

连杆参数与连杆坐标系

按照上面的建系方法,可以把连杆参数重新定义:

  • a i a_i ai连杆长度:沿 X ^ i \hat X_i X^i,从 Z ^ i \hat Z_i Z^i移动到 Z ^ i + 1 \hat Z_{i+1} Z^i+1的距离
  • α i \alpha_i αi连杆扭转角:绕 X ^ i \hat X_i X^i轴,把 Z ^ i \hat Z_i Z^i旋转到 Z ^ i + 1 \hat Z_{i+1} Z^i+1的角度
  • d i d_i di连杆偏距:沿 Z ^ i \hat Z_i Z^i,从 X ^ i − 1 \hat X_{i-1} X^i1移动到 X ^ i 1 \hat X_{i1} X^i1的距离
  • θ i \theta_i θi关节角:绕 Z ^ i \hat Z_i Z^i轴,把 X ^ i − 1 \hat X_{i-1} X^i1旋转到 X ^ i \hat X_{i} X^i的角度

设定 a i > 0 a_i>0 ai>0,其它参数可正可负。

上面建立连杆坐标系和连杆参数的方式称为MDH法(Modified Denavit–Hartenberg)。

DH法建立的坐标系并不是唯一的。

连杆变换

连杆参数可用于相邻杆之间的相对位姿计算。
机器人学导论 二、正运动学,MDH法_第4张图片
上图中,考虑坐标系 { i − 1 } , { i } \{i-1\},\{i\} {i1},{i}之间的变换 i − 1 i T ^i_{i-1}T i1iT,建立中间坐标系 { P } , { Q } , { R } \{P\},\{Q\},\{R\} {P},{Q},{R},则有:
i i − 1 T =   R i − 1 T   Q R T   P Q T   i P T ^{i-1}_iT = \ ^{i-1}_RT \ ^R_{Q}T \ ^Q_PT \ ^P_{i}T ii1T= Ri1T QRT PQT iPT
上面的变换,可以看作是把 X ^ i \hat X_i X^i变换为 X ^ i − 1 \hat X_{i-1} X^i1,则有:
i i − 1 T = R X ( α i − 1 ) D X ( a i − 1 ) R Z ( θ i ) D Z ( d i ) ^{i-1}_iT = R_X(\alpha_{i-1})D_X(a_{i-1})R_Z(\theta_i)D_Z(d_i) ii1T=RX(αi1)DX(ai1)RZ(θi)DZ(di)
或者将每个中间坐标系的变换都写出来:
i P T = [ 1 0 0 0 0 1 0 0 0 0 1 d i 0 0 0 1 ]   P Q T = [ cos ⁡ θ 1 − sin ⁡ θ 1 0 0 sin ⁡ θ 1 cos ⁡ θ 1 0 0 0 0 1 0 0 0 0 1 ]   Q R T = [ 1 0 0 0 0 1 0 a i − 1 0 0 1 0 0 0 0 1 ]   R i − 1 T = [ 1 0 0 0 0 cos ⁡ α i − 1 − sin ⁡ α i − 1 0 0 sin ⁡ α i − 1 cos ⁡ α i − 1 0 0 0 0 1 ] ^P_iT = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & d_i \\ 0 & 0 & 0 & 1 \\ \end{bmatrix} \\ \quad \\ \ ^Q_PT = \begin{bmatrix} \cos \theta_1 & -\sin \theta_1 & 0 & 0 \\ \sin \theta_1 & \cos \theta_1 & 0 & 0 \\ 0 & 0 & 1 &0 \\ 0 & 0 & 0 & 1 \\ \end{bmatrix} \\ \quad \\ \ ^R_QT = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & a_{i-1} \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{bmatrix} \\ \quad \\ \ ^{i-1}_RT = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & \cos \alpha_{i-1} & -\sin \alpha_{i-1} & 0 \\ 0 & \sin \alpha_{i-1} & \cos \alpha_{i-1} & 0 \\ 0 & 0 & 0 & 1 \\ \end{bmatrix} \\ \quad \\ iPT=10000100001000di1 PQT=cosθ1sinθ100sinθ1cosθ10000100001 QRT=1000010000100ai101 Ri1T=10000cosαi1sinαi100sinαi1cosαi100001
得到 i i − 1 T ^{i-1}_iT ii1T的一般形式:
机器人学导论 二、正运动学,MDH法_第5张图片

MDH法使用步骤

  1. 找到所有关节轴;
  2. 按顺序依次建立中间连杆的坐标系;
  3. 确定首尾坐标系;
  4. 写出DH参数;
  5. 计算正运动学矩阵。

后记

本篇是机器人学中的正运动学,采用的是MDH法。

后续会有Matlab示例编程。

你可能感兴趣的:(视觉伺服学习,线性代数,几何学)