Сравнение AltHold и PosHold: Betaflight, iNav, ArduPilot и DJI Mavic

Все статьи


Сводная таблица

ПараметрBetaflight 2025.12iNavArduPilotDJI 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, lidarGPS, баро, IMU, vision sensors, LiDAR, radar
Точность AltHold±0.5-1м (зависит от условий) ±0.5-1м±0.1-0.5м (EKF3)±0.1м (с vision)
Точность PosHold1-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)Интуитивное (проприетарное)
FailsafeGPS Rescue приоритет RTH с landing EKF3 fallback + RTH + RTLAuto 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

🔗 Источники

  1. Betaflight Position Hold 2025.12
  2. Oscar Liang: Betaflight Position Hold Setup
  3. ArduPilot EKF3 Documentation
  4. iNav Navigation Documentation
  5. iNav Position Estimator

Проверено: параметры CLI актуальны для версий на март 2026.


Прокрутить вверх