具身智能:零基础入门睿尔曼机械臂(五)—— 手眼标定核心原理与数学求解

为零基础读者铺开手眼标定框架:厘清机器人、相机与各坐标变换,解释内外参含义,拆解 Eye‑in‑Hand 与 Eye‑to‑Hand 两种布线及 AX=XB 的由来,铺垫后续求解与实测。


前言

在机器人与计算机视觉的交叉领域,精确的空间坐标映射是实现机械臂与环境高效交互的核心前提。想象这样一个场景:工业机器人需要从传送带上抓取随机摆放的零件,或是服务机器人要精准拾取用户指定的物品——相机作为“眼睛”能识别目标的位置,但机械臂作为“手”却只理解自身坐标系下的指令。如何让“眼”看到的信息准确传递给“手”?手眼标定正是解决这一问题的关键技术。
手眼标定的本质是建立相机坐标系与机械臂坐标系之间的刚性变换关系,通过这一关系,可将相机检测到的目标坐标实时转换为机械臂能够执行的运动指令。无论是工业生产中的自动化抓取、精密装配,还是科研领域的视觉伺服控制、动态环境交互,手眼标定都扮演着不可或缺的角色。
本文将从基础概念出发,系统拆解手眼标定的两种核心架构(Eye-in-Hand与Eye-to-Hand),深入推导其数学原理,详解AX=XB方程的由来与求解方法,并结合实际应用场景说明标定过程中的关键注意事项,为从事机器人视觉相关工作的开发者和研究者提供一份全面、可落地的技术指南。

一、相关概念阐述

在深入原理之前,我们需要明确手眼标定涉及的核心概念与基础工具,这是理解后续内容的前提。

1.1 核心坐标系定义

手眼标定的本质是坐标系间的变换,需明确以下4个关键坐标系:

  • 机械臂基座坐标系(Base Frame, B {B} B):机械臂的基准坐标系,固定于机械臂基座,是机械臂运动计算的参考基准,所有关节运动均相对于该坐标系描述。
  • 机械臂末端坐标系(End-effector Frame, E {E} E):固定于机械臂末端执行器(如夹爪),用于描述末端执行器的实时位姿(位置+姿态),可通过机械臂API直接读取。
  • 相机坐标系(Camera Frame, C {C} C):以相机光心为原点的三维坐标系,X轴与Y轴平行于图像平面,Z轴为相机光轴方向(遵循右手定则),用于描述目标在相机视野中的三维位置。
  • 标定板坐标系(Checkerboard Frame, W {W} W):固定于标定板(通常为棋盘格)的局部坐标系,原点一般设为标定板左上角角点,用于提供已知的三维特征点,作为坐标变换的“桥梁”。

1.2 齐次变换矩阵

空间中点的位姿(位置+姿态)变换需通过4×4齐次变换矩阵描述,其形式如下:

T

[ R t 0 T 1 ] T = \begin{bmatrix} R & t \ 0^T & 1 \end{bmatrix} T=[R0T​t1​]
其中:

  • R R R 是3×3旋转矩阵,描述两个坐标系间的姿态关系,满足 R T R

    I R^T R = I RTR=I(正交性)和 det ⁡ ( R )

    1 \det(R)=1 det(R)=1(右手坐标系);
  • t t t 是3×1平移向量,描述目标坐标系原点相对于参考坐标系的位置;
  • 0 T

    [ 0 , 0 , 0 ] 0^T = [0,0,0] 0T=[0,0,0],用于保持齐次坐标的数学一致性。
    齐次变换矩阵具有复合性:若存在坐标系A→B的变换 T A B T_{AB} TAB​ 和 B→C的变换 T B C T_{BC} TBC​,则A→C的变换为 T A C

    T A B × T B C T_{AC} = T_{AB} \times T_{BC} TAC​=TAB​×TBC​(矩阵乘法),这是手眼标定数学推演的核心基础。

1.3 相机内参与外参

手眼标定依赖相机的参数标定结果,需明确内参与外参的区别:

  • 内参(Intrinsic Parameters):描述相机自身的光学特性,与外部环境无关,包括焦距( f x , f y f_x, f_y fx​,fy​)、主点坐标( c x , c y c_x, c_y cx​,cy​)、畸变系数( k 1 , k 2 , p 1 , p 2 k_1, k_2, p_1, p_2 k1​,k2​,p1​,p2​ 等)。内参通过张正友标定法等可预先求解,是将相机像素坐标转换为相机坐标系下三维坐标的前提。
  • 外参(Extrinsic Parameters):描述相机坐标系相对于世界坐标系(此处为标定板坐标系)的变换关系(旋转矩阵 R C W R_{CW} RCW​ + 平移向量 t C W t_{CW} tCW​),即 T C W

    [ R C W t C W 0 T 1 ] T_{CW} = \begin{bmatrix} R_{CW} & t_{CW} \ 0^T & 1 \end{bmatrix} TCW​=[RCW​0T​tCW​1​]。外参需通过拍摄标定板图像求解,是手眼标定中的关键中间量。

1.4 手眼标定的两种核心架构

根据相机与机械臂的安装关系,手眼标定分为两种典型架构,其标定目标和实现方式存在本质差异:

架构类型安装方式核心特点标定目标
Eye-in-Hand(眼在手上)相机固定于机械臂末端执行器相机随机械臂运动,机械臂基座与标定板固定相机坐标系相对于机械臂末端坐标系的变换 T E C T_{EC} TEC​(即X)
Eye-to-Hand(眼在手外)相机固定于机械臂基座或外部支架相机与机械臂基座固定,标定板固定于机械臂末端相机坐标系相对于机械臂基座坐标系的变换 T B C T_{BC} TBC​(即X)

二、手眼标定原理解释

手眼标定的核心逻辑是:通过机械臂的已知运动和相机拍摄的标定板图像,构建坐标系变换的闭合回路,从而建立关于未知变换矩阵X的方程,最终求解X。以下分别针对两种架构详细解析原理。

2.1 Eye-in-Hand(眼在手上)系统原理

在这里插入图片描述

2.1.1 系统结构特点

  • 相机与机械臂末端刚性连接,机械臂运动时相机同步运动;
  • 标定板固定于工作台(与机械臂基座坐标系相对静止);
  • 已知量:机械臂末端在基座坐标系下的位姿( T B E 1 , T B E 2 , … , T B E n T_{BE_1}, T_{BE_2}, …, T_{BE_n} TBE1​​,TBE2​​,…,TBEn​​);
  • 可求解量:相机相对于标定板的外参( T C W 1 , T C W 2 , … , T C W n T_{CW_1}, T_{CW_2}, …, T_{CW_n} TCW1​​,TCW2​​,…,TCWn​​);
  • 未知量:相机与机械臂末端的变换 T E C T_{EC} TEC​(即X,需标定求解)。

2.1.2 变换回路构建

