A unified, GUI-based dashboard for monitoring, debugging, and managing ROS 2 systems. It visualizes topics, nodes, TF trees, performance metrics, and provides utilities like bag recording and service calls — all in one app.
Author: Chetan Parihar License: MIT (Open Source)
- Live list of all active ROS 2 topics with types, pub/sub count, and frequency.
- Echo Tool: Double-click a topic to echo its message (single-shot or continuous).
- Copy topic names and Frame IDs via right-click menu.
Notes:
- Double-click topic name → echo once.
- Double-click frame ID → print frame information.
- Visual graph of ROS 2 network topology.
- Detailed tree view showing publishers, subscribers, and services per node.
- Topic filtering for isolating specific connections.
- Auto-generates TF tree as a PDF and loads it inside the GUI.
- Static TF Publisher: Publish static transforms (x, y, z, roll, pitch, yaw).
- Auto-refresh to follow dynamic frame changes.
- Real-time CPU, RAM, Disk I/O, and Network monitoring.
- Per-node breakdown of ROS CPU/memory usage.
- Estimated power usage based on system load.
- Searchable ROS and system log viewer.
-
Bag Recorder: Record any selection of topics (
.mcap/.db3). -
Bag Player: Playback recorded data with speed control.
-
Service Caller: GUI interface for calling services using JSON/YAML request bodies.
-
ROS 2: Tested on Humble; should work on Iron/Jazzy.
-
Python 3.8+
-
Required Packages
sudo apt install ros-humble-desktop ros-humble-tf2-tools ros-humble-rmw-cyclonedds-cpp
Replace
humblewith your ROS 2 distro if different.
Clone and install:
git clone https://github.com/chetan-parihar/ros2_debugging_app.git
cd ros2_debugging_app
sudo apt install python3.10-venv
sudo chmod +x setup.sh
bash setup.shThen open a new terminal and simply run:
bug
If PyQt5 gives issues on Linux, install system packages:
sudo apt install python3-pyqt5 python3-pyqt5.qtwebengineSource ROS:
source /opt/ros/humble/setup.bash
# source ~/ros2_ws/install/setup.bash # optional for local packagesRun the app:
python3 main.pyOr use the global alias:
bug
ModuleNotFoundError: rclpy
You forgot to source ROS. Run:
source /opt/ros/humble/setup.bash
TF tree not visible Install TF tools:
sudo apt install ros-humble-tf2-tools
Graph view empty Install Qt WebEngine:
sudo apt install python3-pyqt5.qtwebengine
Pull requests are welcome. Add features, improve tools, or enhance the UI.
MIT License
Copyright (c) 2024-2025 Chetan Parihar
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.




