在线激光焊缝跟踪系统中,机器人通过线激光器主动向工件表面投射结构光,由工业相机采集激光条纹的形变图像;算法从条纹中精准提取焊缝特征点,将二维像素坐标恢复为三维空间坐标,再通过手眼标定与机器人位姿变换矩阵,将焊缝实际偏差实时反馈给机器人控制器,最终实现焊枪运动轨迹的动态修正。

整个技术体系可以用一句话概括:
线激光跟踪 = 激光条纹成像 + 条纹中心提取 + 焊缝特征定位 + 3D重建 + 坐标转换 + 闭环纠偏


2. 焊接场景中线激光的技术优势

普通工业相机属于被动视觉方案,成像完全依赖环境光与工件表面纹理。而焊接现场普遍存在金属强反光、工件弱纹理、表面油污、焊接烟尘、电弧强光与高温飞溅等复杂干扰,仅依靠普通可见光图像难以实现稳定、高精度的焊缝识别。

线激光属于主动视觉技术路线。系统主动向被测工件投射一条激光光平面,光平面与工件表面相交形成激光条纹;当工件表面存在高度差、坡口、搭接边、角点或缝隙时,激光条纹会产生对应的几何形变。不同工件形貌对应的条纹形态示意如下:

平面区域:
------------------------

遇到对接坡口:
---------\____/---------

遇到搭接台阶:
----------
          \
           ----------

相较于被动视觉,线激光在焊接场景中具备五大核心优势:

  1. 对弱纹理金属工件适应性强,不依赖表面纹理特征;
  2. 条纹形变直接反映工件几何轮廓,可提取深度与结构信息;
  3. 属于非接触式测量,无磨损、不损伤工件表面;
  4. 基于三角测量原理可直接恢复三维空间坐标;
  5. 输出的三维偏差量与机器人轨迹纠偏天然适配。

在焊接机器人领域,线激光技术广泛应用于焊缝寻位、实时焊缝跟踪、坡口尺寸测量、焊后成形质量检测与焊接路径规划等核心场景。


3. 系统架构

典型的线激光焊缝跟踪系统由光学硬件、计算单元与控制单元共同组成,完整的信号与数据流转链路如下:

线激光器
   ↓
工件表面形成激光条纹
   ↓
工业相机采集条纹图像
   ↓
图像处理算法提取激光中心线
   ↓
焊缝特征点定位
   ↓
像素坐标转三维坐标
   ↓
相机坐标系转机器人坐标系
   ↓
计算焊缝轨迹偏差
   ↓
机器人实时纠偏执行

3.1 硬件组成

系统硬件模块及对应功能如下表所示:

模块 核心作用
线激光器 向工件表面投射稳定的扇形光平面
工业相机 高帧率采集激光条纹图像,保证时序精度
窄带滤光片 匹配激光波长,抑制环境光、电弧光与飞溅光的强干扰
标定板 用于相机内参标定、激光平面标定与手眼标定
机器人控制器 接收偏差指令,实时修正焊枪运动轨迹
工控机/边缘计算设备 运行图像处理算法、三维重建、坐标变换与机器人通信程序

在实际工程部署中,相机与激光器通常集成安装在焊枪前端,且激光检测位置位于焊枪前方一段距离(即前视距离),使系统可提前感知待焊接区域的焊缝位置,为机器人轨迹修正预留响应时间。


4. 算法全链路流程

工业落地的线激光跟踪算法通常包含12个步骤,完整流程如下:

1. 图像采集
2. ROI裁剪
3. 图像滤波与增强
4. 激光条纹分割
5. 激光中心线提取
6. 中心线去噪与拟合
7. 焊缝特征点提取
8. 像素点转相机坐标系三维点
9. 相机坐标系转机器人坐标系
10. 轨迹偏差计算
11. 偏差滤波、限幅和延迟补偿
12. 机器人实时纠偏

其中决定系统核心性能的五大关键环节为:

激光中心线提取
焊缝特征点定位
三维坐标计算
坐标系转换
实时控制策略

5. 图像采集与预处理

5.1 ROI裁剪

工业相机原图通常为1920×1200、2448×2048或更高分辨率,但焊缝有效区域仅占画面很小一部分。全图处理不仅算力开销大、实时性差,还易被无关的反光点、背景噪声干扰。因此算法第一步通常为感兴趣区域(ROI)裁剪,仅保留焊缝周边的有效区域。

ROI策略分为两类:

  1. 固定ROI:适用于焊缝位置波动范围小、工件一致性高的场景,实现简单、稳定性强;
  2. 动态ROI:以上一帧检测到的焊缝位置为中心,预测下一帧的搜索区域,可大幅提升处理速度、降低误检率。

