2. 坐标系基础

做手眼标定,说白了就是搞清楚「眼睛」和「手」之间的位置关系。而这一切的前提,是你得先把坐标系搞明白。

我刚开始接触这个领域时,觉得坐标系不就是数学课上那点东西吗?后来在实际项目中栽了跟头,才发现——坐标系没理清,后面全是坑。

这一章,我们把六个核心坐标系一个一个拆开讲。你不需要一次性全记住,但得知道它们各自在哪儿、干什么用、怎么互相转换。

1. 世界坐标系(World Coordinate System)

世界坐标系,你可以理解为整个场景的「参考系」。它固定不动,所有其他坐标系都相对于它来定义。

  • 作用:描述物体在真实世界中的位置和姿态。
  • 特点:一旦定义,不再改变。
  • 常见定义方式:以工作台一角、机器人底座中心、或标定板某个角点为原点。
我的习惯:在项目开始时,我会先确定世界坐标系的原点位置。一般选在机器人基座正下方地面,或者工作台固定角点。选好了就别再动,否则后面所有数据都得重算。

2. 相机坐标系(Camera Coordinate System)

相机坐标系是以相机光心为原点、光轴为 Z 轴的三维坐标系。它描述的是「相机看到的3D世界」。

  • 原点:相机光心(透镜中心)。
  • Z 轴:沿光轴方向,指向被拍摄物体。
  • X、Y 轴:与图像平面平行。

我记得有一次做双目视觉定位,相机坐标系没校准好,结果测出来的距离偏差了 5 毫米。嗯,从那以后我每次都会先做一遍相机内参标定,再谈别的。

3. 图像坐标系(Image Coordinate System)

图像坐标系是二维的,位于相机成像平面上。它以图像中心为原点,单位是毫米或微米。

  • 作用:描述物体在成像平面上的物理位置。
  • 与相机坐标系的关系:通过透视投影(小孔成像模型)转换。

这里有个容易混淆的点:图像坐标系和像素坐标系不是一回事。图像坐标系是物理单位,像素坐标系是离散的像素单位。

4. 像素坐标系(Pixel Coordinate System)

像素坐标系就是我们平时说的「图片坐标」。它以图像左上角为原点,单位是像素(pixel)。

  • 原点:图像左上角。
  • u 轴:水平向右。
  • v 轴:垂直向下。

从图像坐标系到像素坐标系,其实就是一次缩放加平移。公式很简单,但参数(像元尺寸、主点偏移)必须从相机标定里拿到。

关键转换链:
世界坐标系 → 相机坐标系 → 图像坐标系 → 像素坐标系
每一步都有对应的变换矩阵,手眼标定就是把这些矩阵串起来。

5. 机器人基坐标系(Robot Base Coordinate System)

机器人基坐标系固定在机器人底座上。它是机器人运动的「根坐标系」。

  • 原点:通常位于机器人底座安装面中心。
  • Z 轴:垂直于安装面向上。
  • X、Y 轴:根据机器人品牌定义(如 ABB、KUKA、Fanuc 各有差异)。

我遇到过不少工程师,直接把世界坐标系和机器人基坐标系当成同一个。其实它们之间有一个固定的变换关系,这个关系需要在系统集成时标定出来。

6. 工具坐标系(Tool Coordinate System)

工具坐标系定义在机器人末端执行器上。比如你装了一个夹爪、一个焊枪、或者一个吸盘,工具坐标系就描述这个工具的位姿。

  • 原点:工具中心点(TCP,Tool Center Point)。
  • 作用:让机器人知道「我的手在哪儿」。
我曾经踩过的坑:有一次做视觉引导抓取,工具坐标系没校准,TCP 偏差了 2 毫米。结果机器人每次抓取都偏一点,废了一整盘零件。后来我养成了习惯——每次换工具,第一件事就是重新标定 TCP。

7. 六个坐标系的关系图

下面这张图展示了六个坐标系之间的转换关系。箭头方向表示「从源坐标系到目标坐标系的变换」。

六个坐标系关系图 世界坐标系 相机坐标系 图像坐标系 像素坐标系 机器人基坐标系 工具坐标系 外参矩阵 透视投影 缩放+平移 系统标定 运动学 手眼标定 虚线箭头「手眼标定」是本章核心:求解相机坐标系与机器人基坐标系之间的变换矩阵 其他箭头对应的变换,在后续章节会逐一展开

8. 坐标系转换速查表

转换方向 变换类型 关键参数 备注
世界 → 相机 刚体变换(R, t) 旋转矩阵 R,平移向量 t 即相机外参
相机 → 图像 透视投影 焦距 f 小孔成像模型
图像 → 像素 仿射变换 像元尺寸 dx, dy,主点 u0, v0 相机内参的一部分
世界 → 机器人基 刚体变换 系统标定参数 通常固定不变
机器人基 → 工具 运动学正解 关节角度、连杆参数 由机器人控制器实时计算
相机 → 机器人基 刚体变换 手眼矩阵 手眼标定的目标
一句话总结:
世界坐标系是「根」,相机和机器人基坐标系是「枝」,图像和像素坐标系是「叶」,工具坐标系是「果」。
手眼标定,就是找到「枝」与「枝」之间的连接关系。

好了,六个坐标系讲完了。你可能会觉得有点抽象,没关系——后面每一章都会反复用到这些概念。尤其是当你开始做实际标定时,坐标系之间的关系会越来越清晰。

我个人建议,你可以先画一张类似上面那样的关系图,贴在工位上。每次做标定前看一眼,思路会清楚很多。