Как работает GPS/GNSS и почему лучше не включать все созвездия

Все статьи

Руководство по оптимизации ГНСС для полётов в Европейской части России


Введение

При настройке полётного контроллера многие пилоты совершают одну и ту же ошибку: включают все доступные спутниковые системы («вдруг пригодится»). Звучит логично, но на практике это ухудшает точность позиционирования, увеличивает время старта и расходует ресурсы приёмника.

В этой статье вы узнаете:

  • ✅ Как на самом деле работает спутниковая навигация
  • ✅ Какие созвездия бесполезны в Европейской части РФ
  • Почему вредно держать включёнными невидимые системы
  • ✅ Как правильно настроить GNSS_MODE для ArduPilot

Как работает ГНСС: от спутника до позиции

Принцип трилатерации

Каждый спутник передаёт сигнал с точным временем. Ваш приёмник измеряет задержку:

🛰️ Спутник: «Отправил сигнал в 12:00:00.000000»
📡 Приёмник: «Получил в 12:00:00.067891»
⏱️ Задержка: 0.067891 секунды

📏 Расстояние = 0.067891 × 299 792 458 м/с ≈ 20 350 км

Геометрия определения позиции:

1 спутник:  Вы где-то на сфере радиусом 20 350 км
2 спутника: Вы на окружности (пересечение двух сфер)
3 спутника: Две возможные точки (одна в космосе)
4 спутника: Точная 3D-позиция + коррекция часов

Минимум для 3D-фикса: 4 спутника
Надёжное позиционирование: 8-12 спутников

Что передаёт спутник

Каждое навигационное сообщение содержит:

ДанныеОписаниеСрок годности
АльманахГрубые орбиты всех спутников системыНесколько месяцев
ЭфемеридыТочная орбита ЭТОГО спутника2-4 часа
ВремяПоказания атомных часовПостоянно
СтатусИсправность, метки целостностиПостоянно

Холодный старт (без данных в памяти):

0-30 сек   → Поиск сигналов, захват частот
30-60 сек  → Приём альманаха (понимание, где искать)
1-3 мин    → Приём эфемерид (точные координаты)
3-5 мин    → 3D-фикс

🔥 Горячий старт (эфемериды в памяти): 10-30 сек

Глобальные и региональные созвездия

Глобальные системы (покрывают всю Землю)

СистемаСтранаСпутниковЧастотыСтатус в РФ
GPS🇺 США31+L1, L2, L5✅ Отлично работает
GLONASS🇷 Россия24+L1, L2, L3✅ Отлично, приоритет
Galileo🇪 ЕС28+E1, E5a, E5b✅ Хорошо работает
BeiDou-3🇨 Китай35+B1, B2, B3⚠️ Работает, но хуже на севере

Региональные системы (локальное покрытие)

СистемаРегионСпутниковВидна в Европейской РФ?
QZSS🇯🇵 Япония, Азия4НЕТ
IRNSS/NavIC🇮🇳 Индия +1500 км7-8НЕТ

Почему НЕЛЬЗЯ оставлять все созвездия включёнными

Проблема 1: Бесполезный расход ресурсов приёмника

Как работает поиск спутников:

Приёмник имеет ограниченное количество каналов:
* u-blox F9P: 72 канала
* u-blox M9N: 72 канала  
* Unicore UM982: 1408 каналов (но ресурсы всё равно ограничены)

Каждый активный канал:
1. Сканирует определённую частоту
2. Пытается захватить сигнал
3. Декодирует данные
4. Поддерживает отслеживание

Если включить невидимые системы:
❌ Каналы тратятся на поиск спутников, которых НЕТ
❌ Меньше каналов остаётся для реальных спутников
❌ Снижается общая производительность

Пример:

u-blox M9N (72 канала):

❌ Включено всё (GPS+GLONASS+Galileo+BeiDou+QZSS+IRNSS):
   • 12 каналов → поиск QZSS (0 спутников видно)
   • 12 каналов → поиск IRNSS (0 спутников видно)
   • 48 каналов → реальные системы
   → Потеряно 33% каналов впустую!

✅ Включено только полезное (GPS+GLONASS+Galileo):
   • 72 канала → все на реальных спутниках
   → Максимальная производительность

Проблема 2: Увеличение времени холодного старта

Процесс загрузки альманаха:

