最近刚学了机器人学中关于机械臂顺向运动学的DH表达法,来这里做个笔记吧。写的是Craig方法而不是Standard法
首先是关于旋转矩阵和平移矩阵的公式
1 绕Z轴旋转, R Z ( α ) = [ c o s α − s i n α 0 s i n α c o s α 0 0 0 1 ] {R_{Z(\alpha )}}=\begin{bmatrix} cos\alpha &-sin\alpha &0 \\ sin\alpha& cos\alpha &0 \\ 0 &0 &1 \end{bmatrix} RZ(α)=⎣⎡cosαsinα0−sinαcosα0001⎦⎤ 延Z轴平移 P X = [ 0 0 Z ] {P_{X}}=\begin{bmatrix} 0\\ 0\\ Z \end{bmatrix} PX=⎣⎡00Z⎦⎤
2 绕Y轴旋转, R Y ( β ) = [ c o s β 0 s i n β 0 1 0 − s i n β 0 c o s β ] {R_{Y(\beta )}}=\begin{bmatrix} cos\beta & 0 &sin\beta \\ 0& 1 &0 \\ -sin\beta &0 &cos\beta \end{bmatrix} RY(β)=⎣⎡cosβ0−sinβ010sinβ0cosβ⎦⎤ 延X轴平移 P Y = [ 0 Y 0 ] {P_{Y}}=\begin{bmatrix} 0\\ Y\\ 0 \end{bmatrix} PY=⎣⎡0Y0⎦⎤
3 绕X轴旋转, R X ( γ ) = [ 1 0 0 0 cos γ − s i n γ 0 s i n γ c o s γ ] {R_{X(\gamma )}}=\begin{bmatrix} 1 & 0 &0 \\ 0& \cos \gamma &-sin\gamma \\ 0 &sin\gamma &cos\gamma \end{bmatrix} RX(γ)=⎣⎡1000cosγsinγ0−sinγcosγ⎦⎤ 延X轴平移 P X = [ X 0 0 ] {P_{X}}=\begin{bmatrix} X\\ 0\\ 0 \end{bmatrix} PX=⎣⎡X00⎦⎤
两个坐标系下的旋转矩阵 B A R = [ A X B A Y B A Z B ] _{B}^{A}\textrm{R}=\begin{bmatrix} ^{A}\textrm{X}_{B} &^{A}\textrm{Y}_{B} & ^{A}\textrm{Z}_{B} \end{bmatrix} BAR=[AXBAYBAZB]其中 A X B ^{A}\textrm{X}_{B} AXB是B坐标系X轴在A坐标系中的表达。
B坐标系的原点在A坐标系的位置为(X,Y,Z),则平移矩阵就为 A P B o r g = [ X Y Z ] ^{A}\textrm{P}_{_{Borg}}=\begin{bmatrix} X\\ Y\\ Z \end{bmatrix} APBorg=⎣⎡XYZ⎦⎤
所以,点P在 B坐标系下的表示为 B P ^{B}\textrm{P} BP,则在A坐标系中的表示为 [ A P 1 ] = [ B A R A P B o r g 000 1 ] [ B P 1 ] \begin{bmatrix} ^{A}\textrm{P}\\ 1 \end{bmatrix}=\begin{bmatrix} ^{_{B}^{A}\textrm{R}} &^{A}\textrm{P}_{_{Borg}}\\ 000 & 1 \end{bmatrix}\begin{bmatrix} ^{B}\textrm{P}\\ 1 \end{bmatrix} [AP1]=[BAR000APBorg1][BP1]
其次,建立坐标系
上图是用Craig法建立的坐标系,图中第i-1轴的连杆在轴的后面,而不是在前面。
建立坐标系的方法为:Z轴的方向是转轴的方向, X i − 1 {X_{i-1}} Xi−1的方向是延轴 Z i − 1 {Z _{i-1}} Zi−1和 Z i {Z _{i}} Zi的公垂线的方向, Y i − 1 {Y_{i-1}} Yi−1的方向根据右手定则确定。
接着分析我们需要知道的4个参数
Ⅰ, α i − 1 {\alpha _{i-1}} αi−1 :以 X i − 1 {X_{i-1}} Xi−1的方向看, Z i − 1 {Z _{i-1}} Zi−1和 Z i {Z _{i}} Zi间的夹角。
Ⅱ , a i − 1 {a_{i-1}} ai−1:沿着 X i − 1 {X_{i-1}} Xi−1的方向看, Z i − 1 {Z _{i-1}} Zi−1和 Z i {Z _{i}} Zi间的距离。
Ⅲ, θ i {θ_{i}} θi:以 Z i {Z _{i}}