机器人焊接---线激光主动视觉跟踪算法
在线激光焊缝跟踪系统中,机器人通过线激光器主动向工件表面投射结构光,由工业相机采集激光条纹的形变图像;算法从条纹中精准提取焊缝特征点,将二维像素坐标恢复为三维空间坐标,再通过手眼标定与机器人位姿变换矩阵,将焊缝实际偏差实时反馈给机器人控制器,最终实现焊枪运动轨迹的动态修正。
整个技术体系可以用一句话概括:
线激光跟踪 = 激光条纹成像 + 条纹中心提取 + 焊缝特征定位 + 3D重建 + 坐标转换 + 闭环纠偏。
2. 焊接场景中线激光的技术优势
普通工业相机属于被动视觉方案,成像完全依赖环境光与工件表面纹理。而焊接现场普遍存在金属强反光、工件弱纹理、表面油污、焊接烟尘、电弧强光与高温飞溅等复杂干扰,仅依靠普通可见光图像难以实现稳定、高精度的焊缝识别。
线激光属于主动视觉技术路线。系统主动向被测工件投射一条激光光平面,光平面与工件表面相交形成激光条纹;当工件表面存在高度差、坡口、搭接边、角点或缝隙时,激光条纹会产生对应的几何形变。不同工件形貌对应的条纹形态示意如下:
平面区域:
------------------------
遇到对接坡口:
---------\____/---------
遇到搭接台阶:
----------
\
----------
相较于被动视觉,线激光在焊接场景中具备五大核心优势:
- 对弱纹理金属工件适应性强,不依赖表面纹理特征;
- 条纹形变直接反映工件几何轮廓,可提取深度与结构信息;
- 属于非接触式测量,无磨损、不损伤工件表面;
- 基于三角测量原理可直接恢复三维空间坐标;
- 输出的三维偏差量与机器人轨迹纠偏天然适配。
在焊接机器人领域,线激光技术广泛应用于焊缝寻位、实时焊缝跟踪、坡口尺寸测量、焊后成形质量检测与焊接路径规划等核心场景。
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策略分为两类:
- 固定ROI:适用于焊缝位置波动范围小、工件一致性高的场景,实现简单、稳定性强;
- 动态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 的参数。
通用标定流程为:
- 将标定板置于多个不同姿态下,使激光平面与标定板表面相交;
- 相机采集标定板上的激光条纹图像;
- 根据标定板位姿恢复激光条纹上点的三维坐标;
- 利用多组三维点拟合出激光平面方程。
激光平面标定误差会直接影响深度方向的测量精度——即使中心线提取精度达到亚像素级,若激光平面参数错误,恢复的三维坐标也会存在显著偏差。
常见误差来源如下:
| 来源 | 影响 |
|---|---|
| 标定板角点检测不准 | 标定板位姿求解偏差 |
| 激光线中心提取不准 | 激光平面拟合偏移 |
| 标定姿态数量不足 | 平面约束不充分 |
| 姿态变化范围过小 | 标定结果稳定性差 |
| 标定板平面度不足 | 引入系统性误差 |
| 相机畸变未校正 | 图像边缘区域误差显著 |
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即为待求解的手眼变换矩阵。
手眼标定是最易出错的环节,典型问题包括:
- 机器人标定姿态变化不充分,自由度约束不足;
- 标定板位姿检测重复性差;
- TCP定义与算法假设不一致;
- 变换矩阵方向混淆(camera→tcp与tcp→camera混用);
- 法兰坐标系、工具坐标系、TCP坐标系概念混淆;
- 欧拉角旋转顺序理解错误;
- 单位不统一(毫米/米混用)。
工业机器人项目中,绝大多数“视觉测量不准”的问题,最终都可追溯到坐标变换链路的错误。
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预测模型不足、轨迹跟踪算法缺失 |
| 偶发大幅跳点 | 缺少异常点剔除机制、无置信度判断逻辑 |
| 三维测量存在系统性偏差 | 相机内参标定不准、激光平面标定存在系统误差 |
| 结果随机漂移、重复性差 | 相机/激光器机械安装松动、结构刚度不足 |
总结
线激光跟踪算法的核心技术链路可凝练为:
激光条纹 → 中心线 → 焊缝特征点 → 三维坐标 → 坐标转换 → 偏差纠正
但真正决定工业落地能力的工程重点在于:
稳定采图
可靠提线
焊缝类型适配
准确标定
坐标链清晰
时序延迟补偿
异常恢复机制
机器人安全限幅
对于规则焊缝、工况稳定的场景,传统图像处理 + 几何拟合的方案通常已能满足需求;对于强反光、多焊缝类型、烟尘飞溅严重的复杂场景,可引入深度学习实现条纹/焊缝区域分割,提升系统鲁棒性,但最终仍需依靠几何约束与标定链路保障测量精度。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)