1. 课程导入
无人机要在复杂环境中完成自主飞行、避障、目标跟踪与任务执行,前提是“看得见、看得准、看得稳”。所谓感知系统,就是无人机获取外部世界信息并形成可用环境模型的全部软硬件集合,包括传感器、时间同步、标定、数据预处理、特征提取、目标检测、跟踪、融合、状态估计与决策接口。对低空小型无人机而言,感知系统不仅要回答“前方有没有障碍”,还要回答“障碍在哪里、以多快速度运动、我能否安全通过、目标是否值得持续跟踪”。
从工程视角看,无人机感知系统可以拆成四层:物理传感层负责采集原始信号;时空对齐层完成时间戳同步、外参标定与坐标变换;感知计算层执行检测、分割、跟踪与融合;任务接口层把感知结果输出给规划控制、地面站或载荷系统。任何一层出现偏差,都会在最终决策中被放大。例如相机曝光延迟 30 ms,在 10 m/s 飞行速度下就会带来约 0.3 m 的位置误差;雷达与相机外参标定偏差 1°,在 50 m 处也会产生接近 0.9 m 的投影偏移。
1.1 为什么需要雷达视觉融合
单一传感器各有硬伤。可见光相机分辨率高、纹理丰富,能识别颜色、文字、行人、车辆等语义目标,但受光照、逆光、夜间、雨雾影响大,且单目测距依赖尺度假设,双目在远距离和弱纹理区域深度稀疏。毫米波雷达穿透雨雾、烟尘能力强,可直接测量距离与径向速度,但角分辨率较低,点云稀疏,对静止目标与金属护栏、井盖等易产生杂波,语义信息弱。激光雷达精度高、点云密集,但成本、体积、功耗和恶劣天气衰减仍是约束。
雷达视觉融合的本质,是用两种或多种互补的观测形成更稳健的环境描述:雷达提供距离、速度与全天候鲁棒性,视觉提供类别、纹理与高分辨角向信息。融合后系统可以在夜间、逆光、雨雾、扬尘等场景中保持目标检测与跟踪能力,同时降低单一传感器虚警和漏检带来的风险。对无人机而言,融合还能提升动态障碍物速度估计精度,为避障规划提供更可靠的时间裕度。
1.2 课程学习目标与整体知识框架
本课程面向无人机感知工程实践,目标不是停留在算法公式,而是建立从传感器到任务接口的完整工程链路能力。学完后,你应当能够:
- 解释无人机感知系统的分层结构,说明雷达、视觉、IMU/GNSS 各自的观测模型与局限;
- 完成相机-雷达时间同步与外参标定,理解坐标系变换、重投影误差与标定质量评估;
- 实现雷达点云聚类、视觉目标检测与跟踪,并完成数据级、特征级或决策级融合;
- 针对夜间、逆光、雨雾、扬尘等场景设计融合策略,分析虚警、漏检与航迹断裂原因;
- 使用 ROS/ROS2、OpenCV、PCL、PyTorch 等工具搭建可复现的感知流水线,并完成指标评测。
整体知识框架按“感知基础—时空对齐—单传感器处理—融合方法—系统集成—场景验证”推进。前段解决“数据从哪来、准不准”,中段解决“怎么检测、怎么关联”,后段解决“怎么融合、怎么落地”。课程中会反复使用同一套坐标链路与时间链路,避免每章各讲一套、工程上无法拼接。
| 模块 | 核心问题 | 关键输出 | 典型工具/参数 |
|---|---|---|---|
| 感知基础 | 传感器能测什么、误差从哪来 | 观测模型、噪声模型 | FOV、分辨率、测距精度、帧率 |
| 时空对齐 | 同一时刻、同一坐标系下比较 | 外参矩阵、时间偏移 | PPS、PTP、棋盘格、重投影误差 |
| 单传感器处理 | 如何稳定检测与跟踪 | 点迹、检测框、航迹 | CFAR、DBSCAN、YOLO、Kalman |
| 融合方法 | 如何互补、如何关联 | 融合目标列表 | 匈牙利匹配、EKF、BEV融合 |
| 系统集成与验证 | 如何上车、如何评测 | 可运行节点、评测报告 | ROS2、mAP、MOTA、时延预算 |
1.3 典型场景与工程误区
以低空物流无人机为例:飞行高度 80 m,速度 12 m/s,前方出现横穿行人。相机在逆光下检测置信度下降,雷达仍能给出距离与径向速度;融合模块将雷达点迹与视觉检测框关联,输出目标位置、速度和类别,规划模块据此减速或绕行。若没有融合,视觉漏检可能导致避障过晚,雷达单独工作又可能把路边金属牌误判为障碍。
# 感知流水线最小可复现配置示例(ROS2 风格)
sensors:
camera: {topic: /cam/image_raw, fps: 30, frame_id: camera_link}
radar: {topic: /radar/points, fps: 20, frame_id: radar_link}
imu: {topic: /imu/data, rate: 200, frame_id: imu_link}
sync:
method: approximate_time
max_interval_ms: 15
calibration:
extrinsic: T_cam_radar.yaml
reprojection_error_px: 0.8
fusion:
level: feature
association: hungarian
tracker: ekf
evaluation:
metrics: [mAP, MOTA, latency_ms]
latency_budget_ms: 80