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

Полный baseline — РД-7.02.5

Миграция production-конфига РД-7.02.5 с ArduPlane 4.5 на Valkyrie 4.6.3 V1.2.0.

Готовый файл

RD-7.02.5_4_6_3_extnav.param — 1110 параметров, готов к загрузке через Mission Planner → Full Parameter List → Load from file → Write Params → Reboot.

Перед заливкой

  • Это полный baseline, не дельта. Перезапишет всё что сейчас на борту.
  • Скрытые параметры (BATT_AMP_PERVLT, BATT_VOLT_PIN, ARSPD2_*, RPM1_*, EFI_*, INS_HNTCH_* и т.д.) появятся автоматически после reboot, как только триггерные параметры (BATT_MONITOR=4, ARSPD2_TYPE=1, RPM1_TYPE=2, EFI_TYPE=3, INS_HNTCH_ENABLE=1) встанут на свои значения.
  • Lua-параметры (ANDR_*, BOOST_*, S_DETACH, S_MASK) не залить пока на SD карте нет соответствующих скриптов и SCR_ENABLE=1. Эти параметры регистрируются скриптами через param:add_table() API.

Статистика миграции

Источник: параметры РД-7.02.5.param, 1116 строк.

Категория Параметров
Без изменений 1082
Переименованы (GPS_ → GPS1_/GPS2_*) 20
Значение изменено 8
Удалены 6
Добавлены (новые в 4.6.3) 2
Итого в выходном файле 1110

Реально архитектурно меняется только 16 параметров (8 value deltas + 2 новых + 6 удалений). Остальные 20 — чистый рефакторинг имён, значения идентичны.


1. Переименования GPS_ → GPS1_/GPS2_* (20 шт)

В 4.6 ArduPilot перешёл на унифицированную схему параметров по экземплярам GPS. Источник: AP_GPS.cpp:362-395, таблица conversion_info[].

В прошивке есть автоматический конвертер старых имён, но он срабатывает только при апгрейде прошивки на том же борту со старым EEPROM. При заливке .param файла на чистый борт переименование делается вручную — что и сделано в готовом файле.

Старое имя (4.5) Новое имя (4.6.3) Значение
GPS_TYPE GPS1_TYPE 1 (uBlox)
GPS_TYPE2 GPS2_TYPE 14 (UAVCAN)
GPS_GNSS_MODE GPS1_GNSS_MODE 77
GPS_GNSS_MODE2 GPS2_GNSS_MODE 0
GPS_RATE_MS GPS1_RATE_MS 200
GPS_RATE_MS2 GPS2_RATE_MS 200
GPS_DELAY_MS GPS1_DELAY_MS 0
GPS_DELAY_MS2 GPS2_DELAY_MS 0
GPS_POS1_X/Y/Z GPS1_POS_X/Y/Z 0/0/0
GPS_POS2_X/Y/Z GPS2_POS_X/Y/Z 0/0/0
GPS_COM_PORT GPS1_COM_PORT 1
GPS_COM_PORT2 GPS2_COM_PORT 1
GPS_CAN_NODEID1 GPS1_CAN_NODEID 0
GPS_CAN_NODEID2 GPS2_CAN_NODEID 0
GPS_MB1_TYPE GPS1_MB_TYPE 0
GPS_MB2_TYPE GPS2_MB_TYPE 0

GPS-параметры которые НЕ переименованы (остались на subsystem-уровне в 4.6.3):

GPS_AUTO_CONFIG, GPS_AUTO_SWITCH, GPS_BLEND_MASK, GPS_DRV_OPTIONS, GPS_INJECT_TO, GPS_MIN_ELEV, GPS_NAVFILTER, GPS_PRIMARY, GPS_RAW_DATA, GPS_SAVE_CFG, GPS_SBAS_MODE, GPS_SBP_LOGMASK, GPS1_CAN_OVRIDE, GPS2_CAN_OVRIDE — это глобальные настройки подсистемы GPS, они никуда не уходили.


