在产线做视觉引导,最常遇到的选型讨论是三件事一起提:精度要高、节拍要快、现场什么光线下都要稳。单看每条都合理,放到同一套相机、镜头、光源和算力上,它们会互相拉扯。
本文从硬件与系统角度拆解这三者的关系,给出一个可执行的选型顺序:先定任务窗口,再定精度与视场,然后做节拍预算,最后处理环境光、标定与换型。文中不涉及具体型号与实测数字,重点在工程判断。
一、问题定义:三个指标为什么互相拉扯
精度、节拍、环境光,对应的其实是三套不同的资源。
精度主要吃分辨率和工作的几何条件。视场越大、工作距离越远,单个像素覆盖的物理尺寸越大,同样的算法能分辨的细节越少。想提高精度,要么加分辨率,要么缩短工作距离,要么两者一起做。
节拍吃的是时间预算。曝光、读出、传输、处理、通信、执行,每一段都要时间。缩短曝光可以减运动模糊,但会牺牲信噪比;提高处理速度可以减延迟,但会增加算力和散热。
环境光吃的是光路设计。车间照明频闪、日光直射、金属镜面反光,都会让被动视觉失效。主动照明、窄带滤光、遮光结构能改善,但会带来成本、体积、散热和合规问题。
把三个方向同时拉满,结果通常不是一台更强的相机,而是一套更贵、更大、更难维护的系统。工程上要做的不是否认取舍,而是把取舍显式化。
二、任务窗口:先写边界,再谈参数
选型的第一步不是打开参数表,而是把任务窗口写清楚。任务窗口至少包含五项:
- 工件在视场里出现的空间范围,包括高度和姿态变化;
- 一次定位允许占用的时间,以及整条产线的节拍余量;
- 现场最坏的光照条件,而不是平均光照;
- 任务真正需要的定位精度,以及超差后的处理方式;
- 换型频次,以及换型时允许的停机时间。
把这五项写成结构化配置,比在选型会上反复争论"够不够用"更有效:
task_window:workpiece_region:<工件出现的三维范围>pose_variation:<姿态变化范围>cycle_budget_ms:<一次定位允许的时间>worst_lighting:<现场最坏光照描述>required_accuracy:<任务需要的定位精度>changeover_freq:<换型频次与允许停机时间>这份配置的作用,是让相机、镜头、光源和算力的选择都有依据。没有任务窗口,参数比较就只是纸面比较。
三、精度与视场:单位像素的物理尺寸
面阵相机的单像素覆盖,可以用一个朴素关系估算:
单像素覆盖 ≈ 工作距离 × 像元尺寸 ÷ 焦距
这个关系说明,视场、工作距离和分辨率是绑在一起的。要更大的视场,要么拉远工作距离,要么换广角镜头;两者都会让单像素覆盖变大,定位精度随之下降。
想同时要广视场和高精度,常见做法是提高分辨率或缩短工作距离。提高分辨率会增加数据量、传输压力和成本;缩短工作距离会压缩景深和安装空间,工件稍有高低起伏就可能离焦。
深度信息的精度还受另一组几何条件影响。双目系统靠视差换算深度,基线和焦距越大,同样的视差误差对应的深度误差越小;但基线受结构尺寸限制,焦距受视场限制。结构光系统则依赖投射图案与接收视角的几何关系,同样绕不开基线、距离和信噪比。
所以"精度"不能单独讨论。它总是和视场、工作距离、景深、基线绑在一起。选型时要问的是:在任务窗口内,最远处的精度还够不够,最近处会不会离焦。
四、节拍:从曝光到执行的延迟链
节拍不是帧率的同义词。一次完整的视觉引导,至少包含五段延迟:
- 曝光与读出:传感器积累电荷并把图像读出来;
- 图像传输:从相机送到处理单元;
- 预处理与定位解算:滤波、特征提取、匹配、位姿计算;
- 结果通信:把位姿或抓取点下发给控制器;
- 执行机构响应:机器人或机构完成动作。
整条链的节拍,取决于最慢的一段,而不是最快的一段。相机标称帧率很高,如果传输带宽不足或算法单帧耗时过长,实际节拍仍然上不去。
做节拍预算时,一个实用的做法是给每一段单独列预算,并留出余量。余量不是浪费,而是给现场波动留空间:光照变化会让曝光时间变长,工件差异会让算法迭代次数增加,通信抖动会让下发延迟变大。把余量全部吃掉的方案,在实验室能跑,到现场就容易掉链子。
五、曝光的两难:运动模糊与信噪比
工件或相机在运动时,曝光时间越长,拖影越明显。运动模糊的尺度,大致与相对速度和曝光时间的乘积相关。节拍越快、运动越快,越需要短曝光。
但曝光时间缩短,进光量随之减少。在光源不变的前提下,图像信噪比下降,噪声变大,边缘和弱纹理更容易丢。定位算法对噪声敏感,信噪比掉到一定程度,精度和稳定性都会变差。
所以"把曝光调短"不是万能解。可行的方向包括:提高照明亮度、用脉冲光源在短时间内补足能量、让工件在曝光窗口内相对静止、或者接受一定拖影并用算法补偿。每个方向都有代价,关键是看任务窗口里哪一项更紧。
六、环境光:频闪、直射与镜面反光
车间光照的麻烦,在于它不是一个稳定值。
照明灯具可能以固定频率频闪,与相机曝光节拍叠加后,不同帧的亮度会周期性变化。日光会随时间和天气变化,窗户直射会在工件上形成高亮区。金属件、抛光表面会产生镜面反光,把局部像素推到饱和,纹理信息直接丢失。
这些问题的对策不同:
- 频闪:了解灯具的驱动方式,让曝光时间覆盖完整周期,或用主动光压过环境光;
- 直射:加遮光罩、调整工位朝向、在窗口侧做遮挡;
- 镜面反光:改变光源入射角,用漫射光,或采用偏振片;
- 整体偏暗:增加主动照明,但要同时考虑散热和均匀性。
先分清现场是哪一种,再决定加什么。只按平均光照做设计,到了下午某一刻就可能失效。
七、主动光:有效,但有代价
主动结构化照明能显著改善弱纹理、低对比度表面的可测性,也能降低对环境光的依赖。但它不是免费的。
第一是成本。光源、驱动、散热结构都要算进整机成本。第二是散热。主动光器件的效率不是百分之百,多余的能量会变成热,热会影响传感器和结构稳定性。第三是体积。光源需要和相机保持固定的几何关系,安装空间会变紧。第四是合规。人眼安全等级、脉冲能量、使用距离,都要在方案阶段确认。
还有多机互扰。现场如果有多台主动光设备,彼此的投射图案可能进入对方视野,深度图上出现条纹、空洞或系统性偏移。分时曝光、调制方式区分、光波段隔离、安装时视场错开,都是可行方向,但都要在系统设计阶段预留条件。
八、标定与温漂:精度会随时间衰减
视觉引导的精度,不只取决于出厂标定,还取决于标定能不能维持。
手眼标定把相机坐标系和机器人坐标系对齐。设备发热后,镜头座、支架、基板的材料热膨胀系数不同,涨缩不同步,外参就会慢慢走位。振动会让紧固件松动,碰撞会让相机移位,这些变化往往没有报警。
工程上的应对不是寻找永不漂移的方案,而是建立机制:
- 结构设计阶段控制关键件的热匹配;
- 标定覆盖实际工作温度区间,而不只是常温一个点;
- 系统具备温漂补偿能力,或者明确重标触发条件;
- 标定结果结构化保存,能追溯到设备、日期和温度;
- 现场留一套可执行的复标流程,让产线人员能独立完成。
只在冷机状态标定一次,然后把结果当成永久有效,是现场精度衰减的常见起点。
九、换型成本:被忽略的节拍
多品种小批量产线,换型时间往往比单次节拍更影响产能。
换一个工件,可能涉及定位模板重做、抓取点重示教、参数切换、首件确认。如果这些动作依赖厂家,产线就没有真正的柔性。选型时要把换型流程问清楚:谁来做、要多久、需不需要重新标定、切换后怎么验证。
换型时间也是节拍的一部分。单次节拍再快,如果每次换型要停半天,综合产能未必高。
十、一张表与一份清单
把三种导向的差异压缩成一张表:
| 维度 | 高精度导向 | 高节拍导向 | 强环境光导向 |
|---|---|---|---|
| 镜头与分辨率 | 长焦/高分辨率 | 广角/中分辨率 | 窄带滤光 + 主动光 |
| 工作距离 | 近 | 中 | 中近 |
| 曝光策略 | 可长曝光 | 短曝光 | 短曝光 + 强补光 |
| 主要代价 | 视场小、景深浅 | 噪声高、精度低 | 成本、散热、体积 |
| 适用场景 | 精密装配、检测 | 上料、分拣 | 户外/强光车间 |
这张表不能直接给出答案,但可以用来对齐讨论:先确认任务更像哪一列,再决定哪些指标可以让步。
最后是三问自检:最坏工况下还能定位吗?节拍余量有多少?换一个工件要调多久?三问都答得清楚,再谈精度和算法。
十一、选型清单
把上面的内容整理成可执行清单:
- 写任务窗口,而不是先写参数要求;
- 用最远工作距离校核精度,用最近工作距离校核景深;
- 给节拍链每一段列预算,并保留余量;
- 到现场看最坏光照,记录频闪、直射和反光;
- 确认主动光的成本、散热、体积和合规边界;
- 问清标定维持策略和重标流程;
- 把换型时间算进综合产能;
- 用真实工件做验收,而不是只用标准块。
视觉引导的难点,从来不是把某一项指标做到极致,而是在任务窗口内找到一组能长期稳定工作的组合。
【备选标题】
- 视觉引导选型:三个指标怎么平衡
- 产线视觉引导的三个工程约束
- 先定任务窗口,再谈相机参数