一、课程导论:眼在手外标定的应用场景、课程目标与学习路径、坐标系基础概念
大家好,我是你们这门课的老朋友。
做机器视觉这些年,我接触过不少刚入行的工程师。他们最常问的一个问题就是:「相机装好了,机器人也动了,怎么让它们俩配合干活?」
说白了,这就是我们今天要聊的核心——眼在手外标定。
1.1 眼在手外标定:到底在解决什么问题?
先说说应用场景。你想想看,一个典型的自动化产线:
- 机器人负责抓取、放置、装配
- 相机负责拍照、定位、检测
但相机看到的坐标,和机器人运动的坐标,是两套语言。你得把它们「翻译」成同一套坐标系,机器人才能准确抓起来。
核心一句话:眼在手外标定,就是求相机坐标系到机器人基座坐标系的变换矩阵。
我在项目中遇到过这样一个案例:一条手机组装线,相机装在流水线上方,机器人从旁边抓取零件。刚开始没标定好,机器人总是抓偏,偏差有2-3毫米。后来我重新做了眼在手外标定,精度直接干到0.1毫米以内。嗯,这就是标定的价值。
常见的应用场景包括:
- 抓取与放置:视觉引导机器人抓取传送带上的工件
- 装配对位:相机定位,机器人完成精密装配
- 检测与分拣:视觉检测后,机器人将不良品剔除
- 涂胶与焊接:视觉引导机器人沿轨迹运动
1.2 课程目标:学完你能做什么?
这门课一共30章,我不打算只讲理论。我的目标是:
- 理解原理:搞清楚坐标系变换的数学本质
- 动手实操:用HALCON完成完整的标定流程
- 工程落地:处理实际项目中的各种坑
- 精度优化:知道怎么提升标定精度
我的建议:每章学完后,一定要自己动手跑一遍代码。光看不练,等于白学。
1.3 坐标系基础概念:你得先认识这六个坐标系
做手眼标定,坐标系是绕不开的坎。我刚开始学的时候,也被这些坐标系搞得晕头转向。后来我总结了一个方法——画图。把每个坐标系画出来,标清楚它们之间的关系,思路就清晰了。
下面这张图,是我自己整理的坐标系关系图,你先看一遍:
这张图我建议你保存下来。每次做标定前,先对着图理一遍思路,能少走很多弯路。
1.4 六个坐标系详解
接下来,我一个一个给你讲清楚。
| 坐标系 | 英文 | 作用 | 典型原点 |
|---|---|---|---|
| 世界坐标系 | World | 描述所有物体的位置 | 产线固定点 |
| 相机坐标系 | Camera | 相机光心为原点,Z轴沿光轴 | 相机光心 |
| 图像坐标系 | Image | 像素坐标,描述图像中的位置 | 图像左上角 |
| 机器人基座坐标系 | Robot Base | 机器人运动的参考系 | 机器人底座中心 |
| 工具坐标系 | Tool | 描述工具末端的位置和姿态 | 工具末端 |
| 工件坐标系 | Object | 描述工件的位置和姿态 | 工件中心 |
⚠️ 曾经踩过的坑:有一次我忘了区分「工具坐标系」和「机器人基座坐标系」,直接把相机看到的坐标发给机器人,结果机器人抓了个寂寞。后来我养成了一个习惯——每次标定前,先确认当前用的是哪个坐标系。
1.5 学习路径:这门课怎么学?
我把30章内容分成了四个阶段:
- 基础篇(第1-8章):坐标系、相机模型、标定板、HALCON基础操作
- 核心篇(第9-18章):手眼标定原理、九点标定、N点标定、代码实现
- 进阶篇(第19-25章):精度分析、误差补偿、多相机标定、3D标定
- 实战篇(第26-30章):完整项目案例、调试技巧、常见问题排查
我个人习惯是:每学完一个阶段,就找一个实际项目练手。比如学完基础篇,你可以先试着标定一个单相机;学完核心篇,就可以做完整的抓取项目了。
一个小技巧:学完每章后,用思维导图把知识点串起来。我自己的笔记里,光坐标系关系图就画了不下20遍。画着画着,你就懂了。
1.6 本章小结
好了,第一章的内容就到这里。我们讲了:
- 眼在手外标定的应用场景
- 课程目标和学习路径
- 六大坐标系的概念和关系