文章目錄
- 1 建立機器人坐標系
- 1.1 連桿編號
- 1.2 關節編號
- 1.3 坐標系方向
- 2 標準DH(STD)
- 2.1 確定X軸方向
- 2.2 建模步驟
- 2.3 變換順序
- 2.4 變換矩陣
- 3 改進DH(MDH)
- 3.1 確定X軸方向
- 3.2 建模步驟
- 3.3 變換順序
- 3.4 變換矩陣
- 4 標準DH與改進DH區別
- 5 Matlab示例
- 參考鏈接
1 建立機器人坐標系
1.1 連桿編號
基座為桿0,從基座往后依次定義為桿1,桿2,…,桿i;
1.2 關節編號
桿i離基座近的一端(近端)的關節為關節i,遠的一端(遠端)為關節i+1。
1.3 坐標系方向
- 確定Z軸,如果關節是旋轉的,Z軸按右手定則,大拇指指向為正方向,關節轉角θ為關節變量。如果關節是移動的,Z軸定在沿直線運動方向的正方向,連桿偏移d為關節變量。
- 確定X軸,情況一:兩關節Z軸既不平行也不相交,即呈異面直線時。則取兩Z軸公垂線方向作為X軸方向。
情況二:兩關節Z軸平行。此時,兩Z軸之間有無數條公垂線,可挑選與前一關節的公垂線共線的一條公垂線。
情況三:兩關節Z軸相交。則取兩條Z軸的叉積方向作為X軸(叉積:向量積) - 確定Y軸,通過右手定則確定Y軸的方向。大拇指指向Z軸的方向,以x軸為準,逆時針旋轉90°的方向為y軸的方向。
2 標準DH(STD)
2.1 確定X軸方向
X軸的方向取當前的Z軸和前一個關節Z軸( Z i ? 1 Z_{i-1} Zi?1?軸)的叉乘方向,根據右手定則:由 Z i ? 1 Z_{i-1} Zi?1?軸轉向Z軸,大拇指方向即為X軸方向。可以簡便的取為由 Z i ? 1 Z_{i-1} Zi?1?軸指向Z軸,公垂線方向即是X軸的方向。
2.2 建模步驟
- 繞 z i ? 1 z_{i-1} zi?1?軸旋轉 θ i \theta_i θi?,使得 x i ? 1 x_{i-1} xi?1?與 x i x_i xi?平行;
- 沿 z i ? 1 z_{i-1} zi?1?軸平移 d i d_i di?,使得 x i ? 1 x_{i-1} xi?1?與 x i x_i xi?重合;
- 沿 x i x_{i} xi?軸平移 a i a_i ai?,使得 z i ? 1 z_{i-1} zi?1?與 z i z_i zi?重合;
- 繞 x i x_{i} xi?軸旋轉 α i \alpha_i αi?,使得 z i ? 1 z_{i-1} zi?1?與 z i z_i zi?共線;
2.3 變換順序
STD-DH方法變換時四個參數相乘的順序依次為 θ → d → a → α \theta \to d \to a \to \alpha θ→d→a→α
2.4 變換矩陣
R o t ( z i ? 1 , θ i ) = [ cos ? θ i ? s i n θ i 0 0 sin ? θ i cos ? θ i 0 0 0 0 1 0 0 0 0 1 ] \mathrm{Rot(z_{i-1},\theta_i)}=\begin{bmatrix}\cos\theta_\mathrm{i}&-\mathrm{sin\theta_i}&0&0\\\sin\theta_\mathrm{i}&\cos\theta_\mathrm{i}&0&0\\0&0&1&0\\0&0&0&1\end{bmatrix} Rot(zi?1?,θi?)= ?cosθi?sinθi?00??sinθ