当机械臂带动相机运动两次,到达两个不同位姿 E 1 E_1 E1​ 和 E 2 E_2 E2​ 时,我们可以构建两个闭合的坐标变换回路:

  1. 第一次运动(位姿1):机械臂基座 → 末端 E 1 E_1 E1​ → 相机 C 1 C_1 C1​ → 标定板 W W W → 机械臂基座
    变换关系: T B W

    T B E 1 × T E 1 C 1 × T C 1 W T_{BW} = T_{BE_1} \times T_{E_1C_1} \times T_{C_1W} TBW​=TBE1​​×TE1​C1​​×TC1​W​

  2. 第二次运动(位姿2):机械臂基座 → 末端 E 2 E_2 E2​ → 相机 C 2 C_2 C2​ → 标定板 W W W → 机械臂基座
    变换关系: T B W

    T B E 2 × T E 2 C 2 × T C 2 W T_{BW} = T_{BE_2} \times T_{E_2C_2} \times T_{C_2W} TBW​=TBE2​​×TE2​C2​​×TC2​W​
    由于标定板与机械臂基座相对静止, T B W T_{BW} TBW​ 是固定不变的;同时,相机与机械臂末端刚性连接, T E 1 C 1

    T E 2 C 2

    X T_{E_1C_1} = T_{E_2C_2} = X TE1​C1​​=TE2​C2​​=X(未知变换矩阵)。因此:

    T B E 1 × X × T C 1 W

    T B E 2 × X × T C 2 W T_{BE_1} \times X \times T_{C_1W} = T_{BE_2} \times X \times T_{C_2W} TBE1​​×X×TC1​W​=TBE2​​×X×TC2​W​

2.1.3 方程简化(AX=XB形式)

定义两个关键变换:

  • A

    T B E 1 − 1 × T B E 2 A = T_{BE_1}^{-1} \times T_{BE_2} A=TBE1​−1​×TBE2​​:机械臂末端从位姿1到位姿2的相对变换(已知,由机械臂API读取的位姿计算);

  • B

    T C 1 W × T C 2 W − 1 B = T_{C_1W} \times T_{C_2W}^{-1} B=TC1​W​×TC2​W−1​:相机坐标系从位姿1到位姿2的相对变换(已知,由两次拍摄的标定板外参计算)。
    将上述定义代入变换回路方程,两边左乘 T B E 1 − 1 T_{BE_1}^{-1} TBE1​−1​,整理后得到:

    X × B

    A × X X \times B = A \times X X×B=A×X
    即:

    A X

    X B A X = X B AX=XB
    这就是Eye-in-Hand系统手眼标定的核心方程,求解该方程即可得到相机与机械臂末端的变换矩阵X。

2.2 Eye-to-Hand(眼在手外)系统原理

在这里插入图片描述

2.2.1 系统结构特点

  • 相机固定于机械臂基座或外部支架(与基座坐标系相对静止);
  • 标定板与机械臂末端刚性连接,机械臂运动时标定板同步运动;
  • 已知量:机械臂末端在基座坐标系下的位姿( T B E 1 , T B E 2 , … , T B E n T_{BE_1}, T_{BE_2}, …, T_{BE_n} TBE1​​,TBE2​​,…,TBEn​​);
  • 可求解量:相机相对于标定板的外参( T C W 1 , T C W 2 , … , T C W n T_{CW_1}, T_{CW_2}, …, T_{CW_n} TCW1​​,TCW2​​,…,TCWn​​);
  • 未知量:相机与机械臂基座的变换 T B C T_{BC} TBC​(即X,需标定求解)。

2.2.2 变换回路构建

当机械臂带动标定板运动两次,到达两个不同位姿 E 1 E_1 E1​(标定板 W 1 W_1 W1​)和 E 2 E_2 E2​(标定板 W 2 W_2 W2​)时,构建闭合变换回路:

  1. 第一次运动(位姿1):机械臂基座 → 相机 C C C → 标定板 W 1 W_1 W1​ → 机械臂末端 E 1 E_1 E1​ → 机械臂基座
    变换关系: T B E 1

    T B C × T C W 1 × T W 1 E 1 T_{BE_1} = T_{BC} \times T_{CW_1} \times T_{W_1E_1} TBE1​​=TBC​×TCW1​​×TW1​E1​​

  2. 第二次运动(位姿2):机械臂基座 → 相机 C C C → 标定板 W 2 W_2 W2​ → 机械臂末端 E 2 E_2 E2​ → 机械臂基座
    变换关系: T B E 2

    T B C × T C W 2 × T W 2 E 2 T_{BE_2} = T_{BC} \times T_{CW_2} \times T_{W_2E_2} TBE2​​=TBC​×TCW2​​×TW2​E2​​
    由于标定板与机械臂末端刚性连接, T W 1 E 1

    T W 2 E 2

    Y T_{W_1E_1} = T_{W_2E_2} = Y TW1​E1​​=TW2​E2​​=Y(固定变换,无需求解);相机与机械臂基座相对静止, T B C

    X T_{BC} = X TBC​=X(未知变换矩阵)。因此:

    T B E 1

    X × T C W 1 × Y T_{BE_1} = X \times T_{CW_1} \times Y TBE1​​=X×TCW1​​×Y

    T B E 2

    X × T C W 2 × Y T_{BE_2} = X \times T_{CW_2} \times Y TBE2​​=X×TCW2​​×Y

2.2.3 方程简化(AX=XB形式)

定义两个关键变换:

  • A

    T B E 1 − 1 × T B E 2 A = T_{BE_1}^{-1} \times T_{BE_2} A=TBE1​−1​×TBE2​​:机械臂末端从位姿1到位姿2的相对变换(已知);

  • B

    T C W 1 − 1 × T C W 2 B = T_{CW_1}^{-1} \times T_{CW_2} B=TCW1​−1​×TCW2​​:标定板(相对于相机)从位姿1到位姿2的相对变换(已知)。
    将两个回路方程变形为 Y

    T C W 1 − 1 × X − 1 × T B E 1 Y = T_{CW_1}^{-1} \times X^{-1} \times T_{BE_1} Y=TCW1​−1​×X−1×TBE1​​ 和 Y

    T C W 2 − 1 × X − 1 × T B E 2 Y = T_{CW_2}^{-1} \times X^{-1} \times T_{BE_2} Y=TCW2​−1​×X−1×TBE2​​,联立后整理得到:

    T C W 1 − 1 × X − 1 × T B E 1

    T C W 2 − 1 × X − 1 × T B E 2 T_{CW_1}^{-1} \times X^{-1} \times T_{BE_1} = T_{CW_2}^{-1} \times X^{-1} \times T_{BE_2} TCW1​−1​×X−1×TBE1​​=TCW2​−1​×X−1×TBE2​​
    两边左乘 T C W 1 T_{CW_1} TCW1​​、右乘 T B E 2 − 1 × X T_{BE_2}^{-1} \times X TBE2​−1​×X,最终化简为:

    A X

    X B A X = X B AX=XB
    惊喜的是,Eye-to-Hand系统的核心方程与Eye-in-Hand完全一致!二者的区别仅在于A和B的物理含义不同,但数学求解方法完全通用——这体现了手眼标定的数学统一性。

