Інжекція помилки системи
Ін'єкція відмов системи дозволяє викликати різні типи відмов датчиків та систем, або програмно за допомогою плагіну відмови MAVSDK, або "вручну" через консоль PX4, таку як оболонка MAVLink. This enables easier testing of safety failsafe behaviour, and more generally, of how PX4 behaves when systems and sensors stop working correctly.
Впровадження відмов вимкнено за замовчуванням і може бути увімкнено за допомогою параметра SYS_FAILURE_EN.
WARNING
Впровадження відмов все ще знаходиться в розробці. На момент написання (PX4 v1.14):
- Це можна використовувати лише в симуляції (підтримка як для впровадження в реальному польоті запланована).
- Потребує підтримки в симуляторі. Це підтримується в Gazebo Classic
- Багато типів відмов не широко реалізовані. У таких випадках команда повернеться з повідомленням "unsupported".
Команда системи збою
Помилки можна впроваджувати за допомогою команди системи помилок з будь-якої консолі/оболонки PX4, вказавши як ціль, так і тип помилки.
Синтаксис
Повний синтаксис команди failure є:
sh
failure <component> <failure_type> [-i <instance_number>]
де:
- component:
- Сенсори:
gyro
: Gyro.accel
: Accelerometer.mag
: Magnetometerbaro
: Barometergps
: GPSoptical_flow
: Optical flow.vio
: Visual inertial odometry.distance_sensor
: Датчик відстані (дальніомір).airspeed
: Датчик швидкості повітря.
- Системи:
battery
: Акумулятор.motor
: Двигун.servo
: Сервопривід.avoidance
: Avoidance.rc_signal
: RC Сигнал.mavlink_signal
: Сигнал MAVLink (телеметрія даних).
- Сенсори:
- failure_type:
ok
: Опублікувати як звичайно (Вимкнути впровадження випадкових помилок).off
: Зупинити публікацію.stuck
: Повідомляє одне й те ж значення кожного разу (може вказувати на несправність датчика).garbage
: Опублікуйте випадковий шум. Це схоже на читання неініціалізованої пам'яті.wrong
: Публікує недійсні значення (які все ще виглядають розумними / не є "сміттям").slow
: Публікація зі зниженою швидкістю.delayed
: Опублікуйте дійсні дані зі значним запізненням.intermittent
: Публікувати періодично.
- instance number (необов'язково): Номер екземпляра пошкодженого датчика. 0 (за замовчуванням) вказує на всі сенсори вказаного типу.
Приклад
Щоб симулювати втрату сигналу RC без вимкнення вашого пульта керування RC:
Увімкніть параметр SYS_FAILURE_EN.
Введіть наступні команди e консолі MAVLink або SITL pxh shell:
sh# Fail RC (turn publishing off) failure rc_signal off # Restart RC publishing failure rc_signal ok
MAVSDK відлагоджувальний плагін
Плагін невдачі MAVSDK може бути використаний для програмного впровадження невдач. Використовується в PX4 Інтеграційному тестуванні для моделювання випадків відмов (наприклад, див. PX4-Autopilot/test/mavsdk_tests/autopilot_tester.cpp).
API плагіна - це пряме відображення команди збою, показаної вище, з деякими додатковими сигналами про помилки, пов'язані з підключенням.