qrb_ros_system_monitor 示例应用程序包含多个 ROS 节点,用于发布系统状态信息,例如 CPU 负载、内存使用率和磁盘空间。
qrb_ros_system_monitor 的管道
下图展示了该管道,它通过 sysfs 节点和一些系统标准命令工具收集系统信息,然后通过 ROS 消息发布这些数据。
图:qrb_ros_system_monitor 管道
qrb_ros_system_monitor 管道中使用的 ROS 节点
qrb_ros_system_monitor 管道中使用的 ROS 话题
| ROS 话题 | 消息类型 | 发布/订阅方 | 描述 |
|---|
/cpu | qrb_ros_system_monitor::CpuMonitor | 由 CpuMonitor 发布 | 发布 CPU 负载信息。 |
/memory | qrb_ros_system_monitor::MemoryMonitor | 由 MemoryMonitor 发布 | 发布内存使用信息。 |
/disk | qrb_ros_system_monitor::DiskMonitor | 由 DiskMonitor 发布 | 发布磁盘空间信息。 |
/swap | qrb_ros_system_monitor::SwapMonitor | 由 SwapMonitor 发布 | 发布交换空间信息。 |
/temperature | qrb_ros_system_monitor::TemperatureMonitor | 由 TemperatureMonitor 发布 | 发布 CPU 温度。 |
/battery | qrb_ros_system_monitor::BatteryMonitor | 由 BatteryMonitor 发布 | 发布电池信息。 |
qrb_ros_system_monitor 管道中使用的 ROS 服务
| ROS 话题 | 消息类型 | 服务方 | 描述 |
|---|
/system_info_server | qrb_ros_system_monitor::SystemInfoServer | SystemInfoServer | 发布静态系统信息,例如 CPU 数量。 |
前提条件
您已按照设置运行示例应用程序的环境完成了设置设备。
运行开箱即用的 qrb_ros_system_monitor
- 启动两个终端,并在每个终端中运行以下命令,在设备上设置 QIR SDK 和 ROS2 环境。
- 在终端 1 中,运行系统监控 ROS 节点。
- 在终端 2 中,通过 ROS 话题查看系统信息。
构建并运行 qrb_ros_system_monitor
-
在主机上构建 QIR SDK 提供的
qrb_ros_system_monitor。
-
将
qrb_ros_system_monitor 推送到设备。
-
启动两个终端,并在每个终端中运行以下命令,在设备上设置 QIR SDK 和 ROS2 环境。
-
在终端 1 中,运行系统监控 ROS 节点。
-
在终端 2 中,获取系统信息。
系统信息值由 sysfs 节点和 Linux 标准命令行工具收集。因此,如果 sysfs 路径发生变化或命令行工具的输出格式发生变化,这些 ROS 节点可能无法按预期工作。