You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: book/src/chapters/console.md
+303-4Lines changed: 303 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,20 @@
1
1
# ros-z-console
2
2
3
-
**ros-z-console** is a monitoring tool for ROS 2 systems built on Zenoh. It provides real-time graph inspection, dataflow monitoring, and metrics collection through two interfaces: an interactive TUI (Terminal User Interface) and a headless JSON streaming mode.
3
+
**ros-z-console** is a monitoring tool for ROS 2 systems built on Zenoh.
4
+
It provides real-time graph inspection, dataflow monitoring, and metrics
5
+
collection through two interfaces: an interactive TUI (Terminal User Interface)
6
+
and a headless JSON streaming mode.
4
7
5
8
```admonish tip
6
-
ros-z-console uses zero-interference monitoring via pure Zenoh subscribers - it never pollutes the ROS graph with its own presence.
9
+
ros-z-console uses zero-interference monitoring via pure Zenoh subscribers -
10
+
it never pollutes the ROS graph with its own presence.
7
11
```
8
12
9
13
## Network Topology
10
14
11
-
ros-z-console connects to the ROS 2 graph via a Zenoh router. All ROS 2 nodes using `rmw_zenoh_cpp` communicate through the same router, enabling ros-z-console to observe the entire system.
15
+
ros-z-console connects to the ROS 2 graph via a Zenoh router. All ROS 2 nodes
16
+
using `rmw_zenoh_cpp` communicate through the same router, enabling
You should see the `/chatter` topic, the `talker` and `listener` nodes, and their services appear in ros-z-console. Use the TUI to browse topics, check message rates, and inspect QoS settings.
68
+
You should see the `/chatter` topic, the `talker` and `listener` nodes, and
69
+
their services appear in ros-z-console. Use the TUI to browse topics, check
ros-z-console echo works seamlessly with standard ROS 2 nodes:
355
+
356
+
```bash
357
+
# Terminal 1: Standard ROS 2 publisher
358
+
ros2 run demo_nodes_cpp talker
359
+
360
+
# Terminal 2: ros-z-console subscriber
361
+
ros-z-console --headless --echo /chatter
362
+
```
363
+
364
+
```admonish info title="Type Hash Matching"
365
+
ros-z-console uses RIHS01 type hashes to ensure message compatibility. If type hashes don't match, the subscription will fail with a clear error message.
366
+
```
367
+
368
+
### Advanced Options
369
+
370
+
#### With Debug Logging
371
+
372
+
Enable detailed logging to troubleshoot discovery issues:
If schema discovery is slow, you can adjust timeouts in the code (default: 5 seconds).
388
+
389
+
### Troubleshooting
390
+
391
+
**No publishers found:**
392
+
393
+
```text
394
+
Failed to subscribe to /my_topic: Schema discovery failed: No publishers found for topic: /my_topic
395
+
```
396
+
397
+
**Solutions:**
398
+
399
+
- Verify the topic exists: `ros2 topic list`
400
+
- Check the topic is being published: `ros2 topic hz /my_topic`
401
+
- Ensure rmw_zenohd is running
402
+
- Wait for publisher to fully start (may take a few seconds)
403
+
404
+
**Type hash mismatch:**
405
+
406
+
```text
407
+
Failed to subscribe to /chatter: Type hash mismatch
408
+
```
409
+
410
+
This occurs when the publisher and subscriber have different message definitions. Ensure both are using the same ROS 2 distribution and package versions.
411
+
412
+
### Comparison with ros2 topic echo
413
+
414
+
| Feature | ros-z-console | ros2 topic echo |
415
+
|---------|---------------|-----------------|
416
+
|**Compilation**| No recompilation needed | Requires message packages installed |
417
+
|**Custom types**| Automatic discovery | Must have .msg files available |
418
+
|**Multiple topics**| Single command | Need multiple processes |
419
+
|**JSON output**| Built-in structured format | Requires additional parsing |
0 commit comments