# 시스템 장애 주입
MAVSDK 오류 플러그인 (opens new window)을 사용하는 프로그래밍 방식이나 MAVLink 셸과 같은 PX4 콘솔을 통하여, 수동으로 다양한 유형의 센서등과 같은 시스템 오류를 주입할 수 있습니다. 이를 통하여 안전 안전장치 동작 보다 일반적으로 시스템과 센서가 올바르게 작동하지 않을 때, PX4 동작 방식을 보다 쉽게 테스트할 수 있습니다.
실패 주입은 기본적으로 비활성화되어 있으며, SYS_FAILURE_EN 매개변수를 사용하여 활성화할 수 있습니다.
WARNING
실패 주입은 아직 개발 중입니다. 작성 당시(PX4 v1.12):
- 시뮬레이션에서만 사용할 수 있습니다(실제 비행에서 실패 주입 모두 지원 예정).
- 많은 실패 유형이 광범위하게 구현되지 않았습니다. 이러한 경우 명령은 "지원되지 않는" 메시지와 함께 반환됩니다.
# 장애 시스템 명령
모든 PX4 콘솔/셸에서 failure system 명령을 사용하여 실패 대상과 실패 유형을 모두 지정하여 실패를 주입할 수 있습니다.
# 구문
failure 명령의 전체 구문은 다음과 같습니다.
failure <component> <failure_type> [-i <instance_number>]
여기서:
- 구성요소:
- 센서:
gyro
: 자이로accel
: 가속도계mag
: 자기계baro
: 기압계gps
: GPSoptical_flow
: 광류 센서vio
: 시각적 관성 주행 거리distance_sensor
: 거리 센서(거리 측정기)airspeed
: 대기속도 센서
- 시스템:
battery
: 배터리motor
: 모터servo
: 서보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을 활성화합니다.
- MAVLink 콘솔 또는 SITL pxh 셸에서 다음 명령을 실행합니다.
# Fail RC (turn publishing off) failure rc_signal off # Restart RC publishing failure rc_signal ok
# MAVSDK 실패 플러그인
MAVSDK 실패 플러그인 (opens new window)을 사용하여, 프로그래밍 방식으로 실패를 주입할 수 있습니다. PX4 통합 테스트에서 실패 사례를 시뮬레이션하는 데 사용됩니다(예: PX4-Autopilot/test/mavsdk_tests/autopilot_tester.cpp (opens new window) 참조).
플러그인 API는 연결과 관련된 몇 가지 추가 오류 신호와 함께, 위에 표시된 실패 명령의 직접 매핑입니다.