# 시스템 장애 주입

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: GPS
      • optical_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 신호 손실을 시뮬레이션하려면:

  1. 매개변수 SYS_FAILURE_EN을 활성화합니다.
  2. 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는 연결과 관련된 몇 가지 추가 오류 신호와 함께, 위에 표시된 실패 명령의 직접 매핑입니다.