位姿理解到了,可以开始上手摆弄协作臂了吗?先等等,坐标系搞清楚没有?先看下常用的坐标系。
协作臂常用坐标系
进行协作臂开发,肯定少不了跟这几个坐标系打交道。
1.基坐标系(世界坐标系)
协作臂都有基坐标系,默认原点是协作臂底座的中心点。如果机械臂是正放安装的姿态,Z轴垂直于安装面向上,X和Y轴在安装平面上,具体方向各厂家略有不同。如图1
2.工具坐标系(末端坐标系)
6轴或7轴的协作臂的工具坐标系,原点一般在第6或7轴法兰末端中心,也叫TCP(Tool Center Point);如果连接有末端执行器,则一般在执行器中心轴末端(或夹爪中点)。Z轴与末端法兰轴心重合,指向末端的朝向。如图1
3.用户坐标系
用户自己定义的坐标系,一般是已有生产线或者应用场景的情况下,用户已经提前定义好的坐标系。
4.相机坐标系
一般是指相机拍摄像图像时,产生图像的坐标系。在协作臂使用机器视觉时需要用到。如图1

这么多坐标系,相互之间少不了变换。比如,在相机中拍到的某个物体,在基坐标系中的位置在哪里?
坐标系变换
一个坐标系变成另一个坐标系,主要包括两方面:位置(原点),姿态(XYZ轴向)。原点位置的变换叫做平移;姿态的变换叫做旋转。
平移变换
就是姿态不变,只移动原点,就是矢量相加。点P在坐标系{B}中的位置记为





旋转变换
就是原点重合,姿态改变,一般用旋转矩阵来表示。点P在坐标系{B}中的位置记为





复合变换(平移+旋转)
一般情况下,坐标系的变换都是复合变换,需要平移原点再进行旋转完成变换。点P在坐标系{B}中的位置记为






齐次变换矩阵
可以看到复合变换中又是矢量加法,又是矩阵乘法,变换起来其实有点麻烦。用一个4x4的矩阵把复合变换中的位置与姿态统一表示出来,就是齐次变换矩阵。下面公式中的


其结构为4x4:
![\left[ \begin{array}{cc} ^A_BR & ^AP_{BORG}\\ 000 & 1 \end{array}\right]](https://i-blog.csdnimg.cn/blog_migrate/89f77ce7bbc40bffdb11886ae8d9d527.png)
这样一来,使用齐次变换矩阵后,坐标系的复合变换也直接变成矩阵乘法运算了。
多个坐标系的变换
有了齐次变换矩阵,表示多个坐标系的变换就方便了。已知坐标系{C}相对于{B}的变换,且已知坐标系{B}相对{A}的变换。要将点在{C}中的表示







齐次变换的逆变换
已知坐标系{B}相对坐标系{A}的齐次变换






由上面的复合变换公式可以得到


根据齐次变换矩阵的定义,可写出:
![^B_AT=\left[ \begin{array}{cc} ^A_BR^T & -^A_BR^T{^AP_{BORG}}\\ 000 & 1 \end{array}\right]](https://i-blog.csdnimg.cn/blog_migrate/8d09549fa10e9fc331a7d0d32afb7abc.png%3D%5Cleft%5B++%5Cbegin%7Barray%7D%7Bcc%7D+%5EA_BR%5ET+%26+-%5EA_BR%5ET%7B%5EAP_%7BBORG%7D%7D%5C%5C+000+%26+1+%5Cend%7Barray%7D%5Cright%5D)
变换方程
坐标系变换最常用到的地方,就是相机与机械臂末端的手眼标定。变换方程,就是在已知变换矩阵的情况下,求出未知矩阵。

由上图可知





现在,坐标系的变换都搞清楚了吧?