1. 概述
标定的目的,是求解相机与机械臂基座(或末端)之间固定的变换关系,是视觉引导机器人作业的基石,精准的标定是解决误差的前提。
根据相机安装位置,分为两种模式,常用“眼在手外”模式,两种模式如下:
模式 | 示意图公式 | 特点与适用场景 |
|---|---|---|
眼在手外(Eye-to-Hand) | T_base_marker = T_base_cam* T_cam_marker(求解 T_base_cam) | 相机固定,视野全局稳定,最适合大范围初始定位。 |
眼在手上(Eye-in-Hand) | T_base_marker = T_base_flange * T_flange_cam * T_cam_marker(求解 T_flange_cam) | 相机随动,适合近距离精细扫描(如焊缝跟踪)。 |

2. 标定流程(眼在手外为例)
步骤 | 关键操作 | 要点与常见错误 |
|---|---|---|
① 固定安装 | 牢固安装相机与标定板,确保绝对无移动。 | 松动会导致巨大误差。 |
② 定义坐标系 | 明确基座、末端、相机、标定板坐标系及旋转方向。 | 定义混乱会导致结果完全错误。 |
③ 运动采集 | 手动控制机械臂,使末端标定板在相机视野内做大幅度平动和转动。 | 运动不充分会导致解算失败。 |
④ 同步记录 | 在每个位姿,同步记录:1. 机械臂末端位姿 (T_base_flange)2. 相机识别标定板位姿 (T_cam_marker) | 异步记录会引入严重噪声。 |
⑤ 保证质量 | 采集15-30组数据,确保标定板在图像中清晰、完整、角度多样。 | 数据太少或图像模糊影响精度。 |
⑥ 初步验证 | 用几组新位姿数据立即验证标定结果。 | 跳过验证可能带着错误结果进入应用。 |
⑦ 算法解算 | 调用如 cv2.calibrateHandEye() 函数,输入所有位姿数据,求解 T_base_cam。 | 根据运动类型选择合适的算法参数。 |
⑧ 评估误差 | 检查重投影误差,量化标定质量。 | 不评估则无法知晓精度。 |
⑨ 最终验证 | 将标定结果写入系统,让机械臂指向一个固定物理点,对比理论位置与实际位置。 | 理论必须经实际场景验证。 |
3. 注意事项
T_cam_marker 计算本身就有几个像素的误差,在深度方向会被放大。T_base_flange 是从机器人控制器读出的、以基座为参考的末端法兰位姿,而不是自己正运动学计算的,同时明确变换链的方向,是 T_base_cam * T_cam_marker,还是其逆。calibrateHandEye 函数(对于眼在手外,R_gripper2base 传入末端姿态的旋转部分,t_gripper2base 传入平移部分;R_target2cam 和 t_target2cam 传入标定板姿态)。