Цель: Разрешить арминг без фикса, отключить фейлсейв при потере, но позволить EKF использовать GPS для PosHold/Loiter, когда сигнал есть.
Критические параметры
| Параметр | Значение | Описание |
|---|---|---|
ARMING_CHECK | Бит 10 = 0 | Снимает галочку «GPS» в проверках перед армом. Позволяет вооружаться без 3D Fix. |
FS_GPS_ENABLE | 0 | Отключает фейлсейв при потере GPS (не уйдет в RTL/Land). |
FENCE_ENABLE | 0 | Отключает гео-забор (требует GPS). |
EKF3_ENABLE | 1 | Обязателен для корректного слияния данных (GPS + баро + акселе). |
EK3_SRC_OPTIONS | 1 (или по умолчанию) | Разрешает EKF использовать GPS как источник позиции, когда он доступен. |
GPS_MIN_DOP | 2.0–2.5 | Порог качества. Не занижайте сильно, иначе дрон использует «шумный» GPS и улетит. |
AHRS_EKF_TYPE | 3 | Использование EKF3 (стандарт для 4.x). |
⚠️ Важно: Не отключайте проверки качества внутри EKF (
EK3_GPS_CHECK). Это приведет к использованию spoofed/шумных данных и неконтролируему полету. Отключайте только зависимость от GPS для арма и фейлсейва.
Пошаговая конфигурация
- Разрешить арм без GPS:
- В Mission Planner:
Config/Tuning→Standard Params→Arming Checks→ Снять галочку GPS. - Или вручную:
ARMING_CHECK=(Текущее значение) - 1024(если бит 10 был установлен).
- В Mission Planner:
- Отключить реакцию на потерю:
- Установите
FS_GPS_ENABLE = 0. Дрон останется в текущем режиме (например, Stabilize/AltHold) при потере спутников.
- Установите
- Отключить гео-забор:
FENCE_ENABLE = 0. Иначе дрон не заармится или сработает фейлсейв забора при дрейфе координат.
- Проверка EKF:
- Убедитесь, что
EKF3_ENABLE = 1. EKF автоматически переключится на GPS, когда появится валидный фикс (2D/3D), и позволит перейти в Loiter/PosHold.
- Убедитесь, что
Логика пилотирования
| Ситуация | Режим полета | Действие пилота |
|---|---|---|
| Нет GPS | Stabilize / AltHold | Полёт вручную. Дрон удерживает высоту (баро), но дрейфует по горизонту. |
| GPS появился | Переключить на Loiter / PosHold | EKF подхватит координаты. Дрон зависнет в точке. |
| GPS пропал снова | Остаться в Loiter | Дрон перейдет в режим «аттитюд» (дрейф), но не уйдет в RTL (так как FS_GPS_ENABLE=0). |
Риски и ограничения
- Дрейф позиции: Без GPS дрон не знает своих координат. При переключении в Loiter он может резко сдвинуться в точку, которую «думает», что занимает (ошибка EKF) [[4]].
- Совет: Перед включением Loiter убедитесь, что
EKF Status→Horiz Pos Errorминимален.
- Совет: Перед включением Loiter убедитесь, что
- Спуфинг: Если GPS появится с ложными координатами, дрон улетит.
- Защита: Не занижайте
GPS_MIN_DOP. ИспользуйтеEKF3с проверкой инноваций (по умолчанию включено).
- Защита: Не занижайте
- Возврат домой (RTL): Не работает без домашнего точки (Home).
- Решение: Точка Home обновится только при получении 3D Fix. Если летали без GPS, RTL может работать некорректно.
Документация
- ArduPilot: Arming Checks
- ArduPilot: GPS Failsafe
- ArduPilot: Fence Configuration
- ArduPilot: EKF3 Setup
- ArduPilot: GPS Parameters
⚡ Итог:
ARMING_CHECK(без GPS) +FS_GPS_ENABLE=0+FENCE_ENABLE=0. EKF сам решит, когда данные достаточно хороши для PosHold.
