Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Checkout URI | https://github.com/StefanFabian/qml6_ros2_plugin.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2025-12-05 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| qml6_ros2_plugin | 1.25.110 |
README
Scientific Works
If you are using this module in a scientific context, feel free to cite this paper:
@INPROCEEDINGS{fabian2021hri,
author = {Stefan Fabian and Oskar von Stryk},
title = {Open-Source Tools for Efficient ROS and ROS2-based 2D Human-Robot Interface Development},
year = {2021},
booktitle = {2021 European Conference on Mobile Robots (ECMR)},
}
QML ROS2 Plugin
Connects QML user interfaces to the Robot Operating System 2 (ROS2). Please be aware that this loses some of the semantic information that the message type would normally provide, since you can subscribe to any message without specifying the type, and the type is only checked if you do specify it.
Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service Client, Action Client, TfTransform, Ament Index, and querying topics, services, and actions.
https://github.com/StefanFabian/qml6_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d
This demo interface utilizes Tf and a velocity publisher to control and display the turtle demo, requiring less than 200 lines of code for the entire interface.
It is available in the examples folder as turtle_demo_control.qml.
Logging
Logging is supported and correctly reports from which QML file and line the message came!
import Ros2 1.0
Item {
function doesWork() {
Ros2.debug("A debug message")
// Set the logging level to Debug (default is usually Info)
Ros2.getLogger().setLoggerLevel(Ros2LoggerLevel.Debug);
Ros2.debug("A debug message that is actually logged.")
Ros2.info("I have some information")
Ros2.warn("This is the last warning")
Ros2.error("Great! Now there's an error.")
Ros2.fatal("I'm dead")
Ros2.info("Just so you know, fatal does not kill a node. Though they usually die after logging fatal")
}
// ...
}
Check the logging example in the examples directory!
Quickstart
Check the examples in the examples directory for a quick introduction on how to use this module.
Can be used to create a Subscription to any topic and message type that is available on your system.
The type does not need to be known at the time of compilation.
Installation
You can either build this repository as part of your ROS2 workspace as you would any other ROS2 package, or
set the CMake option GLOBAL_INSTALL to ON, which installs the plugin in your global qml module directory.
Please note that the plugin will still require a ROS2 environment when loaded to be able to load the message
libraries.
You can install the dependencies using rosdep:
The following command assumes you are in the src folder of your ROS 2 workspace
rosdep install --from-paths . --ignore-packages-from-source
Documentation
You can find the documentation on readthedocs.io.
Alternatively, you can follow the steps below to build it yourself.
Dependencies
- Doxygen
- Sphinx
- sphinx_rtd_theme
- Breathe
Example for Ubuntu
Install dependencies
sudo apt install doxygen python3-sphinx python3-sphinx-rtd-theme python3-breathe
Build documentation
File truncated at 100 lines see the full file