Каждая система передаёт свой альманах:
* GPS: ~12.5 минут на полный альманах
* GLONASS: ~7.5 минут
* Galileo: ~10 минут
* BeiDou: ~12 минут
* QZSS: ~12 минут (бесполезно!)
* IRNSS: ~10 минут (бесполезно!)

Если включены все системы:
❌ Приёмник пытается загрузить альманахи ВСЕХ систем
❌ Тратит время на невидимые созвездия
❌ Холодный старт: 5-10 минут вместо 2-3

Если включены только видимые:
✅ Быстрая загрузка полезных альманахов
✅ Холодный старт: 2-3 минуты

Проблема 3: Ложные срабатывания и нестабильность

«Призрачные» спутники:

Приёмник может «видеть» невидимые спутники в двух случаях:

1. Многолучевость (отражения):
   🛰️ Реальный спутник
      \
       \  Прямой сигнал
        \
   ───────●───────  Антенна
         ↙️ ↘️
    Отражённые сигналы

   Отражения могут быть интерпретированы как
   спутники других систем!

2. Помехи/интерференция:
   • Сигналы других частот
   • Электромагнитные наводки
   • Спуфинг

Результат:
❌ Приёмник пытается отслеживать «призраков»
❌ Позиция становится нестабильной
❌ HDOP растёт, C/No падает

Проблема 4: Ухудшение геометрии (HDOP)

Парадокс избыточности:

Интуитивно кажется: «Больше спутников = лучше»

НО: Если приёмник включает в расчёт слабые/сомнительные
спутники (включая «призраков» от невидимых систем),
геометрия УХУДШАЕТСЯ!

Пример для Москвы:

❌ Включено всё:
   • GPS: 8 спутников
   • GLONASS: 7 спутников
   • Galileo: 6 спутников
   • BeiDou: 3 спутника (слабых, низко)
   • QZSS: 0 (но приёмник пытается найти!)
   • IRNSS: 0 (но приёмник пытается найти!)

   Итого: 24 «спутника», но HDOP = 2.1
   (слабые спутники BeiDou + шум от QZSS/IRNSS)

✅ Включено только полезное:
   • GPS: 8 спутников
   • GLONASS: 7 спутников
   • Galileo: 6 спутников

   Итого: 21 спутник, HDOP = 1.2
   (все спутники качественные, геометрия отличная)

Проблема 5: Повышенное энергопотребление

Каждый активный канал = потребление энергии:

u-blox M9N:
* Режим поиска: ~50 мА на 12 каналов
* Режим отслеживания: ~30 мА на 12 каналов

Если включены QZSS+IRNSS (невидимы):
❌ Постоянный поиск: +50 мА
❌ За 1 час полёта: +50 мА·ч = 10-15% батареи
❌ За 10 часов работы: +500 мА·ч

Для дрона с батареей 3000 мА·ч:
→ Потеря 10-15% времени полёта впустую!

Проблема 6: Конфликты частот и интермодуляция

Когда системы мешают друг другу:

Современные приёмники используют общие RF-цепи
для нескольких частот:

L1 (1575.42 МГц): GPS L1, GLONASS L1, Galileo E1, BeiDou B1
L2 (1227.60 МГц): GPS L2, GLONASS L2, BeiDou B2
L5 (1176.45 МГц): GPS L5, Galileo E5a, BeiDou B2a, IRNSS

Если включены все системы:
❌ Увеличивается нагрузка на RF-цепи
❌ Возможна интермодуляция (взаимные помехи)
❌ C/No падает на 2-5 дБ

Особенно критично для:
* Дешёвых приёмников (M8N, NEO-6M)
* Приёмников без качественных SAW-фильтров
* Систем с плохим экранированием

Проблема 7: Сложность отладки и диагностики

Когда что-то пошло не так:

Сценарий: Дрон теряет позицию в полёте

❌ Включено 6 систем:
   • Сложно понять, какая система «глючит»
   • Логи занимают больше места
   • Анализ требует больше времени
   • «Может GPS, может GLONASS, а может QZSS?»

✅ Включено 3 системы:
   • Чёткая картина: какая система дала сбой
   • Меньше данных для анализа
   • Быстрая диагностика
   • «GLONASS потерял 3 спутника, GPS и Galileo в норме»

Какие созвездия отключить в Европейской РФ

Категорически бесполезны

QZSS (Япония)

📍 Покрытие: Япония, Восточная Азия, Океания
🗺️ Для Москвы (55.7° с.ш.):
   • Угол места: <0° (ниже горизонта)
   • Физически не виден

