TfAggregationManager#

Fully qualified name: isaacsim::ros2::nodes::TfAggregationManager

Structs Summary#

ContributorHandle

Opaque identifier for one registered TF contributor.

class TfAggregationManager#

Aggregates TF submissions from multiple OGN publisher nodes into one ROS 2 TF publisher per topic group.

Topic groups are keyed by ROS context, topic name, static/dynamic mode, and QoS profile. Dynamic groups are flushed by the plugin’s stage update node after OmniGraph evaluation. Manual OmniGraph evaluation callers can explicitly call flushAll() if they need deterministic draining outside normal Kit playback.

Public Functions

TfAggregationManager()#
~TfAggregationManager()#
TfAggregationManager(const TfAggregationManager&) = delete#
TfAggregationManager &operator=(const TfAggregationManager&) = delete#
ContributorHandle registerContributor(
const std::string &contributorName,
isaacsim::ros2::core::Ros2Factory *factory,
std::shared_ptr<isaacsim::ros2::core::Ros2NodeHandle> nodeHandle,
isaacsim::ros2::core::Ros2ContextHandle *contextHandle,
const std::string &topicName,
bool staticPublisher,
const isaacsim::ros2::core::Ros2QoSProfile &qos,
bool publishWithoutVerification,
)#

Register a TF contributor and associate it with a shared topic publisher.

Parameters:
  • contributorName – [in] Name used to identify the contributor in diagnostics.

  • factory – [in] ROS 2 factory used to create the publisher and message. Must not be null.

  • nodeHandle – [in] Shared node handle used by the publisher. Must not be null.

  • contextHandle – [in] ROS 2 context that distinguishes the topic group. May be null.

  • topicName – [in] Topic on which to publish the aggregated transforms.

  • staticPublisher – [in] Whether the topic carries static transforms.

  • qos – [in] Quality-of-service profile for the shared publisher.

  • publishWithoutVerification – [in] Whether the group may publish without subscriber verification.

Returns:

A valid contributor handle on success, or an invalid handle on failure.

void unregisterContributor(ContributorHandle handle)#

Unregister a contributor.

Parameters:

handle – [in] Contributor to remove. Invalid handles are ignored.

bool submit(
ContributorHandle handle,
double timeStamp,
const std::vector<isaacsim::ros2::core::TfTransformStamped> &transforms,
)#

Submit the current transforms for a contributor.

Parameters:
  • handle – [in] Contributor supplying the transforms.

  • timeStamp – [in] ROS timestamp in seconds for dynamic transforms.

  • transforms – [in] Transforms to include in the contributor’s topic group.

Returns:

True if the handle and its topic group are registered; otherwise, false.

void flushAll()#

Publish all pending dynamic and changed static topic groups.

void reset()#

Remove every contributor and topic group and restore the initial manager state.

struct ContributorHandle#

Opaque identifier for one registered TF contributor.

Public Functions

inline explicit operator bool() const#

Check whether this handle identifies a registered contributor.

Returns:

True for a valid handle.

Public Members

uint64_t id = 0#

Nonzero contributor identifier, or zero for an invalid handle.