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. 🎨
You can support RQml by developing awesome plugins as described in PLUGIN_DEVELOPMENT.md.
Alternatively, donations are always welcome :)
- 🔗 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.
RQml-Demo-Video.mp4
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
Ready to go? Launch the application with a single command:
rqmlRQml 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.
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.
See PLUGIN_DEVELOPMENT.md on how to create a new plugin.
You can use the rqml_plugin_example as template.
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
This project is licensed under the GPLv3 License. ⚖️