动态ROI的核心风险在于误差累积:若上一帧检测结果错误,后续帧的搜索区域可能持续漂移。工程上必须配套丢失恢复机制,例如连续多帧检测置信度不足时自动扩大ROI范围、触发全图重搜索,或回退至初始模板匹配。

5.2 灰度化与滤波

激光条纹提取的核心依据是亮度分布,因此彩色图像通常先转换为灰度图以降低计算量。针对焊接现场的噪声特性,常用滤波方法及其特性如下:

方法 核心作用 潜在风险
高斯滤波 平滑图像随机噪声 核尺寸过大会模糊边缘细节
中值滤波 去除椒盐噪声与孤立飞溅亮点 核过大会破坏细条纹的拓扑结构
双边滤波 平滑噪声的同时最大程度保留边缘 计算复杂度较高,影响实时性
形态学开运算 剔除小型白点噪声,断开细小粘连 参数不当会削弱细条纹的连续性
形态学闭运算 修复条纹细小断裂,填补内部空洞 核过大会将相邻反光区域错误连接

线激光场景的滤波强度必须严格控制:滤波不足则噪声过多,影响中心提取精度;滤波过强则激光亮带被抹平,焊缝处的折角、凹陷、边缘等关键特征会被弱化,直接降低特征点定位精度。

5.3 阈值分割

激光条纹亮度显著高于背景,可通过阈值分割从背景中分离出激光条纹的候选区域:

I(x, y) > T  →  激光区域
I(x, y) ≤ T  →  背景区域

不同阈值策略的适用场景如下:

方法 适用场景
固定阈值 光照稳定、曝光参数恒定的理想场景
Otsu自动阈值 背景与前景灰度分布差异明显的场景
自适应阈值 图像局部亮度变化显著、背景不均匀的场景
动态阈值 焊接现场亮度随焊接过程动态变化的场景
多阈值 + 连通域筛选 强反光、多伪亮线干扰的复杂工业现场

固定阈值实现最简单,但焊接现场的亮度条件极不稳定,电弧、烟尘、飞溅、工件反光都会动态改变图像整体亮度。因此工业场景的标准流程通常为:

ROI裁剪 → 滤波 → 动态阈值/Otsu → 连通域筛选 → 条纹中心提取

6. 激光条纹中心线提取算法

相机采集到的激光线并非数学意义上的一维曲线,而是具有一定宽度的亮带,其横截面灰度分布呈中间高、两侧低的形态:

灰度分布:

暗      亮      更亮      最亮      更亮      亮      暗
0       70      160       255       150       80      0
                         ↑
                      中心位置

中心线提取的目标,是在每一列、每一行或条纹法向方向上,求解激光亮带的亚像素级中心位置。

6.1 最大灰度法

最大灰度法直接取某一列/某一行中灰度值最大的像素作为条纹中心点:

center = argmax(I)

优点

  • 算法逻辑极简,易于实现;
  • 计算速度最快;
  • 适合条纹粗定位场景。

缺点

  • 仅能达到像素级精度,无法满足高精度测量需求;
  • 对随机噪声敏感,单点噪声易造成中心偏移;
  • 条纹过曝时中心位置会发生偏移;
  • 存在多个局部亮点时易出现误判。

该方法通常用于条纹初始粗定位,不适合作为高精度焊缝跟踪的最终中心线提取算法。

6.2 灰度重心法

灰度重心法将像素灰度值作为权重,计算亮带区域的加权质心作为条纹中心:

y_center = Σ(y · I(y)) / ΣI(y)

例如某一列的灰度分布为:

y:  10   11   12   13   14
I:  30   90   200  100  40

通过灰度重心法可得到亚像素级的中心坐标,精度高于整数像素级的最大灰度法。

优点

  • 实现简单,计算效率高;
  • 可达到亚像素级精度;
  • 工程部署门槛低,是工业界的主流方案。

缺点

  • 对非对称光斑分布敏感,分布不对称时中心存在系统偏差;
  • 局部过曝区域会拉偏重心位置;
  • 金属表面孤立反光点易造成结果偏移;
  • 条纹断裂时中心计算稳定性下降。

工程上通常通过多种约束提升鲁棒性:仅在条纹有效宽度范围内计算重心、剔除饱和像素、限制条纹最大宽度、加入局部滑动窗口、结合连通域筛选、引入历史帧位置预测等。

6.3 高斯拟合法

理想条件下,激光条纹横截面的亮度分布近似服从高斯分布:

I(y) = A · exp(-(y - y0)^2 / 2σ²) + b

其中 y0 即为激光条纹的中心位置。

