DH矩阵

11月 18, 2021 |

作为一个机器人运动学门外汉,看了 Robin Deits的博文秒懂,分享给大家

机器人关节最经典的场景如下所示,其他场景都是该场景的特殊案例

A_i = R(z, \theta_i) \; T(z, d_i) \; T(x, a_i) \; R(x, \beta_i)
写成矩阵如下:
A_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} \; \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & d_i \\ 0 & 0 & 0 & 1 \end{bmatrix}\; \begin{bmatrix} 1 & 0 & 0 & a_i \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \; \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & \cos{\beta_i} & -\sin{\beta_i} & 0 \\ 0 & \sin{\beta_i} & \cos{\beta_i} & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}

乘在一起结果日下
A_i = \begin{bmatrix} \cos{\theta_i} & -\sin{\theta_i} \cos{\beta_i} & \sin{\theta_i} \sin{\beta_i} & a_i \cos{\theta_i} \\ \sin{\theta_i} & \cos{\theta_i} \cos{\beta_i} & -\cos{\theta_i} \sin{\beta_i} & a_i \sin{\theta_i} \\ 0 & \sin{\beta_i} & \cos{\beta_i} & d_i \\ 0 & 0 & 0 & 1 \end{bmatrix}

A_i 就是将第i个坐标系的坐标转换成i-1个坐标系的齐次转换矩阵,

也就是先沿第i个坐标系的x轴旋转\beta 然后沿x轴负方向平移a,
然后沿i-1个坐标系z轴负方向平移d,最后沿i-1个坐标系的z轴旋转\theta角度

参考文档

https://blog.robindeits.com/2012/06/05/denavit-hartenberg-robotic-control/
第一个引用备份

Posted in: IT人生

Comments are closed.