机器人——改进的D-H参数法

改进的D-H参数法

特点:坐标系{ iii }的轴 ziz_{i}zi 指向关节 iii 的旋转轴。

坐标系建立规则:

(1)关节 iii 和 i+1i+1i+1 的交点或公垂线与关节轴 iii 的交点作为坐标系{ iii }的原点;

(2) ziz_{i}zi 轴为关节 轴 iii 的指向;

(3) xix_{i}xi 轴沿公垂线的指向或垂直于关节轴 ziz_{i}zi 和 zi+1z_{i+1}zi+1 所在的平面(关节轴 iii 和 i+1i+1i+1 相交);

(3) yiy_{i}yi 轴根据右手定则确定;

D-H参数定义

见下图:则

(1) αi\alpha_{i}αi :绕 xix_{i}xi 轴由 ziz_{i}zi 转向 zi+1z_{i+1}zi+1 轴的角度;//这里的 αi\alpha_{i}αi在建立D-H参数时写为αi−1\alpha_{i-1}αi−1,即αi−1\alpha_{i-1}αi−1 :绕 xi−1x_{i-1}xi−1 轴由 zi−1z_{i-1}zi−1 转向 ziz_{i}zi 轴的角度

(2) aia_{i}ai :沿 xix_{i}xi 轴由 ziz_{i}zi 移向 zi+1z_{i+1}zi+1 轴的距离;//这里的 aia_{i}ai在建立D-H参数表时写为 ai−1a_{i-1}ai−1,即 ai−1a_{i-1}ai−1 :沿 xi−1x_{i-1}xi−1 轴由 zi−1z_{i-1}zi−1 移向 ziz_{i}zi 轴的距离

(3) θi\theta_{i}θi :绕 ziz_{i}zi 轴由 xi−1x_{i-1}xi−1 转向 xix_{i}xi 轴的角度;

(4) did_{i}di :沿 ziz_{i}zi 轴由 xi−1x_{i-1}xi−1 移向 xix_{i}xi 轴的距离;

如图为机器人的两个相邻连杆,即第 i−1i-1i−1 关节,然后是 i−1i-1i−1 连杆、第 iii 关节、第 iii 连杆、......,按照图中的坐标系设定,坐标系{ Ai−1A_{i-1}Ai−1 }固连在连杆 i−1i-1i−1 上,坐标系{ AiA_{i}Ai }固连在连杆 iii 上,现在我们要求出从坐标系{ Ai−1A_{i-1}Ai−1 }向坐标系{ AiA_{i}Ai }的转换矩阵,从图中看,可以分解为以下四个步骤完成:

步骤1:坐标系初始位于坐标系{ Ai−1A_{i-1}Ai−1 },绕 Xi−1X_{i-1}Xi−1 轴旋转 αi−1α_{i-1}αi−1 ,使 ZZZ 轴与 ZiZ_{i}Zi 轴平行;

步骤2:坐标系沿 Xi−1X_{i-1}Xi−1 轴平移 ai−1a_{i-1}ai−1 ,使 ZZZ 轴与 ZiZ_{i}Zi 轴共线;

步骤3:坐标系绕 Zi−1Z_{i-1}Zi−1 (同时也是 ZiZ_{i}Zi )旋转 θiθ_{i}θi ,使 XXX 轴与 XiX_{i}Xi 轴平行;

步骤4:坐标系沿 Zi−1Z_{i-1}Zi−1 (同时也是 ZiZ_{i}Zi )平移 did_{i}di ,此时已变换到{ AiA_{i}Ai }。

用齐次矩阵形式描述,由于四个步骤均是在变换后的坐标系下进行下一个变换,所以矩阵右乘,我们就得到坐标系{ Ai−1A_{i-1}Ai−1 }向坐标系{ AiA_{i}Ai }的变换矩阵:
ii−1T=Rot(X,αi−1)Trans(ai−1,0,0)Rot(Z,θi)Trans(0,0,di) ^{i-1}iT=Rot(X,α{i-1})Trans(a_{i-1},0,0)Rot(Z,θ_{i})Trans(0,0,d_{i}) ii−1T=Rot(X,αi−1)Trans(ai−1,0,0)Rot(Z,θi)Trans(0,0,di)