高斯拟合法在光斑形态稳定、无过曝、噪声低的场景下精度较高;缺点是计算量更大,且当实际条纹截面不符合高斯分布时,拟合结果会出现明显偏差。

焊接现场的普遍问题是金属表面会产生非对称反射,导致真实灰度分布偏离标准高斯形态。因此该方法在实验室环境下表现优异,但在强反光的工业现场应用时,必须配套异常点剔除与精准曝光控制。

6.4 Steger中心线提取法

Steger算法是细长曲线结构提取领域的经典方法,其核心思想并非简单寻找最亮点,而是通过图像梯度、二阶导数与Hessian矩阵,在亮带的法向方向上求解亚像素级的几何中心。

三类方法的核心差异可概括为:

最大灰度法:哪里最亮,哪里就是中心
灰度重心法:以亮度为权重的加权平均中心
Steger法:基于局部线结构模型,求解真正的几何中心

Steger算法适用于激光条纹、裂纹、血管、车道线、电缆等各类细长结构的提取,是焊缝跟踪中亚像素级中心线提取的主流高精度方案。其核心参数及含义如下:

参数 含义
Gaussian sigma 高斯平滑尺度,决定可检测的条纹宽度范围
high threshold 强响应阈值,筛选确定的条纹像素点
low threshold 弱响应阈值,用于延伸条纹连通区域
line polarity 线条极性,指定提取亮线还是暗线
subpixel refinement 亚像素修正方式,决定中心位置的求解精度

Steger算法的核心局限是参数敏感性强:sigma过小易受噪声干扰,sigma过大会平滑掉细节特征,焊缝折角等关键结构可能被弱化。工程上的典型优化路线为:

深度学习/阈值分割先得到激光区域
再用Steger提取中心线
最后用几何约束筛选结果

7. 中心线后处理:去噪与几何拟合

原始提取的中心线是一组离散点集 P = {p1, p2, p3, ..., pn},受焊接现场干扰,点集中通常包含飞溅噪声点、反光假点、断裂点、伪激光条纹、局部毛刺、条纹宽度异常区域、电弧干扰区域等无效数据,必须通过后处理提升数据质量。

7.1 连通域筛选

阈值分割后图像中会出现大量零散亮区域,可通过连通域分析筛选出最符合激光条纹特征的有效区域。常用筛选规则包括:

面积过小 → 删除
宽度过大 → 删除
长宽比异常 → 删除
离上一帧位置过远 → 删除
方向与历史轨迹差异过大 → 删除

7.2 RANSAC鲁棒拟合

RANSAC(随机抽样一致)是一种鲁棒模型拟合算法,擅长在包含大量离群点的数据中拟合出直线、平面、圆弧等几何模型。

在线激光跟踪场景中,RANSAC的典型应用包括:

  • 拟合激光中心线的局部直线段;
  • 拟合坡口左右边缘直线;
  • 剔除飞溅、反光造成的离群点;
  • 实现多段线的自动分割;
  • 估计焊缝整体走向。

普通最小二乘法对离群点极其敏感,单个远离的反光点就会将整条拟合线拉偏;而RANSAC通过随机采样少量点构建模型,统计支持该模型的内点数量,最终选择内点最多的模型作为最优解,抗干扰能力显著更强。

7.3 多段直线拟合

绝大多数焊缝的激光轮廓均可近似为多段直线的组合,典型结构如:

左母材平面 + 坡口边缘 + 坡口底部 + 右母材平面

以V型坡口为例:

------\      /------
       \____/

工程上通常先将中心线按曲率或斜率变化分割为若干段,再对每一段分别拟合直线,最终通过直线交点、最低点、中点等几何规则确定焊缝特征点位置。

7.4 曲率分析

若焊缝特征表现为折角、高度突变或凹陷,可通过计算中心线的曲率分布定位特征位置:曲率极值点通常对应几何形态变化最剧烈的位置。
简化规律如下:

直线区域:曲率小
折角区域:曲率大
坡口底部:曲率可能出现极值

曲率计算对噪声高度敏感,因此必须先对中心线进行平滑处理,再计算局部曲率,避免噪声造成的伪极值点干扰。


8. 典型焊缝类型的特征点提取方法

焊缝跟踪的核心问题不是“提取一条激光线”,而是“从激光线中精准定位焊缝对应的特征点”。不同焊缝类型的形貌不同,特征点的定义与提取方法也存在显著差异。

8.1 对接焊缝

对接焊缝的激光条纹通常表现为中间存在缝隙或凹陷:

---------\__/---------
           ↑
        焊缝中心

常见特征点定义:

  • 凹陷区域最低点;
  • 左右边缘点的中点;
  • 缝隙几何中心;
  • 曲率极值点;
  • 两侧直线交点的中点。

典型算法流程:

中心线提取 → 寻找局部凹陷区域 → 定位左右边缘点 → 计算焊缝中心点

8.2 搭接焊缝

搭接焊缝存在明显的台阶高度差,条纹形态表现为高度突变:

--------------
              \
               --------------
                ↑
              搭接边缘

常见特征点定义:

  • 高度突变点;
  • 台阶边缘拐点;
  • 上下两段直线的交点;
  • 斜率最大值点。

典型算法流程:

中心线分段 → 拟合上下平面直线 → 计算交点/突变点位置

8.3 角焊缝

角焊缝由两个垂直平面交界形成,条纹形态为两段直线构成的折角:

      |
      |
______|
   ↑
角点

特征点通常定义为两个平面对应激光线段的交点。

典型算法流程:

提取激光中心线
按斜率分割为两段
分别拟合直线方程
求解两直线交点

8.4 V型坡口

V型坡口的激光条纹轮廓结构更复杂:

------\      /------
       \____/
         ↑
      坡口中心

需提取的核心特征包括:

  • 左坡口边缘点;
  • 右坡口边缘点;
  • 坡口底部最低点;
  • 坡口中心线位置;
  • 坡口宽度与深度尺寸。

典型算法流程:

分割激光条纹区域
提取完整中心线
识别左右坡口边缘
拟合两侧坡口直线
计算坡口中心位置
输出中心点、宽度、深度等多维度参数

坡口类焊缝的特征提取复杂度高于普通对接、搭接焊缝,通常需要多特征融合判断,而非仅依赖单个最低点。


9. 三维重建:线结构光三角测量原理

图像算法输出的是二维像素坐标 p = (u, v),而机器人运动控制需要三维空间坐标 P = (X, Y, Z)。线激光三维测量的核心原理是:像素点反投影的相机射线与激光光平面的交点,即为对应的三维空间点

9.1 针孔相机模型

针孔相机模型描述了三维空间点到图像像素点的投影关系:

s [u, v, 1]^T = K [R | t] [X, Y, Z, 1]^T

各符号含义如下:

符号 含义
K 相机内参矩阵
R, t 相机外参(旋转、平移)
s 尺度因子
u, v 像素坐标
X, Y, Z 三维空间点坐标

相机内参矩阵核心参数为 fx, fy, cx, cy,分别对应x/y方向焦距与主点坐标。实际相机存在径向畸变与切向畸变,因此必须先完成相机标定与畸变校正,保证投影模型的准确性。

9.2 激光平面模型

线激光器发出的不是一条空间直线,而是一个扇形光平面;该光平面与工件表面相交,形成相机视野中的激光条纹。

激光平面在相机坐标系下可表示为一般平面方程:

aX + bY + cZ + d = 0

其中 a, b, c, d 为激光平面的四个参数。

9.3 射线与平面求交

对于像素点 (u, v),通过相机内参矩阵的逆矩阵,可反投影为相机坐标系下的一条射线:

r = K^-1 [u, v, 1]^T

三维空间点位于这条射线上,满足:

P = λr

同时该三维点位于激光平面上,满足平面方程。将射线方程代入平面方程,可求解尺度因子λ:

λ = -d / (n · r)

其中 n = [a, b, c]^T 为激光平面的法向量。

最终得到相机坐标系下的三维点:

P_camera = λr

以上即为线结构光三角测量的核心数学原理。


10. 系统标定

很多线激光项目会出现“图像中识别准确,但机器人跟踪偏差大”的问题,根源往往不在图像算法,而在于标定链路存在误差。完整的线激光跟踪系统包含三类核心标定:

相机内参标定
激光平面标定
手眼标定

10.1 相机内参标定

相机内参标定的目标是求解相机内参与畸变参数:

fx, fy, cx, cy, distortion

主流标定方法为拍摄多张不同姿态的棋盘格、圆点板或Charuco标定板,通过张正友标定法求解参数。该方法仅需平面标定板即可完成标定,是工业界应用最广泛的相机标定方案。

相机内参误差会造成的影响包括:

  • 像素反投影方向偏差,三维重建出现系统性误差;
  • 三维点位置整体偏移,且越靠近图像边缘误差越大;
  • 污染后续激光平面标定与手眼标定的结果。

10.2 激光平面标定

激光平面标定的目标是求解激光平面方程 aX + bY + cZ + d = 0 的参数。

通用标定流程为:

  1. 将标定板置于多个不同姿态下,使激光平面与标定板表面相交;
  2. 相机采集标定板上的激光条纹图像;
  3. 根据标定板位姿恢复激光条纹上点的三维坐标;
  4. 利用多组三维点拟合出激光平面方程。

激光平面标定误差会直接影响深度方向的测量精度——即使中心线提取精度达到亚像素级,若激光平面参数错误,恢复的三维坐标也会存在显著偏差。

常见误差来源如下:

来源 影响
标定板角点检测不准 标定板位姿求解偏差
激光线中心提取不准 激光平面拟合偏移
标定姿态数量不足 平面约束不充分
姿态变化范围过小 标定结果稳定性差
标定板平面度不足 引入系统性误差
相机畸变未校正 图像边缘区域误差显著

10.3 手眼标定

手眼标定用于求解相机坐标系与机器人末端坐标系之间的变换关系。若相机安装在机器人末端(眼在手上),完整的坐标变换链路为:

P_base = T_base_tcp · T_tcp_camera · P_camera

各符号含义如下:

符号 含义
P_camera 相机坐标系下的焊缝点三维坐标
T_tcp_camera 相机坐标系到TCP(工具中心点)坐标系的变换
T_base_tcp 机器人当前TCP到基坐标系的变换
P_base 机器人基坐标系下的焊缝点三维坐标

手眼标定的经典数学形式为 AX = XB,其中X即为待求解的手眼变换矩阵。

手眼标定是最易出错的环节,典型问题包括:

  1. 机器人标定姿态变化不充分,自由度约束不足;
  2. 标定板位姿检测重复性差;
  3. TCP定义与算法假设不一致;
  4. 变换矩阵方向混淆(camera→tcp与tcp→camera混用);
  5. 法兰坐标系、工具坐标系、TCP坐标系概念混淆;
  6. 欧拉角旋转顺序理解错误;
  7. 单位不统一(毫米/米混用)。

工业机器人项目中,绝大多数“视觉测量不准”的问题,最终都可追溯到坐标变换链路的错误。


11. 全链路坐标系变换

线激光跟踪系统通常涉及多层坐标系,完整坐标体系包括:

image pixel frame      图像像素坐标系
camera frame           相机坐标系
laser plane frame      激光平面约束
tool / tcp frame       工具坐标系
flange frame           法兰坐标系
base frame             机器人基坐标系
path frame             焊接路径坐标系
world/workpiece frame  工件坐标系

标准的坐标转换全链路如下:

像素坐标 (u, v)
  ↓ 相机内参反投影
相机射线
  ↓ 与激光平面求交
P_camera
  ↓ 手眼标定变换
P_tcp 或 P_flange
  ↓ 机器人当前位姿变换
P_base
  ↓ 投影到焊接路径坐标系
横向偏差 / 高度偏差 / 姿态偏差

工程实践中必须明确定义变换矩阵的方向,避免矩阵顺序混淆。推荐统一命名规范:

T_A_B 表示:将 B 坐标系下的点转换到 A 坐标系
P_A = T_A_B · P_B

该规范可有效避免camera2tcp、tcp2camera、flange2camera等方向表述混乱的问题。


12. 轨迹偏差计算与后处理

设机器人规划轨迹上的当前目标点为 P_plan,视觉检测到的真实焊缝点为 P_seam,则空间绝对偏差为:

e = P_seam - P_plan

实际控制中通常不直接使用三维偏差向量,而是将偏差投影到焊接路径坐标系下。路径坐标系的典型定义为:

方向 含义
X 焊接前进方向
Y 左右横向偏差
Z 高度方向偏差

焊缝跟踪的核心修正量为Y方向横向偏差与Z方向高度偏差;X方向由焊接速度与主轨迹控制,通常不做频繁大幅修正。

原始偏差数据不能直接输入控制器,必须经过后处理以保证控制平滑性,常用处理环节包括:

低通滤波
卡尔曼滤波
限幅处理
死区处理
异常点剔除
速度约束
加速度约束

若缺少上述处理,视觉噪声会直接传递到机器人末端,导致焊枪高频抖动。


13. 时序同步与延迟补偿

线激光焊缝跟踪最关键的工程细节之一是前视延迟:相机检测的焊缝位置通常位于焊枪前方一段距离,并非焊枪当前正在焊接的位置。

例如:

激光检测点在焊枪前方 50 mm
焊接速度为 10 mm/s
则检测点大约 5 秒后才会到达焊枪位置

若将视觉偏差直接作用于当前焊枪位置,会出现“提前修正”的滞后问题,表现为跟踪滞后、轨迹振荡,甚至越修正偏差越大。

工程上的标准解决方案是维护视觉轨迹队列:

视觉检测队列:
P1, P2, P3, P4, ...

机器人当前位置:
当焊枪运动到 Pk 对应空间位置时
取出 Pk 对应的偏差量进行修正

核心逻辑可概括为:

先检测
后使用
按距离匹配
按时间补偿

延迟补偿是区分演示系统与工业可用系统的核心标志之一。


14. 跟踪控制策略

线激光跟踪的控制策略从简单到复杂可分为四类,需根据场景精度要求与实时性约束选型。

14.1 比例纠偏

最简单的开环纠偏策略:

ΔY = Kp_y · e_y
ΔZ = Kp_z · e_z

优点是结构简单、稳定性强;缺点是响应速度与稳态误差存在矛盾,需现场调试比例系数。

14.2 PID控制

在比例项基础上加入积分项与微分项:

u = Kp·e + Ki·∫e dt + Kd·de/dt

PID控制适合连续跟踪场景,但焊接视觉数据存在噪声,微分项易放大噪声造成抖动,积分项易引入累积误差。因此工业项目中通常采用简化PI控制,或带限幅、抗积分饱和的PID算法。

14.3 卡尔曼滤波与预测

卡尔曼滤波用于对连续帧的焊缝位置进行最优状态估计:

上一帧最优估计 + 当前测量值 → 当前帧最优估计

其典型适用场景包括:

  • 激光条纹短暂丢失时的位置预测;
  • 抑制焊缝点的高频抖动;
  • 相机帧率不稳定时的数据平滑;
  • 预测下一帧焊缝位置,生成动态ROI。

需注意:滤波无法替代检测。若视觉检测持续输出错误结果,滤波器会被错误观测带偏,因此必须配套置信度判断与异常恢复机制。

14.4 轨迹重规划

针对复杂曲线焊缝,可将连续检测到的一系列焊缝点拟合成完整轨迹,再驱动机器人跟随新轨迹运动。流程如下:

连续采集焊缝点
  ↓
点云/轨迹拟合
  ↓
路径平滑处理
  ↓
生成机器人轨迹点
  ↓
执行焊接

该方案更适合“先扫描后焊接”或“边扫描边规划”的任务,对算力与算法要求更高,并非所有实时焊接场景都适用。


15. 传统算法与深度学习方案对比

15.1 传统算法路线

典型技术流程:

ROI
→ 滤波
→ 阈值分割
→ 中心线提取
→ 几何拟合
→ 特征点识别
→ 3D坐标
→ 纠偏

优点

  • 算法可解释性强,问题可定位、可调试;
  • 计算速度快,易满足高实时性要求;
  • 无需大量标注数据,冷启动成本低;
  • 参数调优体系成熟,便于工程落地;
  • 适合规则焊缝与工况稳定的场景。

缺点

  • 对强反光、电弧、烟尘等极端干扰鲁棒性有限;
  • 更换焊缝类型需修改几何规则,适配成本高;
  • 算法参数高度依赖现场环境,泛化能力不足;
  • 图像质量下降时性能衰减明显。

15.2 深度学习分割路线

典型技术流程:

图像输入网络
→ 分割激光线/焊缝区域
→ 提取中心线
→ 几何后处理
→ 输出焊缝点

常用网络架构包括U-Net、DeepLab、PSPNet、YOLO-Seg及各类轻量级语义分割网络。

优点

  • 对复杂背景与强干扰场景适应性更强;
  • 可学习烟尘、飞溅、反光等干扰模式;
  • 多焊缝类型的泛化能力优于纯规则算法。

缺点

  • 依赖大量高质量标注数据,数据采集与标注成本高;
  • 训练数据覆盖不足时易出现失效案例;
  • 端到端直接输出控制点时可解释性差;
  • 边缘部署需考虑实时性与显存、算力占用。

15.3 工程化推荐组合方案

工业项目中不建议完全依赖深度学习直接输出焊枪偏差。稳定性与精度最优的技术路线是分层融合:

深度学习负责粗分割和抗干扰
传统几何负责精定位和约束
时序滤波负责连续稳定
机器人控制负责限幅和安全

即采用“AI感知 + 几何精定位 + 工程规则兜底”的组合架构,兼顾鲁棒性、精度与可解释性。


16. 典型异常场景与处理方案

16.1 激光过曝

表现:细激光条纹变成大面积白色过曝区域,条纹宽度异常增大。
成因:金属表面强镜面反射、曝光时间过长、激光功率过高、相机增益过大。
处理方案

降低曝光时间
降低相机增益
加装匹配波长的窄带滤光片
检测饱和像素区域
限制条纹最大有效宽度
降低过曝区域的权重占比

16.2 激光断线

成因:工件表面结构遮挡、坡口深度过大、烟尘遮挡光路、表面吸光或反光特性异常。
处理方案

形态学闭运算修复细小断裂
样条曲线拟合补全小段缺失
使用历史帧位置预测
降低当前帧检测置信度
连续多帧丢失则触发全图重搜索

16.3 多条伪激光

成因:镜面二次反射、飞溅亮点、工件边缘反光、电弧光直射干扰。
处理方案

连通域面积与长宽比筛选
条纹宽度一致性筛选
方向一致性判断
与上一帧位置进行匹配
RANSAC剔除离群条纹

16.4 焊缝点跳变

表现:上一帧焊缝点位置正常,当前帧突然跳至远处,下一帧又恢复正常。
处理方案

设置最大位移阈值
设置最大速度阈值
设置最大角度变化阈值
低通滤波平滑
卡尔曼预测校验
异常点直接丢弃并沿用预测值

16.5 标定漂移

成因:相机或激光器安装松动、焊枪发生碰撞、机器人TCP重新标定、温度变化导致结构形变、标定板本身存在误差。
处理方案

定期执行标定复核
设置标定校验工位
记录重投影误差指标
记录标准件测量误差
相机与激光器安装增加防松结构

17. 系统性能评估指标

一套线激光跟踪系统的可靠性,不能仅以“能否识别出焊缝”作为评判标准,需从多维度量化评估。核心指标如下:

指标 含义
中心线提取精度 激光中心定位是否达到亚像素级,重复精度如何
焊缝点定位误差 焊缝特征点的定位准确性与稳定性
3D测量误差 像素坐标到空间三维点的转换精度
重复性 多次测量同一位置的结果一致性
跟踪延迟 从图像采集到机器人执行纠偏的总延迟时间
跟踪频率 每秒可输出多少次有效偏差指令
丢线恢复能力 激光条纹短暂丢失后能否自动恢复跟踪
抗反光能力 金属强反光场景下的检测稳定性
抗电弧能力 焊接起弧后能否保持稳定识别
坐标链一致性 camera、tcp、base各坐标系变换是否正确无偏差
控制平滑性 焊枪运动是否平稳,无高频抖动
安全限幅 偏差异常时能否限制纠偏量,保护机器人与工件

系统验收时建议构建标准化测试集,覆盖以下场景:

标准直线焊缝
曲线焊缝
搭接焊缝
角焊缝
V型坡口
强反光工件
烟尘干扰场景
飞溅干扰场景
激光断线场景
焊缝偏移量已知的标准件

18. 工程化软件架构设计

工业级系统建议采用分层架构设计,各层职责清晰、接口明确,便于维护与迭代。推荐的分层架构如下:

1. Camera Layer
   - 相机连接管理
   - 曝光与增益控制
   - 硬件触发采图
   - 时间戳同步

2. Image Processing Layer
   - ROI裁剪
   - 图像滤波
   - 阈值分割
   - 条纹中心提取

3. Feature Extraction Layer
   - 焊缝类型自动识别
   - 焊缝特征点提取
   - 检测置信度评分

4. 3D Reconstruction Layer
   - 相机内参管理
   - 畸变校正
   - 激光平面求交计算

5. Coordinate Transform Layer
   - camera → tcp 变换
   - tcp → base 变换
   - base → path frame 变换

6. Tracking Layer
   - 时序滤波
   - 偏差缓存队列
   - 延迟补偿
   - 异常恢复逻辑

7. Robot Control Layer
   - 偏差限幅
   - 实时纠偏指令
   - 速度约束
   - 安全保护机制

8. Logging & Replay Layer
   - 原始图像记录
   - 点云数据记录
   - 机器人位姿记录
   - 偏差指令记录
   - 离线回放分析

其中日志与回放系统是工程调试的核心工具。建议每一帧至少记录以下数据:

原始图像
ROI图像
阈值分割结果
中心线点集
焊缝特征点
三维空间点
机器人当前位姿
输出偏差值
检测置信度
单帧处理耗时

完整的日志体系可实现问题复现与离线调试,避免现场排查时依赖主观猜测。


19. 流程伪代码

以下为线激光跟踪主循环的简化伪代码,覆盖完整算法链路:

while welding:

    # 1. 同步采集图像与机器人当前位姿
    image = camera.capture()
    robot_pose = robot.get_current_pose()

    # 2. 基于历史位置生成动态ROI并裁剪
    roi = crop_roi(image, last_seam_position)

    # 3. 图像预处理
    gray = to_gray(roi)
    filtered = gaussian_filter(gray)
    mask = adaptive_threshold(filtered)

    # 4. 亚像素级激光中心线提取
    centerline = extract_laser_center(mask, method="steger")

    # 5. 中心线去噪与平滑拟合
    centerline = remove_outliers(centerline)
    centerline = fit_or_smooth(centerline)

    # 6. 焊缝特征点提取
    seam_pixel = find_seam_feature(centerline, seam_type)

    # 7. 像素坐标转相机坐标系三维点
    seam_3d_camera = pixel_to_3d(
        seam_pixel,
        camera_intrinsic,
        distortion,
        laser_plane
    )

    # 8. 相机坐标系转机器人基坐标系
    seam_3d_base = transform(
        seam_3d_camera,
        T_tcp_camera,
        robot_pose
    )

    # 9. 计算轨迹偏差
    planned_point = path.get_nearest_point(robot_pose)
    error = seam_3d_base - planned_point

    # 10. 投影到路径坐标系,分解为横向与高度偏差
    lateral_error, height_error = project_to_path_frame(error)

    # 11. 偏差滤波、限幅与延迟补偿
    tracking_error = filter_error(lateral_error, height_error)
    tracking_error = limit_error(tracking_error)
    tracking_error = delay_compensation(tracking_error)

    # 12. 发送纠偏指令至机器人控制器
    robot.send_correction(tracking_error)

    # 13. 更新历史状态与日志记录
    last_seam_position = seam_pixel
    logger.write(...)

20. 工程调参指南

20.1 图像类参数

参数 调参建议
曝光时间 宁可略暗,也避免大面积过曝;以条纹清晰、无饱和为准
相机增益 尽量调低,避免噪声被放大
激光功率 保证条纹可见度即可,避免金属表面出现大面积饱和反光
ROI大小 刚好覆盖焊缝最大漂移范围即可,不宜过大
滤波核尺寸 从小核开始逐步调大,以噪声可接受、特征不模糊为平衡
阈值策略 优先采用动态阈值,不建议长期使用固定阈值
中心线算法 追求速度选灰度重心法,追求精度选Steger法

20.2 几何类参数

参数 调参建议
RANSAC阈值 根据中心线噪声水平与像素分辨率设置,内点比例需符合预期
分段长度 与焊缝结构尺寸匹配,保证每段可近似为直线
曲率计算窗口 太小则噪声大、伪极值多,太大则细节丢失、特征钝化
断线补偿长度 仅补全细小断裂,大范围缺失不可强行补全
最大跳变距离 根据焊接速度与相机帧率计算,约束单帧最大位移

20.3 控制类参数

参数 调参建议
Kp 从小值开始逐步增大,避免系统振荡
最大纠偏量 必须设置硬限制,防止误检导致焊枪碰撞工件或工装
最大纠偏速度 约束纠偏速率,避免焊枪高频抖动
死区阈值 微小误差不修正,减少不必要的调整,提升运动平稳性
延迟补偿 优先按距离匹配补偿,时间戳作为辅助校准
丢线策略 短时间丢失用预测值,长时间丢失则暂停跟踪并触发报警

21. 常见失效模式与根因总结

现象 根因分析
图像中识别准确,但机器人跟踪偏移 手眼标定错误、TCP定义错误、坐标变换方向错误
静态测量精准,运动时跟踪偏差大 前视延迟未补偿、时序不同步
焊枪高频抖动 视觉噪声未滤波、控制增益过大
焊接起弧后识别失败 电弧光、飞溅、烟尘强干扰
金属亮面频繁误检 过曝严重、反光干扰、阈值策略鲁棒性不足
更换焊缝类型后算法失效 特征点提取规则硬编码,无泛化能力
曲线焊缝频繁跟丢 ROI预测模型不足、轨迹跟踪算法缺失
偶发大幅跳点 缺少异常点剔除机制、无置信度判断逻辑
三维测量存在系统性偏差 相机内参标定不准、激光平面标定存在系统误差
结果随机漂移、重复性差 相机/激光器机械安装松动、结构刚度不足

总结

线激光跟踪算法的核心技术链路可凝练为:

激光条纹 → 中心线 → 焊缝特征点 → 三维坐标 → 坐标转换 → 偏差纠正

但真正决定工业落地能力的工程重点在于:

稳定采图
可靠提线
焊缝类型适配
准确标定
坐标链清晰
时序延迟补偿
异常恢复机制
机器人安全限幅

对于规则焊缝、工况稳定的场景,传统图像处理 + 几何拟合的方案通常已能满足需求;对于强反光、多焊缝类型、烟尘飞溅严重的复杂场景,可引入深度学习实现条纹/焊缝区域分割,提升系统鲁棒性,但最终仍需依靠几何约束与标定链路保障测量精度。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