1. 课程导论:手眼标定在工业机器人中的核心作用,OpenCV与Halcon的生态对比,课程目标与学习路径

1.1 手眼标定:工业机器人感知与执行的桥梁

在工业自动化场景中,机器人需要精确抓取、装配或焊接工件。然而,机器人的“眼睛”(相机)与“手”(末端执行器)位于不同的坐标系中。手眼标定的核心任务就是求解相机坐标系与机器人坐标系之间的空间变换关系(旋转矩阵 R 与平移向量 t),使得视觉系统检测到的目标位置能够被机器人准确到达。

核心公式: 手眼标定本质是求解 AX = XB 矩阵方程,其中 A 为机器人末端位姿变换,B 为相机观测到的标定板位姿变换,X 为待求的手眼矩阵。

手眼标定直接影响以下工业指标:

  • 抓取成功率: 标定误差 > 1mm 时,精密装配良率下降 30% 以上。
  • 换产效率: 快速标定流程可将产线切换时间从 4 小时缩短至 30 分钟。
  • 系统鲁棒性: 高精度标定可补偿机器人运动学误差与相机畸变。

1.2 两种主流标定模式:Eye-to-Hand 与 Eye-in-Hand

模式 相机安装位置 标定方程 典型应用
Eye-to-Hand 固定于工作台上方 相机 → 机器人基座 大范围分拣、码垛
Eye-in-Hand 固定在机器人末端 相机 → 机器人末端 精密装配、焊缝跟踪
选型建议: 当工件位置固定且视野较大时,优先选择 Eye-to-Hand;当需要近距离、多角度观察时,Eye-in-Hand 更具灵活性。
手眼标定两种模式结构对比 Eye-to-Hand(眼在手外) 相机 机器人基座 标定板 观测 运动 Eye-in-Hand(眼在手上) 机器人末端 相机 标定板 固定 观测

1.3 OpenCV 与 Halcon 生态对比

OpenCV 与 Halcon 是工业视觉领域最主流的两个开发平台,它们在手眼标定任务中的定位差异显著:

对比维度 OpenCV Halcon
许可证 BSD 开源免费 商业授权(按节点收费)
标定核心函数 calibrateCamera() + solvePnP() + 手眼方程求解 calibrate_cameras() + hand_eye_calibration()
标定精度(典型值) 0.5 ~ 2.0 mm(依赖标定板质量) 0.1 ~ 0.5 mm(内置亚像素优化)
标定板支持 棋盘格、圆点阵、ChArUco 棋盘格、圆点阵、编码标定板
二次开发灵活性 极高(C++/Python 源码级修改) 中等(HDevelop 脚本 + C++/C# 导出)
工业部署成熟度 中等(需自行封装异常处理) 高(内置错误码与日志系统)
注意: Halcon 的标定算子虽然精度更高,但依赖其专有的标定板描述文件(.descr);OpenCV 则更依赖标定板物理尺寸的精确测量。两者在畸变校正模型上也有差异(OpenCV 使用径向+切向模型,Halcon 使用除法模型+多项式模型)。

1.4 课程目标与学习路径

本课程旨在帮助学员掌握两种平台下的手眼标定全流程,并能够根据项目需求做出合理的技术选型。

课程核心目标

  • 理解原理: 透彻掌握坐标系变换、AX=XB 求解、Tsai 法与 Park 法。
  • 实战编码: 分别使用 OpenCV(Python/C++)与 Halcon(HDevelop)完成 Eye-to-Hand 与 Eye-in-Hand 标定。
  • 精度分析: 学会评估标定误差,并针对不同场景优化标定流程。
  • 选型决策: 根据预算、精度要求、开发周期选择合适平台。

推荐学习路径

  1. 基础篇(第 1-5 章): 坐标系与变换矩阵、相机模型与畸变、标定板设计。
  2. 核心篇(第 6-15 章): OpenCV 标定流程详解、Halcon 标定流程详解、手眼方程求解。
  3. 进阶篇(第 16-25 章): 高精度标定技巧、多相机标定、机器人运动学补偿。
  4. 实战篇(第 26-30 章): 完整项目案例(3C 装配、物流分拣)、性能对比与报告生成。
课程学习路径与知识体系 基础篇 坐标系·相机模型 标定板设计 核心篇 OpenCV/Halcon 标定 AX=XB 求解 进阶篇 高精度·多相机 运动学补偿 实战篇 完整项目 性能对比 学习建议 每章配套代码仓库 + 标定数据 + 视频讲解,建议动手实操每个标定步骤 遇到精度问题时,优先检查标定板平面度与图像采集质量
预备知识: 建议学员具备线性代数基础(矩阵乘法、齐次坐标)、Python/C++ 基础编程能力,以及机器人学基础(DH 参数、正逆运动学)。本课程在第 2 章会提供快速复习模块。