式中: RotRotRot 为旋转矩阵, TransTransTrans 为平移矩阵。 R(X,θ)=10000cosθ−sinθ00sinθcosθ00001R(X,θ)=\left\\begin{matrix} 1\&0\&0\&0\\\\ 0\&cosθ\&-sinθ\&0\\\\ 0\&sinθ\&cosθ\&0\\\\ 0\&0\&0\&1\\\\ \\end{matrix}\\rightR(X,θ)= 10000cosθsinθ00−sinθcosθ00001 , R(Z,θ)=cosθ−sinθ00sinθcosθ0000100001R(Z,θ)=\left\\begin{matrix} cosθ\&-sinθ\&0\&0\\\\ sinθ\&cosθ\&0\&0\\\\ 0\&0\&1\&0\\\\ 0\&0\&0\&1\\\\ \\end{matrix}\\rightR(Z,θ)= cosθsinθ00−sinθcosθ0000100001 , Trans(x,y,z)=100x010y001z0001Trans(x,y,z)=\left\\begin{matrix} 1\&0\&0\&x\\\\ 0\&1\&0\&y\\\\ 0\&0\&1\&z\\\\ 0\&0\&0\&1\\\\ \\end{matrix}\\rightTrans(x,y,z)= 100001000010xyz1

可计算出:
ii−1T=Rot(X,αi−1)Trans(ai−1,0,0)Rot(Z,θi)Trans(0,0,di) ^{i-1}iT=Rot(X,α{i-1})Trans(a_{i-1},0,0)Rot(Z,θ_{i})Trans(0,0,d_{i}) ii−1T=Rot(X,αi−1)Trans(ai−1,0,0)Rot(Z,θi)Trans(0,0,di)

=cos(θi)−sin(θi)0ai−1sin(θi)cos(αi−1)cos(θi)cos(αi−1)−sin(αi−1)−sin(αi−1)disin(θi)sin(αi−1)cos(θi)sin(αi−1)cos(αi−1)cos(αi−1)di0001 =\left\\begin{matrix} cos(θ_i)\&-sin(θ_i)\&0\&a_{i-1}\\\\ sin(θ_i)cos(α_{i-1})\&cos(θ_i)cos(α_{i-1})\&-sin(α_{i-1})\&-sin(α_{i-1})d_i\\\\ sin(θ_i)sin(α_{i-1})\&cos(θ_i)sin(α_{i-1})\&cos(α_{i-1})\&cos(α_{i-1})d_i\\\\ 0\&0\&0\&1\\\\ \\end{matrix}\\right = cos(θi)sin(θi)cos(αi−1)sin(θi)sin(αi−1)0−sin(θi)cos(θi)cos(αi−1)cos(θi)sin(αi−1)00−sin(αi−1)cos(αi−1)0ai−1−sin(αi−1)dicos(αi−1)di1

从而,最终我们就可以得到一个 nnn 自由度机器人从基坐标系{ A0A_0A0 }到末端坐标系{ AnA_nAn }的转换齐次矩阵:

n0T=10T21T...nn−1T ^0_nT=^0_1T^1_2T...^{n-1}_nT n0T=10T21T...nn−1T

得到 n0T^0_nTn0T 后,其矩阵 n0T=n0Rn0p0001^0_nT=\left\\begin{matrix} \& \&\^0_nR\& \&\^0_np\\\\ \&0\&0\&0\&1\\\\ \\end{matrix}\\rightn0T=0n0R00n0p1 的左上角3×3矩阵 n0R^0_nRn0R 即为末端在基坐标系中的旋转矩阵,向量 n0p^0_npn0p 即为末端在基坐标系中的空间位置坐标。

坐标系建立原则

以下以改进D-H法为准

1 基座连杆坐标系:定义为0号坐标系{ A0A_0A0 },它也是机器人的基坐标系,0号坐标系在基座上的位置和方向可任选,但一般 z0z_0z0 轴线与关节1的轴线 z1z_1z1 重合或相交。

