1. 手眼标定问题概述
手眼标定(Hand-Eye Calibration)是机器人视觉和自动化领域的一个基础性问题。简单来说,就是确定安装在机器人末端执行器上的相机(或其他传感器)与机器人末端之间的相对位姿关系。这种标定在工业机器人、医疗机器人和自动驾驶等领域都有广泛应用。
在实际应用中,我们通常会遇到两种配置方式:
- 眼在手中(Eye-in-Hand):相机固定在机器人末端
- 眼在手外(Eye-to-Hand):相机固定在机器人工作空间中的某个固定位置
本文重点讨论Eye-in-Hand配置下的标定问题,其核心数学表达可以抽象为求解方程AX=XB,其中:
- A表示机器人末端执行器的运动变换
- B表示相机观测到的运动变换
- X就是我们要求解的相机相对于机器人末端的位姿变换
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 问题建模与数学表达
2.1 坐标系定义
首先我们需要明确几个关键坐标系:
- 机器人基坐标系(Base Frame)
- 末端执行器坐标系(Gripper Frame)
- 相机坐标系(Camera Frame)
- 标定板坐标系(Calibration Target Frame)
2.2 变换关系表达
对于Eye-in-Hand配置,当机器人末端移动时,相机会随之移动。设在时刻i和j,有以下变换关系:
- 机器人末端相对于基座的变换:Hg_i, Hg_j
- 相机相对于标定板的变换:Hc_i, Hc_j
- 相机相对于机器人末端的变换:X(待求)
根据坐标系变换关系,可以得到:
code复制Hgij = Hg_j^-1 * Hg_i
Hcij = Hc_j * Hc_i^-1
X * Hcij = Hgij * X
这就是经典的AX=XB问题。
2.3 问题分解
AX=XB可以分解为旋转和平移两部分求解:
- 旋转部分:R_A * R_X = R_X * R_B
- 平移部分:R_A * t_X + t_A = R_X * t_B + t_X
其中R表示旋转矩阵,t表示平移向量。
3. Tsai-Lenz算法详解
Tsai-Lenz算法是解决AX=XB问题的经典方法,由Roger Y. Tsai和Reinhard K. Lenz于1989年提出。该算法采用两步法:先求解旋转部分,再求解平移
