Параметры¶
Готовый набор для безопасного полёта без GPS. Файл: gpsdenied_cuavx7.param (в корне репозитория) — грузить в Mission Planner → Full Parameter List → Load from file.
1. Конфигурации эстиматора¶
Валидированы три конфигурации (числа); отличаются поверх общего набора ниже:
| Конфигурация | Первичный эстиматор | Отличия параметров |
|---|---|---|
| dcm0 — полётный сет | DCM (чистый) | AHRS_EKF_TYPE 0, EK3_ENABLE 0, EK3_WIND_ADR 0, AHRS_WIND_MAX 18, FS_EKF_FWINT 1, FS_EKF_FWHGT 30, FS_EKF_FWANG 30, AHRS_OPTIONS 0, EK3_OPTIONS 0 |
| dcm1 | DCM, EKF3 фоном | AHRS_EKF_TYPE 0, EK3_ENABLE 1, AHRS_WIND_MAX 18 |
| ekf3 | EKF3 (active) | AHRS_EKF_TYPE 3, EK3_ENABLE 1, AHRS_WIND_MAX 18 |
2. Навигация без GPS (EKF3 + ExtNav)¶
| Параметр | Значение | Смысл |
|---|---|---|
AHRS_EKF_TYPE |
3 (EKF3) / 0 (DCM) | активный эстиматор по выбранной конфигурации |
EK3_ENABLE |
1 | |
EK3_SRC1_POSXY |
6 (ExtNav) | даёт init без GPS + путь forced-position |
EK3_SRC1_VELXY |
0 (None) | внешнего источника скорости нет — скорость из IMU + ПВД |
EK3_SRC1_POSZ |
1 (Baro) | высота |
EK3_SRC1_YAW |
1 (Compass) | курс — критичен для дрейфа |
AHRS_OPTIONS |
16 | бит 4 (origin без GPS); бит 0 (DisableDCMFallbackFW) держать 0 |
3. ПВД — основа счисления¶
| Параметр | Значение | Смысл |
|---|---|---|
ARSPD_USE |
1 | использовать воздушную скорость |
ARSPD_TYPE |
по железу | реальная трубка (НЕ 0); 100 = только SITL-стенд |
Калибровка обязательна: верный ARSPD_RATIO. Остаточную ошибку масштаба ПВД фильтр счисления выучивает в полёте (K_tas), но только на манёвренных участках — стартовать надо с честной калибровки.
4. Ветер и компенсация задержки фикса¶
| Параметр | Значение | Смысл |
|---|---|---|
AHRS_WIND_MAX |
18 (м/с) | ограничивает модуль выученного фильтром ветра; 0 = без ограничения |
AHRS_DR_FIXLAG |
0 (с), диапазон 0–8 | предполагаемый возраст операторского фикса 43003 — см. ниже |
AHRS_DR_FIXLAG — предполагаемый возраст (задержка «наблюдение → доставка на борт») фикса CMD 43003, пришедшего без валидного timestamp в param1. Применяется только в этом случае: валидный param1 всегда имеет приоритет. 0 = фикс без timestamp считается текущим.
Процедура выставления: замерить по 5–10 кликам реальную задержку от наблюдения борта оператором до доставки команды на борт и выставить значение с точностью ±1 с. Значение, не соответствующее реальной задержке, вносит эквивалентную ей ошибку позиции (фикс протягивается вперёд по счисленному пути на чужую величину) — при неизвестной задержке оставить 0.
Окно ADR-ветра EKF3 (advanced)¶
Для конфигурации ekf3/dcm1 оценкой ветра EKF3 управляют EK3_WIND_* (дефолты валидированы, менять не требуется):
| Параметр | Default | Смысл |
|---|---|---|
EK3_WIND_ADR |
1 (Auto) | 1 = ADR-окно само уточняет ветер на каждой коррекции; 0 (Hold) = ветер держится, оценка публикуется как рекомендация ADR wind rec |
EK3_WIND_TWIN |
60 с | минимальная длительность окна до штатного закрытия |
EK3_WIND_TWMAX |
600 с | потолок окна (принудительное перезакрытие) |
EK3_WIND_EMA |
0.6 | базовый гейн вмешивания оценки окна |
EK3_WIND_QTOL |
35° | допуск качества закрытия (близость к целому витку) |
EK3_WIND_QFLR |
0.2 | пол качества — каждое закрытие хоть немного уточняет ветер |
EK3_WIND_ADCAP |
3000 м | кап воздушного перемещения на прямом участке |
5. CMD 43003 — операторский фикс позиции¶
MAV_CMD_EXTERNAL_POSITION_ESTIMATE (COMMAND_INT, frame GLOBAL):
| Поле | Содержимое |
|---|---|
param1 |
timestamp наблюдения, сек. 0/пусто допустимо — фикс без timestamp (см. AHRS_DR_FIXLAG); отрицательный или NaN отклоняется (DENIED) |
param2 |
processing time, сек — время обработки на стороне GCS; вычитается из времени param1; применим только при валидном param1 |
param3 |
точность фикса 1σ, м — вес измерения в фильтре (зажимается в 2–100 м; не задана → принимается 5 м) |
param4 |
не используется (слать NaN) |
x / y |
lat / lon, °·1e7 |
z |
NaN (высота не передаётся; иное значение → DENIED) |
Повторная доставка фикса с тем же param1 (ретрансмит MAVLink) распознаётся и игнорируется бортом.
6. CMD 43004 — операторский ветер¶
MAV_CMD_EXTERNAL_WIND_ESTIMATE:
| Поле | Содержимое |
|---|---|
param1 |
скорость ветра, м/с (≥ 0; иначе DENIED) |
param2 |
точность 1σ, м/с — DCM-фильтр зажимает в 0.5–5, не задана → 1.0; EKF3 не задана → 2.0 |
param3 |
направление, ОТКУДА дует, град (0–360; иначе DENIED) |
Применяется мгновенно обоими эстиматорами (в EKF3 на земле — отложенно, вступит в силу на взлёте); фильтры продолжают уточнять ветер от последующих фиксов 43003.
7. Монитор целостности ИНС (страховка)¶
| Параметр | Значение | Смысл |
|---|---|---|
FS_EKF_FWINT |
1 | включить монитор EKF3↔DCM+baro |
FS_EKF_FWHGT |
30 (м) | порог грубого расхождения по высоте |
FS_EKF_FWANG |
30 (°) | порог грубого расхождения по углам/курсу |
Пороги задают грубый сбой; поднять, если ложно срабатывает. Это не comms-failsafe — оставлять включённым.
8. Comms-failsafe (потеря связи)¶
Политика: ничего при потере связи < 5 мин.
| Параметр | Значение | Смысл |
|---|---|---|
THR_FS_ENABLE |
0 | потеря RC на дальности не триггерит failsafe |
FS_GCS_ENABL |
1 | failsafe по heartbeat GCS (0 = совсем выключить) |
FS_SHORT_ACTN |
3 | короткий failsafe отключён |
FS_LONG_TIMEOUT |
300 | срабатывает только после 5 мин без связи (диапазон 1–300) |
FS_LONG_ACTN |
0 | CONTINUE — действие не предпринимается; задать своё при необходимости |
9. Арминг¶
ARMING_CHECK — снять только биты GPS lock и GPS configuration, остальные проверки оставить (проще в UI арминг-чеков). На реальном борте 0 не ставить.
Два значения — вручную
ARSPD_TYPE (под реальную трубку) и ARMING_CHECK (минус GPS-биты) выставляются вручную — в .param-файле они закомментированы. Без верного ARSPD_TYPE при ARSPD_USE=1 счисление работать не будет.
SITL-стенд
Для софт-стенда: ARSPD_TYPE=100 (бэкенд AP_Airspeed_SITL) — даёт TAS из физики симулятора. На реальной плате тип 100 не работает (бэкенда нет). Подробнее — Симуляция и валидация.