ArduPilot ще не знає, де перебуває коптер
Що пише ArduPilot:
- PreArm: Fence enabled, need position estimate
- PreArm: Need Position Estimate
EKF, оцінювач позиції ArduPilot, ще не може сказати, де перебуває коптер, а комусь це потрібно. «Need Position Estimate»: режим польоту, в якому ви армуєте, використовує позицію (Loiter, PosHold, Auto, Guided, RTL), або ARMING_NEED_LOC дорівнює 1. «Fence enabled, need position estimate»: сам режим обійшовся б без неї, але ввімкнено кругову чи полігональну геозону. Позиція зараховується, коли EKF має її від GPS або від оптичного потоку чи системи з камерою; активний фейлсейф EKF теж не дає пройти перевірку. Пропустити її не можна.
Що робити: найімовірніше спершу
GPS ще не має фікса, або EKF його ще перевіряє: після фікса йому потрібно близько 10 с стабільних даних, перш ніж він почне використовувати GPS.
ПеревіртеРядок «EKF3 IMU0 is using GPS» позначає момент готовності.
ВиправтеЗачекайте надворі з нерухомим коптером.
Ви армуєте в приміщенні або без GPS у режимі, якому потрібна позиція.
ВиправтеАрмуйте в Stabilize або AltHold; на Loiter перемикайтеся в повітрі лише тоді, коли позиція вже є.
Увімкнено кругову чи полігональну геозону, а стежити за нею без позиції неможливо.
Перевірте
FENCE_ENABLEдорівнює 1, а уFENCE_TYPEвстановлено біт 1 (коло) або біт 2 (полігони).ВиправтеДочекайтеся позиції. Для польотів без GPS геозона лише за висотою (
FENCE_TYPE1) позиції не потребує.ARMING_NEED_LOCдорівнює 1: позиція потрібна в кожному режимі, щоб коптер завжди міг повернутися до точки зльоту.ВиправтеДочекайтеся GPS-фікса: саме для цього й існує це налаштування.
EKF відкидає GPS, бо з ним не узгоджуються компас чи інерціальні датчики.
ПеревіртеGPS показує 3D-фікс і багато супутників, проте повідомлення тримається хвилинами; поруч є інші повідомлення перед армуванням про компас чи EKF.
ВиправтеСпершу розберіться з тими повідомленнями, потім перезавантажте й тримайте коптер нерухомим під час запуску.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
ARMING_NEED_LOC | Require vehicle location |
FENCE_ENABLE | Fence enable/disable |
FENCE_TYPE | Fence Type |
GPS1_TYPE | GPS type |
EK3_SRC1_POSXY | Position Horizontal Source (Primary) |
Де це зробити:Налаштування й тюнінгНалаштування й тюнінгПояснення фейлсейфів
Код, який це надсилає
PreArm: Fence enabled, need position estimate
ArduCopter/AP_Arming.cpp AP_Arming_Copter::mandatory_gps_checks() · Відкрити в ArduPilot Copter-4.6.3
ArduCopter/AP_Arming_Copter.cpp AP_Arming_Copter::mandatory_position_checks() · Відкрити в ArduPilot Copter-4.7.1
PreArm: Need Position Estimate
ArduCopter/AP_Arming.cpp AP_Arming_Copter::mandatory_gps_checks() · Відкрити в ArduPilot Copter-4.6.3
ArduCopter/AP_Arming_Copter.cpp AP_Arming_Copter::mandatory_position_checks() · Відкрити в ArduPilot Copter-4.7.1