Skip to content

[Feature] Use DDS Liveliness Qos instead of periodic messages #88

@Aposhian

Description

@Aposhian

Currently, bond relies on sending ReliabilityPolicy::Reliable messages periodically, with managed timers, timeouts, etc. In ROS2 over DDS, these sorts of features are actually built into the RMW in a more efficient way, by using Liveliness QoS, and liveliness event callbacks.

That way, if you just want a heartbeat, it is possible even to simply renew your lease duration periodically, and not even actually publish a message at all, if no data needs to be transmitted.

Motivation

bond uses quite a lot of DDS bandwidth for the task of keeping multiple nodes alive together.

Implementation concerns

Since advanced QoS is not used by most ROS2 users, the common middlewares (FastDDS, CycloneDDS) are inconsistent in their implementation of liveliness qos events at the rclcpp level, from my experience.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions