3、硬件系统搭建:把图纸上的方案变成能跑的机器

说实话,硬件搭建这部分,看着好像就是拧螺丝、接电线。但我在项目里吃过不少亏,才明白一个道理:标定算法再牛,硬件装歪了,神仙也救不了。这一章,我就把相机安装、光源调校、编码器接线、运动平台设置这些硬骨头,一个一个掰开讲。

核心原则:硬件搭建的终极目标,是让相机、光源、运动平台三者形成一个稳定的“采集闭环”。任何一个环节抖动、延迟、错位,都会直接写进图像里,变成标定误差。

3.1 相机与镜头的机械安装:别让“差不多”毁了你的图像

安装相机,第一件事是确定工作距离。我习惯先算再装,公式很简单:

工作距离 = 视野宽度 × 镜头焦距 / 相机靶面宽度

举个例子,你要拍 200mm 宽的物体,用 50mm 镜头,相机靶面宽 36mm。那工作距离就是 200 × 50 ÷ 36 ≈ 278mm。这个距离决定了你支架的高度。

安装时,有四个关键点,我按优先级排了个序:

  1. 光轴垂直度——镜头光轴必须垂直于运动平面。偏一度,图像边缘就模糊一度。我习惯用激光十字仪打一下,或者用直角尺靠一靠。
  2. 相机水平度——相机底座要调平。气泡水平仪是标配,别省这个工具。
  3. 镜头紧固——线扫相机振动大,镜头锁紧螺丝一定要拧到位。我曾经遇到过镜头慢慢松脱,图像越来越虚,查了半天才发现是螺丝没锁死。
  4. 接口密封——工业现场灰尘大,C口、F口最好加密封圈。不然灰尘进到传感器上,标定板拍出来全是黑点。

我的习惯:装好后,用一张白纸放在工作距离处,拍一张纯白图像。如果图像亮度均匀、没有暗角,说明光路基本正了。如果有明显暗角,大概率是镜头没装正,或者工作距离不对。

3.2 光源角度与亮度调节:打光打得好,标定成功一半

线扫相机的光源,说白了就是把一条线照亮。但这条线怎么亮,学问很大。

我常用的光源类型和场景:

光源类型 适用场景 角度建议
条形光 平面物体、反光表面 30°~45° 斜射
同轴光 高反光、镜面、透明物体 垂直照射(0°)
背光源 轮廓检测、尺寸测量 从物体背面打光
线光源 线扫专用,配合镜头 与相机光轴成 10°~20°

亮度调节这块,我有个“三步法”:

  1. 先调角度——把光源放在预估位置,观察图像,找到物体特征最清晰的角度。比如金属表面的划痕,斜射光比垂直光明显得多。
  2. 再调亮度——用光源控制器,从 0% 慢慢往上加。直到图像最亮处接近饱和(灰度值 240~250),但不要过曝。过曝了,标定板的格子边缘就糊了。
  3. 最后调均匀性——线扫相机对光照均匀性要求极高。我习惯用一张白纸放在视野中间,拍一行像素,看灰度曲线。如果中间亮两边暗,说明光源长度不够,或者安装位置偏了。

注意:LED光源有温漂。开机前10分钟和开机后1小时,亮度可能差5%~10%。我一般让光源预热15分钟再开始标定。不然早上调的亮度,下午就变了。

3.3 编码器与触发信号的连接:让相机和运动“同步跳舞”

线扫相机不是自己一直拍,而是靠编码器脉冲来触发。每来一个脉冲,相机拍一行。脉冲频率决定了行频,行频又决定了图像在运动方向上的分辨率。

连接方式,我画了个简图:

编码器与触发信号连接示意图 编码器与触发信号连接示意图 编码器 运动控制器 线扫相机 A/B/Z 脉冲 触发信号 伺服电机 速度/位置指令 说明:编码器脉冲 → 运动控制器分频/倍频 → 触发相机采集

接线时,有几个坑我踩过:

  • 差分信号 vs 单端信号——编码器输出最好是差分信号(RS-422),抗干扰能力强。单端信号在长距离传输时容易丢脉冲。我遇到过编码器线长了,脉冲丢了一半,图像被拉长了一倍。
  • 屏蔽接地——编码器线一定要用屏蔽双绞线,屏蔽层单端接地。不然电机启动时的电磁干扰,会直接串进触发信号,导致图像出现“抖动条纹”。
  • 分频/倍频设置——编码器分辨率(比如 1000 线/转)和相机行频要匹配。我一般这样算:相机行频 = 运动速度 / 编码器分辨率 × 倍频系数。举个例子,速度 100mm/s,编码器每毫米 100 个脉冲,那相机行频就是 100 × 100 = 10kHz。

检查方法:接好线后,用手慢慢转动编码器(或者手动推运动平台),看相机软件里有没有图像行数在增加。如果不动,说明触发信号没通。用示波器看触发线,应该有方波脉冲。

3.4 运动平台的速度与加速度设置:稳,是唯一的标准

线扫相机对运动平台的速度稳定性要求极高。速度波动 1%,图像在运动方向上的分辨率就波动 1%。标定出来的像素当量,今天和明天不一样,那还标什么定?

我设置运动参数时,遵循这个流程:

  1. 先确定目标行频——根据相机最大行频和需要的图像分辨率,定一个行频。比如相机最大行频 80kHz,我需要每毫米 100 行,那行频就是 80kHz,速度就是 800mm/s。
  2. 再算速度上限——速度不能超过电机额定转速和机械结构的极限。直线模组一般建议速度不超过额定值的 80%。
  3. 设置加速度——加速度决定了平台从静止到匀速的时间。加速度太大,平台会抖动;太小,加速距离太长。我一般设 0.5~1g(5~10 m/s²),具体看负载重量。
  4. 匀速段采集——标定和采集图像时,一定要在平台匀速运动阶段进行。加速段和减速段的数据不能用。我习惯在运动指令里加一个“触发延迟”,等平台稳定了再开始采集。
参数 推荐范围 我的经验值
速度 100~1000 mm/s 500 mm/s(通用场景)
加速度 0.5~2 g 0.8 g(负载 5kg 以内)
匀速段占比 ≥ 70% 行程 80% 以上
速度波动 ≤ 0.5% 0.2%(用伺服驱动)

避坑:我曾经用步进电机驱动一个 10kg 的负载,速度设到 800mm/s,加速度 2g。结果平台在加速段剧烈抖动,图像全是“锯齿”。后来换成伺服电机,加速度降到 0.5g,问题才解决。记住:步进电机不适合高速高加速场景。

3.5 硬件搭建的最终检查清单

每次搭建完,我都会拿着这张表逐项确认。你也试试:

  • ☐ 相机光轴垂直于运动平面(用激光十字仪或直角尺确认)
  • ☐ 镜头锁紧螺丝拧到位,无松动
  • ☐ 光源角度调好,图像特征清晰
  • ☐ 光源亮度未过曝,灰度值在 200~250 之间
  • ☐ 编码器接线正确,触发信号有脉冲输出
  • ☐ 运动平台速度波动在 0.5% 以内
  • ☐ 采集图像时,平台处于匀速段
  • ☐ 整机运行 10 分钟,无异常振动或噪声