Перейти к содержанию

Сухая проверка origin-sequence

Полная процедура SET_GPS_GLOBAL_ORIGIN → CMD 43003 без arm и без полёта. Проводится через Mission Planner. Цель — убедиться что прошивка реагирует правильно перед выездом в поле.

Reboot после теста

Origin set-once. После dry-run нужно перезагрузить полётник перед реальным полётом (или перед следующим dry-run). Reboot из Mission Planner: ConfigFull Parameter List → правый клик → Reboot Pixhawk.

Чем будем отправлять CMD 43003

CMD 43003 — кастомная команда, в стандартном Mission Planner отдельной кнопки для неё нет. Используем то ПО, через которое будем посылать CMD 43003 в реальном полёте — обычно это та же ground software, что и для миссии.

Если такого ПО на стенде нет, варианты:

  • QGroundControl → MAVLink Inspector (QAnalyze ToolsMAVLink Inspector) — позволяет отправлять произвольные COMMAND_LONG по номеру.
  • Mission Planner → Flight Data → Actions tab → Do Action — выбрать COMMAND_LONG, ввести command number 43003, заполнить параметры.
  • Внутреннее ПО оператора коррекций — рекомендуется, потому что именно оно работает в полёте.

Что проверяется

  1. SET_GPS_GLOBAL_ORIGIN принят — origin установлен, validOrigin=true.
  2. CMD 43003 (first call) проходитsetLatLng → snap path.
  3. EKF переходит в POS_HORIZ_ABS — флаг 16 поднимается.
  4. CMD 43003 (повторная) проходит soft-path — иконка борта плавно подтягивается, без скачка.
  5. Попытка повторного SET_GPS_GLOBAL_ORIGIN отвергается — STATUSTEXT origin already set.

Шаги

Шаг 0. Прогрев

  • Подключить полётник к USB.
  • Подождать 30 секунд (стабилизация IMU и компасов).
  • Сделать read-only диагностику — убедиться что baseline корректный.
  • Открыть Messages (Ctrl+FMessages) и Status tab — будем смотреть сообщения и EKF status во время теста.

Шаг 1. Фиксируем начальное состояние

В Status tab проверить ekfflags:

до теста: ekfflags = 0x0001 (только ATTITUDE)

Если уже стоит POS_HORIZ_ABS (бит 16) — origin уже был установлен. Перезагрузить полётник и начать заново.

Шаг 2. SET_GPS_GLOBAL_ORIGIN

Вариант A — через карту Mission Planner

  1. Перейти на Flight Data.
  2. На карте выбрать примерную точку старта (или другую — для bench не критично).
  3. Правый клик на этой точке → Set EKF Origin Here.
  4. Mission Planner попросит подтвердить и пришлёт команду.

Вариант B — через Actions tab

  1. Flight DataActions tab.
  2. В разделе Set Home / Origin ввести координаты: latitude, longitude, altitude (MSL в метрах).
  3. Нажать Set Origin.

Что наблюдать

Messages tab — должно прийти подтверждение:

INFO: EKF3 origin set to lat=X.XXXXX lng=Y.YYYYY alt=Z.ZZZ

(Точное сообщение может отличаться по версии MP — главное чтобы пришло INFO-уровня без ошибок.)

Status tab — через 1–2 секунды:

ekfflags = 0x0009 (ATTITUDE + POS_HORIZ_REL)
                          ^^^^^^^^^^^^^^^ появился новый бит

Если не работает

  • Проверить что в Messages нет EKF3: origin already set (значит он уже был установлен — нужен reboot).
  • Проверить связь с бортом (HEARTBEAT идёт).
  • Проверить корректность координат (не нули).

Шаг 3. Первая CMD 43003

Используя выбранное ПО, отправить CMD 43003 с теми же координатами, что и origin:

command = 43003
param5 (x) = latitude × 1e7   (int32)
param6 (y) = longitude × 1e7  (int32)
param7 (z) = altitude (метры)
target_system = 1
target_component = 1

Что наблюдать

Messages tab — должен прийти COMMAND_ACK:

COMMAND_ACK: 43003 RESULT_ACCEPTED

Status tab — через 1–2 секунды:

ekfflags = 0x0019 (ATTITUDE + POS_HORIZ_REL + POS_HORIZ_ABS)
                                              ^^^^^^^^^^^^^^^ появился

Карта Mission Planner — иконка борта должна появиться в точке отправленных координат.

Status tabekfposhorizvar: упасть до низкого значения (< 1.0).

Шаг 4. Повторная CMD 43003 со сдвигом (soft path)

Отправить ещё одну CMD 43003 со слегка сдвинутыми координатами:

  • Сдвиг по широте на +0.0001 (≈11 метров к северу) или по долготе на +0.0001.

Что наблюдать

  • COMMAND_ACK снова RESULT_ACCEPTED.
  • Карта Mission Planner — иконка борта плавно сместится на 10 метров. Не скачком.
  • ekfposhorizvar могла временно подняться (на момент приёма) и упасть обратно через секунду.

Если иконка скачет рывком — soft path не сработал. Возможные причины:

  • EK3_SRC1_POSXY ≠ 6 — проверь.
  • Это первая CMD 43003 (на самом деле первая, а не повторная). Проверь _has_forced_position через логи (см. logs).
  • Прошивка не Valkyrie V1.2.0 — проверь версию.

Шаг 5. Попытка повторного SET_GPS_GLOBAL_ORIGIN

Повторить шаг 2 с другими координатами.

Что наблюдать

Messages tab — должен прийти WARNING:

WARNING: EKF3: origin already set

Status tabekfflags не меняется. Origin не переустанавливается — это и подтверждает set-once природу.

Шаг 6. Reboot

В Mission Planner: ConfigFull Parameter List → правый клик на любом параметре → Reboot Pixhawk.

Или: физически отсоединить-подсоединить USB.

После reboot всё начинается с чистого листа — можно повторить процедуру.

Чек-лист dry-run

  • Шаг 0: read-only diag прошёл
  • Шаг 1: ekfflags = 0x0001 (только ATTITUDE)
  • Шаг 2: SET_GPS_GLOBAL_ORIGIN — INFO в Messages, ekfflags содержит POS_HORIZ_REL
  • Шаг 3: первая CMD 43003 — ACK + ekfflags содержит POS_HORIZ_ABS + иконка появилась
  • Шаг 3: ekfposhorizvar < 1.0
  • Шаг 4: повторная CMD 43003 — иконка плавно сместилась (soft path работает)
  • Шаг 5: повторный SET_GPS_GLOBAL_ORIGIN отвергнут с WARNING
  • Шаг 6: reboot перед реальным полётом

Что в логе после dry-run

В Mission Planner: Flight DataDataFlash LogsDownload Logs Via Mavlink → выбрать сегодняшний .bin.

Открыть в MAVExplorer или встроенном Log Browser. Что искать описано в logs.

Ключевые сообщения для проверки правильности процедуры:

  • XKF1.PN/PE — после шага 3: резкий step (snap path, ожидаемо для первой CMD 43003).
  • XKF1.PN/PE — после шага 4: плавный sигмоид (soft path, цель Zholobov latch).
  • DAL SetLatLng записи — должно быть 3 штуки (одна на шаг 3, две на шаг 4).
  • DAL SetOriginLLH записи — должно быть 1 штука (только шаг 2 успешный; шаг 5 не должен попасть).