在机械臂的joint上建立坐标系。通过齐次变换实现机械臂底座到末端执行器的矩阵转换。
一. 普通法
二.D-H法
注:为了方便文中cosθx写作cx。sinθx写作sx。(例如:cosθ1写作c1,sinθ1写作s1)
定义从原点看,顺时针转为正方向。
一.普通法
![](https://img-blog.csdnimg.cn/img_convert/03fad6e9afe2aa6dcc81072387410a20.png)
图1, 机械臂
从原点看,底座--->joint 1。新坐标系沿着旧坐标系的z轴移动了L1的距离(H1)。然后坐标系绕着z轴顺时针转了90°(rot1),从而得到新坐标系。新坐标系可以绕着新的z轴顺时针旋转θ1度(D1)。
新坐标系相对于旧坐标系,沿着就坐标系的z轴移动了L1的距离。因此可得矩阵H1:
![](https://img-blog.csdnimg.cn/img_convert/063dd06c432e5c76bb9001977cf1db26.png)
从底座到joint 1,坐标系变化如下,由此可得矩阵rot:
![](https://img-blog.csdnimg.cn/img_convert/15bf74c71169f0bf8e5cce832a752fea.png)
![](https://img-blog.csdnimg.cn/img_convert/baef23078d9024144e8f902923fa18f8.png)
新joint可以绕着z轴顺时针旋转,因此可以得到矩阵D1:
![](https://img-blog.csdnimg.cn/img_convert/8ecc30ebe5cc94da48247bc96e4048e7.png)
坐标系旋转情况
![](https://img-blog.csdnimg.cn/img_convert/b013236dd912003fee6d24c52bfdc57b.png)
由此可得从底座到joint 1 的矩阵变换。
![](https://img-blog.csdnimg.cn/img_convert/89fa03650a43596c96896e35b62fecb4.png)
从原点看,joint 1------>joint 2 ,新坐标系的原点沿着旧坐标系的z轴移动了L2的距离(H2)。然后坐标系先绕z轴转了90°(rot2a),再绕y轴转了180°(rot2b),从而得到新坐标系。新joint不能旋转,但是 可以沿着z轴中移动d2的距离(D2),由此可得矩阵:
![](https://img-blog.csdnimg.cn/img_convert/7e9de98baaabf8b77f4a4d1c8372590f.png)
从原点看,joint 2------>joint 3 ,新坐标系的原点沿着旧坐标系的x轴的负半轴移动了L3的距离(H3)。然后坐标系先绕y轴转了180°(rot3a),再绕z轴转了-90°(rot3b),从而得到新坐标系。新joint可以沿着x轴旋转θ3度(D3),由此可得矩阵:
![](https://img-blog.csdnimg.cn/img_convert/fded7e10f656598522adb500d95367c9.png)
最后,将以上3个矩阵相乘即可得到机械臂从底座到末端执行器的矩阵变换。
![](https://img-blog.csdnimg.cn/img_convert/1ed09eeb4502d73b2a58a18fecf9fea5.png)
![](https://img-blog.csdnimg.cn/img_convert/b7b885c93f5c8132814607b936554343.png)
二. D-H法,后续补充