感知融合与飞控系统接口控制文档
| 字段 | 内容 |
|---|---|
| 文档编号 | ICD-09-V0.1 |
| 版本 | V0.1 |
| 状态 | 草稿 |
| 作者 | 产品团队 |
| 日期 | 2026-04-17 |
| 审核人 | — |
| 接口双方 | 感知融合子系统 (PF) ↔ 飞控系统 (FC) |
修订记录
| 版本 | 日期 | 修订人 | 修订内容 |
|---|---|---|---|
| V0.1 | 2026-04-17 | 产品团队 | 初稿 |
1. 概述
1.1 目的
本文档定义感知融合子系统(PF)与飞控系统(FC)之间的接口规范,包括物理层连接、通信协议、消息格式、数据更新频率和安全约束。
为何独立于ICD-04:PF↔FC的数据特征与OA↔FC(ICD-04)有本质差异:
- 数据量大:PF输出包含协方差矩阵(6×6 float)、高程图(二维数组),远超CAN帧8字节限制
- 频率高:辅助观测量需50Hz输出,高于ICD-04的20Hz上限
- 物理层可能不同:PF若运行在独立计算板(Jetson/RK3588),优选Ethernet接口
- 消息集不重叠:PF消息(辅助观测量/协方差/高程图)与OA消息(障碍物/避障建议)完全不同
1.2 适用范围
- 适用于感知融合计算单元与飞控主控之间的通信
- 本文档定义的协议为自定义二进制协议(Ethernet方案)或MAVLink扩展消息(UART方案)
1.3 关联文档
| 文档编号 | 文档名称 | 关系 |
|---|---|---|
| SUB-PF-V0.1 | 感知融合子系统PRD | 接口一方(感知数据提供方) |
| SUB-FC-V0.1 | 飞控系统PRD | 接口另一方(EKF2状态估计消费方) |
| ICD-04-V0.1 | 飞控与避障系统接口 | 参考文档(PF→OA的感知数据可通过PF直连OA或经FC转发) |
1.4 术语定义
| 术语 | 定义 |
|---|---|
| PF | 感知融合子系统(Perception Fusion) |
| FC | 飞控系统(Flight Controller) |
| 辅助观测量帧 | PF→FC,包含融合后的位置/速度/高度估计及协方差 |
| 高程图帧 | PF→FC,局部地形高程图数据 |
| PF状态帧 | PF→FC,系统健康状态和传感器状态 |
| 飞控参考帧 | FC→PF,GPS/IMU/飞行模式等参考数据 |
2. 物理层
2.1 接口类型
| 参数 | 方案A:Ethernet(推荐) | 方案B:UART |
|---|---|---|
| 接口 | 100BASE-T Ethernet | UART 921600bps |
| 适用场景 | PF运行在独立计算板(Jetson/RK3588) | PF复用飞控主控或轻量级MCU |
| 带宽 | 100Mbps(远超需求) | ~92KB/s(可能成瓶颈) |
| 延迟 | <1ms | <5ms |
| 信号电平 | IEEE 802.3 差分 | 3.3V TTL |
选型建议:若PF-F-801决策为独立计算板,强烈推荐Ethernet——数据量(协方差+高程图)需要高带宽,且独立计算板天然支持Ethernet。若复用飞控主控,则内部总线直连,本ICD仅定义消息格式。
2.2 线束规格
| 参数 | Ethernet方案 | UART方案 |
|---|---|---|
| 线缆 | Cat5e屏蔽双绞线 | TX/RX/GND多芯线,≥0.2mm² |
| 最大长度 | ≤50cm | ≤50cm |
| 屏蔽要求 | 带屏蔽层,屏蔽层单端接地 | 带屏蔽层 |
2.3 连接器
| 参数 | 规格 |
|---|---|
| 连接器类型 | [TBD — 待硬件团队确认,航空级防水连接器] |
| 防护要求 | 防水密封(匹配IP56),耐振动 |
| 锁紧机构 | 机械锁紧,防止振动脱落 |
3. 协议层
3.1 传输协议
Ethernet方案:UDP单播,端口号 [TBD]。选择UDP而非TCP,因为观测量数据对实时性要求高、丢帧可容忍(下一帧即覆盖)。
UART方案:自定义封包格式:
| 帧头(2B) | 消息ID(2B) | 数据长度(2B) | 数据域(N字节) | CRC32(4B) |
| 0xAA55 | MSG_ID | LEN | DATA[0..N-1] | CRC32 |3.2 消息定义 — PF→FC(感知数据上报)
3.2.1 辅助观测量帧
MSG_ID: 0x0901 / UDP端口: [TBD]
| 字段 | 偏移(字节) | 类型 | 单位 | 说明 |
|---|---|---|---|---|
| timestamp | 0-7 | U8 | μs | PF时间戳(微秒,与飞控时间同步) |
| seq_num | 8-11 | U4 | — | 单调递增序列号,用于丢帧检测 |
| pos_x | 12-15 | F4 | m | 融合位置X(NED坐标系,相对起飞点) |
| pos_y | 16-19 | F4 | m | 融合位置Y |
| pos_z | 20-23 | F4 | m | 融合位置Z(向下为正) |
| vel_x | 24-27 | F4 | m/s | 融合速度X |
| vel_y | 28-31 | F4 | m/s | 融合速度Y |
| vel_z | 32-35 | F4 | m/s | 融合速度Z |
| agl_height | 36-39 | F4 | m | 对地高度(AGL,下视雷达测量) |
| cov_pos[9] | 40-75 | F4×9 | m² | 位置协方差矩阵(3×3,行优先) |
| cov_vel[9] | 76-111 | F4×9 | (m/s)² | 速度协方差矩阵(3×3,行优先) |
| agl_variance | 112-115 | F4 | m² | 对地高度方差 |
| source_mask | 116 | U1 | — | 当前有效融合源位掩码:bit0=雷达高度, bit1=多普勒速度, bit2=VIO, bit3=LiDAR里程计, bit4=GPS参考 |
| pf_status | 117 | U1 | — | PF系统状态:0=正常, 1=降级, 2=故障 |
| reserved | 118-119 | U2 | — | 保留 |
帧大小:120字节
更新频率:50 Hz(周期20ms)
说明:协方差矩阵使用对称矩阵的完整3×3表示(含冗余),简化飞控端解析。若带宽紧张,可优化为上三角6元素。
3.2.2 地形高程图帧
MSG_ID: 0x0902
| 字段 | 偏移(字节) | 类型 | 单位 | 说明 |
|---|---|---|---|---|
| timestamp | 0-7 | U8 | μs | 时间戳 |
| seq_num | 8-11 | U4 | — | 序列号 |
| origin_x | 12-15 | F4 | m | 高程图原点X(NED,相对飞行器当前位置) |
| origin_y | 16-19 | F4 | m | 高程图原点Y |
| resolution | 20-23 | F4 | m | 栅格分辨率(如0.5m) |
| grid_cols | 24 | U1 | — | 列数(左右方向,如40=±10m@0.5m分辨率) |
| grid_rows | 25 | U1 | — | 行数(前后方向,如80=前方40m@0.5m) |
| reserved | 26-27 | U2 | — | 保留 |
| height_data[N] | 28+ | I2×N | cm | 高程数据数组(N=grid_cols×grid_rows),相对飞行器海拔高度的偏移量 |
| confidence[N] | 28+2N+ | U1×N | % | 各栅格置信度(0-100,0=未扫描) |
帧大小:可变,典型配置(40×80栅格)= 28 + 3200×2 + 3200 = 9628字节
更新频率:5 Hz(周期200ms)
注:高程图数据量大(~10KB/帧),仅Ethernet方案可直接承载。UART方案需分片传输或降低分辨率。
3.2.3 PF系统状态帧
MSG_ID: 0x0903
| 字段 | 偏移(字节) | 类型 | 单位 | 说明 |
|---|---|---|---|---|
| timestamp | 0-7 | U8 | μs | 时间戳 |
| pf_status | 8 | U1 | — | 系统状态:0=正常, 1=降级, 2=故障 |
| sensor_mask | 9 | U1 | — | 传感器在线位掩码:bit0=鱼眼视觉, bit1=LiDAR, bit2=前雷达, bit3=下视雷达, bit4=后视雷达, bit5=IMU源 |
| sensor_health | 10-15 | U1×6 | % | 各传感器健康度(按sensor_mask位序:0-100,0=故障) |
| cpu_load | 16 | U1 | % | PF计算板CPU负载 |
| gpu_load | 17 | U1 | % | PF计算板GPU负载(若有) |
| temperature | 18 | I1 | °C | 计算板温度 |
| fault_code | 19-20 | U2 | — | 故障码(见故障码表) |
| reserved | 21-23 | U1×3 | — | 保留 |
帧大小:24字节
更新频率:2 Hz
故障码表:
| 故障码 | 含义 |
|---|---|
| 0x0000 | 无故障 |
| 0x0001 | 四目鱼眼视觉故障 |
| 0x0002 | 激光雷达故障 |
| 0x0004 | 前向相控阵雷达故障 |
| 0x0008 | 下视相控阵雷达故障 |
| 0x0010 | 后视相控阵雷达故障 |
| 0x0020 | IMU数据源中断 |
| 0x0040 | 计算板过温(>70°C) |
| 0x0080 | 融合算法异常(输出NaN/发散) |
| 0x0100 | 视觉遮挡/脏污告警 |
| 0x0200 | PF与GNSS位置偏差超限 |
3.3 消息定义 — FC→PF(参考数据下发)
3.3.1 飞控参考数据帧
MSG_ID: 0x0910
| 字段 | 偏移(字节) | 类型 | 单位 | 说明 |
|---|---|---|---|---|
| timestamp | 0-7 | U8 | μs | 飞控时间戳 |
| gps_lat | 8-11 | I4 | 1e-7 deg | GPS纬度 |
| gps_lon | 12-15 | I4 | 1e-7 deg | GPS经度 |
| gps_alt | 16-19 | I4 | mm | GPS海拔高度 |
| gps_vel_n | 20-23 | I4 | mm/s | GPS速度北向 |
| gps_vel_e | 24-27 | I4 | mm/s | GPS速度东向 |
| gps_vel_d | 28-31 | I4 | mm/s | GPS速度下向 |
| gps_fix_type | 32 | U1 | — | 定位状态:0=无, 1=单点, 2=浮点解, 3=固定解 |
| satellites | 33 | U1 | — | 可见卫星数 |
| hdop | 34-35 | U2 | 0.01 | 水平精度因子(HDOP×100) |
| reserved | 36-39 | U4 | — | 保留 |
更新频率:10 Hz
3.3.2 IMU数据帧
MSG_ID: 0x0911
| 字段 | 偏移(字节) | 类型 | 单位 | 说明 |
|---|---|---|---|---|
| timestamp | 0-7 | U8 | μs | IMU采样时间戳 |
| acc_x | 8-11 | F4 | m/s² | 加速度X(机体系) |
| acc_y | 12-15 | F4 | m/s² | 加速度Y |
| acc_z | 16-19 | F4 | m/s² | 加速度Z |
| gyro_x | 20-23 | F4 | rad/s | 角速度X |
| gyro_y | 24-27 | F4 | rad/s | 角速度Y |
| gyro_z | 28-31 | F4 | rad/s | 角速度Z |
帧大小:32字节
更新频率:200 Hz(周期5ms)
说明:仅在PF无独立IMU时需要此帧(对应PF-F-141/142)。若PF配备独立IMU,此帧可降为50Hz用于交叉校验。
3.3.3 飞行模式帧
MSG_ID: 0x0912
| 字段 | 偏移(字节) | 类型 | 单位 | 说明 |
|---|---|---|---|---|
| flight_mode | 0 | U1 | — | 飞行模式:0=待机, 1=普通挡, 2=姿态挡, 3=航线作业, 4=返航, 5=降落, 6=仿地作业 |
| terrain_follow_enabled | 1 | U1 | — | 仿地使能:0=关, 1=开 |
| terrain_target_height | 2-3 | U2 | cm | 仿地目标高度 |
| pf_enable | 4 | U1 | — | PF使能状态:0=关闭, 1=正常, 2=仅高度输出 |
| reserved | 5-7 | U1×3 | — | 保留 |
帧大小:8字节
更新频率:1 Hz(模式变化时立即发送)
4. 时序与频率要求
4.1 上电初始化时序
t=0 飞控系统上电
t=0~500ms 飞控完成自检
t=500ms 飞控向PF计算板供电(若独立供电)
t=500~5s PF计算板启动OS+传感器初始化+标定加载
t=5s PF发送首帧PF系统状态帧(sensor_mask报告各传感器在线状态)
t=5s~ FC开始下发飞控参考数据帧+IMU数据帧
t=5~8s PF融合估计器收敛(需累积GPS/IMU参考数据)
t=8s PF开始输出辅助观测量帧(pf_status=正常)注:PF启动时间(~8s)长于OA(~3s),因为独立计算板需启动OS。飞控在PF未就绪期间正常使用GNSS/IMU,PF就绪后渐进融合。
4.2 数据更新周期汇总
| 消息 | 方向 | 频率 | 周期 | 帧大小 | 带宽 |
|---|---|---|---|---|---|
| 辅助观测量帧 | PF→FC | 50 Hz | 20ms | 120B | 6 KB/s |
| 地形高程图帧 | PF→FC | 5 Hz | 200ms | ~10KB | 50 KB/s |
| PF系统状态帧 | PF→FC | 2 Hz | 500ms | 24B | <1 KB/s |
| 飞控参考数据帧 | FC→PF | 10 Hz | 100ms | 40B | <1 KB/s |
| IMU数据帧 | FC→PF | 200 Hz | 5ms | 32B | 6.4 KB/s |
| 飞行模式帧 | FC→PF | 1 Hz | 1000ms | 8B | <1 KB/s |
| 合计 | ~65 KB/s |
总带宽~65KB/s,Ethernet方案(100Mbps)毫无压力。UART 921600bps(~92KB/s)勉强可行但余量不足,不推荐。
4.3 延迟要求
| 指标 | 要求 |
|---|---|
| PF传感器采集→辅助观测量输出 | ≤50ms |
| 辅助观测量帧传输延迟(PF→FC) | ≤5ms(Ethernet)/ ≤10ms(UART) |
| 端到端:传感器采集→EKF2融合更新 | ≤60ms |
| IMU帧传输延迟(FC→PF) | ≤5ms |
| 高程图帧传输延迟 | ≤20ms(Ethernet) |
5. 安全与故障处理
5.1 通信故障检测
| 编号 | 故障场景 | 检测机制 | 处理方式 |
|---|---|---|---|
| ICD-09-S-001 | PF→FC通信中断(辅助观测量帧停止) | 飞控监测辅助观测量帧超时>200ms(10个周期) | 飞控将PF观测量权重置0,切回纯GNSS/IMU,App告警"感知融合离线" |
| ICD-09-S-002 | 高程图帧停止(但观测量帧正常) | 飞控监测高程图帧超时>1s | 仿地控制使用最后有效高程图(标注为过时),若超过5s仍无更新则降级为气压定高 |
| ICD-09-S-003 | FC→PF通信中断(GPS/IMU数据停止) | PF监测飞控参考数据帧超时>1s | PF切换为纯感知模式(无GPS参考),输出相对位姿,协方差放大 |
| ICD-09-S-004 | PF输出pf_status=故障 | 飞控读取pf_status字段 | 飞控立即将PF权重置0,App告警 |
| ICD-09-S-005 | PF辅助观测量与GNSS位置偏差异常 | 飞控EKF2内部一致性检测 | EKF2自动降低PF权重,若持续偏差则剔除PF源 |
| ICD-09-S-006 | 数据帧校验错误(CRC32不匹配) | 接收端CRC校验 | 丢弃错误帧,不影响后续数据 |
5.2 接口需求编号
| 编号 | 需求描述 | 优先级 | 验证方式 |
|---|---|---|---|
| ICD-09-I-001 | PF应在上电后≤8s内完成初始化并开始输出辅助观测量帧 | P0 | 时序测试 |
| ICD-09-I-002 | 飞控EKF2应在接收辅助观测量帧后≤10ms内完成融合更新 | P0 | 延迟测试 |
| ICD-09-I-003 | 辅助观测量帧丢帧率应≤0.1%(正常工作条件下) | P0 | 长时间运行丢帧统计 |
| ICD-09-I-004 | 通信误码率应≤1e-6(电调全速运转EMI环境下) | P0 | EMC环境测试 |
| ICD-09-I-005 | 辅助观测量帧应具备单调递增序列号,飞控可据此检测丢帧和乱序 | P0 | 丢帧统计测试 |
6. 接口验收标准
6.1 必须通过项
| 测试项 | 通过标准 | 对应编号 |
|---|---|---|
| 辅助观测量连续输出 | 50Hz连续输出1小时,丢帧率≤0.1% | 3.2.1, ICD-09-I-003 |
| EKF2融合验证 | 飞控EKF2正确接收并融合PF观测量,位置估计精度提升可量化 | 3.2.1 |
| 仿地高度联调 | PF对地高度与实际高度误差≤±10cm(2-30m范围) | 3.2.1(agl_height) |
| 高程图传输 | 5Hz高程图帧完整送达,飞控仿地控制正常消费 | 3.2.2 |
| PF故障降级 | PF上报pf_status=故障后,飞控≤200ms内切回纯GNSS/IMU | ICD-09-S-001/004 |
| 通信中断恢复 | 断开连接重连后≤5s恢复正常通信 | ICD-09-S-001 |
| IMU数据下发 | FC→PF的IMU数据200Hz稳定输出,延迟≤5ms | 3.3.2 |
6.2 应当通过项
| 测试项 | 通过标准 | 对应编号 |
|---|---|---|
| EMI环境稳定性 | 电机全速运转时通信无异常丢帧 | ICD-09-I-004 |
| 高温运行 | 40°C环境下连续1小时通信正常 | — |
| 协方差有效性 | PF输出的协方差矩阵正定且数值合理 | 3.2.1 |
7. 待决事项
| 编号 | 事项描述 | 责任人 | 影响范围 |
|---|---|---|---|
| TBD-ICD09-001 | 物理层最终确认:Ethernet还是UART(依赖PF-F-801计算平台选型) | 硬件+架构团队 | 2.1, 全文 |
| TBD-ICD09-002 | Ethernet方案UDP端口号分配 | 系统架构师 | 3.1 |
| TBD-ICD09-003 | 连接器具体型号选型 | 硬件团队 | 2.3 |
| TBD-ICD09-004 | PF是否需要独立IMU(影响IMU数据帧是否为必需) | 飞控+PF团队 | 3.3.2 |
| TBD-ICD09-005 | 高程图栅格尺寸/分辨率最终确认(影响帧大小) | 算法团队 | 3.2.2 |
| TBD-ICD09-006 | PF→OA感知数据是否经FC转发,还是PF直连OA | 系统架构师 | 1.3 |
文档结束
