Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
jazzy

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
kilted

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
rolling

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

No version for distro ardent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

No version for distro bouncy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

No version for distro crystal showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

No version for distro eloquent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

No version for distro dashing showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

No version for distro foxy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

No version for distro iron showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

No version for distro lunar showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

No version for distro jade showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

No version for distro indigo showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

No version for distro hydro showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

No version for distro kinetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange

No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

qml_ros2_plugin package from qml_ros2_plugin repo

qml_ros2_plugin

ROS Distro
humble

Package Summary

Tags No category tags.
Version 1.25.2
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/StefanFabian/qml_ros2_plugin.git
VCS Type git
VCS Version master
Last Updated 2025-06-20
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A QML plugin for ROS. Enables full communication with ROS from QML.

Additional Links

No additional links.

Maintainers

  • Stefan Fabian

Authors

No additional authors.

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Documentation Status

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). For the ROS 1 version click here.
Please be aware that this loses some of the semantic information that the type of a message would normally provide.

Currently, has support for the following:
Logging, Publisher, Subscription, ImageTransportSubscription, Service client, ActionClient, TfTransform, Ament index and querying topics

License: MIT

https://github.com/StefanFabian/qml_ros2_plugin/assets/2090520/c45280cf-24fe-4ff1-8423-30035deda10d

This demo interface uses Tf and a velocity publisher to control and display the turtle demo with less than 200 lines of code for the entire interface. It is available in the examples folder as turtle_demo_control.qml.

Note: For full examples including ROS init calls and shutdown handling checkout the examples directory.

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")
  }
  // ...
}

Subscribers

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.

Usage example:

import Ros2 1.0

Item {
  width: 600
  height: 400
  
  Subscription {
    id: subscriber
    topic: "/test"
    onNewMessage: textField.text = message.data 
  }
  
  Text {
    text: "You can use the message directly: " + subscriber.message.data
  }
  
  Text {
    id: textField
    text: "Or you can use the newMessage signal."
  }
}

Image Transport

Can be used to stream camera images. The default transport used is “compressed”.
The stream is exposed to QML as a QObject with a QAbstractVideoSurface based videoSurface property (see QML VideoOutput docs) and can be used directly as source for the VideoOutput control.

Multiple ImageTransportSubscribers for the same topic share a subscription to ensure the image is converted to a QML compatible format only once. Additionally, a throttleRate property allows to throttle the camera rate by subscribing for one frame and shutting down again at the given rate (see documentation).

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package qml_ros2_plugin

1.25.2 (2025-02-07)

  • Apply required changes due to change of array template parameters in ros_babel_fish.
  • Updated communication test message fields in accordance to renaming in ros_babel_fish_test_msgs.
  • Fixed crashes when exiting application due to node still being used.
  • Added method to create an empty action goal for a given action with the Ros2 singleton.
  • Fixed possible crash if querying services/actions before node is initialized and downgraded error to warning. Will just return no results if not initialized yet.
  • Added convenience functions to get types for given topic/service/action.
  • Added name and type properties to ServiceClient.
  • Made image transport test more robust.
  • Added graph queries getTopicNamesAndTypes, getServiceNamesAndTypes and getActionNamesAndTypes to Ros2 singleton.
  • Small quality refactorings.
  • Contributors: Stefan Fabian

1.0.1 (2024-08-19)

  • Added missing dependencies.
  • Contributors: Stefan Fabian

1.0.0 (2024-08-16)

  • Initial release.
  • Contributors: Stefan Fabian

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged qml_ros2_plugin at Robotics Stack Exchange