SDH(标准DH)和MDH(改进DH)
本文介绍了标准DH建模和改进DH建模方法,并描述了两者的区别
改进DH坐标系建立如图1所示,标准DH坐标系建立如图2所示。改进DH和标准DH的主要区别为:
- 连杆坐标系建立的位置不同。SDH方法将连杆的坐标系固定在连杆的后端,MDH方法将连杆的坐标系固定在连杆的前端
- 变换的顺序不同。SDH方法的变换顺序为 d d d→ θ \theta θ→ a a a→ α \alpha α,MDH方法的变换顺序为 α \alpha α→ a a a→ θ \theta θ→ d d d。
SDH方法的变换矩阵为:
i
−
1
i
T
=
R
o
t
z
i
−
1
(
θ
i
)
T
r
a
n
s
z
i
−
1
(
d
i
)
T
r
a
n
s
x
i
(
a
i
)
R
o
t
x
i
(
α
i
)
=
[
c
o
s
θ
i
−
s
i
n
θ
i
0
0
s
i
n
θ
i
c
o
s
θ
i
0
0
0
0
1
0
0
0
0
1
]
⋅
[
1
0
0
0
0
1
0
0
0
0
0
d
i
0
0
1
1
]
⋅
[
1
0
0
a
i
0
1
0
0
0
0
1
0
0
0
0
1
]
⋅
[
1
0
0
0
0
c
o
s
α
i
−
s
i
n
α
i
0
0
s
i
n
α
i
c
o
s
α
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
]
_{i-1}^{i}\textrm{T}=Rot_{z_{i-1}}(\theta_i)Trans_{z_{i-1}}(d_i)Trans_{x_i}(a_i)Rot_{x_i}(\alpha_i)\\ =\begin{bmatrix} cos\theta_i & -sin\theta_i & 0 & 0\\ sin\theta_i & cos\theta_i & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{bmatrix}\cdot \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & d_i\\ 0 & 0 & 1 & 1 \end{bmatrix}\cdot \begin{bmatrix} 1 & 0 & 0 & a_i\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & cos\alpha_i & -sin\alpha_i & 0\\ 0 & sin\alpha_i & cos\alpha_i & 0\\ 0 & 0 & 0 & 1 \end{bmatrix}\\ =\begin{bmatrix} c\theta_i & -s\theta_i \cdot c\alpha_i & s\theta_i \cdot s\alpha_i & a_i c\theta_i\\ s\theta_i & c\theta_i \cdot c\alpha_i & -c\theta_i \cdot s\alpha_i & a_i s\theta_i\\ 0 & s\alpha_i & c\alpha_i & d_i\\ 0 & 0 & 0 & 1 \end{bmatrix}
i−1iT=Rotzi−1(θi)Transzi−1(di)Transxi(ai)Rotxi(αi)=⎣
⎡cosθisinθi00−sinθicosθi0000100001⎦
⎤⋅⎣
⎡10000100000100di1⎦
⎤⋅⎣
⎡100001000010ai001⎦
⎤⋅⎣
⎡10000cosαisinαi00−sinαicosαi00001⎦
⎤=⎣
⎡cθisθi00−sθi⋅cαicθi⋅cαisαi0sθi⋅sαi−cθi⋅sαicαi0aicθiaisθidi1⎦
⎤
MDH方法的变换矩阵为:
i
−
1
i
T
=
R
o
t
x
i
−
1
(
α
i
−
1
)
T
r
a
n
s
x
i
−
1
(
a
i
−
1
)
R
o
t
z
i
(
θ
i
)
T
r
a
n
s
z
i
(
d
i
)
=
[
1
0
0
0
0
c
o
s
α
i
−
s
i
n
α
i
0
0
s
i
n
α
i
c
o
s
α
i
0
0
0
0
1
]
⋅
[
1
0
0
a
i
0
1
0
0
0
0
1
0
0
0
0
1
]
⋅
[
c
o
s
θ
i
−
s
i
n
θ
i
0
0
s
i
n
θ
i
c
o
s
θ
i
0
0
0
0
1
0
0
0
0
1
]
⋅
[
1
0
0
0
0
1
0
0
0
0
0
d
i
0
0
1
1
]
=
[
c
θ
i
−
s
θ
i
0
a
i
−
1
s
θ
i
c
α
i
−
1
c
θ
i
c
α
i
−
1
−
s
α
i
−
1
−
d
i
s
α
i
−
1
s
θ
i
s
α
i
−
1
c
θ
i
s
α
i
−
1
c
α
i
−
1
d
i
c
α
i
−
1
0
0
0
1
]
_{i-1}^{i}\textrm{T}=Rot_{x_{i-1}}(\alpha_{i-1})Trans_{x_{i-1}}(a_{i-1})Rot_{z_i}(\theta_i)Trans_{z_i}(d_i)\\ = \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & cos\alpha_i & -sin\alpha_i & 0\\ 0 & sin\alpha_i & cos\alpha_i & 0\\ 0 & 0 & 0 & 1 \end{bmatrix}\cdot \begin{bmatrix} 1 & 0 & 0 & a_i\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} cos\theta_i & -sin\theta_i & 0 & 0\\ sin\theta_i & cos\theta_i & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{bmatrix}\cdot \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & d_i\\ 0 & 0 & 1 & 1 \end{bmatrix} \\ =\begin{bmatrix} c\theta_i & -s\theta_i & 0 & a_{i-1} \\ s\theta_ic\alpha_{i-1} & c\theta_ic\alpha_{i-1} & -s\alpha_{i-1} & -d_is\alpha_{i-1} \\ s\theta_is\alpha_{i-1} & c\theta_is\alpha_{i-1} & c\alpha_{i-1} & d_ic\alpha_{i-1} \\ 0 & 0 & 0 & 1 \end{bmatrix}
i−1iT=Rotxi−1(αi−1)Transxi−1(ai−1)Rotzi(θi)Transzi(di)=⎣
⎡10000cosαisinαi00−sinαicosαi00001⎦
⎤⋅⎣
⎡100001000010ai001⎦
⎤⋅⎣
⎡cosθisinθi00−sinθicosθi0000100001⎦
⎤⋅⎣
⎡10000100000100di1⎦
⎤=⎣
⎡cθisθicαi−1sθisαi−10−sθicθicαi−1cθisαi−100−sαi−1cαi−10ai−1−disαi−1dicαi−11⎦
⎤
MDH | SDH |
---|---|
对于平面RRR机械臂,其MDH和SDH的DH参数坐标系建立如上面两图所示。MDH方法的坐标系 { 0 } \{ 0 \} {0}和坐标系 { 1 } \{ 1 \} {1}重合,坐标系 { 2 } \{ 2 \} {2}和坐标系 { 3 } \{ 3 \} {3}重合,坐标系建立在连杆前端。SDH方法的坐标系建立在连杆后端。因此MDH和SDH方法的DH参数表如下:
MDH方法DH参数表:
i i i | α i − 1 \alpha_{i-1} αi−1 | a i − 1 a_{i-1} ai−1 | d i d_i di | θ i \theta_i θi |
---|---|---|---|---|
1 | 0 | 0 | 0 | θ 1 \theta_1 θ1 |
2 | 0 | L 1 L_1 L1 | 0 | θ 2 \theta_2 θ2 |
3 | 0 | L 2 L_2 L2 | 0 | θ 3 \theta_3 θ3 |
SDH方法DH参数表:
i i i | θ i \theta_i θi | d i d_i di | a i a_i ai | α i \alpha_i αi |
---|---|---|---|---|
1 | 0 | L 1 L_1 L1 | 0 | θ 1 \theta_1 θ1 |
2 | 0 | L 2 L_2 L2 | 0 | θ 2 \theta_2 θ2 |
3 | 0 | L 3 L_3 L3 | 0 | θ 3 \theta_3 θ3 |
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)