作为一个机器人运动学门外汉,看了 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.