位姿理解到了,可以开始上手摆弄协作臂了吗?先等等,坐标系搞清楚没有?先看下常用的坐标系。
协作臂常用坐标系
进行协作臂开发,肯定少不了跟这几个坐标系打交道。
1.基坐标系(世界坐标系)
协作臂都有基坐标系,默认原点是协作臂底座的中心点。如果机械臂是正放安装的姿态,Z轴垂直于安装面向上,X和Y轴在安装平面上,具体方向各厂家略有不同。如图1
2.工具坐标系(末端坐标系)
6轴或7轴的协作臂的工具坐标系,原点一般在第6或7轴法兰末端中心,也叫TCP(Tool Center Point);如果连接有末端执行器,则一般在执行器中心轴末端(或夹爪中点)。Z轴与末端法兰轴心重合,指向末端的朝向。如图1
3.用户坐标系
用户自己定义的坐标系,一般是已有生产线或者应用场景的情况下,用户已经提前定义好的坐标系。
4.相机坐标系
一般是指相机拍摄像图像时,产生图像的坐标系。在协作臂使用机器视觉时需要用到。如图1
图1-手眼标定中的坐标系
这么多坐标系,相互之间少不了变换。比如,在相机中拍到的某个物体,在基坐标系中的位置在哪里?
坐标系变换
平移;姿态的变换叫做旋转。
平移变换
矢量相加。点P在坐标系{B}中的位置记为
,坐标系{A}与{B}姿态相同,{B}的原点相对于{A}原点的向量为
,点P在{A}中的位置为
。变换公式为:
坐标系平移变换
旋转变换
就是原点重合,姿态改变,一般用旋转矩阵来表示。点P在坐标系{B}中的位置记为
,坐标系{A}与{B}原点重合,{B}相对{A}的姿态描述就是旋转矩阵
,点P在{A}中的位置为
,变换公式为:
坐标系旋转变换
复合变换(平移+旋转)
一般情况下,坐标系的变换都是复合变换,需要平移原点再进行旋转完成变换。点P在坐标系{B}中的位置记为
,{B}的原点相对于{A}原点的向量为
,{B}相对{A}的姿态描述就是旋转矩阵
,点P在{A}中的位置为
,变换公式为:
(复合变换公式)
坐标系复合变换
齐次变换矩阵
齐次变换矩阵。下面公式中的
就是一个齐次变换矩阵:
其结构为4x4:
这样一来,使用齐次变换矩阵后,坐标系的复合变换也直接变成矩阵乘法运算了。
多个坐标系的变换
有了齐次变换矩阵,表示多个坐标系的变换就方便了。已知坐标系{C}相对于{B}的变换,且已知坐标系{B}相对{A}的变换。要将点在{C}中的表示
变换为在{A}中的表示
。已知:
,又已知:
,两式合并代入有:
。可定义:
多个坐标系之间使用齐次变换矩阵
齐次变换的逆变换
已知坐标系{B}相对坐标系{A}的齐次变换
,求
。已知
,就已知
和
。由旋转矩阵的性质可知:
由上面的复合变换公式可以得到
,因为在{B}中
为0,所以有
根据齐次变换矩阵的定义,可写出:
变换方程
坐标系变换最常用到的地方,就是相机与机械臂末端的手眼标定。变换方程,就是在已知变换矩阵的情况下,求出未知矩阵。
坐标系变换方程
由上图可知
,
,于是等式替换:
,要求解
,可变换等式:
现在,坐标系的变换都搞清楚了吧?