4. 异常诊断的现场信息采集规范
机器人视觉引导系统出现异常时,现场往往同时存在多种可疑因素:视觉识别漂移、点云配准偏差、机器人位姿反馈滞后、工艺参数突变、通信抖动等。如果各类数据各自独立记录、时间基准不一致,事后复盘就只能靠猜。因此,异常诊断的第一道工程防线不是算法,而是多源信息的同步采集与规范标注。本节围绕“采什么、怎么同步、怎么标、怎么存”四个问题展开。
一、六类现场信息及其采集要点
一次完整的异常现场采集,通常需要覆盖以下六类数据,它们分别回答不同层面的问题:
- 日志(Log):记录程序运行轨迹、异常堆栈、通信收发、状态机跳转。重点是保留时间戳、日志级别、模块名与关键上下文(如目标ID、相机编号)。
- 图像(Image):包括2D原图、ROI裁剪图、分割掩膜、识别结果叠加图。原图必须保留,叠加图仅作辅助,不能替代原图。
- 点云(Point Cloud):原始点云、滤波后点云、配准变换矩阵、目标位姿估计结果。需记录相机内参、外参及坐标系定义。
- 时序信号(Time-series):力/力矩、电流、速度、位置指令与反馈、IO电平、触发脉冲等,采样率通常远高于图像帧率。
- 机器人状态(Robot State):关节角、笛卡尔位姿、运动模式、使能状态、报警码、当前执行的程序行号。
- 工艺参数(Process Parameters):抓取力设定、焊接电流/电压、涂胶速度、拧紧扭矩、节拍设定值等,以及这些参数的修改记录。
这六类数据在物理上来自不同设备、不同接口、不同频率,若不做统一时间基准,后续对齐将非常困难。下图给出一个典型的同步采集与标注数据流结构:
二、同步采集的核心:统一时间基准
同步采集的关键不是“同时启动”,而是让每条数据都携带可比较的时间戳。工程上通常采用三级时间基准:
- 硬件级同步:使用PTP(IEEE 1588)或硬件触发脉冲,让相机曝光时刻、采集卡采样时刻、机器人控制器时钟对齐到同一主时钟,同步误差可控制在微秒级。这是最可靠的方式,适用于高节拍、高精度场景。
- 软件级同步:各设备独立运行,采集程序在收到数据时打上本地时间戳,再通过NTP或PTP做时钟偏移补偿。实现简单,但同步误差通常在毫秒级,适合对时间精度要求不高的诊断场景。
- 事件级同步:以某个关键事件(如“抓取开始”“视觉触发”)为锚点,记录各数据流相对于该事件的时间偏移。这种方式不要求全局时钟一致,但要求事件信号能被所有采集通道捕获。
三、标注方法:从原始数据到可诊断信息
采集到的原始数据本身不直接可诊断,必须经过标注才能形成“异常事件—数据片段—根因”的对应关系。标注分为三个层次:
第一层:时间标注。为每个异常事件标注起止时间戳、持续时长、发生频次。例如“2025-03-12 14:23:07.120 — 14:23:07.480,抓取失败,持续360ms,本班次第3次”。时间标注必须与采集时间基准一致,否则无法与数据流对齐。
第二层:语义标注。为数据片段打上结构化标签,包括:异常类型(识别失败/配准超差/通信超时/力超限/节拍超时)、涉及模块(视觉/机器人/PLC/工艺)、目标对象(工件ID、相机编号、工位号)、坐标系与变换关系。语义标注建议采用JSON格式,便于程序解析和检索。
{
"event_id": "EVT-20250312-003",
"start_time": "2025-03-12T14:23:07.120+08:00",
"end_time": "2025-03-12T14:23:07.480+08:00",
"type": "grasp_failure",
"module": "vision_guidance",
"camera_id": "CAM-02",
"target_id": "WK-1047",
"frame_id": "robot_base",
"pose_error_mm": 2.8,
"pose_error_deg": 1.6,
"threshold_mm": 1.5,
"process_params": {
"grasp_force_N": 45,
"approach_speed_mm_s": 120
},
"root_cause_label": "pointcloud_registration_drift",
"confidence": 0.82,
"operator": "zhang"
}
第三层:根因标注。在诊断结论明确后,回填根因标签与置信度。根因标签应来自预定义的分类体系,避免自由文本导致后续统计困难。常见根因类别包括:标定漂移、光照变化、点云缺失、通信抖动、参数误设、机械干涉、工件来料异常等。
四、采集规范与现场操作要点
为了让采集结果真正可用于诊断,现场操作需要遵循以下规范:
- 采集前确认时间基准:检查PTP/NTP同步状态,记录主时钟源与各设备时钟偏移量。若偏移超过允许阈值(如1ms),先修复再采集。
- 保留原始数据:图像不压缩、点云不降采样、日志不截断。诊断时往往需要查看原始细节,压缩或裁剪可能丢失关键信息。
- 记录环境与配置快照:包括相机曝光/增益、光源亮度、机器人负载与工具号、工艺参数当前值、软件版本号。这些信息在事后复现时至关重要。
- 标注与采集同步进行:异常发生时立即打事件标记,不要等事后凭记忆补标。现场可先用快捷键或语音记录,事后整理为结构化标注。
- 数据包完整性校验:采集结束后检查各数据流的时间覆盖范围是否一致、是否有丢帧/丢包、标注文件是否与数据文件一一对应。
五、一个可复用的采集检查表
下表可作为现场采集时的快速核对工具,按六类信息逐项确认:
| 信息类别 | 必采内容 | 时间戳要求 | 标注要求 |
|---|---|---|---|
| 日志 | 程序日志、通信日志、异常堆栈 | 毫秒级,与主时钟对齐 | 模块名、事件ID、日志级别 |
| 图像 | 原图、ROI图、掩膜、叠加图 | 曝光时刻硬件时间戳 | 相机编号、帧号、触发源 |
| 点云 | 原始点云、滤波后点云、变换矩阵 | 采集时刻硬件时间戳 | 坐标系、内参/外参版本 |
| 时序信号 | 力/扭矩、电流、速度、IO电平 | 采样点时间戳,微秒级 | 通道名、量程、单位 |
| 机器人状态 | 关节角、笛卡尔位姿、报警码、程序行号 | 控制器时钟,与主时钟对齐 | 坐标系、运动模式、使能状态 |
| 工艺参数 | 设定值、实际值、修改记录 | 参数生效时刻 | 参数名、单位、修改人 |
完成采集后,建议将数据按“事件ID”组织为统一目录,例如 EVT-20250312-003/ 下包含 images/、pointclouds/、signals/、robot_state.csv、process_params.json、annotation.json、meta.json。这样无论是人工复盘还是自动分析,都能快速定位到同一事件的全部相关数据。
同步采集与标注不是诊断的附属工作,而是诊断能力的基础设施。现场采集规范执行得越严格,后续根因分析的路径就越短、结论就越可靠。反之,数据缺失或时间错位会让最优秀的诊断算法也无从下手。