0.参考链接

[1]标定学习笔记(四)-- 手眼标定详解
[2]工业机器人手眼标定实战:眼在手上/眼在手外怎么标(2026)
[3]完整教程:手眼标定:九点标定、十二点标定、OpenCV 手眼标定
[4]机器人手眼标定详解:Tsai–Lenz、EasyHandEye2 与常用标定方法
[5]手眼标定解析——从原理到工程实践的两种经典方法

1.如何理解手眼标定

  我们不妨想象,在生活中,我们需要用手移动某一物体时,需要经过哪些步骤?
  第一步:通过眼睛去观察三维世界,将三维世界的信息传递至视网膜,转换成二维平面的信息传递给我们的大脑;
  第二步:假设,当我们需要移动三维空间下的物体时,对我们的大脑而言,是将一个物体从二维平面的 A’ 点移动至 B’ 点,因此大脑需要计算从二维坐标转换到三维坐标 A 点和 B 点。
  第三步:当大脑获得了 A 点和 B 点的坐标,就可以用手将物体进行相应的移动。
  其中,第二步就是进行手眼标定,即得到二维坐标(像素坐标系)到三维坐标(世界坐标系)的转换矩阵。
  在实际的控制过程中,相机在检测到目标在图像中的像素位置后,通过标定好的坐标转换 矩阵将相机的像素坐标变换到机械手的空间坐标系中,然后根据机械手坐标系计算出各个电机该如何运动,从而控制机械手到达指定位置。

2.坐标系与转换关系

2.1 基础坐标系

在这里插入图片描述
  对于上面的讲解我们将其推及一个简单的机械手系统,我们不难得知其中涉及的坐标系包括:

  • 1)机械手基础坐标系:在这里插入图片描述

  • 2)机械手末端夹具坐标系:在这里插入图片描述

  • 3)相机坐标系:在这里插入图片描述

  由之前介绍的相机标定相关知识,我们也可以知道,这里说的相机坐标系不仅包括相机本身的坐标系,还包括像素坐标系。

  • 4)工件坐标系(标定板坐标系):在这里插入图片描述

2.2 坐标系转换关系

  坐标系之间的转换关系可以记为:

  • 1)机械手末端夹具坐标系到机械手基础坐标系的转换关系:在这里插入图片描述

  该转换关系可以通过机器人系统得出,在手眼标定过程中我们认为其是已知的,其转换关系用矩阵进行表示可以记为: 。

  • 2)相机坐标系到机械手末端夹具坐标系的转换关系:在这里插入图片描述

  尽管该转换关系视相机的装载方式有所区别,但相同点是我们认为其是未知的,也正是我们需要去进行求解的,其转换关系用矩阵进行表示可以记为: 。

  • 3)相机坐标系到标定板坐标系的转换关系:在这里插入图片描述

  该转换关系我们可以通过相机标定进行获得,因此我们也认为其是已知的,其转换关系用矩阵进行表示可以记为: 。

  • 4)标定板坐标系到机械手基础坐标系的转换关系:在这里插入图片描述

  该转换关系也正是我们最终希望求解的,只要机械手整体与标定板的相对位置不发生变化,这个变换矩阵也就不发生变化。

3. 先分清两种构型:眼在手上 vs 眼在手外

  手眼标定的第一步不是动手标,是先想清楚你的相机是哪种装法。相机装在哪,决定了要求解的变换是谁、标定模型怎么列。

维度眼在手上(eye-in-hand)眼在手外(eye-to-hand)
相机位置装在机器人末端法兰/工具上,随机器人一起动固定在机器人之外(支架/龙门),不随机器人动
要求解的变换相机坐标系 → 机器人末端法兰坐标系相机坐标系 → 机器人基坐标系
标定板放哪固定不动,机器人带相机从多个位姿拍它固定在机器人末端,机器人带板从多个位姿给相机拍
视野特点视野随臂动、可凑近看局部、覆盖大工作空间视野固定、一次看全局、适合来料定位
典型场景焊缝跟踪、精密插装、随动检测上下料抓取、传送带分拣、来料定位

  选构型的判断口径:需要相机凑近工件、或工作范围大到一个固定视野盖不住的,用眼在手上;来料在固定区域、要一次看全局再引导抓取的,用眼在手外。 两种构型的标定数学同源,但求解的目标变换不同,代码里选错模式,结果会整体错位。

3.1 眼在手(Eye-in-Hand)系统

  相机直接安装在机器人末端执行器上,与机械臂同步运动。相机视野随机械臂移动而动态变化。
在这里插入图片描述
  典型应用场景:工业精密装配、抓取,医疗机器人(如手术导航内窥镜)、无人机自主抓取。
  技术优势:可对操作对象进行近距离高精度观测、灵活调整视角以适应不同工序。
  工程挑战:相机随机械臂高频运动,易受振动、光照变化干扰,频繁运动可能导致标定参数漂移。

3.2 眼在外(Eye-to-Hand)系统

  相机固定安装在机器人工作区域外,独立于机械臂运动。相机的全局视角覆盖整个工作空间,机械臂运动被动呈现在视野中。
在这里插入图片描述
  典型应用场景:工厂流水线质量监控(如汽车焊接检测)、AGV(自动导引车)导航、仓储机器人货架管理。
  技术优势:全局视野,适合大范围或轨迹监控、标定后长期有效,无需频繁更新。
  工程约束:对远距离测量精度有一定损失,存在视野遮挡风险。

