Сухая проверка origin-sequence¶
Полная процедура SET_GPS_GLOBAL_ORIGIN → CMD 43003 без arm и без полёта. Проводится через Mission Planner. Цель — убедиться что прошивка реагирует правильно перед выездом в поле.
Reboot после теста
Origin set-once. После dry-run нужно перезагрузить полётник перед реальным полётом (или перед следующим dry-run). Reboot из Mission Planner: Config → Full Parameter List → правый клик → Reboot Pixhawk.
Чем будем отправлять CMD 43003¶
CMD 43003 — кастомная команда, в стандартном Mission Planner отдельной кнопки для неё нет. Используем то ПО, через которое будем посылать CMD 43003 в реальном полёте — обычно это та же ground software, что и для миссии.
Если такого ПО на стенде нет, варианты:
- QGroundControl → MAVLink Inspector (
Q→Analyze Tools→MAVLink Inspector) — позволяет отправлять произвольныеCOMMAND_LONGпо номеру. - Mission Planner → Flight Data → Actions tab → Do Action — выбрать
COMMAND_LONG, ввести command number43003, заполнить параметры. - Внутреннее ПО оператора коррекций — рекомендуется, потому что именно оно работает в полёте.
Что проверяется¶
- SET_GPS_GLOBAL_ORIGIN принят — origin установлен,
validOrigin=true. - CMD 43003 (first call) проходит —
setLatLng→ snap path. - EKF переходит в
POS_HORIZ_ABS— флаг 16 поднимается. - CMD 43003 (повторная) проходит soft-path — иконка борта плавно подтягивается, без скачка.
- Попытка повторного SET_GPS_GLOBAL_ORIGIN отвергается — STATUSTEXT
origin already set.
Шаги¶
Шаг 0. Прогрев¶
- Подключить полётник к USB.
- Подождать 30 секунд (стабилизация IMU и компасов).
- Сделать read-only диагностику — убедиться что baseline корректный.
- Открыть Messages (
Ctrl+F→Messages) и Status tab — будем смотреть сообщения и EKF status во время теста.
Шаг 1. Фиксируем начальное состояние¶
В Status tab проверить ekfflags:
Если уже стоит POS_HORIZ_ABS (бит 16) — origin уже был установлен. Перезагрузить полётник и начать заново.
Шаг 2. SET_GPS_GLOBAL_ORIGIN¶
Вариант A — через карту Mission Planner¶
- Перейти на Flight Data.
- На карте выбрать примерную точку старта (или другую — для bench не критично).
- Правый клик на этой точке → Set EKF Origin Here.
- Mission Planner попросит подтвердить и пришлёт команду.
Вариант B — через Actions tab¶
- Flight Data → Actions tab.
- В разделе Set Home / Origin ввести координаты: latitude, longitude, altitude (MSL в метрах).
- Нажать Set Origin.
Что наблюдать¶
Messages tab — должно прийти подтверждение:
(Точное сообщение может отличаться по версии MP — главное чтобы пришло INFO-уровня без ошибок.)
Status tab — через 1–2 секунды:
Если не работает¶
- Проверить что в 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:
Status tab — через 1–2 секунды:
Карта Mission Planner — иконка борта должна появиться в точке отправленных координат.
Status tab → ekfposhorizvar: упасть до низкого значения (< 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:
Status tab — ekfflags не меняется. Origin не переустанавливается — это и подтверждает set-once природу.
Шаг 6. Reboot¶
В Mission Planner: Config → Full 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 Data → DataFlash Logs → Download 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 не должен попасть).