三、数学推演:AX=XB方程的求解

3.1 方程本质分析

AX=XB是一个关于4×4齐次变换矩阵X的非线性方程组,其中A和B是已知的4×4齐次变换矩阵(由机械臂运动和相机标定结果得到)。将X拆分为旋转矩阵R(3×3)和平移向量t(3×1),则方程可分解为旋转部分和平移部分的求解:

3.1.1 旋转部分求解(R)

齐次变换矩阵的旋转部分满足: A R R

R B R A_R R = R B_R AR​R=RBR​,其中 A R A_R AR​ 和 B R B_R BR​ 分别是A和B的3×3旋转矩阵。这是一个矩阵方程,可通过正交 Procrustes 问题Tsai-Lenz算法求解。
以正交Procrustes方法为例,其核心思想是将方程转化为最小二乘问题:

min ⁡ R ∥ A R R − R B R ∥ F 2 \min_R | A_R R - R B_R |_F^2 Rmin​∥AR​R−RBR​∥F2​
其中 ∥ ⋅ ∥ F | \cdot |_F ∥⋅∥F​ 是Frobenius范数。通过矩阵向量化和奇异值分解(SVD),可解得:

R

U V T R = U V^T R=UVT
其中U和V是矩阵 M

∑ i

1 n ( B R i ) T A R i M = \sum_{i=1}^n (B_R^i)^T A_R^i M=∑i=1n​(BRi​)TARi​ 的奇异值分解结果( M

U Σ V T M = U \Sigma V^T M=UΣVT),n为机械臂运动的次数(通常采集10~20组数据以提高精度)。

3.1.2 平移部分求解(t)

当旋转矩阵R求解完成后,平移部分满足线性方程:

A R t − t

− A t + R B t A_R t - t = -A_t + R B_t AR​t−t=−At​+RBt​
其中 A t A_t At​ 和 B t B_t Bt​ 分别是A和B的3×1平移向量。将方程整理为:

( A R − I ) t

R B t − A t (A_R - I) t = R B_t - A_t (AR​−I)t=RBt​−At​
这是一个线性方程组 C t

d C t = d Ct=d(其中 C

A R − I C = A_R - I C=AR​−I, d

R B t − A t d = R B_t - A_t d=RBt​−At​),可通过最小二乘法求解:

t

( C T C ) − 1 C T d t = (C^T C)^{-1} C^T d t=(CTC)−1CTd

3.1.3 完整解X的构成

将求解得到的旋转矩阵R和平移向量t代入齐次变换矩阵形式,即可得到完整的变换矩阵X:

X

[ R t 0 T 1 ] X = \begin{bmatrix} R & t \ 0^T & 1 \end{bmatrix} X=[R0T​t1​]

3.2 常用求解算法对比

AX=XB方程的求解算法有多种,不同算法在精度、效率和鲁棒性上各有优劣,适用于不同场景:

算法名称核心特点精度效率适用场景
Tsai-Lenz算法分离旋转和平移求解,经典算法中高工业场景实时标定、算力有限的嵌入式平台
迭代法(如Newton-Raphson)基于非线性优化,迭代收敛高精度需求场景(如精密装配)
解析法(Procrustes+最小二乘)闭式解,无迭代,稳定性强快速标定、多组数据融合
基于李代数的方法将旋转和平移转化为向量空间求解,数学严谨学术研究、复杂场景标定
在实际应用中,Tsai-Lenz算法因兼顾精度和效率,是工业界应用最广泛的方法;若需更高精度,可采用迭代法或融合多组数据的解析法。

3.3 多组数据融合(提高标定精度)

仅通过两次机械臂运动(一组A和B)求解X,精度往往较低。实际标定中通常采集1020组数据(机械臂运动1020个不同位姿,每次拍摄标定板图像并记录机械臂位姿),通过以下方式融合:

  1. 对每组数据( A i , B i A_i, B_i Ai​,Bi​),构建方程 A i X

    X B i A_i X = X B_i Ai​X=XBi​;
  2. 将所有方程转化为统一的线性方程组 M x

    0 M x = 0 Mx=0(其中x是X的向量化形式);
  3. 通过最小二乘法求解超定方程组,得到最优解X。
    多组数据融合可有效抑制测量噪声(如机械臂运动误差、相机标定误差),显著提高标定精度——这是实际操作中不可或缺的步骤。

四、实际应用与操作指南

4.1 典型应用场景

手眼标定的核心价值是实现“视觉引导机械臂”,其典型应用场景包括:

4.1.1 工业自动化抓取

  • 场景:传送带上随机摆放的零件抓取、无序堆叠物料的分拣;
  • 流程:相机拍摄目标→识别目标在相机坐标系下的坐标→通过手眼标定变换矩阵X转换为机械臂基座坐标系坐标→机械臂运动至目标位置完成抓取;
  • 要求:标定精度需达到±0.1~±1mm(根据零件尺寸调整)。

4.1.2 精密装配与测量

  • 场景:电子元器件焊接、微小零件装配、产品尺寸在线检测;
  • 流程:相机拍摄装配目标或被测物体→通过标定转换为机械臂坐标→机械臂执行精密定位或测量动作;
  • 要求:标定精度需达到±0.01~±0.1mm,需结合高精度标定板和相机。

4.1.3 视觉伺服控制

  • 场景:机械臂跟踪动态目标、柔性环境下的自适应操作;
  • 原理:通过相机实时反馈目标位置偏差,结合手眼标定关系,动态调整机械臂运动指令;
  • 要求:标定鲁棒性强,需抵抗动态环境中的噪声干扰。

4.1.4 医疗机器人与科研场景

  • 场景:手术机器人精准操作、机器人辅助实验平台;
  • 特点:对标定精度和安全性要求极高,需结合无菌标定板和高精度传感器。

4.2 实际操作步骤(以Eye-in-Hand为例简单讲解,详细过程会发在后续的博客)

4.2.1 前期准备

  1. 硬件选型
    • 相机:工业相机(推荐分辨率≥1280×960,帧率≥30fps),若需三维定位可选用深度相机(如Kinect、Realsense);
    • 标定板:棋盘格标定板(格子尺寸建议5~20mm,根据工作空间大小选择,需保证平整度);
    • 机械臂:带API接口的工业机械臂或协作机械臂(支持读取末端位姿,重复定位精度≤±0.1mm)。
  2. 软件工具
    • 相机标定:OpenCV(张正友标定法)、Matlab Camera Calibrator Toolbox;
    • 手眼标定:OpenCV(自定义求解AX=XB)、Robotics Toolbox(Matlab/Python)、ROS(Robot Operating System)内置手眼标定包。

