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

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

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

English

Lua-скрипт зупинився з помилкою

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

Що пише ArduPilot:

Тут пояснено ще: 3
  • Panic: …
  • … did not return a function (0xN)
  • … returned bad result count (N)

Помилки скриптів приходять як «Lua: …», зазвичай з іменем файлу й номером рядка. «Error: …» означає, що файл навіть не вдалося прочитати як Lua (синтаксична помилка); інші тексти — помилки, що сталися під час роботи. «did not return a function», «did not return a delay» і «returned bad result count» означають, що функція update скрипта завершилася не так, як очікує ArduPilot: функцією для наступного виклику й затримкою в мілісекундах. Скрипт із помилкою вилучається й більше не запускається; решта працює далі. Рядок повторюється кожні 10 секунд, десять разів.

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

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

    ПеревіртеУ тексті є «attempt to call a nil value» або «bad argument» із номером рядка.

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

  2. Скрипту потрібне те, чого немає: файл модуля, власні параметри, пристрій.

    Перевірте«module … not found» означає, що у APM/scripts/modules бракує файлу. Прочитайте інструкцію самого аплета щодо параметрів, яких він очікує.

    ВиправтеСкопіюйте модулі поруч зі скриптом, задайте параметри, яких він просить, і перезавантажте.

  3. Помилка у вашому власному скрипті.

    ПеревіртеПерейдіть до номера рядка з повідомлення.

    ВиправтеВиправте й перезавантажте або перезапустіть скрипти. Функція update має закінчуватися рядком на кшталт «return update, 100».

«Panic: …» (4.6) і «Engine Error: …» (4.7) — помилки самого рушія, поза будь-яким окремим скриптом. 4.6 викидає всі скрипти й завантажує їх знову від початку; 4.7 завершує рушій, і далі йде «Scripting: stopped».

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

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

Error: …

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

Unable to load the file: …

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

Unknown error (N) loading …

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

Engine Error: …

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

І ще 5 повідомлень, що надсилаються з тих самих місць.

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

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