Z轴确定

Z轴一定过连杆首端关节的旋转轴(或滑动轴);

X轴确定

X轴位置根据本坐标系的Z轴与下一个连杆固连坐标系的Z轴的关系确定,X轴方向任选,但一般指向下一个关节。

情况1:两关节Z轴既不平行也不相交,取两Z轴公垂线为X轴,方向一般指向下一个关节;

情况2:两关节Z轴平行,此时,两Z轴之间有无数条公垂线,可选与前一关节Z轴公垂线相交的一条公垂线,方向也是一般指向下一个关节

情况3:两关节Z轴相交,取两条Z轴的叉积(向量积)方向作为X轴,即取同时垂直于两条Z轴的直线作为X轴,此时X轴方向任选

Y轴确定

X轴和Z轴确定后,按右手定则确定Y轴。

还有一点要注意:D-H表是在确定了各连杆坐标系后对应建立的, 同一个机器人,坐标系建立不同,D-H表就不同
标准D-H方法

两者的区别是固连到连杆上的坐标系不同,以及变换顺序不同。

与前面介绍的改进D-H法比较,改进D-H法的坐标系是固连在每个连杆的首端,而标准D-H的坐标系固连在每个连杆的末端。

此时,同样也是分解为四个步骤,但变换顺序与改进D-H不同了:

1:坐标系初始位于坐标系{ AnA_{n}An },绕 znz_{n}zn 轴旋转 θn+1θ_{n+1}θn+1 ,使 xnx_nxn 轴与 xn+1x_{n+1}xn+1 轴平行;

2:坐标系沿 znz_{n}zn 轴平移 dn+1d_{n+1}dn+1 ,使 xnx_nxn 轴与 xn+1x_{n+1}xn+1 轴共线;

3:坐标系绕 xnx_{n}xn (同时也是 xn+1x_{n+1}xn+1 )旋转 αn+1α_{n+1}αn+1 ,使 znz_nzn 轴与 zn+1z_{n+1}zn+1 轴平行;

4:坐标系沿 xnx_{n}xn (同时也是 xn+1x_{n+1}xn+1 )平移 an+1a_{n+1}an+1 ,此时已变换到{ An+1A_{n+1}An+1 }。

对应的,其变换矩阵形式也不同,这里列出

n+1nT=Rot(X,θn+1)Trans(0,0,dn+1)Rot(X,αn+1)Trans(an+1,0,0) ^n_{n+1}T=Rot(X,θ_{n+1})Trans(0,0,d_{n+1})Rot(X,α_{n+1})Trans(a_{n+1},0,0) n+1nT=Rot(X,θn+1)Trans(0,0,dn+1)Rot(X,αn+1)Trans(an+1,0,0)

=cos(θn+1)−sin(θn+1)cos(αn+1)sin(θn+1)sin(αn+1)cos(θn+1)an+1sin(θn+1)cos(θn+1)cos(αn+1)−cos(θn+1)sin(αn+1)sin(θn+1)an+10sin(αn+1)cos(αn+1)dn+10001 =\left\\begin{matrix} cos(θ_{n+1})\&-sin(θ_{n+1})cos(α_{n+1})\&sin(θ_{n+1})sin(α_{n+1})\&cos(θ_{n+1})a_{n+1}\\\\ sin(θ_{n+1})\&cos(θ_{n+1})cos(α_{n+1})\&-cos(θ_{n+1})sin(α_{n+1})\&sin(θ_{n+1})a_{n+1}\\\\ 0\&sin(α_{n+1})\&cos(α_{n+1})\&d_{n+1}\\\\ 0\&0\&0\&1\\\\ \\end{matrix}\\right = cos(θn+1)sin(θn+1)00−sin(θn+1)cos(αn+1)cos(θn+1)cos(αn+1)sin(αn+1)0sin(θn+1)sin(αn+1)−cos(θn+1)sin(αn+1)cos(αn+1)0cos(θn+1)an+1sin(θn+1)an+1dn+11