4.2.2 具体操作流程

  1. 相机内参标定
    • 拍摄10~20张不同角度、不同距离的标定板图像;
    • 使用OpenCV或Matlab工具求解相机内参矩阵和畸变系数,保存结果用于后续外参计算。
  2. 机械臂与相机安装
    • 将相机固定于机械臂末端(确保刚性连接,无松动);
    • 将标定板固定于工作台(与机械臂基座相对静止,确保无位移)。
  3. 数据采集
    • 控制机械臂运动至不同位姿(建议10~20个),每次运动后确保相机能清晰拍摄到标定板(标定板需占据图像中心区域,无严重畸变);
    • 记录每个位姿下的机械臂末端位姿 T B E i T_{BE_i} TBEi​​(通过机械臂API读取);
    • 拍摄每个位姿下的标定板图像,使用相机内参求解外参 T C W i T_{CW_i} TCWi​​(旋转矩阵+平移向量)。
  4. 求解手眼变换矩阵X
    • 对每组相邻位姿数据,计算机械臂相对变换 A i

      T B E i − 1 − 1 × T B E i A_i = T_{BE_{i-1}}^{-1} \times T_{BE_i} Ai​=TBEi−1​−1​×TBEi​​ 和相机相对变换 B i

      T C W i − 1 × T C W i − 1 B_i = T_{CW_{i-1}} \times T_{CW_i}^{-1} Bi​=TCWi−1​​×TCWi​−1​;
    • 采用Tsai-Lenz算法或多组数据融合法求解AX=XB,得到X(相机与机械臂末端的变换矩阵)。
  5. 标定精度验证
    • 选取一个未参与标定的机械臂位姿,拍摄标定板图像,得到目标在相机坐标系下的坐标 P C P_C PC​;
    • 通过X将 P C P_C PC​ 转换为机械臂末端坐标系坐标 P E

      X × P C P_E = X \times P_C PE​=X×PC​;
    • 机械臂运动至 P E P_E PE​ 对应的基座坐标系位置,观察末端执行器与标定板目标点的重合度——误差在允许范围内(如±0.1mm)则标定有效。

4.3 关键注意事项

  1. 硬件安装:相机与机械臂末端、标定板与工作台的连接必须刚性,避免运动过程中产生松动或形变(这是标定误差的主要来源之一)。
  2. 数据采集
    • 机械臂运动范围需覆盖工作空间,位姿分布均匀(避免集中在某一区域);
    • 拍摄的标定板图像需清晰,无模糊、反光,标定板角点需完整识别;
    • 数据组数建议不少于15组,组数越多,噪声抑制效果越好。
  3. 误差控制
    • 先校准机械臂自身的重复定位精度(若机械臂误差过大,需先进行机械校准);
    • 相机标定需考虑畸变校正(尤其是广角相机,畸变对精度影响显著);
    • 标定环境需稳定(避免光照剧烈变化、振动等)。
  4. 重新标定时机
    • 相机或机械臂末端的安装位置发生变动时;
    • 机械臂进行维护、关节参数调整后;
    • 标定精度验证不通过时(误差超过允许范围)。

五、总结与展望

手眼标定是连接机器人视觉与运动控制的核心技术,其本质是通过坐标系变换回路建立AX=XB方程,求解相机与机械臂的刚性变换关系。无论是Eye-in-Hand还是Eye-to-Hand架构,都遵循“已知运动+视觉测量→构建方程→求解变换”的核心逻辑,仅在系统结构和参数定义上存在差异。
在实际应用中,标定精度直接决定了机械臂与环境交互的可靠性——工业场景中需兼顾精度与效率,科研场景中需追求极致精度,而合理的硬件选型、规范的操作流程和多组数据融合是实现高精度标定的关键。
未来,随着深度学习技术的发展,手眼标定正朝着“无标定”“自标定”方向演进:通过深度神经网络直接学习相机与机械臂的坐标映射关系,无需依赖传统标定板和复杂的数学求解,有望简化操作流程、提高鲁棒性。但在高精度场景中,传统手眼标定因其数学严谨性和稳定性,仍将长期占据主导地位。
希望本文能为从事机器人视觉相关工作的读者提供清晰的原理指引和实用的操作参考——手眼标定的核心是理解“坐标系变换”,掌握这一核心逻辑后,无论面对何种场景,都能灵活调整方案,实现精准的视觉引导控制。

具身智能:零基礎入門睿爾曼機械臂(五)—— 手眼標定核心原理與數學求解

從零說明手眼標定的座標層級:機械臂/相機之間的同構變換、內外參意義,以及 Eye-in-Hand 與 Eye-to-Hand 的典型佈線與 AX=XB 方程式由來,替後續求解打基礎。

來源:https://blog.csdn.net/2403_87969572/article/details/155994460

抓取時間(ISO本地):2026-05-18 05:17:21


文章目錄

前言

在機器人與計算機視覺的交叉領域,精確的空間座標映射是實現機械臂與環境高效交互的核心前提。想象這樣一個場景:工業機器人需要從傳送帶上抓取隨機擺放的零件,或是服務機器人要精準拾取用戶指定的物品——相機作為“眼睛”能識別目標的位置,但機械臂作為“手”卻只理解自身座標系下的指令。如何讓“眼”看到的信息準確傳遞給“手”?手眼標定正是解決這一問題的關鍵技術。
手眼標定的本質是建立相機座標系與機械臂座標系之間的剛性變換關係,通過這一關係,可將相機檢測到的目標座標實時轉換為機械臂能夠執行的運動指令。無論是工業生產中的自動化抓取、精密裝配,還是科研領域的視覺伺服控制、動態環境交互,手眼標定都扮演著不可或缺的角色。
本文將從基礎概念出發,系統拆解手眼標定的兩種核心架構(Eye-in-Hand與Eye-to-Hand),深入推導其數學原理,詳解AX=XB方程的由來與求解方法,並結合實際應用場景說明標定過程中的關鍵注意事項,為從事機器人視覺相關工作的開發者和研究者提供一份全面、可落地的技術指南。

一、相關概念闡述

在深入原理之前,我們需要明確手眼標定涉及的核心概念與基礎工具,這是理解後續內容的前提。

1.1 核心座標系定義

手眼標定的本質是座標系間的變換,需明確以下4個關鍵座標系:

  • 機械臂基座座標系(Base Frame, B {B} B):機械臂的基準座標系,固定於機械臂基座,是機械臂運動計算的參考基準,所有關節運動均相對於該座標系描述。
  • 機械臂末端座標系(End-effector Frame, E {E} E):固定於機械臂末端執行器(如夾爪),用於描述末端執行器的實時位姿(位置+姿態),可通過機械臂API直接讀取。
  • 相機座標系(Camera Frame, C {C} C):以相機光心為原點的三維座標系,X軸與Y軸平行於圖像平面,Z軸為相機光軸方向(遵循右手定則),用於描述目標在相機視野中的三維位置。
  • 標定板座標系(Checkerboard Frame, W {W} W):固定於標定板(通常為棋盤格)的局部座標系,原點一般設為標定板左上角角點,用於提供已知的三維特徵點,作為座標變換的“橋樑”。

