Не вдалося прокласти маршрут в обхід геозон
Що пише ArduPilot:
- Dijkstra: …
Планування шляху Dijkstra (OA_TYPE 2 або 3) прокладає маршрут до наступної точки маршруту в обхід геозон, намальованих у наземній станції, тримаючись від них на OA_MARGIN_MAX (типово 5 м). Воно не вдалося, і далі йде причина; рядок повторюється кожні 5 с. Доки воно не вдається, коптер зупиняється й тримає місце, а не летить далі.
Що робити: найімовірніше спершу
«could not find path»: точка маршруту або сам коптер поза дозволеною зоною чи всередині забороненої, або прохід між геозонами завузький.
ПеревіртеПодивіться на карту: коптер, точка маршруту, до якої він летить, і геозони. Прохід має бути ширшим за подвійний
OA_MARGIN_MAX.ВиправтеВізьміть керування в Loiter і приведіть його додому. Потім перенесіть точку маршруту всередину геозони або перемалюйте геозону, щоб прохід лишався відкритим.
«overlapping polygon points» або «overlapping polygon lines»: дві точки геозони лежать в одному місці, або сторони перетинаються після додавання запасу.
ПеревіртеПошукайте на екрані Plan подвоєні точки, дуже гострі кути й перешийки, вужчі за подвійний
OA_MARGIN_MAX.ВиправтеПеремалюйте геозону простими фігурами й запишіть її на коптер знову.
«too many fence points»: намальовані геозони мають більше точок, ніж планувальник здатен опрацювати, — близько 250 загалом.
ВиправтеНамалюйте геозони з меншою кількістю точок.
«out of memory»: платі бракує вільної пам'яті для робочих даних планувальника.
ВиправтеЗменшіть кількість точок геозони й звільніть пам'ять, вимкнувши можливості, якими не користуєтеся.
«no position estimate»: коптер не знає, де він.
ВиправтеЗнайдіть повідомлення GPS чи EKF, що прийшли разом із цим: справжня проблема — втрачена позиція.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
OA_TYPE | Object Avoidance Path Planning algorithm to use |
OA_MARGIN_MAX | Object Avoidance wide margin distance |
FENCE_TYPE | Fence Type |
FENCE_ENABLE | Fence enable/disable |
Де це зробити:Пояснення фейлсейфівПеревірка енергії місії
Код, який це надсилає
Dijkstra: …
libraries/AC_Avoidance/AP_OADijkstra.cpp AP_OADijkstra::report_error() · Відкрити в ArduPilot Copter-4.7.1