4. 感知传感器集成基础

AUV 的感知系统不是“把几个传感器装上去”那么简单。前视声呐负责前方障碍与目标探测,侧扫声呐负责海底地貌成像,摄像头提供高分辨率光学信息,避障声呐则承担近距离安全兜底。四类传感器在带宽、时延、坐标系、触发方式和数据格式上差异很大,集成的核心任务是把它们统一到同一时间基准和同一载体坐标系下,使上层感知与决策模块能够“同时看到同一时刻的世界”。本节围绕接口配置与数据同步两条主线展开。

一、四类传感器的接口特征与配置要点

前视声呐(如多波束成像声呐)通常通过以太网输出图像帧与目标列表,配置重点是量程、开角、增益、TVG 曲线和 ping 速率。量程越大,单 ping 周期越长,帧率越低;在近场避障场景中常把量程设为 30~50 m、开角 120°,而在目标搜索时可能设为 100 m 以上。侧扫声呐多为双通道拖曳或舷挂式,通过串口或以太网输出回波强度序列,配置重点是拖鱼深度、量程、发射频率与采样率,其成像质量强依赖航速与 ping 率的匹配。摄像头通过 GigE Vision 或 USB3 Vision 输出视频流,配置重点是分辨率、曝光、增益与帧率,水下还需考虑补光同步与图像去雾。避障声呐(如机械扫描式单波束或成像避障声呐)常以串口 NMEA 或私有二进制协议输出最近障碍距离与方位,配置重点是扫描扇区、报警阈值与输出频率。

接口配置的第一原则是“先定数据契约,再接线”。每条传感器链路都应明确:物理接口(RJ45、RS-232/485、USB、光纤)、协议(TCP/UDP、NMEA 0183、厂商私有协议)、数据率、时间戳来源(传感器自带 UTC、PTP 硬件时间戳或主控接收时刻)以及坐标定义(以载体艏向为 0°、右舷为正,还是以传感器自身零位为参考)。这些字段一旦确定,就写入集成配置文件,避免后期“各模块各说各话”。

二、时间同步:从“各自打戳”到统一时基

多传感器融合最容易被忽视的是时间同步。若前视声呐图像与摄像头画面相差 200 ms,在 1.5 m/s 航速下目标位置就会错开约 0.3 m,足以让融合结果出现“重影”。工程上通常分三层处理:硬件层用 PTP(IEEE 1588)或 GPS 秒脉冲为支持该功能的设备提供统一时钟;驱动层在数据到达主控时打上单调递增的接收时间戳,并记录与 UTC 的偏移;应用层用插值或外推把各传感器数据对齐到同一融合时刻。

对于不支持硬件时间戳的串口设备,可采用“触发—回读”方式:主控周期性发送同步命令,记录发送与接收时刻,估算单向时延并在数据包上补偿。摄像头可通过外触发线与声呐 ping 同步,使光学帧与声呐帧在同一时刻采集。需要强调的是,时间戳必须与数据一起进入融合缓冲区,而不是在显示时才补打,否则同步信息在链路中就已丢失。

感知传感器接口配置与时间同步架构 前视声呐 以太网 / 图像帧+目标 量程30~100m,开角120° 侧扫声呐 串口/以太网,回波强度 双通道,依赖航速匹配 摄像头 GigE Vision / USB3 外触发,曝光/增益可调 避障声呐 RS-232 / NMEA 或私有 扇区扫描,报警阈值 统一时基:PTP / GPS 秒脉冲 硬件时间戳优先,接收时间戳兜底 驱动层:协议解析 · 数据校验 · 打时间戳 · 坐标变换 统一输出:{传感器ID, 时间戳, 载体坐标下的距离/方位/像素} 融合缓冲区:按时间戳对齐 + 插值/外推 对齐到同一融合时刻 t_fuse,输出同步感知快照 上层:障碍地图 / 目标跟踪 / 避障决策

三、坐标统一与数据对齐

四类传感器的安装位置和朝向各不相同,必须通过外参标定把它们统一到载体坐标系(通常以 AUV 重心为原点、艏向为 X 轴、右舷为 Y 轴、向下为 Z 轴)。前视声呐给出的是相对其声学零位的距离与方位,需叠加安装偏角与杆臂;侧扫声呐的左右舷回波需按拖鱼位置与航向换算成地理坐标;摄像头的像素坐标需经内参矩阵与畸变校正后投影到载体坐标;避障声呐的扇区角度也需扣除安装偏角。标定结果以旋转矩阵加平移向量形式写入配置,并在每次任务前用已知目标(如水池中的标准反射体)复核。

数据对齐时,融合缓冲区按时间戳排序,对每个融合时刻选取最近邻帧或线性插值。对于图像类数据,通常保留最近一帧并记录其时间偏差;对于距离类数据,可对前后两帧做线性插值。偏差超过阈值(例如 150 ms)的数据应标记为“过期”,不参与融合,避免用旧数据误导避障判断。

四、一个可执行的集成配置示例

下面给出一份简化的集成配置片段,用于说明字段组织方式(参数为教学示例,非实测值):

sensors:
  forward_sonar:
    iface: eth0
    protocol: tcp
    ip: 192.168.1.21
    range_m: 50
    fov_deg: 120
    ping_rate_hz: 8
    timestamp: ptp
    mount: {x: 0.85, y: 0.0, z: -0.15, yaw_deg: 0.0}
  side_scan:
    iface: ttyUSB0
    baud: 115200
    protocol: vendor_binary
    range_m: 40
    sample_rate_khz: 200
    timestamp: rx_stamp
    mount: {x: -0.30, y: 0.0, z: -0.40, yaw_deg: 0.0}
  camera:
    iface: eth1
    protocol: gige_vision
    resolution: 1280x720
    fps: 15
    trigger: external
    timestamp: ptp
    mount: {x: 0.60, y: 0.0, z: -0.10, yaw_deg: 0.0}
  avoidance_sonar:
    iface: ttyS1
    baud: 9600
    protocol: nmea_like
    sector_deg: 180
    alarm_m: 8
    timestamp: rx_stamp
    mount: {x: 0.90, y: 0.0, z: -0.20, yaw_deg: 0.0}
sync:
  fuse_period_ms: 100
  max_age_ms: 150
  interpolation: linear

配置完成后,应做三项验证:其一,用示波器或 PTP 状态查询确认各设备时钟偏差在 1 ms 内;其二,在静止状态下让同一目标同时出现在前视声呐与摄像头画面中,检查坐标变换后的方位是否一致;其三,以 1 m/s 匀速直航通过已知距离的障碍物,比较避障声呐报警时刻与视觉估计距离是否吻合。三项通过后,才可认为接口与同步链路具备出海条件。

时间同步的精度目标应与任务需求匹配:近场避障建议优于 20 ms,成像与目标识别融合建议优于 50 ms。盲目追求微秒级同步会增加成本,而忽略同步则会让融合结果系统性偏移。
常见错误是只在显示端“看起来对齐”,而融合缓冲区里各数据仍使用各自接收时刻。正确做法是在驱动层完成时间戳归一,并让所有下游模块只消费带统一时间戳的数据包。