README.md
April 17, 2026 ยท View on GitHub

RQml is your modern, QML-based robotics debugging, introspection and control toolbox for ROS 2! ๐
It provides a flexible, plugin-based architecture that empowers you to create your own custom plugins and control interfaces to inspect and debug your robotics applications, leveraging the full power of Qt 6 and QML. โจ
Built with KDAB's KDDockWidgets, RQml offers a highly customizable docking interface, letting you arrange your workspace exactly how you like it. ๐จ
Support
You can support RQml by developing awesome plugins as described in PLUGIN_DEVELOPMENT.md.
Alternatively, donations are always welcome :)
โจ Features
- ๐ ROS 2 Integration: Seamlessly connects with the ROS 2 ecosystem using the QML6 ROS2 Plugin.
- ๐ฅ๏ธ Modern UI: Built on Qt 6 and QML for fluid, high-performance user interfaces.
- ๐งฉ Plugin System: Extensible architecture for easily adding new tools and widgets.
- ๐ช Docking Interface: Flexible layout management with KDDockWidgets.
- ๐งฐ Default Plugins: Comes with a suite of essential tools for robotics development.
๐ฌ Demo Video
https://github.com/user-attachments/assets/dc21676b-ed8f-4aa1-accd-fd5f4f7adeb0
๐ฆ Installation
The easiest way to get started is to install RQml directly from the ROS buildfarm! (Coming soon)
sudo apt install ros-<distro>-rqml
(Replace <distro> with your ROS 2 distribution, e.g., humble, jazzy)
Alternatively, see Building from Source
๐ Usage
Ready to go? Launch the application with a single command:
rqml
๐ Managing Layouts
RQml allows you to save and load your workspace configurations. Arrange your plugins to your heart's content and save the layout to restore it later! ๐พ
Note
Use Ctrl+Shift+S to save your current config to one of the directories configured in the settings.
Use Ctrl+R to quickly load one of your recently opened configurations or Ctrl+O to open
a configuration from your config directories.
๐ Default Plugins
The rqml_default_plugins package includes these awesome tools:
- ActionCaller: Interface for calling ROS 2 Actions.
- Console: A log viewer for ROS 2 messages.
- ControllerManager: Manage and switch ROS 2 controllers.
- ControllerManagerStatistics: Inspect statistics from ROS 2 controllers.
- ImageView: View camera streams and images.
- JointTrajectoryController: Interface for sending joint trajectory commands.
- MessagePublisher: Publish custom ROS 2 messages.
- MoveItController: Execute robot motions via MoveIt.
- ParameterEditor: Discover, view, and dynamically reconfigure ROS 2 node parameters.
- RobotSteering: Teleoperation tool for mobile robots.
- ServiceCaller: Interface for calling ROS 2 Services.
- TfTreeViewer: Visualize and search the TF frame tree.
- TopicMonitor: Monitor topic activity and bandwidth.
๐งฉ Creating your own plugin
See PLUGIN_DEVELOPMENT.md on how to create a new plugin.
You can use the rqml_plugin_example as template.
๐ ๏ธ Building from Source
If you want to contribute or need the absolute latest changes, you can build from source:
-
Create a ROS 2 workspace (if you haven't already):
mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src -
Clone the repository:
git clone https://github.com/StefanFabian/qml6_ros2_plugin.git -b $ROS_DISTRO git clone https://github.com/StefanFabian/rqml.gitThis clones both this repository and the main dependency QML6 ROS2 Plugin. Currently, this plugin is not yet available on all distros. If it is available on yours, you may omit it but it could still be useful when developing.
-
Install dependencies (using rosdep):
cd ~/ros2_ws rosdep install --from-paths src --ignore-src -r -y -
Build the workspace:
colcon build --symlink-install --packages-up-to rqml -
Source the workspace:
source install/setup.bash
๐ License
This project is licensed under the GPLv3 License. โ๏ธ
