quickstart
第一个实验(30 分钟)
不接任何硬件,跑完一条像素当量标定链,并看到你的结果与真值差了多少。
这一篇的目标只有一个:让你在 30 分钟内看到一个偏差数字。 不是「软件能打开」,是「我标出来的 mm/px 和真的差了 0.018 mm」。
为什么先做像素当量
像素当量(mm/px)是 2D 视觉里最基础的一条标定链: 它把图像上的像素距离换算成台面上的毫米。后面所有东西——定位、对位、测量——都压在它上面。 它也最容易被做错,而且错了不会报错,只会在产线上表现为「偶尔偏一点」。
步骤
1. 打开虚拟机台
文件 → 打开机台 → demo-2axis-vision。这是一台两轴 + 单相机的虚拟设备:
X/Y 平台 行程 200 × 200 mm,重复定位 ±3 µm,反向间隙 2.4 µm
相机 2448 × 2048,像元 3.45 µm,镜头 25 mm,工作距离 200 mm
标定板 圆点阵列,间距 5.000 mm(这个值先别看,一会儿要用它对答案)
2. 起标定向导
标定 → 像素当量。向导分五步,和真机上完全一样:
| 步骤 | 做什么 | 看什么 |
|---|---|---|
| prepare | 选相机、选标定板型号、设采集点数 | 视野里能完整看到 ≥ 9 个圆点 |
| acquire | 平台走 N 个位置,每个位置抓一张 | 采集进度、每点的圆心检出数 |
| solve | 最小二乘解 mm/px、旋转角、非正交量 | 残差 RMS |
| verify | 用没参与求解的点回算,报偏差 | 这里出偏差数字 |
| persist | 结果落盘并版本化 | 记录 ID |
点「开始」,保持默认参数,等它跑完(虚拟设备跑一遍大约 40 秒)。
3. 读结果
跑完你会看到类似这样的一段:
solve: mm/px = 0.019823 theta = 0.0041 rad skew = 1.6e-4
truth: mm/px = 0.019841 theta = 0.0039 rad
verify: 20 mm 行程上的偏差 0.018 mm 容差 0.05 mm → PASS
第二行是关键:虚拟设备知道真值,所以它能直接告诉你标得准不准。 真机上你拿不到这一行——这正是先在虚拟设备上练的意义。
4. 故意把它做错
这一步别跳过,它比前三步都值钱。
设备 → 虚拟设备 → 相机 → 误差模型,把镜头畸变 k1 从 -0.0214 改成 -0.08,
然后只重跑 acquire 和 solve(向导支持单步重跑,不用从头来)。
你会看到:
- 残差 RMS 变大,但还没大到看起来不对;
- verify 的偏差从 0.018 mm 涨到 0.15 mm 左右,直接 FAIL。
这就是畸变没标就去标像素当量的典型症状:中心区域看着挺准,边缘全歪。 把采集点全挤在视野中心,会让这个问题彻底藏起来——这是新人最常掉的坑。
5. 再做对一次
先跑 标定 → 相机内参与畸变,再回来跑像素当量。偏差会回到 0.02 mm 量级。
这就是「标定链」的含义:它们有顺序,前一条没做对,后一条注定做不对。
做完之后
- 这条链的完整判据、常见错误、思考题在实验 1 里;
- 想知道虚拟相机是怎么算出这张图的,看世界与成像;
- 想把这套流程接到自己的程序里,看vmc.dll API。
最后更新: 2026/9/21
这页有帮助吗?