Watchdog перезапустив польотний контролер
Що пише ArduPilot:
- Forcing safety off for watchdog
- WDG: TN SLN FLN FTN FA0x… FTPN FLR0x… FICSRN MMN MCN IEN IECN TN:…
Watchdog — це апаратний таймер, який перезапускає процесор, коли головний цикл перестає працювати. Він щойно це зробив. Рядок «WDG:» — те, що було збережено за мить до того: T — завдання планувальника, яке виконувалося (-1 — між завданнями, -3 — очікування відліку IMU, -4 — всередині очікування), SL — рядок коду блокування, на яке він чекав, FL, FT, FA, FTP, FLR і FICSR — збій процесора, якщо він був (рядок, тип, адреса, пріоритет потоку, адреса повернення, стан переривань), MM і MC — останні оброблені повідомлення й команда MAVLink, IE та IEC — біти й кількість внутрішніх помилок, TN — назва потоку.
Що робити: найімовірніше спершу
Це сталося в польоті.
ВиправтеСідайте негайно, якщо апарат ще летить. Коптер після перезапуску повертається дизармованим і падає. Літак планерує далі з вимкненим мотором, і його можна одразу заармувати знову: після перезапуску заармованого літака від watchdog перевірки армування пропускаються. Не літайте знову, доки причину не з'ясовано.
Це сталося на столі після зміни параметра, скрипта чи нового пристрою.
ПеревіртеT називає завдання, а MM і MC — про що наземна станція щойно просила.
ВиправтеСкасуйте останню зміну й подивіться, чи воно повертається. Зазвичай винен Lua-скрипт або драйвер пристрою, який не відповідає.
Помилка в прошивці або несправність плати.
ПеревіртеFT не 0: збій дав сам процесор.
ВиправтеЗавантажте поточну стабільну прошивку. Якщо повториться — надішліть на форум ArduPilot увесь рядок «WDG:», банер прошивки й лог; у лозі ті самі дані є в повідомленні WDOG.
Після перезапуску від watchdog ArduPilot намагається продовжити: повертає блокування безпеки в попередній стан («Forcing safety off for watchdog»), відновлює дім і орієнтацію, пропускає калібрування барометра й виставляє внутрішню помилку «watchdog_rst», яка не дає коптеру армуватися до чистого перезапуску. Сам watchdog — це біт 0 у BRD_OPTIONS; лишайте його ввімкненим.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
BRD_OPTIONS | Board options |
Де це зробити:Налаштування й тюнінг
Код, який це надсилає
Forcing safety off for watchdog
libraries/AP_BoardConfig/board_drivers.cpp AP_BoardConfig::board_init_safety() · Відкрити в ArduPilot Copter-4.7.1
WDG: TN SLN FLN FTN FA0x… FTPN FLR0x… FICSRN MMN MCN IEN IECN TN:…
libraries/AP_Vehicle/AP_Vehicle.cpp AP_Vehicle::send_watchdog_reset_statustext() · Відкрити в ArduPilot Copter-4.7.1