1.2 齊次變換矩陣

空間中點的位姿(位置+姿態)變換需通過4×4齊次變換矩陣描述,其形式如下:

T

[ R t 0 T 1 ] T = \begin{bmatrix} R & t \ 0^T & 1 \end{bmatrix} T=[R0T​t1​]
其中:

  • R R R 是3×3旋轉矩陣,描述兩個座標系間的姿態關係,滿足 R T R

    I R^T R = I RTR=I(正交性)和 det ⁡ ( R )

    1 \det(R)=1 det(R)=1(右手座標系);
  • t t t 是3×1平移向量,描述目標座標系原點相對於參考座標系的位置;
  • 0 T

    [ 0 , 0 , 0 ] 0^T = [0,0,0] 0T=[0,0,0],用於保持齊次座標的數學一致性。
    齊次變換矩陣具有複合性:若存在座標系A→B的變換 T A B T_{AB} TAB​ 和 B→C的變換 T B C T_{BC} TBC​,則A→C的變換為 T A C

    T A B × T B C T_{AC} = T_{AB} \times T_{BC} TAC​=TAB​×TBC​(矩陣乘法),這是手眼標定數學推演的核心基礎。

1.3 相機內參與外參

手眼標定依賴相機的參數標定結果,需明確內參與外參的區別:

  • 內參(Intrinsic Parameters):描述相機自身的光學特性,與外部環境無關,包括焦距( f x , f y f_x, f_y fx​,fy​)、主點座標( c x , c y c_x, c_y cx​,cy​)、畸變係數( k 1 , k 2 , p 1 , p 2 k_1, k_2, p_1, p_2 k1​,k2​,p1​,p2​ 等)。內參通過張正友標定法等可預先求解,是將相機像素座標轉換為相機座標系下三維座標的前提。
  • 外參(Extrinsic Parameters):描述相機座標系相對於世界座標系(此處為標定板座標系)的變換關係(旋轉矩陣 R C W R_{CW} RCW​ + 平移向量 t C W t_{CW} tCW​),即 T C W

    [ R C W t C W 0 T 1 ] T_{CW} = \begin{bmatrix} R_{CW} & t_{CW} \ 0^T & 1 \end{bmatrix} TCW​=[RCW​0T​tCW​1​]。外參需通過拍攝標定板圖像求解,是手眼標定中的關鍵中間量。

1.4 手眼標定的兩種核心架構

根據相機與機械臂的安裝關係,手眼標定分為兩種典型架構,其標定目標和實現方式存在本質差異:

架構類型安裝方式核心特點標定目標
Eye-in-Hand(眼在手上)相機固定於機械臂末端執行器相機隨機械臂運動,機械臂基座與標定板固定相機座標系相對於機械臂末端座標系的變換 T E C T_{EC} TEC​(即X)
Eye-to-Hand(眼在手外)相機固定於機械臂基座或外部支架相機與機械臂基座固定,標定板固定於機械臂末端相機座標系相對於機械臂基座座標系的變換 T B C T_{BC} TBC​(即X)

二、手眼標定原理解釋

手眼標定的核心邏輯是:通過機械臂的已知運動和相機拍攝的標定板圖像,構建座標系變換的閉合迴路,從而建立關於未知變換矩陣X的方程,最終求解X。以下分別針對兩種架構詳細解析原理。

2.1 Eye-in-Hand(眼在手上)系統原理

在這裡插入圖片描述

2.1.1 系統結構特點

  • 相機與機械臂末端剛性連接,機械臂運動時相機同步運動;
  • 標定板固定於工作臺(與機械臂基座座標系相對靜止);
  • 已知量:機械臂末端在基座座標系下的位姿( T B E 1 , T B E 2 , … , T B E n T_{BE_1}, T_{BE_2}, …, T_{BE_n} TBE1​​,TBE2​​,…,TBEn​​);
  • 可求解量:相機相對於標定板的外參( T C W 1 , T C W 2 , … , T C W n T_{CW_1}, T_{CW_2}, …, T_{CW_n} TCW1​​,TCW2​​,…,TCWn​​);
  • 未知量:相機與機械臂末端的變換 T E C T_{EC} TEC​(即X,需標定求解)。

2.1.2 變換回路構建

當機械臂帶動相機運動兩次,到達兩個不同位姿 E 1 E_1 E1​ 和 E 2 E_2 E2​ 時,我們可以構建兩個閉合的座標變換回路:

  1. 第一次運動(位姿1):機械臂基座 → 末端 E 1 E_1 E1​ → 相機 C 1 C_1 C1​ → 標定板 W W W → 機械臂基座
    變換關係: T B W

    T B E 1 × T E 1 C 1 × T C 1 W T_{BW} = T_{BE_1} \times T_{E_1C_1} \times T_{C_1W} TBW​=TBE1​​×TE1​C1​​×TC1​W​

  2. 第二次運動(位姿2):機械臂基座 → 末端 E 2 E_2 E2​ → 相機 C 2 C_2 C2​ → 標定板 W W W → 機械臂基座
    變換關係: T B W

    T B E 2 × T E 2 C 2 × T C 2 W T_{BW} = T_{BE_2} \times T_{E_2C_2} \times T_{C_2W} TBW​=TBE2​​×TE2​C2​​×TC2​W​
    由於標定板與機械臂基座相對靜止, T B W T_{BW} TBW​ 是固定不變的;同時,相機與機械臂末端剛性連接, T E 1 C 1

    T E 2 C 2

    X T_{E_1C_1} = T_{E_2C_2} = X TE1​C1​​=TE2​C2​​=X(未知變換矩陣)。因此:

    T B E 1 × X × T C 1 W

    T B E 2 × X × T C 2 W T_{BE_1} \times X \times T_{C_1W} = T_{BE_2} \times X \times T_{C_2W} TBE1​​×X×TC1​W​=TBE2​​×X×TC2​W​

2.1.3 方程簡化(AX=XB形式)

定義兩個關鍵變換:

  • A

    T B E 1 − 1 × T B E 2 A = T_{BE_1}^{-1} \times T_{BE_2} A=TBE1​−1​×TBE2​​:機械臂末端從位姿1到位姿2的相對變換(已知,由機械臂API讀取的位姿計算);

  • B

    T C 1 W × T C 2 W − 1 B = T_{C_1W} \times T_{C_2W}^{-1} B=TC1​W​×TC2​W−1​:相機座標系從位姿1到位姿2的相對變換(已知,由兩次拍攝的標定板外參計算)。
    將上述定義代入變換回路方程,兩邊左乘 T B E 1 − 1 T_{BE_1}^{-1} TBE1​−1​,整理後得到:

    X × B

    A × X X \times B = A \times X X×B=A×X
    即:

    A X

    X B A X = X B AX=XB
    這就是Eye-in-Hand系統手眼標定的核心方程,求解該方程即可得到相機與機械臂末端的變換矩陣X。