不管哪种方法,原理是一致的,实际上只要弄懂了其中一种,另一种只是变个形式而已。我们一般采用改进D-H法。

改进型 D-H 参数法(Modified Denavit-Hartenberg,常称 MDH 或 Craig 约定)相比经典 D-H 参数法主要有以下优点:

  1. 消除奇异性问题

    在经典 D-H 中,当相邻关节轴线平行(αi−1=0\alpha_{i-1}=0αi−1=0 且 ai−1=0a_{i-1}=0ai−1=0)时,参数 did_idi 与 rir_iri(或 θi\theta_iθi 与 αi\alpha_iαi)的定义可能不唯一,导致同一机构有多组 D-H 参数。

    改进型 D-H 通过不同的坐标系建立规则,避免了这种奇异性,使参数定义在大多数情况下唯一。

  2. 更直观的连杆坐标系建立

    改进型 D-H 将坐标系 iii 固定在连杆 iii 的远端 (靠近关节 i+1i+1i+1),而不是近端(经典 D-H 是固定在 proximal end)。

    这样,连杆参数 ai,αia_i, \alpha_iai,αi 直接对应于连杆 iii 本身的长度和扭角,便于物理理解。

  3. 与许多教材和软件一致

    像 Craig、Corke(Robotics, Vision & Control 默认 MDH)、一些 MATLAB 机器人工具箱等,采用改进型 D-H,方便直接应用标准公式与代码。

  4. 便于处理树形或闭链机构

    由于参数定义唯一性强,在复杂机构(如人形机器人、并联机器人)建模时,不易因零参数重合而产生歧义。

  5. 变换矩阵顺序更统一

    改进型 D-H 的变换顺序通常为:
    i−1Ti=Rx(αi−1)⋅Dx(ai−1)⋅Rz(θi)⋅Dz(di) ^{i-1}T_i = R_x(\alpha_{i-1}) \cdot D_x(a_{i-1}) \cdot R_z(\theta_i) \cdot D_z(d_i) i−1Ti=Rx(αi−1)⋅Dx(ai−1)⋅Rz(θi)⋅Dz(di)

    而经典 D-H 是:
    i−1Ti=Rz(θi)⋅Dz(di)⋅Rx(αi−1)⋅Dx(ai−1) ^{i-1}T_i = R_z(\theta_i) \cdot D_z(d_i) \cdot R_x(\alpha_{i-1}) \cdot D_x(a_{i-1}) i−1Ti=Rz(θi)⋅Dz(di)⋅Rx(αi−1)⋅Dx(ai−1)

    两种在数学上等价,但改进型的顺序在某些推导中更符合"先绕 x 轴旋转/平移,再绕 z 轴旋转/平移"的物理装配思路。

相关推荐
牛肉在哪里1 天前
ros2 从零开始27 编写广播C++
开发语言·c++·机器人
winxp-pic1 天前
OpenVLA 技术综述
人工智能·机器人·openvla
田里的水稻1 天前
OE_永久配置网络_linux系统终端命令行ip_setting
人工智能·网络协议·机器人·运维开发
天天讯通1 天前
机器人外呼行业适用性分析
人工智能·机器人
沫儿笙1 天前
安川焊接机器人保护气智能节气阀
机器人
J_Xiong01171 天前
【WAM篇】18:LV-P(Large Video Planner)——把“视频“当作机器人的母语,14B 大基座如何用扩散强迫想象未来
机器人·wam
InHand云飞小白1 天前
智能制造中的5G工业路由器应用实践:从痛点到方案
5g·机器人·智能路由器·制造·工业路由器·工业物联网·5g路由器
J_Xiong01171 天前
【WAM篇】19:Dream2Flow——用现成视频模型“做梦“,把 3D 物体流变成开放世界的机器人指令
机器人·wam
J_Xiong01171 天前
【WAM篇】16:3DFlowAction——把光流从平面提升到立体,用“3D 流世界模型“驱动跨本体操作
机器人·wam
J_Xiong01171 天前
【WAM篇】01:UniPi——把“决策“变成“拍一段视频“的奠基之作
机器人·wam