4. 手眼标定到底在解什么:AX = XB

  不管哪种构型,手眼标定的数学核心都归结为一个经典方程:AX = XB。

  • X:就是我们要求的手眼变换(相机相对法兰,或相机相对基座),它在整个标定过程中是固定不变的常量。
  • A:机器人两次运动之间,末端位姿的相对变化(由机器人正运动学/示教器读数给出,认为是已知且相对可靠的)。
  • B:同样两次运动之间,标定板在相机里位姿的相对变化(由相机拍标定板、经相机外参解算得到)。

  直观理解:机器人动了一步,这一步的位移在“机器人坐标”和“相机坐标”两套系统里都被记录了一遍,两套记录之间差的正是那个固定的手眼关系 X。采集足够多组、且姿态变化足够丰富的运动,就能把 X 稳定地解出来。一条本质判据:手眼标定的精度上限,取决于每步运动里旋转分量是否充分——只做纯平移、几乎不转姿态的采集,方程会病态,X 解不准。 这条和 TCP 标定“四个姿态要张得开”是同一个道理,务必让每次采集的姿态差异拉大。
  求解 X 的算法有好几种经典方法,工程上不用自己从零实现,OpenCV 已内置:

方法代号(OpenCV)特点
Tsai-LenzCALIB_HAND_EYE_TSAI经典分步法,先解旋转再解平移,工程常用
ParkCALIB_HAND_EYE_PARK李群方法,稳定性好
HoraudCALIB_HAND_EYE_HORAUD四元数思路
AndreffCALIB_HAND_EYE_ANDREFF旋转平移联合求解
DaniilidisCALIB_HAND_EYE_DANIILIDIS对偶四元数,旋转平移一起解

5. 标定流程:一步步怎么做

  以工程上最常用的棋盘格/标定板 + OpenCV 方案为例,把流程拆成可执行的清单。眼在手上和眼在手外的动作略有差异,先说共通骨架,再点出区别。
  标定前的准备:

  • 准备一块精度可靠的标定板(棋盘格或 ArUco/圆点板),已知格距,平整不变形。
  • 相机先做内参标定,拿到相机内参矩阵和畸变系数——手眼标定前必须先完成相机内参标定,内参不准,B 就不准,X 一定跑偏。
  • 确认机器人 TCP 已标准、位姿读数可信。

  采集与求解步骤:

  • 布置标定板:眼在手上→板固定在工作台不动;眼在手外→板固定在机器人末端随臂动。
  • 规划采集位姿:设计 10~20 组机器人位姿,要求每组之间旋转和平移都有明显差异,让相机始终能完整、清晰地拍到标定板。
  • 逐位姿采集:每到一个位姿,同时记录两份数据——机器人当前末端位姿(从控制器读)、相机此刻拍到的标定板图像。两份必须严格对应同一时刻,别错位。
  • 解相机外参:对每张图像用内参解出标定板相对相机的位姿,得到一组 B 所需的相机侧位姿。
  • 喂进求解器:把机器人侧位姿序列和相机侧位姿序列一起送进 cv2.calibrateHandEye,选一种方法解出手眼变换 X。
  • 验证与复标:用下一节的验证法核对,不达标就补采位姿或排查误差源,重标。

  眼在手外时,输入的机器人侧位姿要换成“基座相对末端”(即末端->基座的逆),求出的 X 是“相机相对基座”的变换。构型和输入位姿方向必须成套对应,混用是新手最常见的整体错位原因。

6. 误差从哪来:逐类排查

  手眼标定标不准,别急着怀疑算法,OpenCV 那几种方法本身很成熟,问题绝大多数出在数据采集这一侧。对照下表一项项过:

误差来源典型表现排查对策
姿态变化不足换方法都收不下来、结果不稳每步加大旋转分量,别只平移
相机内参不准B 侧外参系统性偏重做内参标定,保证畸变系数可靠
数据不同步结果随机跳、复现性差机器人停稳再拍,位姿与图像严格对时
标定板质量差角点检测抖、外参噪声大用高精度平整标定板,光照均匀避免反光
TCP/位姿读数错整体偏移先确认 TCP 标准、位姿读数系正确坐标系
采集组数太少抗噪差、易过拟合采集 10 组以上,覆盖工作空间

  核心口径:手眼标定的误差,大头都压在“姿态多样性不足”和“相机内参/数据同步”这类采集环节上,而非求解算法本身。 把姿态张开、内参标准、位姿与图像对齐,多数标定问题当场就收敛。这一点和现场调 TCP 的经验一脉相承——地基(内参、TCP、同步)没打好,后面怎么算都是错的往下传。

7. 标完怎么验收:两招现场验证

  和 TCP 标定一样,手眼标定标完不能只看求解器有没有报错,得靠实打实的动作来验收。工程上常用两招:

  • 重投影/复现验证:在标定板上取几个已知特征点,用求解出的 X 把它们从相机坐标换算到机器人坐标,再让机器人末端实际去到那些点,量偏差。判据:让机器人依据视觉结果去触碰或对准若干已知点,实测偏差稳定收在工艺允许范围内,才算标准。
  • 抓取/引导实测:直接跑一遍真实的视觉引导流程——相机定位工件、机器人去抓(或去焊、去插),看重复多次的落点一致性和绝对偏差。这是最贴近产线的验证,纸面残差再好看,抓不准都白搭。

  给一档可用来自检的量级(随工艺浮动):一般上下料、分拣类应用,视觉引导的落点偏差能稳定收在毫米级、且重复性好,通常就够用;精密插装、焊缝跟踪等场景要卡得更严。 这个量级随应用工艺浮动,没有放之四海的统一数——精度 诉求越高,对内参、标定板、采集姿态和相机分辨率的要求就越苛刻。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