SmartRTL не зміг початися: перехід на RTL або Land
Що пише ArduPilot:
- SmartRTL Unavailable, Trying RTL Mode
- SmartRTL Unavailable, Using Land Mode
Фейлсейф попросив SmartRTL, який повертається тим шляхом, яким коптер прилетів, і SmartRTL відмовився почати. Коптер переходить далі, як сказано в рядку: на RTL, а якщо й RTL відхилено — на Land, або відразу на Land (знижується після паузи 4 с). SmartRTL починається лише тоді, коли шлях записується: оцінка позиції була доброю під час армування й після нього, а пам'ять шляху (SRTL_POINTS точок) не була заповнена 15 с.
Що робити: найімовірніше спершу
Шлях не записувався: оцінка позиції не була доброю під час армування або була поганою 15 с у польоті («SmartRTL deactivated: bad position»).
ПеревіртеПошукайте в повідомленнях логу «SmartRTL deactivated».
ВиправтеЯкщо фейлсейф розраховує на SmartRTL, перед армуванням дочекайтеся доброї позиції, а також з'ясуйте, чому позиція зникла в польоті (повідомлення GPS, компаса, EKF близько того часу).
Пам'ять шляху заповнилася в довгому чи звивистому польоті («SmartRTL deactivated: buffer full»).
Перевірте
SRTL_POINTSтипово 300, а точки зберігаються не ближче ніжSRTL_ACCURACY(2 м) одна від одної.ВиправтеЗбільште
SRTL_POINTS(щонайбільше 500; 100 точок займають близько 3 кБ пам'яті) і перезавантажте, або збільштеSRTL_ACCURACY, щоб точки зберігалися рідше.SRTL_POINTSдорівнює 0, а це вимикає SmartRTL повністю.ВиправтеЗадайте
SRTL_POINTS300 і перезавантажте або оберіть дію фейлсейфу без SmartRTL.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
SRTL_POINTS | SmartRTL maximum number of points on path |
SRTL_ACCURACY | SmartRTL accuracy |
FS_THR_ENABLE | Throttle Failsafe Enable |
FS_GCS_ENABLE | Ground Station Failsafe Enable |
BATT_FS_LOW_ACT | Low battery failsafe action |
BATT_FS_CRT_ACT | Critical battery failsafe action |
Де це зробити:Пояснення фейлсейфівНалаштування й тюнінг
Код, який це надсилає
SmartRTL Unavailable, Trying RTL Mode
ArduCopter/events.cpp Copter::set_mode_SmartRTL_or_RTL() · Відкрити в ArduPilot Copter-4.7.1
SmartRTL Unavailable, Using Land Mode
ArduCopter/events.cpp Copter::set_mode_SmartRTL_or_land_with_pause() · Відкрити в ArduPilot Copter-4.7.1