2.2 Eye-to-Hand(眼在手外)系統原理

在這裡插入圖片描述

2.2.1 系統結構特點

  • 相機固定於機械臂基座或外部支架(與基座座標系相對靜止);
  • 標定板與機械臂末端剛性連接,機械臂運動時標定板同步運動;
  • 已知量:機械臂末端在基座座標系下的位姿( T B E 1 , T B E 2 , … , T B E n T_{BE_1}, T_{BE_2}, …, T_{BE_n} TBE1​​,TBE2​​,…,TBEn​​);
  • 可求解量:相機相對於標定板的外參( T C W 1 , T C W 2 , … , T C W n T_{CW_1}, T_{CW_2}, …, T_{CW_n} TCW1​​,TCW2​​,…,TCWn​​);
  • 未知量:相機與機械臂基座的變換 T B C T_{BC} TBC​(即X,需標定求解)。

2.2.2 變換回路構建

當機械臂帶動標定板運動兩次,到達兩個不同位姿 E 1 E_1 E1​(標定板 W 1 W_1 W1​)和 E 2 E_2 E2​(標定板 W 2 W_2 W2​)時,構建閉合變換回路:

  1. 第一次運動(位姿1):機械臂基座 → 相機 C C C → 標定板 W 1 W_1 W1​ → 機械臂末端 E 1 E_1 E1​ → 機械臂基座
    變換關係: T B E 1

    T B C × T C W 1 × T W 1 E 1 T_{BE_1} = T_{BC} \times T_{CW_1} \times T_{W_1E_1} TBE1​​=TBC​×TCW1​​×TW1​E1​​

  2. 第二次運動(位姿2):機械臂基座 → 相機 C C C → 標定板 W 2 W_2 W2​ → 機械臂末端 E 2 E_2 E2​ → 機械臂基座
    變換關係: T B E 2

    T B C × T C W 2 × T W 2 E 2 T_{BE_2} = T_{BC} \times T_{CW_2} \times T_{W_2E_2} TBE2​​=TBC​×TCW2​​×TW2​E2​​
    由於標定板與機械臂末端剛性連接, T W 1 E 1

    T W 2 E 2

    Y T_{W_1E_1} = T_{W_2E_2} = Y TW1​E1​​=TW2​E2​​=Y(固定變換,無需求解);相機與機械臂基座相對靜止, T B C

    X T_{BC} = X TBC​=X(未知變換矩陣)。因此:

    T B E 1

    X × T C W 1 × Y T_{BE_1} = X \times T_{CW_1} \times Y TBE1​​=X×TCW1​​×Y

    T B E 2

    X × T C W 2 × Y T_{BE_2} = X \times T_{CW_2} \times Y TBE2​​=X×TCW2​​×Y

2.2.3 方程簡化(AX=XB形式)

定義兩個關鍵變換:

  • A

    T B E 1 − 1 × T B E 2 A = T_{BE_1}^{-1} \times T_{BE_2} A=TBE1​−1​×TBE2​​:機械臂末端從位姿1到位姿2的相對變換(已知);

  • B

    T C W 1 − 1 × T C W 2 B = T_{CW_1}^{-1} \times T_{CW_2} B=TCW1​−1​×TCW2​​:標定板(相對於相機)從位姿1到位姿2的相對變換(已知)。
    將兩個迴路方程變形為 Y

    T C W 1 − 1 × X − 1 × T B E 1 Y = T_{CW_1}^{-1} \times X^{-1} \times T_{BE_1} Y=TCW1​−1​×X−1×TBE1​​ 和 Y

    T C W 2 − 1 × X − 1 × T B E 2 Y = T_{CW_2}^{-1} \times X^{-1} \times T_{BE_2} Y=TCW2​−1​×X−1×TBE2​​,聯立後整理得到:

    T C W 1 − 1 × X − 1 × T B E 1

    T C W 2 − 1 × X − 1 × T B E 2 T_{CW_1}^{-1} \times X^{-1} \times T_{BE_1} = T_{CW_2}^{-1} \times X^{-1} \times T_{BE_2} TCW1​−1​×X−1×TBE1​​=TCW2​−1​×X−1×TBE2​​
    兩邊左乘 T C W 1 T_{CW_1} TCW1​​、右乘 T B E 2 − 1 × X T_{BE_2}^{-1} \times X TBE2​−1​×X,最終化簡為:

    A X

    X B A X = X B AX=XB
    驚喜的是,Eye-to-Hand系統的核心方程與Eye-in-Hand完全一致!二者的區別僅在於A和B的物理含義不同,但數學求解方法完全通用——這體現了手眼標定的數學統一性。

三、數學推演:AX=XB方程的求解

3.1 方程本質分析

AX=XB是一個關於4×4齊次變換矩陣X的非線性方程組,其中A和B是已知的4×4齊次變換矩陣(由機械臂運動和相機標定結果得到)。將X拆分為旋轉矩陣R(3×3)和平移向量t(3×1),則方程可分解為旋轉部分和平移部分的求解:

3.1.1 旋轉部分求解(R)

齊次變換矩陣的旋轉部分滿足: A R R

R B R A_R R = R B_R AR​R=RBR​,其中 A R A_R AR​ 和 B R B_R BR​ 分別是A和B的3×3旋轉矩陣。這是一個矩陣方程,可通過正交 Procrustes 問題Tsai-Lenz算法求解。
以正交Procrustes方法為例,其核心思想是將方程轉化為最小二乘問題:

min ⁡ R ∥ A R R − R B R ∥ F 2 \min_R | A_R R - R B_R |_F^2 Rmin​∥AR​R−RBR​∥F2​
其中 ∥ ⋅ ∥ F | \cdot |_F ∥⋅∥F​ 是Frobenius範數。通過矩陣向量化和奇異值分解(SVD),可解得:

R

U V T R = U V^T R=UVT
其中U和V是矩陣 M

∑ i

1 n ( B R i ) T A R i M = \sum_{i=1}^n (B_R^i)^T A_R^i M=∑i=1n​(BRi​)TARi​ 的奇異值分解結果( M

U Σ V T M = U \Sigma V^T M=UΣVT),n為機械臂運動的次數(通常採集10~20組數據以提高精度)。

3.1.2 平移部分求解(t)

當旋轉矩陣R求解完成後,平移部分滿足線性方程:

A R t − t

− A t + R B t A_R t - t = -A_t + R B_t AR​t−t=−At​+RBt​
其中 A t A_t At​ 和 B t B_t Bt​ 分別是A和B的3×1平移向量。將方程整理為:

( A R − I ) t

R B t − A t (A_R - I) t = R B_t - A_t (AR​−I)t=RBt​−At​
這是一個線性方程組 C t

