飛控(如 ArduPilot、PX4、Betaflight)集成 US100 超聲波測距模組,主要用於低空精確定高(0-10m),而非橫向避障。本文詳解其工作原理、安裝位置、數據融合邏輯及局限性。
| 維度 | 超聲波 (US100) | 避障首選:激光雷達/深度相機/毫米波雷達 |
|---|---|---|
| 視場角 (FOV) | 窄 (約 15-30° 錐面) | 寬 (激光 270°/360°、深度相機 90°+) |
| 更新率 | 低 (~20-50Hz) | 高 (激光 10-20Hz/線、深度相機 30FPS) |
| 抗干擾 | 差(風聲、電機噪聲、多路徑) | 強(光學/毫米波不受聲學干擾) |
| 最小探測距離 | ~2cm | 激光 ~0.1m、TOF ~0.2m |
| 成本/重量 | 極低 ($2/5g) | 中高 ($50-500/20-100g) |
// 簡化邏輯
float sonar_alt = read_US100(); // 讀取超聲波高度
float baro_alt = read_Barometer(); // 氣壓計高度
float gps_alt = read_GPS(); // GPS 高度
float fused_alt;
if (sonar_alt < SONAR_MAX_RELIABLE_ALT) { // 如 8m
// 低空:超聲波權重高,氣壓計修正長期漂移
fused_alt = complementary_filter(sonar_alt, baro_alt, 0.8);
} else {
// 高空:超聲波不可靠,切換氣壓計+GPS
fused_alt = ekf_fuse(baro_alt, gps_alt);
}
// 輸出給控制器
set_target_altitude(fused_alt);
| 現象 | 原因 | 對策 |
|---|---|---|
| 定高模式下高度跳變 | 超聲波多路徑反射/地面材質吸聲 | 增加中值濾波、設置可靠高度上限、換激光雷達 (TFmini/LidarLite) |
| 著陸前瞬間衝高/衝低 | 地面效應導致氣流干擾超聲波 | 著陸最後 0.5m 禁用超聲波,純氣壓計/光流 |
| 數據一直為 0/最大值 | 接線錯誤 (TX/RX 反接)、波特率不匹配、模組損壞 | 示波器抓波形、邏輯分析儀抓串口協議 |
結論:US100 是「低空定高神器」,不是「避障雷達」。飛控設計時,超聲波管高度,激光/視覺管避障,各司其職才穩健。