4. 系统标定基础

3D线扫在线尺寸测量系统之所以能输出真实世界的毫米值,而不是一堆像素坐标,靠的是标定把“像素—激光—运动—世界”这几套坐标系统一到同一参照下。本节围绕四个标定对象展开:相机模型、激光平面方程、运动方向标定、手眼标定与坐标系转换。它们不是四个孤立步骤,而是一条从二维图像到三维点云的参数链。

一、相机模型:把像素反投影成射线

线扫系统通常使用针孔模型加畸变模型。针孔模型用内参矩阵 K 描述像素坐标与相机坐标的关系:

K = [ fx  0  cx
       0  fy  cy
       0   0   1 ]

u = fx * Xc/Zc + cx
v = fy * Yc/Zc + cy

其中 fx、fy 为等效焦距(像素),cx、cy 为主点。实际镜头存在径向畸变 k1、k2 和切向畸变 p1、p2,标定时用棋盘格或圆点靶标采集 15~25 张不同位姿图像,通过张正友法求解内参与畸变系数,重投影误差一般要求小于 0.2 像素。标定完成后,每个像素 (u,v) 对应相机坐标系下的一条射线,方向由 K⁻¹ 与畸变校正共同确定。这条射线是后续与激光平面求交的基础。

二、激光平面方程:给射线一个约束

线激光器投射出的光平面在相机坐标系下可写成平面方程:

a·Xc + b·Yc + c·Zc + d = 0

标定激光平面的常用做法是:把靶标放在多个已知位置,采集激光条纹在靶标上的像素坐标,结合相机模型反算出这些点在相机坐标系下的三维坐标,再用最小二乘拟合平面参数 (a,b,c,d)。示例中若拟合得到 a=0.02、b=-0.98、c=0.15、d=120.5(单位 mm),说明光平面近似垂直于 Yc 轴并略有倾斜。此时,图像上任意一个激光条纹像素对应的射线与该平面求交,就得到一个唯一的相机坐标三维点。这一步把“二维条纹”变成了“三维轮廓点”。

线扫系统标定参数链:像素 → 射线 → 平面交点 → 运动 → 世界坐标 相机 内参 K + 畸变 (fx, fy, cx, cy, k1, k2) 像素射线 (u,v) → 相机坐标 方向向量 激光平面方程 aX+bY+cZ+d=0 最小二乘拟合 相机坐标三维点 射线 ∩ 平面 (Xc, Yc, Zc) 运动方向标定 编码器脉冲 ↔ 位移 方向向量 T = (tx,ty,tz) 手眼标定 相机 ↔ 运动平台 旋转 R + 平移 t 世界坐标点云 Pw = R·Pc + t + s·T 真实毫米尺寸 标定顺序与关键约束 ① 相机内参标定:重投影误差 < 0.2 px,确定像素射线方向。 ② 激光平面标定:多位置靶标拟合 (a,b,c,d),确定射线与平面交点。 ③ 运动方向标定:编码器脉冲当量 s(mm/pulse)与方向向量 T,确定扫描轴。 ④ 手眼标定:求 R、t,把相机坐标统一到世界坐标,输出真实尺寸。 Xw Zw Yw

三、运动方向标定:把扫描轴纳入坐标

线扫系统靠相对运动把一条激光线“铺”成面。运动方向标定要解决两件事:一是脉冲当量 s,即编码器每发一个脉冲对应平台移动多少毫米;二是运动方向向量 T,即平台前进方向在相机坐标系下的单位向量。做法是:在平台上放置一个已知间距的标准件(例如 50.000 mm 量块),让平台匀速走过,记录首尾两次触发时编码器脉冲数 N,则 s = 50.000 / N。方向向量 T 则通过让同一特征点在两个不同运动位置成像,结合相机模型反算其相机坐标位移方向得到。示例中若 N=25000,则 s=0.002 mm/pulse;若 T≈(0.01, 0.02, 0.999),说明运动方向几乎沿相机 Zc 轴,但存在约 1° 的偏斜,这个偏斜必须在后续坐标转换中补偿,否则长距离扫描会产生明显形变。

四、手眼标定与坐标系转换

手眼标定求的是相机坐标系到世界坐标系的刚体变换:

Pw = R · Pc + t + s · T · n

其中 R 为 3×3 旋转矩阵,t 为 3×1 平移向量,n 为当前扫描行对应的编码器脉冲序号。标定方法常用“相机固定、靶标随平台运动”的 eye-to-hand 模式:把标定板放在平台上,在多个位置采集图像,利用已知的靶标位姿和平台位移构造 AX=XB 方程,求解 R、t。示例中若 R 接近单位阵、t=(12.3, -5.6, 480.2) mm,说明相机光心在世界坐标原点前方约 480 mm 处。完成这一步后,每个扫描行的三维点都能映射到统一世界坐标,点云拼接不再错位,测量结果直接以毫米输出。

标定顺序建议:先内参、再激光平面、再运动方向、最后手眼。每一步的残差都要单独检查:内参看重投影误差,激光平面看拟合点到平面距离的 RMS,运动方向看标准件长度偏差,手眼看靶标角点重投影误差。任何一步超差都会在最终点云上放大成尺寸误差。
常见误区:把运动方向标定和手眼标定混为一谈。运动方向标定只确定“走多远、往哪走”,手眼标定确定“相机在哪、朝哪看”。两者参数不同、标定对象不同,必须分别执行并分别验证。

把四个环节串起来看:相机模型给出射线,激光平面给出交点,运动方向给出扫描轴,手眼标定给出世界位姿。四组参数全部正确后,系统才能把一条条二维激光条纹稳定地还原成可测量的三维点云。实际调试时,建议用标准球或量块做端到端验证:若测量值与标准值偏差在 ±0.05 mm 以内,说明整条标定链闭合良好;若偏差随扫描长度线性增大,优先复查运动方向标定的脉冲当量和方向向量。