2. 坐标系基础:世界坐标系、机器人基坐标系、工具坐标系、相机坐标系、像素坐标系

做手眼标定,说白了就是搞清楚几个坐标系之间的亲戚关系。我刚开始接触这个领域时,被这五个坐标系绕得晕头转向。后来在一条汽车产线上调试视觉引导抓取,因为坐标系搞反了,机器人差点把相机撞了——嗯,从那以后我再也不敢轻视坐标系了。

2.1 五个核心坐标系

手眼标定涉及五个坐标系,它们各自有明确的定义和用途。我个人习惯把它们分成两组:物理世界组和视觉感知组。

坐标系 英文缩写 定义 典型原点
世界坐标系 World 全局参考系,描述所有物体的位置 产线固定点或场地角点
机器人基坐标系 Base 固定在机器人底座,描述机器人运动 机器人底座中心
工具坐标系 Tool / TCP 固定在机器人末端执行器 工具中心点(TCP)
相机坐标系 Camera 以相机光心为原点,Z轴沿光轴方向 相机光心
像素坐标系 Pixel / Image 图像平面上的二维坐标系 图像左上角

关键理解:手眼标定的本质,就是求解相机坐标系与机器人基坐标系(或工具坐标系)之间的变换关系。其他坐标系都是中间桥梁。

2.2 坐标系之间的变换关系

坐标系变换说白了就是旋转+平移。在三维空间中,我们用4×4齐次变换矩阵来描述这种关系。你想想看,一个点从坐标系A变换到坐标系B,公式长这样:

P_B = T_A→B · P_A

其中:
P_A = [x_A, y_A, z_A, 1]^T  — 点在A系下的齐次坐标
P_B = [x_B, y_B, z_B, 1]^T  — 点在B系下的齐次坐标
T_A→B = [R | t]             — 4×4齐次变换矩阵
  R: 3×3旋转矩阵
  t: 3×1平移向量

我曾经在项目里直接用欧拉角做旋转,结果标定精度死活上不去。后来换成四元数表示旋转,问题就解决了。这里建议你:计算用四元数,可视化用欧拉角。

2.3 核心变换链

在手眼标定中,我们最关心的是下面这条变换链。我画了一张图帮你理清关系:

手眼标定核心坐标系变换链 世界坐标系 机器人基坐标系 工具坐标系 相机坐标系 像素坐标系 T_World→Base T_Base→Tool T_Base→Camera (待求量) T_Camera→Pixel 💡 标定目标 求解 T_Base→Camera(眼在手外)或 T_Tool→Camera(眼在手上) 中间通过标定板的世界坐标和像素坐标建立约束方程

我的经验:在搭建标定系统时,先把这五个坐标系画在纸上,标出已知量和未知量。这样做能避免80%的配置错误。

2.4 两种常见配置

根据相机安装位置,手眼标定分为两种模式。我两种都做过,各有各的坑:

眼在手外(Eye-to-Hand)

相机固定安装,不随机器人运动。变换关系是:相机坐标系 → 机器人基坐标系。

  • 优点:相机视野固定,标定一次管用很久
  • 缺点:机器人运动范围可能遮挡视野
  • 我曾经在焊接工位上遇到相机被机器人手臂挡住的情况,后来把相机架高了才解决

眼在手上(Eye-in-Hand)

相机安装在机器人末端,随工具一起运动。变换关系是:相机坐标系 → 工具坐标系。

  • 优点:灵活,可以近距离观察工件细节
  • 缺点:每次更换工具都要重新标定
  • 注意:运动时相机抖动会影响标定精度
对比项 眼在手外 眼在手上
相机安装位置 固定支架 机器人末端
待求变换 T_Base→Camera T_Tool→Camera
标定板位置 固定在机器人末端 固定在外部
典型应用 码垛、分拣 焊接、装配

2.5 像素坐标系与相机坐标系的映射

像素坐标是二维的,相机坐标是三维的。从3D到2D,我们靠的是相机内参。公式很简单:

u = fx * (X_c / Z_c) + cx
v = fy * (Y_c / Z_c) + cy

其中:
(u, v)     — 像素坐标
(X_c, Y_c, Z_c) — 相机坐标系下的3D点
fx, fy     — 焦距(像素单位)
cx, cy     — 主点偏移

⚠️ 避坑指南:我曾经在标定时忽略了镜头畸变,结果像素坐标映射到3D空间时偏差达到5mm。后来加了畸变校正,精度直接提升到0.5mm。记住:标定前一定要先做畸变校正。

2.6 坐标系变换的数学本质

说白了,所有坐标系变换都可以用链式法则串联起来。比如,从像素坐标反推世界坐标:

P_World = T_Camera→World · T_Pixel→Camera · P_Pixel

其中:
T_Camera→World = (T_World→Camera)^(-1)
T_Pixel→Camera 由相机内参决定

你想想看,这个链式法则就是手眼标定的数学基础。我们在后续章节中求解的AX = XB方程,本质上就是在解这个变换链中的未知环节。

核心要点回顾:

  • 五个坐标系:World → Base → Tool → Camera → Pixel
  • 变换矩阵:4×4齐次矩阵,包含旋转和平移
  • 两种配置:眼在手外(求Base→Camera)、眼在手上(求Tool→Camera)
  • 像素到3D:依赖相机内参和畸变参数