❌ Отключайте обязательно!

IRNSS / NavIC (Индия)

📍 Покрытие: Индия + 1500 км вокруг
🗺️ Для Москвы:
   • Расстояние до зоны: >4000 км
   • Спутники не видны принципиально

❌ Отключайте обязательно!

Ограниченно полезны

BeiDou-3 (Китай)

✅ Работает:
   • Глобальные спутники (MEO) видны в Европе
   • В Москве: 4-6 спутников
   • C/No: 41-44 дБ·Гц (ниже, чем у GPS/GLONASS)

⚠️ Нюансы:
   • Региональные спутники (IGSO/GEO) ориентированы на Азию
   • На широтах >50° геометрия хуже
   • Можно оставить для избыточности, но не рассчитывать

🟡 Решение:
   • Если проблем с фиксом нет → оставьте включённым
   • Если HDOP высокий → попробуйте отключить для теста

Оптимальный набор для Европейской РФ

🟢 Обязательно:
  • GPS (США) — стабильно, много спутников
  • GLONASS (Россия) — лучшая геометрия на высоких широтах
  • Galileo (ЕС) — отличное дополнение

🟡 Опционально:
  • BeiDou (Китай) — для избыточности

🔴 Отключить:
  • QZSS (Япония) — не виден
  • IRNSS/NavIC (Индия) — не виден

Настройка ArduPilot

🔧 Параметр GNSS_MODE (битовая маска)

Бит   Система      Значение
0     GPS          1
1     SBAS         2
2     GLONASS      4
3     BeiDou       8
4     Galileo      16
5     QZSS         32
6     IRNSS        64

Рекомендуемые значения:

# ✅ Оптимально для Европейской РФ:
# GPS + SBAS + GLONASS + Galileo = 1+2+4+16 = 23
GNSS_MODE = 23

# 🟡 С BeiDou для избыточности:
# GPS + SBAS + GLONASS + Galileo + BeiDou = 1+2+4+8+16 = 31
GNSS_MODE = 31

# ❌ НЕ рекомендуется:
# Включить всё (63) — тратит ресурсы на невидимые QZSS/IRNSS
GNSS_MODE = 63  # ПЛОХО!

Дополнительные параметры

# Тип приёмника
GPS_TYPE = 17               # u-blox F9P/F10A
# или
GPS_TYPE = 18               # Unicore UM982 (ArduPilot 4.3+)

# Авто-конфигурация
GPS_AUTO_CONFIG = 1         # Разрешить настройку приёмника

# Минимальная элевация (отсечь многолучевость)
GPS_MIN_ELEV = 10           # Игнорировать спутники <10°

# Минимальный DOP
GPS_MIN_DOP = 2.5           # Строгий порог геометрии

# Частота обновления
GPS_RATE_MS = 200           # 5 Гц (баланс между точностью и нагрузкой)

# Защита от помех
EK3_OPTIONS, bit 0 = 1      # JammingExpected (адаптация EKF к РЭБ)
GPSGLITCH_RADIUS = 5        # Отсев «прыгающих» координат
GPSGLITCH_ACCEL = 10        # Ускорение для расчёта порога

# Failsafe
FS_GPS_ENABLE = 3           # Активировать после первой надёжной фиксы
FS_GPS_ACTION = 2           # Переход в AltHold (не посадка!)
FS_GPS_TIMEOUT = 3          # 3 секунды до срабатывания

SBAS: региональные системы дополнения

📡 Что такое SBAS

Satellite-Based Augmentation System повышает точность и целостность:

СистемаРегионСтатус в РФ
SDCM🇷 Россия/СНГ✅ Работает, приоритет
EGNOS🇪 Европа⚠️ Ограниченно (политика)
WAAS🇺🇸 Сев. Америка❌ Не виден
MSAS🇯🇵 Япония❌ Не виден

Настройка:

# SBAS включается битом 1 в GNSS_MODE
GNSS_MODE = 23  # Включает SBAS (бит 1)

# Приёмник сам выберет доступные поправки (SDCM)
# Ничего дополнительно настраивать не нужно

Что даёт SDCM:

  • Точность: 1-3 м (вместо 5-10 м без SBAS)
  • Коррекция ионосферных задержек
  • Мониторинг целостности сигнала

Практическая проверка

