9. Настройка взаимодействия с автопилотом

9.1. Общая архитектура взаимодействия

  • Подключение LE к автопилоту CUAV X7+ Pro осуществляется через интерфейс UART4 Raspberry Pi 4 B, соединённый с портом TELEM3 автопилота.
  • Используется протокол MAVLink 2 (v2 only).
  • Обмен двусторонний:
    • от автопилота к LE: ATTITUDE_QUATERNION, HIGHRES_IMU, TIMESYNC;
    • от LE к автопилоту: LANDING_TARGET и команды MAV_CMD_SET_MESSAGE_INTERVAL для установки частоты передачи.
  • LE использует полученные данные для расчёта ориентации и передачи в автопилот координат цели посадки.

9.2. Подключение и электрические параметры

КомпонентИнтерфейсСоединениеПримечание
Raspberry Pi LEUART4 (/dev/ttyAMA4)TELEM3 (CUAV X7+)Уровни 3.3 В
Скорость обмена—115200 baudБез аппаратного управления потоком
Формат кадра—8 N 1—

9.3. Настройка параметров автопилота

Параметры автопилота задаются через Mission Planner → Config → Full Parameter List:

ПараметрЗначениеНазначение
SERIAL3_PROTOCOL1MAVLink (авто негоциация версии)
SERIAL3_BAUD115115200 baud
PLND_ENABLED1Включить прецизионную посадку
PLND_TYPE1Использовать внешний датчик (MAVLink)
PLND_EST_TYPE0Использовать данные внешнего устройства
PLND_LAG0Без задержки
PLND_XY_DIST_MAX0Максимальное допустимое смещение = 0 м

9.4. Конфигурация на стороне LE

Фрагмент секции "uav" файла /home/uwblandle/config/config.json:

"uav": {
  "transport": {
    "type": "serial",
    "serial": {
      "device": "/dev/ttyAMA4",
      "baudrate": 115200,
      "flow_control": false,
      "receive_timeout_ms": 1000
    }
  },
  "mavlink": {
    "expected_system_id": 1,
    "expected_component_id": 1
  },
  "message_filter": {
    "enabled": true,
    "allowed_message_ids": [31, 32, 105, 111]
  },
  "heartbeat": {
    "interval_ms": 1000,
    "enabled": true
  },
  "message_request": {
    "interval_ms": 1000,
    "enabled": true,
    "requested_messages": [
      { "message_id": 31,  "rate_hz": 20 },
      { "message_id": 105, "rate_hz": 20 }
    ]
  }
}
  • "message_request" — формирует команды MAV_CMD_SET_MESSAGE_INTERVAL для запроса требуемого темпа сообщений.
  • "message_filter" — фильтрует входящие MAVLink-пакеты, оставляя только необходимые.
  • "expected_system_id" и "expected_component_id" — контроль адресов источника данных.

9.5. Проверка связи с автопилотом

  1. Убедиться, что сервис запущен:
    systemctl status uwblandle.service
    
  2. В Mission Planner на вкладке Messages должны появляться строки:
    LANDING_TARGET received
    
  3. В логе /home/uwblandle/logs/uwb_landing_system.log должны присутствовать строки:
    MAVLink: Connected to FCU
    MAVLink: Requested message rate 31 (ATTITUDE_QUATERNION) = 20 Hz
    MAVLink: Requested message rate 105 (HIGHRES_IMU) = 20 Hz
    MAVLink: Sending LANDING_TARGET ...
    

9.6. Проверка работы прецизионной посадки

  1. В Mission Planner → Flight Data → Messages появится сообщение:
    PrecLand: Active
    
  2. При включении режима LAND автопилот начнёт использовать данные LANDING_TARGET от LE для коррекции траектории посадки.
  3. Для контроля можно добавить параметры plndx, plndy в панель Quick View.

9.7. Отладка и диагностика

СимптомВозможная причинаПроверка
Нет LANDING_TARGET в Mission PlannerLE не запущен или неверный портjournalctl -u uwblandle.service -f
MAVLink: connection timeoutUART неактивен или ошибка скоростиПроверить SERIAL3_BAUD и кабель
Низкая частота обновленияFCU не принял команды SET_MESSAGE_INTERVALПроверить лог LE
PrecLand: disabledPLND_ENABLED=0 или PLND_TYPE ≠ 1Проверить параметры в Mission Planner
  • No labels