Сводная таблица
| Параметр | Betaflight 2025.12 | iNav | ArduPilot | DJI Mavic |
|---|---|---|---|---|
| AltHold алгоритм | PID-контроллер с deadband вокруг hover_throttle | Модельный estimator + PID (ALT & VEL) | EKF3 (расширенный фильтр Калмана) | Мультисенсорная fusion (баро + GPS + vision + LiDAR) |
| PosHold алгоритм | PIDA-контроллер (P, I, D, Acceleration) для каждой оси | Complementary filter + PID (POS, POSR) | EKF3 с multi-sensor fusion | Проприетарный EKF + computer vision |
| EKF | Нет (простая sensor fusion) | Частично (complementary filter) | EKF3 (полноценный, до 5 IMU) | Проприетарный (закрытый) |
| Основные сенсоры | GPS (обязательно), баро (опционально), магнитометр (рекомендуется) | GPS + баро (обязательно для мультироторов), компас | GPS, баро, IMU (2+), компас, optical flow, lidar | GPS, баро, IMU, vision sensors, LiDAR, radar |
| Точность AltHold | ±0.5-1м (зависит от условий) | ±0.5-1м | ±0.1-0.5м (EKF3) | ±0.1м (с vision) |
| Точность PosHold | 1-2м радиус | 1-3м радиус | 0.5-1.5м (EKF3) | 0.3-0.5м |
| Работа без компаса | ✅ Да (требуется straight flight 50-100м) | ❌ Нет (compass обязателен для POSHOLD) | ⚠️ Ограниченно (GPS yaw) | ✅ Да (vision + GPS) |
| Hover throttle | Настраиваемый (ap_hover_throttle) | Авто или mid-throttle | Авто (EKF3 рассчитывает) | Авто (проприетарный) |
| Управление стиками | Deadband (pos_hold_deadband, default 5%) | GPS_ATTI или GPS_CRUISE режимы | Кастомизируемое (Loiter, PosHold) | Интуитивное (проприетарное) |
| Failsafe | GPS Rescue приоритет | RTH с landing | EKF3 fallback + RTH + RTL | Auto RTH + obstacle avoidance |
| Open Source | ✅ Полностью | ✅ Полностью | ✅ Полностью | ❌ Закрытая система |
Детали реализации
Betaflight 2025.12
AltHold:
- Использует PID-контроллер с deadband вокруг hover_throttle
- GPS или барометр как источник высоты
- Точность: ±0.5-1м в хороших условиях
- CLI параметры:
hover_throttle,alt_hold_adjust_rate(default 5м/с),alt_hold_deadband(default 20%)
PosHold:
- PIDA-контроллер (P, I, D, Acceleration) для каждой оси (North-South, East-West)
- Без EKF — простая sensor fusion
- Требует GPS + компас (рекомендуется)
- Без компаса: требуется straight flight 50-100м для инициализации
- Точность: 1-2м радиус
Особенности:
- Впервые добавлен в версии 2025.12 (декабрь 2025)
- Не требует EKF — проще, но менее точно
- Можно использовать без барометра (только GPS)
iNav
AltHold:
- Inertial position estimator (complementary filter)
- Использует акселерометр + GPS + баро
- ALT PID: переводит ошибку высоты в desired climb rate
- VEL PID: переводит Z-acceleration в throttle
- Автоматический выбор лучшего источника высоты
PosHold:
- Complementary filter (не полноценный EKF)
- POS PID: position error → desired velocity (P-term only)
- POSR PID: velocity error → desired acceleration
- Требует GPS + компас + баро (для мультироторов)
- Два режима: GPS_ATTI (стик управляет attitude) и GPS_CRUISE (стик управляет velocity)
Особенности:
- Проще ArduPilot, но точнее Betaflight
- Хорош для fixed-wing и long-range
- Waypoint missions из коробки
ArduPilot (EKF3)
AltHold & PosHold:
- EKF3 (Extended Kalman Filter) — полноценный multi-sensor fusion
- До 5 параллельных AHRS (DCM + EKF2x2 + EKF3x2)
- Источники: GPS, баро, IMU (2+), компас, optical flow, lidar, wheel encoder, visual odometry
- AHRS_EKF_TYPE=3 (EKF3 по умолчанию)
- EK3_IMU_MASK: выбор IMU для каждого EKF core
- EK3_PRIMARY: выбор primary lane
EKF3 преимущества:
- Fusion всех сенсоров в реальном времени
- Авто-переключение между GPS/non-GPS
- Sensor affinity (использование backup сенсоров)
- Точность: 0.1-0.5м по высоте, 0.5-1.5м по позиции
- Поддержка beacon, wheel encoder, visual odometry
Параметры:
- EK3_ALT_M_NSE: вес баро vs акселерометр (default 1.0)
- EK3_GPS_TYPE: использование GPS (0-3)
- EK3_YAW_M_NSE: вес компас vs GPS heading (default 0.5)
Особенности:
- Самый мощный и точный
- Сложная настройка
- Требует больше ресурсов (минимум 1MB flash)
- EKF2 устарел, рекомендуется EKF3
DJI Mavic
AltHold & PosHold:
- Проприетарный EKF + computer vision
- Мультисенсорная fusion: GPS, баро, IMU, downward/upward vision sensors, LiDAR, radar
- Terrain following (terrain mapping в реальном времени)
- Obstacle avoidance (APAS)
- Точность: ±0.1м по высоте (с vision), 0.3-0.5м по позиции
Особенности:
- Закрытая система (алгоритмы неизвестны)
- Лучшая точность «из коробки»
- Не требует настройки
- Vision + LiDAR для indoor и GPS-denied environments
- Auto RTH с obstacle avoidance
EKF в ArduPilot
EKF3 архитектура:
- Multi-core (до 2 параллельных EKF на разных IMU)
- Sensor fusion: GPS + баро + компас + IMU + optional sensors
- Lane switching (авто-выбор лучшего core)
- GPS/non-GPS transitions
Рекомендации
Betaflight:
- Для FPV racing/freestyle без расчёта на GPS
- PosHold только для emergency (не для регулярного использования)
- Требуется GPS с 8+ спутниками
iNav:
- Для fixed-wing и long-range cruising
- Проще ArduPilot и точнее Betaflight
- Хорош для картографии и патрулирования
ArduPilot:
- Для профессиональных задач (картография, инспекция, доставка)
- Полная автономность (waypoints, RTH, failsafe)
- Требует времени на настройку EKF3
DJI Mavic:
- Для коммерческих задач (съемка, инспекция)
- Лучшая точность без настройки
- Закрытая система, зависимость от DJI
🔗 Источники
- Betaflight Position Hold 2025.12
- Oscar Liang: Betaflight Position Hold Setup
- ArduPilot EKF3 Documentation
- iNav Navigation Documentation
- iNav Position Estimator
Проверено: параметры CLI актуальны для версий на март 2026.
