5. Логика работы системы

5.1. Общий обзор

Система UWB-посадки обеспечивает определение положения дрона относительно площадки и передачу этих данных автопилоту через сообщение MAVLink 2 LANDING_TARGET.

Основные компоненты системы:

  • UWB-реперы (UU-AE70-I5-P1) — формируют координатную систему площадки (NED) и обеспечивают измерения расстояний.
  • UWB-ридеры (UU-TG8-2V-P1) — установлены на дроне, принимают сигналы от реперов, вычисляют дистанции и передают данные в Raspberry Pi LE.
  • Raspberry Pi LE (Location Engine) — вычисляет координаты дрона, преобразует их из NED в FRD и передаёт автопилоту сообщения LANDING_TARGET.
  • Автопилот (CUAV X7+ Pro) — принимает LANDING_TARGET и использует данные для режима Precision Landing.

5.2. Последовательность инициализации

Запуск Raspberry Pi LE

  • Запускается служба uwb_landle.service.
  • Загружается конфигурация из /home/uwblandle/configs/config.json.
  • Открываются UART-порты для связи с ридерами и автопилотом.

Инициализация ридеров

  • Каждый ридер после включения отправляет в LE сообщение UWB_READER_CONFIG, содержащее его основные настройки и параметры работы.
  • LE начинает обмен синхронизационными сообщениями TIMESYNC с каждым ридером для выравнивания временной базы.
  • После этого устанавливается регулярный обмен сообщениями HEARTBEAT, предназначенными для контроля состояния связи и обнаружения потери соединения.

Инициализация сайта

  • Когда ридеры начинают уверенно принимать измерения от реперов текущего сайта, они отправляют в LE сообщения UWB_SITE_STATUS со статусом активного сайта.
  • В этих сообщениях передаётся основная информация о площадке: идентификатор сайта, координаты в WGS-84 и в СК NED, а также текущее состояние (активен / неактивен / ошибка).
  • LE регистрирует появление активного сайта и сохраняет его параметры для дальнейших расчётов.
  • Обмен HEARTBEAT и TIMESYNC продолжается для обеспечения стабильной связи и корректного времени.

5.3. UWB-позиционирование на сайте

  • После инициализации ридеры измеряют время пролёта (ToF) сигналов до реперов и вычисляют дистанции.
  • Каждый ридер формирует сообщения UWB_RANGE, содержащие идентификаторы реперов, измеренные дистанции, RSSI и временные метки, и передаёт их в LE.
  • Raspberry Pi LE получает потоки UWB_RANGE от всех ридеров, объединяет их и вычисляет координаты дрона в СК NED.

5.4. Синхронизация и интеграция с автопилотом

  • Синхронизация времени.
    LE выполняет обмен сообщениями TIMESYNC с автопилотом для согласования временной базы и минимизации задержек.
    Параллельно продолжается обмен HEARTBEAT с ридерами для контроля состояния каналов связи.

  • Приём данных ориентации.
    LE принимает от автопилота сообщения ATTITUDE_QUATERNION_COV и HIGHRES_IMU.
    Эти данные объединяются с результатами UWB-позиционирования для расчёта положения дрона относительно площадки.

  • Формирование результатов.
    На основе объединённых данных формируется сообщение LANDING_TARGET с координатами в СК FRD, которое передаётся автопилоту по MAVLink для использования в режиме Precision Landing.


5.5. Основной цикл работы LE (псевдокод)

while service_active:
    receive_HEARTBEAT()            # мониторинг ридеров
    receive_UWB_RANGE()            # измерения от ридеров
    compute_position_NED()         # расчёт координат по UWB
    read_ATTITUDE_QUATERNION()     # ориентация дрона
    transform_to_FRD()             # преобразование координат NED → FRD
    send_LANDING_TARGET()          # передача автопилоту
    monitor_links_and_time()       # контроль TIMESYNC и состояния каналов

5.6. Fail-safe и контроль ошибок

СценарийРеакция LEДействие автопилота
Потеря связи с ридером > 1 сридер помечается как неактивныйработа по оставшимся ридерам
Потеря всех ридеровприостановка LANDING_TARGETпереход в Loiter или Resume GPS
Потеря TIMESYNCпредупреждение, переход на внутренние таймерывозможный дрейф времени
Ошибка HEARTBEATпредупреждение в журнале, флаг «degraded»без действий
Нарушение формата сообщенийзапись ошибки, сброс UART-портабез действий

5.7. Временные характеристики

ПараметрЗначениеКомментарий
Частота измерений UWB8 Гцтиповое значение
Частота LANDING_TARGET20 Гц
Средняя задержка LE → FCU≤ 5 мспри нормальной нагрузке
Тайм-аут данных UWB1 спосле чего передача останавливается
Интервал TIMESYNC500 мсдвусторонняя синхронизация LE ↔ автопилот
Интервал HEARTBEAT1 сдиагностика каналов и отклик ридеров

5.8. Диагностика и состояния LE

  • HEARTBEAT — каждую секунду (1 Гц).
  • Логи: /home/uwblandle/logs/uwb_landing_system.<дата>.log.
  • Ключевые поля: число активных ридеров, количество видимых реперов, качество решения, время цикла, состояние синхронизации.

Раздел 5 описывает инициализацию и рабочие процессы системы, механизмы синхронизации, интеграцию с автопилотом и обработку ошибок.

  • No labels