Настройка ArduPilot: полёт без GPS

Все статьи

Цель: Разрешить арминг без фикса, отключить фейлсейв при потере, но позволить EKF использовать GPS для PosHold/Loiter, когда сигнал есть.

Критические параметры

ПараметрЗначениеОписание
ARMING_CHECKБит 10 = 0Снимает галочку «GPS» в проверках перед армом. Позволяет вооружаться без 3D Fix.
FS_GPS_ENABLE0Отключает фейлсейв при потере GPS (не уйдет в RTL/Land).
FENCE_ENABLE0Отключает гео-забор (требует GPS).
EKF3_ENABLE1Обязателен для корректного слияния данных (GPS + баро + акселе).
EK3_SRC_OPTIONS1 (или по умолчанию)Разрешает EKF использовать GPS как источник позиции, когда он доступен.
GPS_MIN_DOP2.0–2.5Порог качества. Не занижайте сильно, иначе дрон использует «шумный» GPS и улетит.
AHRS_EKF_TYPE3Использование EKF3 (стандарт для 4.x).

⚠️ Важно: Не отключайте проверки качества внутри EKF (EK3_GPS_CHECK). Это приведет к использованию spoofed/шумных данных и неконтролируему полету. Отключайте только зависимость от GPS для арма и фейлсейва.

Пошаговая конфигурация

  1. Разрешить арм без GPS:
    • В Mission Planner: Config/TuningStandard ParamsArming Checks → Снять галочку GPS.
    • Или вручную: ARMING_CHECK = (Текущее значение) - 1024 (если бит 10 был установлен).
  2. Отключить реакцию на потерю:
    • Установите FS_GPS_ENABLE = 0. Дрон останется в текущем режиме (например, Stabilize/AltHold) при потере спутников.
  3. Отключить гео-забор:
    • FENCE_ENABLE = 0. Иначе дрон не заармится или сработает фейлсейв забора при дрейфе координат.
  4. Проверка EKF:
    • Убедитесь, что EKF3_ENABLE = 1. EKF автоматически переключится на GPS, когда появится валидный фикс (2D/3D), и позволит перейти в Loiter/PosHold.

Логика пилотирования

СитуацияРежим полетаДействие пилота
Нет GPSStabilize / AltHoldПолёт вручную. Дрон удерживает высоту (баро), но дрейфует по горизонту.
GPS появилсяПереключить на Loiter / PosHoldEKF подхватит координаты. Дрон зависнет в точке.
GPS пропал сноваОстаться в LoiterДрон перейдет в режим «аттитюд» (дрейф), но не уйдет в RTL (так как FS_GPS_ENABLE=0).

Риски и ограничения

  1. Дрейф позиции: Без GPS дрон не знает своих координат. При переключении в Loiter он может резко сдвинуться в точку, которую «думает», что занимает (ошибка EKF) [[4]].
    • Совет: Перед включением Loiter убедитесь, что EKF StatusHoriz Pos Error минимален.
  2. Спуфинг: Если GPS появится с ложными координатами, дрон улетит.
    • Защита: Не занижайте GPS_MIN_DOP. Используйте EKF3 с проверкой инноваций (по умолчанию включено).
  3. Возврат домой (RTL): Не работает без домашнего точки (Home).
    • Решение: Точка Home обновится только при получении 3D Fix. Если летали без GPS, RTL может работать некорректно.

Документация

  1. ArduPilot: Arming Checks
  2. ArduPilot: GPS Failsafe
  3. ArduPilot: Fence Configuration
  4. ArduPilot: EKF3 Setup
  5. ArduPilot: GPS Parameters

Итог: ARMING_CHECK (без GPS) + FS_GPS_ENABLE=0 + FENCE_ENABLE=0. EKF сам решит, когда данные достаточно хороши для PosHold.

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