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

做手眼标定,说白了就是搞清楚几个坐标系之间的“亲戚关系”。

我刚开始接触这个领域时,觉得坐标系这东西太抽象了。直到第一次在产线上调试,机器人抓了半天抓不到工件,才发现是坐标系搞反了。嗯,从那以后,我养成了一个习惯——动手之前,先把坐标系画清楚。

2.1 为什么需要这么多坐标系?

你想想看,机器人要抓一个杯子。杯子放在桌上,桌子在世界里,机器人的手臂有自己的“骨架”,相机看到的是像素点。每个环节都有自己的“语言”。

坐标系就是翻译官。没有它们,机器人不知道杯子在哪,相机也不知道手臂在哪。

核心逻辑:手眼标定的本质,就是求解不同坐标系之间的变换矩阵(旋转 + 平移)。

2.2 五大坐标系详解

我个人习惯把这五个坐标系分成两类:物理世界类和感知类。下面逐个拆解。

2.2.1 世界坐标系

世界坐标系是“参考系”。它固定在地面上,通常选在机器人底座、工作台角落或者房间的某个固定点。所有其他坐标系的位置,最终都要映射到它这里。

  • 作用:统一全局度量,让机器人和相机知道“我在哪”。
  • 单位:毫米(mm)或米(m),取决于你的应用场景。
  • 我踩过的坑:曾经在一个项目里,世界坐标系原点选在了机器人底座正下方,结果每次回零都要重新标定。后来我改到工作台中心,省事多了。

2.2.2 机器人基坐标系

机器人基坐标系固定在机器人底座上。它是机器人自己的“原点”。

  • Z轴:通常垂直于安装面,指向机器人上方。
  • X轴:指向机器人正前方。
  • Y轴:由右手定则确定。

机器人控制器里所有的运动指令,都是基于这个坐标系算出来的。你让机器人“往X方向移动100mm”,它就是在基坐标系里移动。

2.2.3 工具坐标系

工具坐标系定义在机器人末端执行器上。比如你装了一个夹爪、一个焊枪或者一个摄像头。

  • 原点:工具的中心点(TCP,Tool Center Point)。
  • Z轴:通常指向工具的工作方向(比如焊枪的指向)。

我记得有一次,客户换了一个加长夹爪,没更新工具坐标系。结果机器人去抓东西,每次都差5厘米。说白了,工具坐标系就是告诉机器人:“你的手长这样,别算错了。”

小技巧:标定TCP时,可以用“四点法”或“六点法”。我习惯用六点法,精度更高,尤其是工具比较长的时候。

2.2.4 相机坐标系

相机坐标系的原点在相机的光心。Z轴指向相机正前方(沿着光轴),X轴向右,Y轴向下(符合图像坐标系习惯)。

  • 单位:毫米(mm)。
  • 特点:这是一个3D坐标系,但相机看到的是2D图像。所以需要“投影”和“内参”来转换。

为什么相机坐标系这么重要?因为手眼标定要算的,就是相机坐标系和机器人基坐标系(或工具坐标系)之间的变换关系。

2.2.5 像素坐标系

像素坐标系是相机成像的最终结果。原点在图像左上角,u轴向右,v轴向下。单位是像素(pixel)。

  • 特点:离散的、整数的。没有物理尺寸概念。
  • 与相机坐标系的关系:通过内参矩阵(焦距、主点、畸变参数)进行转换。

你想想看,相机拍到的是一堆像素点。要告诉机器人“那个杯子在像素(320, 240)处”,机器人听不懂。必须先把像素坐标转成相机坐标,再转成机器人坐标。

2.3 坐标系之间的变换关系

这五个坐标系不是孤立的。它们通过“变换矩阵”串联起来。我画了一张图,帮你理清脉络。

坐标系变换关系图 坐标系变换关系图 世界坐标系 机器人基坐标系 工具坐标系 相机坐标系 像素坐标系 T_world_to_base T_world_to_cam T_base_to_tool 内参矩阵 K 手眼标定目标:T_tool_to_cam 💡 说明 虚线箭头表示手眼标定的核心求解目标:工具坐标系到相机坐标系的变换矩阵。 其他实线箭头表示已知或可测量的变换关系。

2.4 坐标系变换的数学表达

每个变换都是一个4x4的齐次变换矩阵。它包含旋转(3x3)和平移(3x1)。

# 齐次变换矩阵示例
T = [[R11, R12, R13, tx],
     [R21, R22, R23, ty],
     [R31, R32, R33, tz],
     [0,   0,   0,   1 ]]

# 例如:从相机坐标系到机器人基坐标系的变换
P_base = T_cam_to_base * P_cam

你想想看,一个点P在相机坐标系下是(100, 200, 300),乘以变换矩阵后,就变成了机器人基坐标系下的坐标。这就是标定的意义。

2.5 坐标系关系速查表

坐标系 原点位置 单位 维度 典型变换对象
世界坐标系 固定点(地面/工作台) mm 或 m 3D 机器人基、相机
机器人基坐标系 机器人底座 mm 3D 工具、世界
工具坐标系 TCP(工具中心) mm 3D 机器人基、相机
相机坐标系 相机光心 mm 3D 像素、工具
像素坐标系 图像左上角 pixel 2D 相机(通过内参)

⚠️ 避坑指南:我曾经在一个项目里,把像素坐标系的v轴方向搞反了(以为向上为正)。结果标定出来的变换矩阵全是错的,机器人抓取偏差了20多厘米。后来花了半天才排查出来。记住:像素坐标系的v轴向下为正,这是图像处理的惯例。

2.6 小结

这五个坐标系,是手眼标定的“地基”。

  • 世界坐标系:全局参考,万物归宗。
  • 机器人基坐标系:机器人的“家”。
  • 工具坐标系:机器人的“手”。
  • 相机坐标系:相机的“眼”。
  • 像素坐标系:相机看到的“画面”。