← Усі інструменти

Пояснення повідомлень і помилок

Що означає повідомлення ArduPilot і що з ним робити

English

Lua-скрипти повідомляють про проблему й блокують армування

Не даєПлата, внутрішні помилки, CAN, скрипти

Що пише ArduPilot:

Lua-скрипти — це невеликі програми, що працюють поруч із польотним кодом (SCR_ENABLE 1). Після «Scripting:» іде одне з трьох: «out of memory» (рушій скриптів не отримав своєї пам'яті), «failed to start» (не вдалося створити його потік) або текст останньої помилки скрипта. Будь-яка помилка скрипта запам'ятовується й блокує армування, доки скрипти не перезапустять або плату не перезавантажать, бо скрипт, що зупинився, може бути тим, від якого залежить апарат. Попередження «Required SCR_HEAP_SIZE over N» теж рахується такою помилкою.

Що робити: найімовірніше спершу

  1. Скрипт зупинився з помилкою.

    ПеревіртеЗнайдіть у повідомленнях рядок «Lua: …»: він називає файл і номер рядка. Він повторюється кожні 10 секунд, десять разів.

    ВиправтеВиправте скрипт або замініть його версією для вашої прошивки («Каталог Lua-аплетів» показує їх за версіями), потім перезавантажте.

  2. Скриптам треба більше пам'яті, ніж дає SCR_HEAP_SIZE, або плата стільки дати не може.

    ПеревіртеТекст — «out of memory» або «Required SCR_HEAP_SIZE over N».

    ВиправтеДивіться пояснення повідомлень про пам'ять скриптів: збільште SCR_HEAP_SIZE понад N або зменште до того, що плата має вільним, і перезавантажте.

  3. Скрипти ввімкнено, але ви ними не користуєтеся, а забутий файл на картці дає помилку.

    ПеревіртеЗагляньте в APM/scripts на картці.

    ВиправтеПриберіть забуті скрипти; якщо не користуєтеся жодним — задайте SCR_ENABLE 0 і перезавантажте.

Біт 4 у SCR_DEBUG_OPTS вимикає цю перевірку. Не користуйтеся ним, щоб злетіти: скрипт, що дав помилку, так і не працює.

Параметри, на які варто глянути

ПараметрЩо це
SCR_ENABLEEnable Scripting
SCR_HEAP_SIZEScripting Heap Size
SCR_DEBUG_OPTSScripting Debug Level
Код, який це надсилає

Scripting: …

libraries/AP_Scripting/AP_Scripting.cpp AP_Scripting::arming_checks() · Відкрити в ArduPilot Copter-4.7.1

Тут написано для: Коптер, 4.6. В інструменті можна вибрати свій апарат і версію, побачити значення власних параметрів поруч із названими тут і перетягнути лог польоту, щоб отримати пояснення до кожного повідомлення в ньому.

Відкрити в інструменті