d C t = d Ct=d(其中 C

A R − I C = A_R - I C=AR​−I, d

R B t − A t d = R B_t - A_t d=RBt​−At​),可通過最小二乘法求解:

t

( C T C ) − 1 C T d t = (C^T C)^{-1} C^T d t=(CTC)−1CTd

3.1.3 完整解X的構成

將求解得到的旋轉矩陣R和平移向量t代入齊次變換矩陣形式,即可得到完整的變換矩陣X:

X

[ R t 0 T 1 ] X = \begin{bmatrix} R & t \ 0^T & 1 \end{bmatrix} X=[R0T​t1​]

3.2 常用求解算法對比

AX=XB方程的求解算法有多種,不同算法在精度、效率和魯棒性上各有優劣,適用於不同場景:

算法名稱核心特點精度效率適用場景
Tsai-Lenz算法分離旋轉和平移求解,經典算法中高工業場景實時標定、算力有限的嵌入式平臺
迭代法(如Newton-Raphson)基於非線性優化,迭代收斂高精度需求場景(如精密裝配)
解析法(Procrustes+最小二乘)閉式解,無迭代,穩定性強快速標定、多組數據融合
基於李代數的方法將旋轉和平移轉化為向量空間求解,數學嚴謹學術研究、複雜場景標定
在實際應用中,Tsai-Lenz算法因兼顧精度和效率,是工業界應用最廣泛的方法;若需更高精度,可採用迭代法或融合多組數據的解析法。

3.3 多組數據融合(提高標定精度)

僅通過兩次機械臂運動(一組A和B)求解X,精度往往較低。實際標定中通常採集1020組數據(機械臂運動1020個不同位姿,每次拍攝標定板圖像並記錄機械臂位姿),通過以下方式融合:

  1. 對每組數據( A i , B i A_i, B_i Ai​,Bi​),構建方程 A i X

    X B i A_i X = X B_i Ai​X=XBi​;
  2. 將所有方程轉化為統一的線性方程組 M x

    0 M x = 0 Mx=0(其中x是X的向量化形式);
  3. 通過最小二乘法求解超定方程組,得到最優解X。
    多組數據融合可有效抑制測量噪聲(如機械臂運動誤差、相機標定誤差),顯著提高標定精度——這是實際操作中不可或缺的步驟。

四、實際應用與操作指南

4.1 典型應用場景

手眼標定的核心價值是實現“視覺引導機械臂”,其典型應用場景包括:

4.1.1 工業自動化抓取

  • 場景:傳送帶上隨機擺放的零件抓取、無序堆疊物料的分揀;
  • 流程:相機拍攝目標→識別目標在相機座標系下的座標→通過手眼標定變換矩陣X轉換為機械臂基座座標系座標→機械臂運動至目標位置完成抓取;
  • 要求:標定精度需達到±0.1~±1mm(根據零件尺寸調整)。

4.1.2 精密裝配與測量

  • 場景:電子元器件焊接、微小零件裝配、產品尺寸在線檢測;
  • 流程:相機拍攝裝配目標或被測物體→通過標定轉換為機械臂座標→機械臂執行精密定位或測量動作;
  • 要求:標定精度需達到±0.01~±0.1mm,需結合高精度標定板和相機。

4.1.3 視覺伺服控制

  • 場景:機械臂跟蹤動態目標、柔性環境下的自適應操作;
  • 原理:通過相機實時反饋目標位置偏差,結合手眼標定關係,動態調整機械臂運動指令;
  • 要求:標定魯棒性強,需抵抗動態環境中的噪聲干擾。

4.1.4 醫療機器人與科研場景

  • 場景:手術機器人精準操作、機器人輔助實驗平臺;
  • 特點:對標定精度和安全性要求極高,需結合無菌標定板和高精度傳感器。

4.2 實際操作步驟(以Eye-in-Hand為例簡單講解,詳細過程會發在後續的博客)

4.2.1 前期準備

  1. 硬件選型
    • 相機:工業相機(推薦分辨率≥1280×960,幀率≥30fps),若需三維定位可選用深度相機(如Kinect、Realsense);
    • 標定板:棋盤格標定板(格子尺寸建議5~20mm,根據工作空間大小選擇,需保證平整度);
    • 機械臂:帶API接口的工業機械臂或協作機械臂(支持讀取末端位姿,重複定位精度≤±0.1mm)。
  2. 軟件工具
    • 相機標定:OpenCV(張正友標定法)、Matlab Camera Calibrator Toolbox;
    • 手眼標定:OpenCV(自定義求解AX=XB)、Robotics Toolbox(Matlab/Python)、ROS(Robot Operating System)內置手眼標定包。

4.2.2 具體操作流程

  1. 相機內參標定
    • 拍攝10~20張不同角度、不同距離的標定板圖像;
    • 使用OpenCV或Matlab工具求解相機內參矩陣和畸變係數,保存結果用於後續外參計算。
  2. 機械臂與相機安裝
    • 將相機固定於機械臂末端(確保剛性連接,無鬆動);
    • 將標定板固定於工作臺(與機械臂基座相對靜止,確保無位移)。
  3. 數據採集
    • 控制機械臂運動至不同位姿(建議10~20個),每次運動後確保相機能清晰拍攝到標定板(標定板需佔據圖像中心區域,無嚴重畸變);
    • 記錄每個位姿下的機械臂末端位姿 T B E i T_{BE_i} TBEi​​(通過機械臂API讀取);
    • 拍攝每個位姿下的標定板圖像,使用相機內參求解外參 T C W i T_{CW_i} TCWi​​(旋轉矩陣+平移向量)。
  4. 求解手眼變換矩陣X
    • 對每組相鄰位姿數據,計算機械臂相對變換 A i

      T B E i − 1 − 1 × T B E i A_i = T_{BE_{i-1}}^{-1} \times T_{BE_i} Ai​=TBEi−1​−1​×TBEi​​ 和相機相對變換 B i

      T C W i − 1 × T C W i − 1 B_i = T_{CW_{i-1}} \times T_{CW_i}^{-1} Bi​=TCWi−1​​×TCWi​−1​;
    • 採用Tsai-Lenz算法或多組數據融合法求解AX=XB,得到X(相機與機械臂末端的變換矩陣)。
  5. 標定精度驗證
    • 選取一個未參與標定的機械臂位姿,拍攝標定板圖像,得到目標在相機座標系下的座標 P C P_C PC​;
    • 通過X將 P C P_C PC​ 轉換為機械臂末端座標系座標 P E

      X × P C P_E = X \times P_C PE​=X×PC​;
    • 機械臂運動至 P E P_E PE​ 對應的基座座標系位置,觀察末端執行器與標定板目標點的重合度——誤差在允許範圍內(如±0.1mm)則標定有效。

