手眼标定基础:坐标系定义与核心概念
大家好,我是老张。今天咱们聊聊手眼标定里最基础、也最绕不开的话题——坐标系。说实话,我见过太多工程师在标定环节翻车,十有八九都是坐标系没搞明白。你想想看,机械臂和相机各说各话,数据对不上,那还怎么协同工作?
一、四个核心坐标系
做手眼标定,说白了就是要搞清楚四个坐标系之间的变换关系。我习惯把它们分成两组来理解:
1. 世界坐标系
这是全局参考系,通常定义在机器人工作空间的某个固定位置。我个人习惯把它放在机器人底座中心,或者工作台的一个角落。为什么?因为这样后续计算最方便。
2. 相机坐标系
相机自己的“眼睛”。原点在相机光心,Z轴沿着光轴方向。这个坐标系是固定的——只要相机没被碰歪,它就不会变。
3. 机械臂坐标系
也叫机器人基坐标系。原点在机械臂底座,Z轴通常竖直向上。嗯,这里要注意:不同品牌的机器人,坐标系定义可能略有差异,一定要看手册确认。
4. 工具坐标系
定义在机械臂末端执行器上。比如你装了个夹爪,或者焊枪,工具坐标系的原点就在工具尖端。这个坐标系会随着机械臂运动而不断变化。
| 坐标系 | 原点位置 | 是否固定 | 常见用途 |
|---|---|---|---|
| 世界坐标系 | 用户定义(如底座中心) | 固定 | 全局参考 |
| 相机坐标系 | 相机光心 | 固定 | 图像到3D转换 |
| 机械臂坐标系 | 机器人底座 | 固定 | 运动控制 |
| 工具坐标系 | 工具尖端 | 随动 | 末端定位 |
二、标定板介绍
标定板是什么?说白了就是一个已知尺寸的棋盘格或圆点阵列。它的作用就是给相机提供一个“已知的参考”。
我个人最常用的是棋盘格标定板。为什么?因为角点检测算法成熟,精度高。圆点阵列也有它的优势——对畸变不敏感,但检测算法稍微复杂些。
三、眼在手上 vs 眼在手外
这是手眼标定里最核心的两种配置。我分别说说:
眼在手上(Eye-in-Hand)
相机固定在机械臂末端,跟着机械臂一起动。这种配置的好处是:相机可以近距离观察目标,精度高。缺点呢?机械臂运动时相机也在动,需要实时补偿。
我在做焊接机器人项目时用的就是眼在手上。相机跟着焊枪走,可以实时检测焊缝位置,精度控制在0.2毫米以内。嗯,真香。
眼在手外(Eye-to-Hand)
相机固定在工作空间上方,机械臂在相机视野内运动。这种配置的好处是:相机视野大,可以全局观察。缺点是:距离远,精度会受一定影响。
做码垛机器人时我更喜欢眼在手外。相机从高处俯拍,一眼就能看到整个托盘,规划路径特别方便。
四、知识体系结构图
下面这张图是我自己画的,把本章的核心逻辑串起来了。你仔细看看,应该能一目了然:
五、标定流程速览
最后,我简单说一下标定的基本流程。你心里有个数就行:
- 准备标定板——确保平整、尺寸准确
- 采集数据——让机械臂带着标定板走多个位姿,相机拍照记录
- 提取特征点——检测棋盘格角点或圆点中心
- 求解变换矩阵——用数学方法(比如Tsai法)算出相机和机械臂之间的变换关系
- 验证精度——用一组新数据验证标定结果,误差在可接受范围内才算完
好了,这一章的内容就到这儿。坐标系定义是手眼标定的地基,地基打不牢,后面全是空中楼阁。你先把这四个坐标系和两种配置搞清楚,后面咱们再聊具体的标定算法。
公众号:蓝海资料掘金营,微信deep3321