2. Удалены (6 шт)

Удалены из прошивки

Параметр Старое значение Замена
GPS_MIN_DGPS 100 удалён в 4.6, прямой замены нет

Если этот параметр был критичен в твоём сценарии (контроль качества DGPS), это открытый вопрос. На сегодня в коде Plane 4.6.3 нет аналога.

Firmware-internal (выпиливаются на миграции)

Параметр Старое значение Почему
FORMAT_VERSION 13 пишется самим firmware при boot
STAT_BOOTCNT 136 счётчик загрузок, сбросится на новой прошивке
STAT_FLTTIME 17542 налёт в секундах, не имеет смысла переносить
STAT_RESET 1 timestamp сброса статистики
STAT_RUNTIME 349600 время работы платы, не переносится

STAT_* записывает сама прошивка; заливать старые значения смысла нет — они затрут реальную статистику новой прошивки.


3. Значение изменено (8 шт)

Эти изменения переводят EKF3 на GPS-denied / ExternalNav-через-CMD-43003 архитектуру.

Источники EKF3

Параметр Было Стало Зачем
EK3_SRC1_POSXY 3 (GPS) 6 (ExtNav) активирует init-bypass (23351a4), Zholobov latch (d04f9d1), soft-correction (5913765)
EK3_SRC1_VELXY 3 (GPS) 0 (None) CMD 43003 несёт только позицию, не velocity
EK3_SRC1_VELZ 3 (GPS) 0 (None) то же

Подробнее в Дельта от 4.5.

AHRS

Параметр Было Стало Зачем
AHRS_OPTIONS 0 32 бит 0 = DisableDCMFallbackFW. Без него при «нездоровом» EKF AHRS молча переключается на DCM, который не знает про ExtNav

Ветровая модель

Параметр Было Стало Зачем
EK3_WIND_P_NSE 0.1 0.05 замедлить уход ветра до того как treatWindStatesAsTruth защёлкнется
AHRS_WND_ENBL 1 0 dead code с AHRS_OPTIONS=32 — DCM-путь запрещён, EKF3 эти параметры не читает
AHRS_WND_SPD 5 0 то же
AHRS_WND_DIR 180 0 то же

Подробнее про ветровой режим: common/wind.


4. Добавлены (2 шт)

Новые параметры в 4.6.3, которых не было в 4.5.

Параметр Default Описание
EK3_EXTNAV_DRIFT 1.0 кастомный, из коммита d04f9d1. Drift floor (m/s) для R_OBS на повторных CMD 43003. Понижать до 0.5 если ARSPD хорошо калиброван. См. Zholobov latch
EK3_OPTIONS 0 новый стандартный битмаск опций EKF3. Default OK

Все остальные «новые в 4.6.3» параметры (AIRSPEED_STALL, CAN_P1_OPTIONS, QWIK_ENABLE, RNGFND_LND_ORNT, SERVO_VOLZ_RANGE, SR5_*, SR6_*, TERRAIN_* расширения, TKOFF_OPTIONS, TKOFF_THR_MIN, BATT_CURR_MULT) сами появятся на борту после reboot со своими дефолтами — их не нужно явно указывать в .param.


5. Скрытые параметры (появятся автоматически после reboot)

ArduPilot не выгружает подпараметры feature'а пока сам feature выключен (видимость управляется атрибутом AP_PARAM_FLAG_ENABLE в AP_GROUPINFO_FLAGS). При заливке этого baseline'а на борт включатся следующие триггеры, и подпараметры станут видимы:

