RQml is your modern, QML-based robotics visualization and control toolbox for ROS 2! 🚀
It provides a flexible, plugin-based architecture that empowers you to create custom dashboards and control interfaces for your robots, 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.
- 🖥️ 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.
- ImageView: View camera streams and images.
- JointTrajectoryController: Interface for sending joint trajectory commands.
- MessagePublisher: Publish custom ROS 2 messages.
- RobotSteering: Teleoperation tool for mobile robots.
- ServiceCaller: Interface for calling ROS 2 Services.
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. ⚖️