4.3 關鍵注意事項

  1. 硬件安裝:相機與機械臂末端、標定板與工作臺的連接必須剛性,避免運動過程中產生鬆動或形變(這是標定誤差的主要來源之一)。
  2. 數據採集
    • 機械臂運動範圍需覆蓋工作空間,位姿分佈均勻(避免集中在某一區域);
    • 拍攝的標定板圖像需清晰,無模糊、反光,標定板角點需完整識別;
    • 數據組數建議不少於15組,組數越多,噪聲抑制效果越好。
  3. 誤差控制
    • 先校準機械臂自身的重複定位精度(若機械臂誤差過大,需先進行機械校準);
    • 相機標定需考慮畸變校正(尤其是廣角相機,畸變對精度影響顯著);
    • 標定環境需穩定(避免光照劇烈變化、振動等)。
  4. 重新標定時機
    • 相機或機械臂末端的安裝位置發生變動時;
    • 機械臂進行維護、關節參數調整後;
    • 標定精度驗證不通過時(誤差超過允許範圍)。

五、總結與展望

手眼標定是連接機器人視覺與運動控制的核心技術,其本質是通過座標系變換回路建立AX=XB方程,求解相機與機械臂的剛性變換關係。無論是Eye-in-Hand還是Eye-to-Hand架構,都遵循“已知運動+視覺測量→構建方程→求解變換”的核心邏輯,僅在系統結構和參數定義上存在差異。
在實際應用中,標定精度直接決定了機械臂與環境交互的可靠性——工業場景中需兼顧精度與效率,科研場景中需追求極致精度,而合理的硬件選型、規範的操作流程和多組數據融合是實現高精度標定的關鍵。
未來,隨著深度學習技術的發展,手眼標定正朝著“無標定”“自標定”方向演進:通過深度神經網絡直接學習相機與機械臂的座標映射關係,無需依賴傳統標定板和複雜的數學求解,有望簡化操作流程、提高魯棒性。但在高精度場景中,傳統手眼標定因其數學嚴謹性和穩定性,仍將長期佔據主導地位。
希望本文能為從事機器人視覺相關工作的讀者提供清晰的原理指引和實用的操作參考——手眼標定的核心是理解“座標系變換”,掌握這一核心邏輯後,無論面對何種場景,都能靈活調整方案,實現精準的視覺引導控制。

Embodied Intelligence: RealMan Arm Primer (V)—Hand–Eye Calibration Math

Foundational hand-eye calibration reading: coordinate frames, homogeneous transforms, intrinsics/extrinsics, Eye-in-hand vs eye-to-world setups, and how AX=XB emerges before numeric solvers appear.

Captured at (local ISO): 2026-05-18 05:17:21


Preface

Vision tells the robot where things are; the arm moves in its own frame. Hand–eye calibration finds the rigid transform from camera to robot so detections become executable poses—for pick-and-place, assembly, visual servoing, and research rigs. This guide covers Eye-in-Hand vs. Eye-to-Hand, the AX=XB equation, solvers, and field tips.

I. Core Concepts

1.1 Frames

  • Base {B}: fixed on the arm base.
  • End-effector {E}: on the tool flange (readable via API).
  • Camera {C}: optical frame (Z along view axis).
  • Calibration board {W}: checkerboard frame with known 3D corners.

1.2 Homogeneous transforms

[ T = \begin{bmatrix} R & t \ 0^T & 1 \end{bmatrix} ]

with (R^T R = I), (\det(R)=1). Compose: (T_{AC} = T_{AB} T_{BC}).

1.3 Camera intrinsics vs. extrinsics

  • Intrinsics: (f_x,f_y,c_x,c_y), distortion—fixed per camera (Zhang calibration).
  • Extrinsics (T_{CW}): board pose in camera frame from each image.

1.4 Two mounting modes

ModeMountGoal X
Eye-in-HandCamera on end-effector(T_{EC}) (camera w.r.t. flange)
Eye-to-HandCamera fixed to base/world(T_{BC}) (camera w.r.t. base)

II. Hand–Eye Principles

2.1 Eye-in-Hand

在这里插入图片描述

  • Camera moves with arm; board static in base frame.
  • Known: (T_{BE_i}) from robot; estimate (T_{CW_i}) from images.
  • Unknown constant: (X = T_{EC}).

Two poses give closed loops:

(T_{BW} = T_{BE_1} X T_{C_1W} = T_{BE_2} X T_{C_2W})

Define (A = T_{BE_1}^{-1} T_{BE_2}), (B = T_{C_1W} T_{C_2W}^{-1}) → (A X = X B).

2.2 Eye-to-Hand

在这里插入图片描述

  • Camera fixed; board on flange moves with arm.
  • Unknown: (X = T_{BC}).
  • Same (A X = X B) form with different physical meaning for A, B.

III. Solving AX=XB

Split (X) into rotation (R) and translation (t).

3.1 Rotation

Solve (A_R R = R B_R) via orthogonal Procrustes / Tsai–Lenz; SVD on (M = \sum (B_R^i)^T A_R^i) → (R = U V^T).

3.1.2 Translation

((A_R - I) t = R B_t - A_t) → least squares (t = (C^T C)^{-1} C^T d).

3.1.3 Full X

[ X = \begin{bmatrix} R & t \ 0^T & 1 \end{bmatrix} ]

3.2 Algorithms

MethodNotes
Tsai–LenzFast, industry default
Iterative (Newton)Higher accuracy
Procrustes + LSClosed form, multi-pose fusion
Lie algebraResearch-grade rigor

3.3 Multi-pose fusion

Collect 10–20+ pose pairs ((A_i, B_i)), stack into overdetermined system, minimize error—critical for noise rejection.

IV. Applications & Workflow

4.1 Use cases

Industrial random bin picking (±0.1–1 mm), precision assembly (±0.01–0.1 mm), visual servoing, medical/ lab rigs.

4.2 Eye-in-Hand procedure (outline; detailed follow-up post)

4.2.1 Prep

Industrial camera (≥1280×960), flat checkerboard, arm with pose API (repeatability ≤±0.1 mm). Tools: OpenCV/MATLAB calib; OpenCV hand–eye, Robotics Toolbox, ROS.

4.2.2 Steps

  1. Intrinsic calib (10–20 board images).
  2. Rigid mount camera on flange; fix board to table.
  3. Data: 10–20 poses—record (T_{BE_i}) and (T_{CW_i}).
  4. Build (A_i, B_i); solve AX=XB (Tsai–Lenz or multi-pose).
  5. Verify on held-out pose: transform point (P_C) → (P_E = X P_C), move arm, check alignment.

4.3 Pitfalls

Rigid mounts; diverse poses; sharp board images; calibrate arm repeatability and lens distortion; recalibrate after any camera/flange move or maintenance.

V. Summary

Hand–eye calibration links vision and motion through AX=XB. Eye-in-Hand and Eye-to-Hand differ in setup but share the same math. Accuracy comes from good hardware, enough poses, and fusion—not shortcuts. Learning-based “calibration-free” methods are emerging, but classical geometry remains the high-precision standard.