Фільтру гіроскопа чи аналізатору шуму не вистачило пам'яті
Що пише ArduPilot:
- Failed to allocate window for AP_GyroFFT
- Failed to initialize DSP engine
- FFT: unable to run self-test, required N bytes
- Failed to allocate N bytes for notch filter
- AP_GyroFFT: req alloc N bytes (free=N)
- Failed to allocate window for INS
Тут пояснено ще: 1
- AP_GyroFFT: disabled, required N bytes
Під час запуску функція, що фільтрує чи аналізує сигнал гіроскопа, попросила пам'ять і не отримала її, тому не працює: гармонічний notch-фільтр («… bytes for notch filter») або FFT у польоті (рядки з AP_GyroFFT, DSP engine та window). Апарат армується й летить, але без цього фільтра: до регулятора доходить більше шуму моторів, ніж розраховано в налаштуванні, а це може означати гарячі мотори чи коливання.
Що робити: найімовірніше спершу
Notch-фільтри потребують забагато окремих фільтрів для малої плати: багато гармонік, по фільтру на мотор, подвійні чи потрійні, на кожному IMU.
ПеревіртеПорахуйте біти в
INS_HNTCH_HMNCSі подивітьсяINS_HNTCH_OPTS.ВиправтеЗалиште лише ті гармоніки, які видно у вашому лозі (часто першу або перші дві), а на малій платі відмовтеся від подвійних і потрійних фільтрів. Перезавантажте й перед польотом переконайтеся, що повідомлення зникло.
Пам'ять забирають інші функції, насамперед скрипти Lua.
Перевірте
SCR_ENABLEдорівнює 1, аSCR_HEAP_SIZEвеликий; вільної пам'яті в наземній станції мало.ВиправтеЗменште
SCR_HEAP_SIZEабо вимкніть функції, якими не користуєтеся, потім перезавантажте.Вікно FFT завелике для цієї плати.
ПеревіртеРядки називають AP_GyroFFT чи DSP engine, а
FFT_WINDOW_SIZEвищий за типове значення.ВиправтеПоверніть
FFT_WINDOW_SIZEдо типового значення й перезавантажте.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
INS_HNTCH_ENABLE | Harmonic Notch Filter enable |
INS_HNTCH_HMNCS | Harmonic Notch Filter harmonics |
INS_HNTCH_OPTS | Harmonic Notch Filter options |
FFT_ENABLE | Enable |
FFT_WINDOW_SIZE | FFT window size |
SCR_ENABLE | Enable Scripting |
SCR_HEAP_SIZE | Scripting Heap Size |
Де це зробити:Налаштування й тюнінгАналізатор прошивки
Код, який це надсилає
Failed to allocate window for AP_GyroFFT
libraries/AP_GyroFFT/AP_GyroFFT.cpp AP_GyroFFT::init() · Відкрити в ArduPilot Copter-4.7.1
Failed to initialize DSP engine
libraries/AP_GyroFFT/AP_GyroFFT.cpp AP_GyroFFT::init() · Відкрити в ArduPilot Copter-4.7.1
FFT: unable to run self-test, required N bytes
libraries/AP_GyroFFT/AP_GyroFFT.cpp AP_GyroFFT::self_test_bin_frequencies() · Відкрити в ArduPilot Copter-4.7.1
Failed to allocate N bytes for notch filter
libraries/Filter/HarmonicNotchFilter.cpp HarmonicNotchFilter<T>::allocate_filters() · Відкрити в ArduPilot Copter-4.7.1
І ще 3 повідомлень, що надсилаються з тих самих місць.