文章目录
- Denavit-Hartenberg方法
-
- [1.1 修正DH参数------定义关节i的轴为 z i z_i zi轴(最后一个坐标系{n}在关节n处)](#1.1 修正DH参数——定义关节i的轴为 z i z_i zi轴(最后一个坐标系{n}在关节n处))
-
- [1.1.1 连杆坐标系定义](#1.1.1 连杆坐标系定义)
- [1.1.2 连杆参数在连杆坐标系中的表示方法](#1.1.2 连杆参数在连杆坐标系中的表示方法)
- [1.1.3 建立连杆坐标系的步骤](#1.1.3 建立连杆坐标系的步骤)
- [1.1.4 连杆变换的推导](#1.1.4 连杆变换的推导)
- [1.2. 标准DH参数------定义关节i的轴为 z i − 1 z_{i-1} zi−1轴(最后一个坐标系{n}在连杆n的末端)](#1.2. 标准DH参数——定义关节i的轴为 z i − 1 z_{i-1} zi−1轴(最后一个坐标系{n}在连杆n的末端))
-
- [1.2.1 连杆坐标系定义](#1.2.1 连杆坐标系定义)
- [1.2.2 连杆参数在连杆坐标系中的表示方法](#1.2.2 连杆参数在连杆坐标系中的表示方法)
- [1.2.3 建立连杆坐标系的步骤](#1.2.3 建立连杆坐标系的步骤)
- [3.1.2.4 连杆变换的推导](#3.1.2.4 连杆变换的推导)
- [1.3 MDH和SDH两者对比](#1.3 MDH和SDH两者对比)
-
- [1.3.1 平面3R机器人](#1.3.1 平面3R机器人)
Denavit-Hartenberg方法
1.1 修正DH参数------定义关节i的轴为 z i z_i zi轴(最后一个坐标系{n}在关节n处)
1.1.1 连杆坐标系定义
-
(a) 运动链中间位置连杆坐标系{ i {i} i}的定义
固连在连杆i上的固连坐标系称为坐标系{ i i i}
O i O_i Oi原点:关节轴i和i+1的交点或关节轴i和i+1公垂线与关节轴i的交点
Z ^ i \hat{Z}_i Z^i轴:关节轴 i 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的公垂线 a i a_i ai方向由关节 i i i指向关节 i + 1 i+1 i+1,当 a i = 0 a_i=0 ai=0时, X ^ i \hat{X}_i X^i垂直于 Z ^ i \hat{Z}i Z^i和 Z ^ i + 1 \hat{Z}{i+1} Z^i+1所在的平面
Y ^ i \hat{Y}_i Y^i轴:根据右手法则确定
α i \alpha_i αi:根据右手定则,绕 X ^ i \hat{X}i X^i轴从 Z ^ i − 1 \hat{Z}{i-1} Z^i−1到 Z ^ i \hat{Z}_i Z^i
-
(b) 运动链首段连杆{ 0 0 0}坐标系的定义( Z ^ 0 \hat{Z}_0 Z^0与 Z ^ 1 \hat{Z}_1 Z^1同向)
固连于机器人基座(即连杆0)上的坐标系为坐标系{0},该坐标系可做参考坐标系。
设定 Z ^ 0 \hat{Z}_0 Z^0沿关节轴1的方向,当关节变量1( d 1 d_1 d1或 θ 1 \theta_1 θ1)为0时,设定参考坐标系{0}与{1}重合。总有 a 0 = α 0 = 0 a_0=\alpha_0=0 a0=α0=0 ,当关节1为移动关节时, θ 1 = 0 \theta_1=0 θ1=0,当关节1为转动关节时, d 1 = 0 d_1=0 d1=0
(c) 运动链末端连杆{ n n n}坐标系的定义( X ^ N \hat{X}N X^N和 X ^ N − 1 \hat{X}{N-1} X^N−1同向)
{n}坐标原点选取在 X ^ N − 1 \hat{X}_{N-1} X^N−1轴与关节轴n的交点位置,使得 d n = 0 d_n=0 dn=0,总有 a n = α n = 0 a_n=\alpha_n=0 an=αn=0
对于转动关节n,始终有 d n = 0 d_n=0 dn=0,当 θ n = 0 \theta_n=0 θn=0时,设定 X ^ N \hat{X}N X^N和 X ^ N − 1 \hat{X}{N-1} X^N−1同向,选取坐标原点位置为 X ^ N − 1 \hat{X}_{N-1} X^N−1轴与关节轴n的交点位置。
对于移动关节n,始终有 θ n = 0 \theta_n=0 θn=0,当 d n = 0 d_n=0 dn=0时,设定 X ^ N \hat{X}N X^N和 X ^ N − 1 \hat{X}{N-1} X^N−1同向,选取坐标原点位置为 X ^ N − 1 \hat{X}_{N-1} X^N−1轴与关节轴n的交点位置。
1.1.2 连杆参数在连杆坐标系中的表示方法
如果按照上述方法将两岸坐标系固定于连杆上时,连杆参数可以定义为
-
a i − 1 a_{i-1} ai−1:沿 X ^ i − 1 \hat{X}{i-1} X^i−1轴,从 Z ^ i − 1 \hat{Z}{i-1} Z^i−1移动到 Z ^ i \hat{Z}_{i} Z^i的距离,通常取正值;
-
α i − 1 \alpha_{i-1} αi−1:绕 X ^ i − 1 \hat{X}{i-1} X^i−1轴,从 Z ^ i − 1 \hat{Z}{i-1} Z^i−1旋转到 Z ^ i \hat{Z}_{i} Z^i的角度,采用右手法则判断正负;
-
d i d_i di:沿 Z ^ i \hat{Z}{i} Z^i轴,从 X ^ i − 1 \hat{X}{i-1} X^i−1移动到 X ^ i \hat{X}_{i} X^i的距离;
-
θ i \theta_i θi:绕 Z ^ i \hat{Z}{i} Z^i轴,从 X ^ i − 1 \hat{X}{i-1} X^i−1旋转到 X ^ i \hat{X}_{i} X^i的角度,采用右手法则判断正负;
1.1.3 建立连杆坐标系的步骤
现根据关节轴确定Z轴,再跟相邻关节轴之间的公垂线确定X轴。具体步骤如下:
-
找出各关节轴, 并标出(或画出)这些轴线的延长线。 在下面的步骤2至步骤5中,仅考虑两个相邻的轴线(关节轴 i i i和 i + 1 i+1 i+1);
-
找出关节轴 i i i和 i + 1 i+1 i+1之间的公垂线 a i a_i ai或关节轴 i i i和 i + 1 i+1 i+1的交点, 以关节轴 i i i和 i + 1 i+1 i+1的交点或公垂线 a i a_i ai与关节轴 i i i的交点作为连杆坐标系{ i i i}的原点;
-
规定 Z ^ i \hat{Z}_i Z^i轴沿关节轴i的指向;
-
规定 X ^ i \hat{X}_i X^i轴沿公垂线 a i a_i ai的指向, 如果关节轴i和i+1相交, 则规定 X ^ i \hat{X}_i X^i轴垂直于关节轴i和i+1所在的平面;
-
按照右手定则确定 Y ^ i \hat{Y}_i Y^i轴;
-
当第一个关节变量为 0 时, 规定坐标系{0}和{1}重合。 对于坐标系{N}, 其原点和的 X ^ N \hat{X}_N X^N方向可以任意选取。 但是在选取时, 通常尽量使连杆参数为0。
1.1.4 连杆变换的推导
通过定义三个中间坐标系{P},{Q},{R}建立坐标系{i}相对于坐标系{i-1}的变换:
{i}沿 Z ^ i \hat{Z}_i Z^i平移 d i d_i di得到{P},{P}绕 Z ^ P \hat{Z}_P Z^P旋转 θ i \theta_i θi得到{Q},{Q}沿 X ^ Q \hat{X}Q X^Q平移 a i − 1 a{i-1} ai−1得到{R},{R}绕 X ^ R \hat{X}R X^R旋转 α i − 1 \alpha{i-1} αi−1得到{i-1}
KaTeX parse error: \tag works only in display equations
其中,
KaTeX parse error: \tag works only in display equations
1.2. 标准DH参数------定义关节i的轴为 z i − 1 z_{i-1} zi−1轴(最后一个坐标系{n}在连杆n的末端)
1.2.1 连杆坐标系定义
-
(a)运动链中间位置连杆坐标系{ i {i} i}的定义
Z ^ i \hat{Z}i Z^i轴:关节轴 i + 1 i+1 i+1
X ^ i \hat{X}i X^i轴:沿轴 z i − 1 z{i-1} zi−1和轴 z i z_i zi的公垂线 a i a_i ai方向由关节 i i i指向关节 i + 1 i+1 i+1,当 a i = 0 a_i=0 ai=0时,即轴 z i − 1 z{i-1} zi−1和轴 z i z_i zi相交时, X ^ i \hat{X}i X^i垂直于 Z ^ i − 1 \hat{Z}{i-1} Z^i−1和 Z ^ i \hat{Z}_{i} Z^i所在的平面
Y ^ i \hat{Y}_i Y^i轴:根据右手法则确定
O i O_i Oi点:在关节 i + 1 i+1 i+1的轴 Z i Z_i Zi轴与公垂线 a i a_i ai的交点
-
(b)运动链首段连杆{ 0 0 0}坐标系的定义
设定 Z ^ 0 \hat{Z}_0 Z^0沿关节轴1的方向, O 0 O_0 O0和 X ^ 0 \hat{X}_0 X^0可以任意选择
-
(c)运动链末端连杆末端执行器手部{ n n n}坐标系的定义
对坐标系{n}而言,由于没有关节n+1,但x_n轴必须与轴 z n − 1 z_{n-1} zn−1垂直,但 z n z_n zn不是唯一定义的,当关节n是转动的, z n z_n zn依照 z n − 1 z_{n-1} zn−1的方向设置
1.2.2 连杆参数在连杆坐标系中的表示方法
如果按照上述方法将连杆坐标系固定于连杆上时,下标为i的连杆参数可以由坐标系 i i i和坐标系 i − 1 i-1 i−1的位置和方向定义为
-
a i a_{i} ai:沿 X ^ i \hat{X}{i} X^i轴,从 Z ^ i − 1 \hat{Z}{i-1} Z^i−1移动到 Z ^ i \hat{Z}_{i} Z^i的距离,Link_i的长度,通常取正值;
-
α i \alpha_{i} αi:绕 X ^ i \hat{X}{i} X^i轴,从 Z ^ i − 1 \hat{Z}{i-1} Z^i−1旋转到 Z ^ i \hat{Z}_{i} Z^i的角度,采用右手法则判断正负;
-
d i d_i di:沿 Z ^ i − 1 \hat{Z}{i-1} Z^i−1轴,从 X ^ i − 1 \hat{X}{i-1} X^i−1移动到 X ^ i \hat{X}{i} X^i的距离,即 x i − 1 x{i-1} xi−1和 x i x_i xi与 z i − 1 z_{i-1} zi−1轴交点的距离;
-
θ i \theta_i θi:绕 Z ^ i − 1 \hat{Z}{i-1} Z^i−1轴,从 X ^ i − 1 \hat{X}{i-1} X^i−1旋转到 X ^ i \hat{X}_{i} X^i的角度,采用右手法则判断正负;
4 个参数中有2 个( a i a_i ai和 α i \alpha_i αi〉始终为常数,只取决于由连杆i建立的相继关节之间的几何连接关系。其他两个参数中只有一个是变量,取决于连接连杆i-1 和连杆i 的关节的类型。详述如下:
- 如果关节i 是转动型的, 则变最为 θ i \theta_i θi。
- 如果关节i 是移动型的,则变量为 d i d_i di。
1.2.3 建立连杆坐标系的步骤
3.1.2.4 连杆变换的推导
i i − 1 T ( q i ) = R Z ( θ i ) D Z ( d i ) R Z ( α i ) D X ( a i ) = [ c θ i − s θ i 0 0 s θ i c θ i 0 0 0 0 1 d i 0 0 0 1 ] [ 1 0 0 a i 0 c α i − s α i 0 0 s α i c α i 0 0 0 0 1 ] = [ c θ i − s θ i c α i s θ i s α i a i c θ i s θ i c θ i c α i − c θ i s α i a i s θ i 0 s α i c α i d i 0 0 0 1 ] \begin{aligned} i^{i-1}T(q_i)&=R_Z(\theta_i)D_Z(d_i)R_Z(\alpha{i})D_X(a_{i})\\ & \left.=\quad\left[\begin{array}{cccc}c_{\theta_i} & -s_{\theta_i} & 0 & 0 \\ s_{\theta_i} & c_{\theta_i} & 0 & 0 \\ 0 & 0 & 1 & d_i \\ 0 & 0 & 0 & 1\end{array}\right.\right] \ \left[\begin{array}{cccc}1 & 0 & 0 & a_i \\ 0 & c_{\alpha_i} & -s_{\alpha_i} & 0 \\ 0 & s_{\alpha_i} & c_{\alpha_i} & 0 \\ 0 & 0 & 0 & 1\end{array}\right] \\ & \left.=\quad\left[\begin{array}{cccc}c_{\theta_i} & -s_{\theta_i}c_{\alpha_i} & s_{\theta_i}s_{\alpha_i} & a_ic_{\theta_i} \\ s_{\theta_i} & c_{\theta_i}c_{\alpha_i} & -c_{\theta_i}s_{\alpha_i} & a_is_{\theta_i} \\ 0 & s_{\alpha_i} & c_{\alpha_i} & d_i \\ 0 & 0 & 0 & 1\end{array}\right.\right]\end{aligned} ii−1T(qi)=RZ(θi)DZ(di)RZ(αi)DX(ai)= cθisθi00−sθicθi00001000di1 10000cαisαi00−sαicαi0ai001 = cθisθi00−sθicαicθicαisαi0sθisαi−cθisαicαi0aicθiaisθidi1
从坐标系 i 到坐标系i - 1 的变换矩阵是一个只与关节变量 q i q_i qi有关的函数,如果是
转动关节则变量为 θ i \theta_i θi, 如果是移动关节则变量为 d i d_i di。
1.3 MDH和SDH两者对比
1.3.1 平面3R机器人
- 标准DH参数
- 修正DH参数
待补充