Скорости и ускорения: Betaflight ↔ ArduPilot

Все статьи

Ключевые различия архитектур

АспектBetaflightArduPilot
Режим полётаВ основном Acro (ручное управление)Много режимов: Acro, Stabilize, Loiter, Auto
Контроллер углаОдноуровневый Rate PIDДвухуровневый: Angle → Rate → Motor
Feedforwardff_* в CLI, настраивается вручнуюATC_RAT_*_FF, включён по умолчанию, авто-тюнинг
ФильтрацияRPM Filter, Dynamic Notch (очень гибко)Базовые фильтры, меньше настроек «из коробки»
ЛогированиеBlackbox (детально для PID/FF)DataFlash (более общее, но с телеметрией)

📌 Важно: В условиях помех (европейская часть РФ, городская застройка) у ArduPilot есть преимущество в EKF-фильтрации и отказоустойчивости, но для чистого «ручного» фристайла Betaflight даёт более отзывчивый отклик.


Таблица соответствия параметров

ФункцияBetaflight (CLI)ArduPilot (Parameter)Примечание
Макс. скорость поворотаset roll_srate = 70 (~900°/с)ATC_RATE_RLL_MAX (deg/s) В BF: Actual Rates, в AP: прямое значение
Ускорение поворотаff_boost, ff_smooth_factorATC_ACCEL_R_MAX (deg/s²) AP ограничивает «рывки» на уровне контроллера
Feedforwardf_roll, f_pitchATC_RAT_RLL_FFВ AP обычно 0.05–0.15, авто-подбор через AutoTune
Чувствительность в центреroll_rc_rate, expoACRO_RP_EXPOВключает экспоненту только в режиме Acro
Сглаживание входаrc_smoothing_*PILOT_Y_RATE_TC (time constant)Меньше = резче, больше = плавнее
TPA / ограничение на газеtpa_rate, tpa_breakpointATC_THR_MIX_MAN (air-mode аналог)Включается битмаской ACRO_OPTIONS

Практические примеры (7″ / 10″ / 15″)

🔹 7″ Long Range (6S, ~900 г)

ПараметрBetaflightArduPilot
Roll/Pitch Max Ratesrate = 70 (~900°/с)ATC_RATE_RLL_MAX = 900
Roll/Pitch Accelff_boost = 15ATC_ACCEL_R_MAX = 30000 (30k°/с²)
Feedforwardf_roll = 105ATC_RAT_RLL_FF = 0.12
Expo (центр)expo = 0.35ACRO_RP_EXPO = 0.3
Yaw Rateyaw_srate = 60 (~650°/с)ACRO_Y_RATE = 650 [[96]]

🔹 10″ Macro (6S, ~1.8 кг)

ПараметрBetaflightArduPilot
Roll/Pitch Max Ratesrate = 60 (~700°/с)ATC_RATE_RLL_MAX = 700
Roll/Pitch Accelff_boost = 20ATC_ACCEL_R_MAX = 25000
Feedforwardf_roll = 90ATC_RAT_RLL_FF = 0.10
Сглаживание входаrc_smoothing = 25PILOT_Y_RATE_TC = 0.15
Yawyaw_srate = 50ACRO_Y_RATE = 450

🔹 15″ X-Class (12S, ~4+ кг)

ПараметрBetaflightArduPilot
Roll/Pitch Max Ratesrate = 50 (~500°/с)ATC_RATE_RLL_MAX = 500
Roll/Pitch Accelff_boost = 25ATC_ACCEL_R_MAX = 18000
Feedforwardf_roll = 75ATC_RAT_RLL_FF = 0.08
Time constantrc_smoothing_auto = 25PILOT_Y_RATE_TC = 0.2
Yawyaw_srate = 40ACRO_Y_RATE = 300

⚠️ Внимание: Значения ATC_ACCEL_* в ArduPilot задаются в градусах/с², а не в условных единицах как ff_boost. Начинайте с 20–30 тыс. для 7–10″, снижайте для тяжёлых рам.


Алгоритм настройки

Betaflight

  1. Установите Actual Rates как базис.
  2. Подберите srate под желаемую максимальную скорость флипа.
  3. Настройте ff_* через Blackbox: цель — минимальная задержка setpoint → gyro без овершута.
  4. Добавьте ff_smooth_factor и ff_max_rate_limit для смягчения резких входов.

ArduPilot

  1. Включите режим Acro и установите ACRO_RP_RATE / ACRO_Y_RATE.
  2. Запустите AutoTune (если позволяет рама) — он подберёт ATC_RAT_*_P и FF.
  3. Вручную скорректируйте ATC_ACCEL_*_MAX, если дрон «дёргается» при резких стиках.
  4. Для дальних полётов включите ATC_RAT_*_FF и настройте PILOT_*_RATE_TC под задержку радиоканала.

🔗 Полезные ссылки

💡 Совет: При полётах в условиях городских помех (многоэтажки, ЛЭП) в ArduPilot дополнительно настройте EKF_GPS_GAIN и GPS_GNSS_MODE для устойчивого позиционирования — это не влияет на ручные ставки, но повышает безопасность возвратов.

Прокрутить вверх