# 系统故障注入

系统故障注入允许您诱发不同类型的传感器和系统故障,您可以使用 MAVSDK 故障插件 (打开新窗口)或通过 PX4 控制台手动操作,例如 MAVLink 外壳.这样就可以更容易地测试 安全失控保护 行为,更广泛地说,是 PX4 在系统和传感器停止正常工作时的行为。

故障注入默认为禁用,可以使用 SYS_FAILURE_EN 参数。

警告

故障喷射仍在开发中。本文撰写时(PX4 v1.12):

  • 它只能在模拟中使用(计划支持实际飞行中的故障注入)。
  • 许多故障类型并未广泛实施。在这种情况下,命令会返回一条 "unsupported" 消息。

# 故障系统指令

可以使用 故障系统指令 从任何 PX4 控制台/Shell,指定故障目标和类型。

# 语法

的完整语法 失败 命令是

故障<组件> <故障类型> [-i <实例编号>]

在哪里?

  • 组成部分:
    • 传感器
      • 陀螺仪:陀螺仪
      • 加速度:加速计
      • 杂志:磁强计
      • 巴罗:气压计
      • 全球定位系统:全球定位系统
      • 光流:光流
      • io:视觉惯性测距。
      • 距离传感器:距离传感器(测距仪)。
      • 空速:空速传感器。
    • 系统
      • 电池:电池。
      • 发动机:电机。
      • 伺服器:伺服。
      • 避免:回避。
      • rc_signal:RC 信号。
      • mavlink_signal:MAVLink 信号(数据遥测)。
  • 故障类型:
    • 好的:正常发布(禁用故障注入)。
    • 关闭:停止发布。
    • 无法摆脱的:每次报告相同值 (可以 表示传感器出现故障)。
    • 垃圾:发布随机噪音。这看起来像是在读取未初始化的内存。
    • 错误的:发布无效值(看起来仍然合理/不是垃圾)。
    • :以优惠价格出版。
    • 晚点:发布有效数据时有明显延迟。
    • 间歇式:间歇性发布。
  • 实例编号 (可选):受影响传感器的实例编号。0(默认)表示指定类型的所有传感器。

# 示例

模拟失去遥控信号,而无需关闭遥控控制器:

  1. 启用参数 SYS_FAILURE_EN.
  2. 在 MAVLink 控制台或 SITL 上输入以下命令 pxh 外壳:
    # 失效 RC(关闭发布)
    故障 rc_signal 关闭
    
    # 重新启动 RC 发布
    失败 rc_signal ok
    

# MAVSDK 故障插件

MAVSDK 故障插件 (打开新窗口) 可用于以编程方式注入故障。它用于 PX4 集成测试 来模拟故障情况(例如,见 PX4-Autopilot/test/mavsdk_tests/autopilot_tester.cpp (打开新窗口)).

插件 API 是对上图所示故障命令的直接映射,并增加了一些与连接相关的错误信号。