Триггер Что включается Сколько подпараметров появится
BATT_MONITOR=4 (Analog Voltage&Current) BATT_AMP_OFFSET/PERVLT/CURR_PIN/VLT_OFFSET/VOLT_MULT/VOLT_PIN 6
BATT2_MONITOR=8 15 параметров BATT2_* 15
ARSPD2_TYPE=1 10 параметров ARSPD2_* (BUS, DEVID, OFFSET, PIN, PSI_RANGE, RATIO, и т.д.) 10
RPM1_TYPE=2 7 параметров RPM1_* (ESC_INDEX/MASK, MAX/MIN, MIN_QUAL, PIN, SCALING) 7
EFI_TYPE=3 4 параметра EFI_* (COEF1/2, FUEL_DENS, THRLIN_EN) 4
CAN_P2_DRIVER=1 CAN_P2_BITRATE, CAN_P2_FDBITRATE 2
INS_HNTCH_ENABLE=1 8 параметров INS_HNTCH_* (ATT, BW, FM_RAT, FREQ, HMNCS, MODE, OPTS, REF) 8
SCR_ENABLE=1 13 параметров SCR_* (USER1..6, HEAP_SIZE, и т.д.) 13

Значения этих 65 параметров уже включены в .param файл — они будут заявлены при заливке и применятся как только триггер сделает их видимыми. Никаких дополнительных действий не требуется, кроме как ребут после Write Params.


6. Lua-параметры (требуют скриптов на SD)

В исходнике 4.5 присутствуют параметры, регистрируемые Lua-скриптами через param:add_table() API. Прошивка сама их не создаёт — они появляются только когда соответствующий .lua файл лежит на SD-карте и SCR_ENABLE=1.

Префикс Параметров Скрипт Где взять
ANDR_* 21 antidron.lua /home/neo/Nextcloud/КБ Валькирия/SOFT/!!Для пусконаладки/Скрипты/!Последние версии скриптов/
BOOST_* 4 (старый скрипт, не найден в текущем каталоге) требует разбора
S_DETACH, S_MASK 2 (кастомный, не найден) требует разбора
SCR_USER1..6 6 стандартные слоты появляются при SCR_ENABLE=1

Значения для всех 33 Lua-параметров включены в .param файл; они применятся после того как:

  1. Соответствующие .lua файлы будут залиты на SD-карту в /APM/scripts/.
  2. SCR_ENABLE=1 (уже в baseline).
  3. Reboot — скрипт зарегистрирует свои параметры через add_table(), после чего значения из EEPROM встанут в свои места.

BOOST_* и S_DETACH/MASKоткрытый вопрос, нужно определить, какой скрипт их регистрировал в 4.5, и есть ли его актуальная версия. До прояснения эти 6 значений в файле не активируются.


7. Последовательность загрузки

  1. Прошивка: убедиться что Plane 4.6.3 Valkyrie V1.2.0 (custom version 59137650) уже залита.
  2. SD карта: положить .lua скрипты в /APM/scripts/ (как минимум antidron.lua если используется ANDR-режим).
  3. Mission Planner → Config → Full Parameter List → Load from file → выбрать RD-7.02.5_4_6_3_extnav.param → Write Params.
  4. Reboot борта.
  5. Проверить через MAVProxy/Mission Planner:
  6. EK3_SRC1_POSXY = 6, EK3_EXTNAV_DRIFT = 1.0 — наши кастомные дельты применены.
  7. BATT_VOLT_PIN = 16, INS_HNTCH_FREQ = 70 и т.п. — скрытые параметры стали видимыми.
  8. ANDR_AS_CRUISE = 30 и т.п. — Lua скрипт зарегистрировал параметры (если скрипт залит).
  9. Read-only диагностика через tech/bench/diag.
  10. Калибровки — компас и акселерометр в новой прошивке могут потребовать повторной калибровки если COMPASS_DEV_ID или INS_ACC*_ID не совпали (значения из 4.5 в файле уже есть, но dev_id привязаны к физическому железу).

История версий

Версия Дата Источник Кто принял
1 2026-05-26 параметры РД-7.02.5.param (от Telegram, 4.5) автоматическая миграция через /tmp/migrate_4_5_to_4_6.py