1. 工业3D视觉标定中的EIH问题本质
在机械臂视觉引导系统中,"眼在手上"(Eye-in-Hand,EIH)是最典型的安装方式之一。这种方式将相机直接安装在机械臂末端,相当于给机械臂装上了"眼睛"。与固定安装的"眼在手外"(Eye-to-Hand,ETH)方式相比,EIH配置具有视野随机械臂运动、灵活性强等优势,但也带来了标定复杂度显著提升的挑战。
EIH标定的核心数学问题可以描述为:已知相机与机械臂末端工具坐标系之间的固定变换关系(即手眼关系),求解相机坐标系与机器人基坐标系之间的动态映射。当机械臂运动时,这个映射关系会实时变化,但手眼关系的几何约束始终保持不变。这种不变性正是标定算法得以建立方程组的理论基础。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 手眼标定的基本坐标系体系
2.1 四大关键坐标系定义
- 机器人基坐标系(Base Frame):固定在机器人底座,作为所有运动的参考基准
- 工具坐标系(Tool Frame):定义在机械臂末端执行器上的坐标系
- 相机坐标系(Camera Frame):以相机光学中心为原点的三维坐标系
- 标定板坐标系(Target Frame):固定在标定板上的已知图案坐标系
2.2 坐标系间的变换关系
- Base→Tool:通过机器人正运动学可得(记为^bT_t)
- Tool→Camera:固定的手眼变换矩阵(记为^tT_c,即待求量X)
- Camera→Target:通过相机标定获得(记为^cT_g)
- Base→Target:标定板在基坐标系中的固定位姿(记为^bT_g)
3. EIH标定的经典方程推导
3.1 运动约束方程建立
当机械臂从位姿1运动到位姿2时,各坐标系关系满足:
code复制^bT_t1 * ^tT_c * ^cT_g = ^bT_t2 * ^tT_c * ^cT_g
化简后得到经典的手眼标定方程:
code复制A * X = X * B
其中:
- A = ^bT_t2^-1 * ^bT_t1(机器人基坐标系下的相对运动)
- B = ^cT_g2 * ^cT_g1^-1(相机坐标系下的相对运动)
- X = ^tT_c(待求的手眼变换矩阵)
3.2 矩阵方程的求解策略
该方程属于特殊的Sylvester方程,常用解法包括:
- 分离旋转和平移:利用旋转矩阵的正交性,先解旋转部分R,再解平移部分t
- 四元数法:将旋转表示为四元数形式,建立线性方程组
- 李代数法:在切空间内建立线性关系,适合噪声较大场景
4. 实际工程实现细节
4.1 数据采集规范
- 机械臂运动应覆盖工作空间主要区域
- 相邻位姿间旋转建议15°-30°,平移建议50-200mm
- 每个位姿需确保标定板完整成像且清晰
- 典型数据量:15-30组有效位姿
4.2 标定板选择要点
| 类型 | 精度 | 适用场景 | 注意事项 |
|---|---|---|---|
| 棋盘格 | 较高 | 室内环境 | 需保证平整 |
| 圆点阵列 | 最高 | 工业场景 | 注意照明均匀 |
| ArUco | 中等 | 动态场景 | 需预标定尺寸 |
4.3 核心算法实现步骤(Python示例)
python复制def hand_eye_calibration(A_list, B_list):
# 构造旋转和平移的线性方程组
M = np.zeros((3*len(A_list), 3))
b = np.zeros(3*len(A_list))
for i in range(len(A_list)):
Ra = A_list[i][:3,:3]
Rb = B_list[i][:3,:3]
M[3*i:3*i+3, :] = Ra - np.eye(3)
b[3*i:3*i+3] = (Rb - np.eye(3)) @ t_list[i]
# 求解旋转部分
R = solve_rotation_axxb(A_list, B_list)
# 求解平移部分
t = np.linalg.lstsq(M, b, rcond=None)[0]
return construct_transform_matrix(R, t)
5. 工程实践中的关键挑战
5.1 误差来源分析
-
机械臂运动误差:
- 重复定位精度影响
- 温度引起的热变形
- 负载变化导致的柔性变形
-
视觉测量误差:
- 标定板检测亚像素误差
- 镜头畸变校正残余
- 图像噪声影响
-
数学模型误差:
- 小角度假设的近似
- 噪声分布的理想化假设
- 累积误差的传播
5.2 精度提升技巧
-
运动规划优化:
- 采用"星型"运动轨迹(从中心向四周辐射)
- 保证旋转和平移量的充分性
- 避免纯平移或纯旋转序列
-
数据筛选策略:
- 剔除重投影误差大的样本
- 检查运动幅度的均匀性
- 验证手眼关系的闭合性
-
鲁棒求解方法:
- RANSAC剔除异常点
- 加权最小二乘法
- 李代数上的优化
6. 标定结果验证方法
6.1 定量评估指标
- 重投影误差:将标定板角点投影到图像空间的RMS误差(应<0.5像素)
- 运动一致性误差:检查不同路径下的手眼关系一致性
- 末端重复性测试:固定目标点的视觉伺服重复精度
6.2 典型问题诊断表
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 旋转误差大 | 运动序列旋转不充分 | 增加旋转幅度差异 |
| 平移不稳定 | 运动距离过小 | 增大相邻位姿间距 |
| 整体偏差 | 标定板测量不准 | 重新标定内参 |
| 局部异常 | 机械臂反向间隙 | 避免来回运动 |
7. 先进方法与发展趋势
7.1 基于深度学习的标定方法
- 端到端标定网络:直接回归手眼矩阵
- 特征提取优化:改进标定板检测鲁棒性
- 误差预测模型:估计标定结果的不确定性
7.2 在线标定技术
- 视觉-惯性融合:结合IMU数据进行动态标定
- 环境特征利用:利用工作场景中的自然特征
- 自适应更新机制:根据运行时数据自动优化
在实际项目中,我们曾遇到机械臂负载变化导致标定结果漂移的问题。通过分析发现,末端执行器的重量变化会引起约0.1mm的柔性变形。最终的解决方案是在不同负载下分别标定,然后建立负载-变形补偿模型。这个经验告诉我们,EIH标定不是一次性的工作,而需要根据实际工况建立完整的误差补偿体系。
