2. 无人机平台与传感器基础
要让深度学习模型真正驱动无人机避障,第一步不是写网络,而是搞清楚“飞的是什么、看的是什么、量的是什么、算在哪”。本节围绕平台与传感器展开,建立后续数据采集、模型训练与实机部署的物理基础。
一、常见无人机类型与选型逻辑
避障任务对平台的要求集中在载荷能力、续航、算力与稳定性上。常见类型可归纳为四类:
- 多旋翼(四旋翼为主):可悬停、机动灵活、起降场地要求低,是视觉避障研究最常用的平台;缺点是续航短(通常 20~40 分钟)、载荷有限。
- 固定翼:续航长、速度快,适合大范围巡检;但无法悬停,避障响应窗口短,对前视感知距离要求高。
- 复合翼(垂直起降固定翼):兼顾垂直起降与长航时,结构复杂、成本高,多用于行业应用。
- 无人直升机:载荷大、续航长,但机械结构复杂、维护成本高,视觉避障研究中使用较少。
选型时优先确认三个参数:最大起飞重量(决定能挂多少传感器与算力板)、有效载荷余量(建议保留 20% 以上)、以及飞控是否开放姿态与位置接口(决定能否接入自定义避障指令)。
二、相机与深度传感器
视觉避障的“眼睛”分为被动与主动两类。被动相机(单目、双目、RGB-D 中的 RGB 通道)成本低、帧率高,但单目无法直接获得尺度,需要靠运动或先验估计深度。主动传感器(结构光、ToF、激光雷达)可直接输出深度,但受阳光、反射材质与量程限制。
| 传感器 | 输出 | 典型量程 | 优点 | 局限 |
|---|---|---|---|---|
| 单目相机 | RGB 图像 | — | 轻、便宜、帧率高 | 无绝对尺度,依赖算法估深 |
| 双目相机 | RGB + 视差 | 0.5~20 m | 可算稠密深度 | 弱纹理、远距离精度下降 |
| RGB-D(结构光/ToF) | RGB + 深度图 | 0.3~5 m | 直接给深度 | 室外强光下易失效 |
| 激光雷达 | 点云 | 10~100 m | 精度高、量程远 | 重、贵、点云稀疏 |
工程上常见组合是“前视双目 + 下视 ToF + 激光雷达”做冗余:双目负责中近距离语义避障,ToF 负责低空定高,激光雷达提供远距离安全边界。
三、IMU 与 GPS:状态估计的两条腿
IMU(惯性测量单元)由三轴加速度计与三轴陀螺仪组成,输出高频(100~1000 Hz)的角速度与比力,短时精度高但会积分漂移。GPS 提供低频(1~10 Hz)的绝对位置,长期稳定但易受遮挡与多径影响。二者通过卡尔曼滤波或因子图融合,得到无人机的位置、速度与姿态估计。
典型数据流如下:
IMU(200Hz) ─┐
GPS(5Hz) ──┼─► 状态估计(EKF/UKF) ─► 位置/速度/姿态
相机(30Hz)─┘ ▲
└── 视觉里程计/深度网络提供相对观测
四、坐标系与标定:让所有传感器说同一种语言
无人机上至少存在四套坐标系:世界系(ENU/NED)、机体系(前-右-下)、相机系(光心为原点,Z 向前)、图像系(像素坐标)。避障算法要把障碍物从图像系变换到机体系,再变换到世界系,任何一步外参错误都会导致“看到障碍却撞上去”。
标定分三步:
- 相机内参标定:用棋盘格求焦距、主点与畸变系数,常用张正友标定法。
- 相机-IMU 外参标定:求相机与 IMU 之间的旋转与平移,常用 Kalibr 工具。
- 机体系对齐:确认相机光轴与机体前向的夹角,写入飞控参数。
# 相机内参标定示例(OpenCV)
python calibrate.py --pattern 9x6 --square 0.025 \
--images ./calib_imgs --output camera.yaml
# 相机-IMU 外参标定(Kalibr)
kalibr_calibrate_cameras --bag data.bag --topics /cam0
kalibr_calibrate_imu_camera --bag data.bag --cam cam.yaml --imu imu.yaml
五、案例与常见误区
某团队在室内做避障测试时模型表现良好,搬到室外后频繁误判。复盘发现:室内用 RGB-D,室外强光下深度图大面积失效,而模型训练时从未见过“深度缺失”的输入。修正方案是加入深度置信度通道,并在训练集中混入缺失掩码样本。
另一个高频误区是忽略时间同步。相机 30 Hz、IMU 200 Hz、GPS 5 Hz,若不做硬件触发或时间戳对齐,融合后的状态估计会出现“鬼影”,避障框位置抖动。工程上应统一使用飞控时间戳,并检查各传感器时间偏移是否小于 5 ms。
把平台、传感器、状态估计与坐标系标定串成一条链路后,后续的深度网络训练与避障策略才有可靠的输入。任何一环的物理误差,都会在模型输出端被放大成飞行风险。