工业视觉 / 半导体平台 里,比全二维网格更常用、更高效的标定方案非常多。我按实用程度 + 现场真实在用的顺序给你整理,全部是能直接替代你现在对角线扫描的方案。
一、先明确目标
我们要标定的是:
$
{ΔX=KxRx⋅Rx+KxRy⋅Ry+KxRxRy⋅Rx⋅RyΔY=KyRx⋅Rx+KyRy⋅Ry+KyRxRy⋅Rx⋅Ry
也就是:一次项 + 交叉耦合项 最少只需要 4~6 个点 就能解,根本不用 N×N 网格。
二、常用工业标定方法(按推荐度排序)
1)五点法 / 九点法(最常用、平衡速度与精度)
五点法(中心 + 四角)
- 中心:(Rx0, Ry0)
- 左上:(Rx+, Ry+)
- 右上:(Rx+, Ry−)
- 左下:(Rx−, Ry+)
- 右下:(Rx−, Ry−)
点数:5 点足够解:一次项 + 交叉项 RxRy速度极快,精度足够绝大多数 OSA/调平 应用。
九点法(5点 + 四边中点)
更稳一点,抗噪更好。
2)十字扫描法(设备厂最爱)
路径:
- 固定 Ry=0,扫 Rx 全段 → 求 KxRx、KyRx
- 固定 Rx=0,扫 Ry 全段 → 求 KxRy、KyRy
- 再采 4 个斜点 → 求耦合项 KxRxRy、KyRxRy
特点
- 运动路径简单、机械稳定
- 先解主项,再精修耦合
- 点数 ≈ 2N + 4
- 比 N×N 快非常多
3)L 型路径 / 正交两步法
- 沿 Rx 轴走一条线
- 沿 Ry 轴走一条线
- 再采 2~4 个对角点算耦合
适合:
- 行程受限
- 追求极快标定
- 耦合不算特别强的机构
4)最小二乘密集采样(非全覆盖网格)
不是 N×N,而是:
- Rx 取 5 个点
- Ry 取 5 个点
- 随机/均匀分布 12~20 个点
用最小二乘拟合系数,精度接近满网格,但点数少很多。
5)仅耦合项标定(主项已标定,只修交叉)
如果你已经单独做了:
- CalibrateRx
- CalibrateRy
那么 RxRy 耦合标定根本不需要扫网格 ,只需要:4 个对角点就能解出 KxRxRy、KyRxRy 两个耦合系数。
这是半导体设备标准做法。
6)对角线 + 补充点(对你现有代码改动最小)
你现在就是对角线,不够。只需要额外加 3~4 个点:
- (RxMax, Ry0)
- (Rx0, RyMax)
- (RxMax, RyMin)就能把耦合项算准。
改动最小、最快上线。
三、速度对比(以 N=13 为例)
- 你原来对角线:13 点
- 五点法:5 点(更快)
- 十字法:30 点左右
- 满二维网格:169 点
- 耦合补充点:13+4=17 点
四、给你一个直接能用的工程建议
结合你的 OSA 调平场景:
最优方案:十字扫描 + 4 个对角点
- 先单独标定 Rx、Ry(你已有)
- 耦合标定只采:
- 中心 1 点
- 4 个斜角点总共 5 点就能算出耦合系数。
精度足够,速度极快,不会像满网格那样慢。