> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 使用 qrb_ros_system_monitor 发布系统状态

> qrb_ros_system_monitor 示例应用包含多个 ROS 节点，它们发布系统状态信息，例如 CPU 负载、内存使用情况和磁盘空间。

## `qrb_ros_system_monitor` 的管道流程

下图展示了管道流程，它通过 sysfs 节点和一些系统标准命令行工具收集系统信息，然后将这些数据以 ROS 消息发布出去。

<Frame caption="qrb_ros_system_monitor 管道。">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/qualcomm-prod/zh/SDKs/QIR-SDK-Ubuntu/images/image6.png" alt="QRB ROS System Monitor modules reading proc, sysfs, and df sources and publishing the cpu, memory, disk, temperature, battery, and swap topics." />
</Frame>

## `qrb_ros_system_monitor` 管道中使用的 ROS 节点

下表列出了 `qrb_ros_system_monitor` 管道中使用的 ROS 节点，并说明每个节点发布的内容。

| ROS 节点               | 说明                  |
| -------------------- | ------------------- |
| `CpuMonitor`         | 发布 CPU 负载信息。        |
| `MemoryMonitor`      | 发布内存使用信息。           |
| `DiskMonitor`        | 发布磁盘使用信息。           |
| `SwapMonitor`        | 发布交换空间信息            |
| `TemperatureMonitor` | 发布 CPU 温度。          |
| `BatteryMonitor`     | 发布电池信息。             |
| `SystemInfoServer`   | 提供静态系统信息，例如 CPU 数量。 |

## `qrb_ros_system_monitor` 管道中使用的 ROS 话题

下表列出了 `qrb_ros_system_monitor` 管道中使用的 ROS 话题，以及每个话题的消息类型和说明。

| ROS 话题                | 类型                                           | 说明                |
| --------------------- | -------------------------------------------- | ----------------- |
| `/cpu`                | `qrb_ros_system_monitor::CpuMonitor`         | CPU 负载信息。         |
| `/memory`             | `qrb_ros_system_monitor::MemoryMonitor`      | 内存使用信息。           |
| `/disk`               | `qrb_ros_system_monitor::DiskMonitor`        | 磁盘使用信息。           |
| `/swap`               | `qrb_ros_system_monitor::SwapMonitor`        | 交换空间信息            |
| `/temperature`        | `qrb_ros_system_monitor::TemperatureMonitor` | CPU 温度。           |
| `/battery`            | `qrb_ros_system_monitor::BatteryMonitor`     | 电池信息。             |
| `/system_info_server` | `qrb_ros_system_monitor::SystemInfoServer`   | 静态系统信息，例如 CPU 数量。 |

## `qrb_ros_system_monitor` 管道中 ROS 话题所使用的 ROS 服务

下表列出了 `qrb_ros_system_monitor` 管道中使用的 ROS 服务，以及每个服务的类型和说明。

| ROS 服务                | 类型                                         | 说明                |
| --------------------- | ------------------------------------------ | ----------------- |
| `/system_info_server` | `qrb_ros_system_monitor::SystemInfoServer` | 静态系统信息，例如 CPU 数量。 |

## 前提条件

你已根据[安装 QIR SDK](./install-the-qir-sdk)完成设备设置，并在设备上安装了 ROS2 Jazzy 和 Qualcomm Intelligent Robotics (QIR) SDK。

## 开箱即用运行 `qrb_ros_system_monitor`

<Steps>
  <Step title="在终端 1 中运行 qrb_ros_system_monitor">
    ```bash Run the system monitor theme={null}
    source /opt/ros/jazzy/setup.bash
    ros2 run qrb_ros_system_monitor qrb_ros_system_monitor
    ```
  </Step>

  <Step title="在终端 2 中，获取该节点的话题并根据需要检查系统状态">
    ```bash List the topics and echo the system status theme={null}
    source /opt/ros/jazzy/setup.bash
    ros2 topic list
    # You can now echo system monitor, for example, /cpu
    ros2 topic echo /cpu
    ```
  </Step>
</Steps>

## 限制

系统信息值由 sysfs 节点和 Linux 标准命令行工具收集。因此，如果 sysfs 路径变更或命令行工具的输出格式变更，那些 ROS 节点可能无法正常工作。
