qrb_ros_system_monitor sample application has various ROS nodes that publish system status information, such as CPU loading, memory usage, and disk space.
Pipeline for qrb_ros_system_monitor
The figure shows the pipeline, which collects system information with the sysfs node and some system standard command tools, and then publishes this data with ROS messages.
Figure: qrb_ros_system_monitor pipeline
ROS nodes used in the qrb_ros_system_monitor pipeline
ROS topics used in the qrb_ros_system_monitor pipeline
| ROS topic | Message type | Published/Subscribed by | Description |
|---|---|---|---|
/cpu | qrb_ros_system_monitor::CpuMonitor | Published by CpuMonitor | Publishes the CPU loading information. |
/memory | qrb_ros_system_monitor::MemoryMonitor | Published by MemoryMonitor | Publishes the memory usage information. |
/disk | qrb_ros_system_monitor::DiskMonitor | Published by DiskMonitor | Publishes the disk space information. |
/swap | qrb_ros_system_monitor::SwapMonitor | Published by SwapMonitor | Publishes the swap space information. |
/temperature | qrb_ros_system_monitor::TemperatureMonitor | Published by TemperatureMonitor | Publishes the CPU temperature. |
/battery | qrb_ros_system_monitor::BatteryMonitor | Published by BatteryMonitor | Publishes the battery information. |
ROS services used in the qrb_ros_system_monitor pipeline
| ROS service | Message type | Served by | Description |
|---|---|---|---|
/system_info_server | qrb_ros_system_monitor::SystemInfoServer | SystemInfoServer | Publishes static system information, such as CPU count. |
Prerequisites
You have Set up the device according to Set up the environment for running sample applications.Run out-of-the-box qrb_ros_system_monitor
Try me
Try me
1
Set up QIR SDK and ROS2 environment on the device
Start two terminals, and run the following commands in each terminal.
SSH Session
2
Run the system monitor ROS node
In terminal 1, run the system monitor ROS node.The output looks like this:
SSH Session
3
Check the system information
In terminal 2, check the ROS topics with Check the CPU information with
ros2 topic list.SSH Session
Output
ros2 topic echo /cpu:SSH Session
Output
Build and run qrb_ros_system_monitor
Try me
Try me
1
Build qrb_ros_system_monitor on the host computer
Build
qrb_ros_system_monitor provided by the QIR SDK on the host computer, reference: Develop a sample ROS2 application. Take IQ-9075 as an example:2
Push qrb_ros_system_monitor to the device
NoteEnsure that the QIR SDK is installed on the device.
SSH Session
3
Set up QIR SDK and ROS2 environment on the device
Start two terminals, and run the following commands in each terminal.
SSH Session
4
Run the system monitor ROS node
In terminal 1, run the system monitor ROS node.
SSH Session
5
Get the system information
In terminal 2, get the system information.
SSH Session
Limitation
Thesysfs node and Linux standard command-line tools collect the system information values. Therefore, if the sysfs path changes or the output format of command-line tools changes, those ROS nodes may not work as expected.
