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

Дельта от 4.5

Минимальный точечный список параметров для перевода с 4.5 на 4.6.3 V1.2.0.

Если нужен полный конфиг РД-7.02.5

Этот раздел — концептуальный «что менять». Готовый .param файл с миграцией всех 1110 параметров (включая переименования GPS_*GPS1_*/GPS2_* и удалённые параметры) — здесь: Полный baseline — РД-7.02.5.

Шесть параметров

EK3_SRC1_POSXY = 6       # было 3 (GPS) → ExtNav
EK3_SRC1_VELXY = 0       # было 3 (GPS) → None
EK3_SRC1_VELZ  = 0       # было 3 (GPS) → None
AHRS_OPTIONS   = 32      # было 0 → бит 0 (DisableDCMFallbackFW)
EK3_WIND_P_NSE = 0.05    # было 0.1 → медленнее уход ветра
EK3_EXTNAV_DRIFT = 1.0   # новый параметр (отсутствовал в 4.5)

Построчно — почему

EK3_SRC1_POSXY = 6

Активирует EXTNAV как primary XY-источник. Это ключ ко всему: все кастомные патчи прошивки гейтятся на это значение. На 3 (GPS) патчи молчат — прошивка ведёт себя как обычная сток 4.6.3.

EK3_SRC1_VELXY = 0, EK3_SRC1_VELZ = 0

Раньше в 4.5 скорость приходила в составе GPS_INPUT (поля vn/ve/vd) — EKF видел её как GPS-velocity и фьюзил. CMD 43003 несёт только позицию, не скорость.

Если оставить 3 (GPS), EKF будет ждать velocity-данные через GPS-канал, не получит их и пойдёт по таймауту. None явно говорит фильтру: «velocity выводи из IMU + airspeed». Именно поэтому pitot теперь критичен — это единственный velocity-аналог в системе.

AHRS_OPTIONS = 32

Бит 0 = DisableDCMFallbackFW. Без него, при «нездоровом» EKF, AHRS молча переключается на DCM. Для нашей задачи это опасно: DCM не знает про ExtNav, и плане будет навигироваться DCM dead-reckoning'ом без коррекций.

Бит 0 — единственный мы включаем. Биты 1 (DisableDCMFallbackVTOL) и 2 (DontDisableAirspeedUsingEKF) — не нужны.

EK3_WIND_P_NSE = 0.05

Process noise ветра в EKF state. По умолчанию 0.1. Снижаем до 0.05 — ветер дрейфует медленнее за такт, оценка устойчивее при шумном TAS. См. common/wind.

EK3_EXTNAV_DRIFT = 1.0

Новый параметр, идёт от коммита d04f9d1 (Zholobov latch). В 4.5 его не было. Default 1.0 m/s. См. tech/architecture/zholobov.

Что не меняем

Из твоего 4.5-baseline:

  • ARMING_CHECK = 771810 — биты GPS lock / INS / Compass / All уже выключены. ⇒ уже подготовлено для GPS-denied.
  • EK3_GLITCH_RAD = 25 — keep. Soft-correction обходит проблему drift'а вместо отключения glitch protection.
  • EK3_POS_I_GATE = 500, EK3_VEL_I_GATE = 500, EK3_EAS_I_GATE = 400 — keep.
  • EK3_BETA_MASK = 0 — keep. Sideslip auto-promotion на is_dead_reckoning работает корректно.
  • EK3_NOAID_M_NSE = 10 — keep. Релевантно только при AID_NONE, чего мы избегаем.
  • EK3_EAS_M_NSE = 1.4 — keep. Понижать только после калибровки ARSPD_RATIO.
  • IMU калибровки, RC, servo, TECS, L1 — все остаются.

Что сбрасываем в дефолт

Из твоего 4.5-baseline:

  • AHRS_WND_ENBL = 10
  • AHRS_WND_SPD = 50
  • AHRS_WND_DIR = 1800

Эти параметры пишут только в DCM _wind. С AHRS_OPTIONS = 32 DCM не используется, ⇒ параметры — dead code. Держим в 0 для чистоты конфига. См. common/wind.

Сводка как .parm

EK3_SRC1_POSXY,6
EK3_SRC1_VELXY,0
EK3_SRC1_VELZ,0
AHRS_OPTIONS,32
EK3_WIND_P_NSE,0.05
EK3_EXTNAV_DRIFT,1.0
AHRS_WND_ENBL,0
AHRS_WND_SPD,0
AHRS_WND_DIR,0

Можно загрузить через Mission Planner: Config → Full Parameter List → Load from file. Или через MAVProxy: param load delta.parm.

Это только дельта, не полный baseline

Не загружай этот файл на чистую прошивку — это перезапишет только 9 параметров. Полный baseline см. в baseline. Также убедись что ARMING_CHECK уже подготовлен (бит 3 GPS выключен).