|
1 | 1 | # Greenwave Monitor |
2 | 2 |
|
3 | | -A high-performance diagnostic tool for ROS 2 that provides real-time monitoring of topic frame rates and latency metrics. The monitor node offers a significant performance improvement over the standard `ros2 topic hz` command. The dashboard is a terminal-based interface that provides a real-time view of the monitoring data, as well as displaying diagnostic data published by sensor drivers. |
| 3 | +A high-performance diagnostic tool for ROS 2 that provides real-time monitoring of topic frame rates and latency metrics. The monitor node is like a more performant `ros2 topic hz` with ROS2 Diagnostics output, and services to manage topics. The dashboard is a terminal-based interface that provides a real-time view of the monitoring data, as well as displaying diagnostic data published by sensor drivers. |
4 | 4 |
|
5 | | -## Dashboard Interface |
| 5 | +The diagnostics messages follow conventions from [Isaac ROS NITROS](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nitros), that means configured NITROS nodes can be monitored with the same tool without additional subscriber overhead. For example the drivers from [Isaac ROS NOVA](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nova) can be monitored with the same tool (also, did you know you can enable all NITROS nodes to publish diagnostics? see the bottom of [this](https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_nitros/isaac_ros_nitros/index.html) page). |
6 | 6 |
|
7 | | -The Greenwave Monitor builds upon [r2s](https://github.com/mjcarroll/r2s) to provide an intuitive terminal interface that displays real-time statistics for all monitored topics: |
| 7 | +Finally, we provide monitoring code as a standalone C++ header, which can be integrated into your own nodes. |
8 | 8 |
|
9 | | - |
| 9 | +## Dashboard Interface |
10 | 10 |
|
11 | | -By integrating the r2s_gw TUI with the Greenwave Monitor, the dashboard retains all the information from r2s plus a list of: |
12 | | -- Topic names |
13 | | -- Message types |
14 | | -- Message receive rates in Hz |
15 | | -- Expected frequencies and acceptable tolerance |
16 | | -- Topic statuses |
| 11 | +The Greenwave Monitor ships with a fork of [r2s](https://github.com/mjcarroll/r2s) to provide an intuitive terminal interface that displays real-time statistics for all monitored topics. Click around with your mouse and tab key, and see the bottom bar with keyboard shortcuts. |
17 | 12 |
|
18 | | -The dashboard also enables the following runtime features: |
19 | | -- Interactive controls for adding/removing topics from monitoring |
20 | | -- Interactive controls for setting/clearing expected topic frequencies and acceptable tolerances |
| 13 | + |
21 | 14 |
|
22 | 15 | ## Key Features |
23 | 16 |
|
24 | | -- **High Performance**: Up to 10.35x more efficient than the built-in `ros2 topic hz` command |
25 | | -- **Superior Throughput**: Handles topics with rates up to 10 kHz (the standard tool caps around 4.7 kHz) |
26 | | -- **Accurate Measurements**: Reports precise 30.0 fps values for image_raw NITROS topics without dropping frames |
| 17 | +- **High Performance**: Up to 10x more CPU efficient than the built-in `ros2 topic hz` command |
27 | 18 | - **Interactive Dashboard**: Real-time visualization of monitoring data with an easy-to-use terminal interface |
28 | 19 | - **Dynamic Topic Management**: Add or remove topics from monitoring without restarting |
29 | 20 | - **Topic Status Indicators**: Color-coded topic status to easily catch topics that are not working as expected |
30 | 21 | - **Universal Compatibility**: Displays diagnostics from any source that publishes a compatible `/diagnostics` topic, including NVIDIA Nova sensors and other hardware drivers |
31 | 22 |
|
32 | 23 | ## Installation |
| 24 | +TODO |
33 | 25 |
|
34 | 26 | ```bash |
35 | 27 | cd ros_ws/src |
@@ -67,7 +59,7 @@ ros2 run greenwave_monitor r2s_gw_dashboard --log-dir /path/to/logs |
67 | 59 |
|
68 | 60 | ### Manual Launch (ros2 topic hz mode) |
69 | 61 |
|
70 | | -Alternatively, you can monitor specific topics by using the launch file: |
| 62 | +If you want to use the tool as C++ based ros2 topic hz, you can do so with the following: |
71 | 63 |
|
72 | 64 | ```bash |
73 | 65 | ros2 launch greenwave_monitor hz.launch.py topics:='["/topic1", "/topic2"]' |
|
0 commit comments