Одна з копій EKF повідомляє, що вона несправна
Що пише ArduPilot:
- EKF3 core N unhealthy
- no EKF3 cores
- EKF2 core N unhealthy
- no EKF2 cores
EKF, оцінювач позиції й орієнтації ArduPilot, веде одну копію (ядро, або lane) на кожен IMU; число в повідомленні рахується від 0. Копія вважає себе несправною, коли має внутрішню помилку, коли швидкість, позиція й висота від GPS водночас не збігаються з її власними, або коли на землі без GPS її позиція чи висота зсунулася більш ніж на 1 м. «no EKF3 cores» означає, що жодну копію не вдалося створити — зазвичай через брак пам'яті.
Що робити: найімовірніше спершу
Апарат рухають чи трясуть, поки він стоїть дизармований (несуть, везуть), тож позиція копії дрейфує.
ВиправтеПоставте на тверду землю й зачекайте близько 10 с. Копія, що лишається несправною 5 с, перезапускається сама («EKF3 IMU0 forced reset»).
Показ барометра дрейфує чи стрибає: сонце, вітер або потік від пропелерів на датчику, чи плата ще прогрівається.
ПеревіртеСтежте за висотою в наземній станції, поки апарат стоїть: вона має триматися в межах приблизно 1 м.
ВиправтеЗакрийте барометр від світла й потоку повітря поролоном з відкритими порами; дайте холодній платі хвилину прогрітися.
Один IMU дає гірші дані, ніж інший, тому несправна лише його копія.
ПеревіртеЧисло в повідомленні завжди те саме; можуть з'являтися також «Accels inconsistent» чи «Gyros inconsistent».
ВиправтеВідкалібруйте акселерометри знову. Якщо той самий IMU і далі поганий — підозра на сам датчик: перевірте плату на столі, перш ніж літати.
«no EKF3 cores»: для EKF не вистачило пам'яті.
ПеревіртеПід час запуску з'явилося «EKF3 not enough memory» або «EKF3 allocation failed».
ВиправтеДивіться те повідомлення: менше копій в
EK3_IMU_MASKабо менше великих функцій на малій платі.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
EK3_IMU_MASK | Bitmask of active IMUs |
EK3_ENABLE | Enable EKF3 |
AHRS_EKF_TYPE | Use NavEKF Kalman filter for attitude and position estimation |
Де це зробити:Налаштування й тюнінг
Код, який це надсилає
EKF3 core N unhealthy
libraries/AP_NavEKF3/AP_NavEKF3.cpp NavEKF3::pre_arm_check() · Відкрити в ArduPilot Copter-4.7.1
no EKF3 cores
libraries/AP_NavEKF3/AP_NavEKF3.cpp NavEKF3::pre_arm_check() · Відкрити в ArduPilot Copter-4.7.1
EKF2 core N unhealthy
libraries/AP_NavEKF2/AP_NavEKF2.cpp NavEKF2::pre_arm_check() · Відкрити в ArduPilot Copter-4.7.1
no EKF2 cores
libraries/AP_NavEKF2/AP_NavEKF2.cpp NavEKF2::pre_arm_check() · Відкрити в ArduPilot Copter-4.7.1