📱 Через u-center (u-blox приёмники)

  1. Запустите u-center
  2. Подключитесь к приёмнику
  3. Откройте: View → Satellite View

Что вы увидите для Москвы:

✅ Много зелёных (GPS) и красных (GLONASS) точек
✅ Синие (Galileo) — умеренное количество
🟡 Жёлтые (BeiDou) — несколько, ближе к краю
❌ Фиолетовые (QZSS) / оранжевые (IRNSS) — отсутствуют

Если видите QZSS/IRNSS:
→ Это «призраки» (многолучевость/помехи)
→ Отключите эти системы в настройках!

Через Mission Planner

  1. Подключите дрон
  2. Откройте: Flight Data → GPS Status

Ожидаемая картина:

PRN   System   Elev   Azim   C/No   Used
G01   GPS      67°    123°   48     ✓
G15   GPS      52°    234°   45     ✓
R05   GLONASS  58°    089°   46     ✓
R12   GLONASS  43°    301°   44     ✓
E08   Galileo  51°    067°   44     ✓
E12   Galileo  39°    234°   42     ✓
C06   BeiDou   28°    156°   39     ✓
C11   BeiDou   22°    289°   37     ✓

NumSat: 14
HDOP: 1.2
Fix: 3D

Если включены QZSS/IRNSS:

J01   QZSS     -      -      -      ✗  ← Не виден
I03   IRNSS    -      -      -      ✗  ← Не виден

→ Бесполезная нагрузка на приёмник!

Сравнение: до и после оптимизации

📈 Тест для Москвы (55.7° с.ш.)

Параметр❌ Включено всё (63)✅ Оптимизировано (23)
NumSat16 (включая «призраков»)14 (реальные)
HDOP2.11.2
Средний C/No43 дБ·Гц46 дБ·Гц
Время холодного старта6-8 мин2-3 мин
Потребление (приёмник)~70 мА~50 мА
Стабильность позиции⚠️ Колебания✅ Стабильно
Ложные срабатывания🚨 Часто✅ Редко

Чек-лист перед полётом

✅ Настройки

□ GNSS_MODE = 23 (или 31 с BeiDou)
□ QZSS отключён
□ IRNSS отключён
□ GPS_AUTO_CONFIG = 1
□ GPS_MIN_ELEV = 10
□ FS_GPS_ENABLE = 3
□ FS_GPS_ACTION = 2

✅ Проверка на земле

□ NumSat ≥ 12
□ HDOP < 1.5
□ Средний C/No > 45 дБ·Гц
□ Fix = 3D (стабилен 2+ минуты)
□ В списке нет QZSS/IRNSS
□ SBAS активен (если виден SDCM)

✅ В полёте

□ Мониторьте NumSat (не должно падать <8)
□ Следите за HDOP (не должно расти >2.0)
□ При ухудшении → готовность к AltHold
□ Не включайте RTH при потере GPS!

Итоговая таблица выбора

СозвездиеВключать в Европейской РФ?Почему
GPS✅ ОбязательноГлобальное, стабильное, много спутников
GLONASS✅ ОбязательноЛучшая геометрия на высоких широтах
Galileo✅ ОбязательноОтличное дополнение, независимость
BeiDou🟡 ОпциональноДля избыточности, но не основная
QZSS❌ НикогдаНе виден, тратит ресурсы
IRNSS❌ НикогдаНе виден, тратит ресурсы
SBAS✅ РекомендуетсяУлучшает точность (SDCM работает)

📚 Дополнительные ресурсы

  • GNSS Planning Online (Trimble): https://www.gnssplanning.com — визуализация видимости спутников
  • ArduPilot GPS docs: https://ardupilot.org/copter/docs/common-prearm-safety-checks.html
  • u-blox documentation: https://www.u-blox.com/en/docs
  • SDCM (Россия): https://sdcm.ru

💡 Главный вывод

Не включайте все созвездия подряд! Это:

❌ Тратит ресурсы приёмника на невидимые спутники
❌ Увеличивает время холодного старта
❌ Ухудшает геометрию (HDOP растёт)
❌ Повышает энергопотребление
❌ Создаёт ложные срабатывания
❌ Усложняет диагностику

Для Европейской части РФ оптимально:

GNSS_MODE = 23 (GPS + GLONASS + Galileo + SBAS)
✅ QZSS и IRNSS — отключить
✅ BeiDou — опционально для избыточности
✅ Проверяйте видимые спутники перед полётом

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