4. 坐标系与空间校准基础
在精密测量中,相机输出的原始结果永远是“像素”,而工程图纸、公差、装配要求使用的却是“毫米”。把像素稳定、可追溯地换算成毫米,并让多个相机、运动轴、机器人共享同一套空间语义,就是坐标系与空间校准要解决的问题。本节围绕四个核心对象展开:像素坐标、物理坐标、标定板、Calibration 工具与坐标系映射。
一、像素坐标与物理坐标:两种语言
像素坐标描述的是“点在图像里的位置”,通常以图像左上角为原点,X 向右、Y 向下,单位为 pixel。例如某圆心在图像中的位置为 (1024.3, 768.7) px,这是亚像素级的图像坐标。物理坐标描述的是“点在真实世界里的位置”,单位是 mm 或 μm,原点由标定过程定义,方向由标定板或工装基准决定。
两者之间不是简单的比例关系。像素到物理的映射至少包含:尺度(mm/pixel)、旋转(相机相对工件的角度)、平移(原点偏移),在存在透视或镜头畸变时还需要畸变系数与透视变换。VisionPro 的 Calibration 工具正是求解这组映射参数,并把它封装成一个可复用的标定(Calibration)对象。
二、标定板类型与选择
标定板提供已知物理尺寸的基准点阵,是标定的“尺子”。常见类型包括:
- 棋盘格(Checkerboard):黑白交替方格,角点检测稳定,适合面阵相机、视野较小时使用。缺点是角点方向存在 90° 歧义,需约定行列方向。
- 圆点阵列(Dot Grid):实心圆或同心圆阵列,圆心定位对模糊和光照更鲁棒,适合背光或低对比场景。
- 圆环/同心圆标定板:圆心可由内外圆拟合得到,抗部分遮挡,常用于高精度测量。
- 编码标定板(如 Calib 板、CharuCo):每个标记带唯一编码,可在部分遮挡、倾斜、大视野下自动识别身份,适合多相机与机器人手眼标定。
- 一维/二维标尺与基准块:用于现场快速核验尺度,不作为完整标定使用。
选择依据是:视野大小、精度要求、景深与倾斜、是否需要多相机统一、现场是否允许放置标定板。例如视野 100 mm × 80 mm、要求 ±0.02 mm 时,可选用 7×7 圆点阵列、点间距 5 mm、加工精度 ±0.001 mm 的陶瓷标定板;若需多相机拼接,则优先选编码标定板。
三、Calibration 工具与坐标系映射
VisionPro 中,Calibration 工具通常按以下流程工作:采集标定图像 → 提取标定特征(角点/圆心)→ 输入标定板物理参数(间距、行列数、单位)→ 求解映射模型 → 生成 Calibration 对象 → 在后续工具中通过 Calibrated 或坐标变换把像素结果转为物理结果。
映射模型常见两类:线性标定(相似变换/仿射变换,含尺度、旋转、平移,必要时含剪切)与非线性标定(含径向/切向畸变、透视变换)。线性标定适合镜头畸变小、工件与相机近似平行的场景;非线性标定适合广角、倾斜、大视野场景。
坐标系映射还涉及“多坐标系链”:图像坐标系 → 标定坐标系(物理)→ 工装/工件坐标系 → 设备/机器人坐标系。每一级都是一次刚体或仿射变换。VisionPro 通过 Calibration 对象与 Fixture/Transform 工具串联这些变换,使同一物理点在不同相机、不同工位下具有一致表达。
四、标定质量判断与常见问题
标定完成后,不能只看“是否成功”,要看残差与验证结果。VisionPro 会给出标定误差(如 RMS 误差)。经验上,若要求测量精度 ±0.02 mm,标定 RMS 应控制在 0.005 mm 以内,且残差在视野内分布均匀,不能出现局部偏大。
常见问题与排查方向:
- 尺度不对:标定板间距输入错误,或单位混用(mm 与 inch)。检查标定板参数与图纸是否一致。
- 旋转/镜像错误:标定板行列方向与工具约定不一致,导致 X/Y 反向。用已知方向特征点验证。
- 边缘畸变大:只做线性标定,未启用畸变模型。改用非线性标定或缩小视野。
- 多相机不一致:各相机独立标定后未统一到同一工件坐标系。需增加公共基准或使用编码标定板做全局统一。
- 标定板倾斜/离焦:特征提取偏差增大。保持标定板与工件平面共面,景深内清晰成像。
五、坐标系映射的工程约定
为避免方向与正负号混乱,工程上应固定一套约定并写入项目文档。例如:图像坐标系 X 向右、Y 向下;物理坐标系 X 向右、Y 向上;旋转角逆时针为正。标定板原点定义在左下角第一个圆点,X 沿行方向、Y 沿列方向。所有工具、机器人、PLC 均按此约定解释坐标。切换参照系时,必须在文档和程序注释中明确说明,避免“同一数值、不同含义”。
总结来说,像素坐标是相机的语言,物理坐标是工程的语言,标定板是翻译的词典,Calibration 工具是翻译器,而坐标系映射链则保证整条测量链路说同一种语言。掌握这四者之间的关系,才能在后续的精密测量、多相机拼接与机器人引导中保持精度与一致性。