Эксплуатация¶
Предполётная¶
- Залить прошивку CUAV-X7 (
arduplane.apj) и параметры (gpsdenied_cuavx7.param+ дельта выбранной конфигурации). - Выставить
ARSPD_TYPEпод реальную трубку и снять вARMING_CHECKбиты GPS (lock + configuration). - Калибровки: компас (курс критичен) и ПВД (
ARSPD_RATIO). При некалиброванном по scale компасе склонение засеется из origin автоматически. - Замерить задержку доставки фикса и выставить
AHRS_DR_FIXLAG(см. ниже), либо обеспечить честный timestamp в param1 на стороне GCS. - Проверить:
ARSPD_USE=1,FS_EKF_FWINT=1,EK3_SRC1_POSXY=6,AHRS_EKF_TYPEпо конфигурации.
Замер и выставление AHRS_DR_FIXLAG¶
Нужен только если GCS не заполняет param1 (timestamp наблюдения) в CMD 43003 — валидный param1 всегда имеет приоритет.
- Сделать 5–10 пробных кликов: засечь время от момента наблюдения борта оператором до доставки команды на борт (по ACK/логу).
- Выставить типичную задержку с точностью ±1 с (диапазон 0–8 с).
- Если задержка нестабильна или неизвестна — оставить 0 (фикс считается текущим): неверное значение вносит эквивалентную ему ошибку позиции.
Старт (без GPS)¶
- Питание. EKF3 поднимется без GPS (init-байпас) — дождаться готовности AHRS.
SET_GPS_GLOBAL_ORIGIN— задать начало координат (точка старта).DO_SET_HOME— задать home. Обязателен для AUTO: без home миссия (и NAV_TAKEOFF) не исполняется.CMD 43003— наземный операторский фикс точки старта (точность в param3, типично ~4 м). Первый фикс ставит_has_forced_positionи вводит фильтры в абсолютную навигацию (horiz_pos_abs). Взлёт требует фикс свежее последнего disarm.- (При необходимости) задать ветер
CMD 43004— применится с момента взлёта. - Арм (без GPS) → взлёт в AUTO.
- Bootstrap-фиксы на наборе: пока ветер не выучен, слать
CMD 43003каждые ~8 с на наборе высоты — окна ≥ 8 с дают грубую оценку ветра уже в наборе, и борт входит в крейсер не с нулевым ветром.
В полёте¶
- Периодически слать
CMD 43003для коррекции позиции (валидированный каденс 30–180 с) — между фиксами борт счисляет по ПВД + курсу + ветру. - В param3 заполнять реальную точность клика (1σ, м): стартовая точка ~4 м, клик по карте в полёте — 20–50 м. Фильтр взвешивает фикс этой точностью.
- Фикс после манёвра информативнее. Окно, в котором была S-кривая или вираж, даёт фильтру наблюдаемость масштаба ПВД и разделяет ветер от ошибки шкалы; на чисто прямых окнах обучается только ветер. При возможности — слать фикс после смены курса.
- Наблюдать в GCS:
horiz_pos_absдержится; растущаяpos_horiz_varianceмежду фиксами — норма (падает на каждом фиксе); сообщенияKF Update: ...(DCM) подтверждают принятие фиксов,DR fix outlier— отклонение выброса. - Полёт всегда автономный (AUTO); ручное управление стиками не предполагается.
Re-arm в воздухе¶
Поддерживается цикл «обесточивание в воздухе → продолжение миссии»:
- Disarm в воздухе.
- Свежий
CMD 43003— обязателен: армовая логика требует инъекцию свежее момента disarm. - Режим AUTO → arm (force-arm). Миссия продолжается с текущего пункта —
MISSION_STARTне слать (он перезапустил бы NAV_TAKEOFF в воздухе).
Особенности:
- Высотная привязка пересчитывается при ре-арме (baro re-zero на текущую высоту): относительные высоты миссии далее отсчитываются от нового нуля — закладывать это в профиль миссии.
- EKF3-active: выученный ветер переживает ре-арм, если ему меньше 300 с; после более длительной паузы он отбрасывается (
ADR wind stale, relearning) — рекомендуется сразу после ре-арма послатьCMD 43004с актуальным ветром.
Failsafe и страховка¶
- Связь: потеря < 5 мин — ничего не происходит. После 5 мин — действие по
FS_LONG_ACTN(по умолчанию CONTINUE). - Целостность ИНС: при грубом расхождении EKF3 с DCM+baro
FS_EKF_FWINTфорсит AHRS на DCM (независимый горизонт и счисление, засеянные из CMD 43003) — это сохранение управляемости, не «возврат на GPS». - GPS не возвращается ни в каком сценарии — это инвариант.
Стенд (SITL)¶
Методика стендовой валидации, готовые сценарии и валидированные характеристики точности — на странице Симуляция и валидация. Кратко: ARSPD_TYPE=100, GPS1_TYPE=0, SIM_GPS1_ENABLE=0; полный операторский флоу (origin → home → 43003 → force-arm → AUTO) автоматизирован драйвером Tools/scripts/ins8_flight.py.