What can I help you with?
NVIDIA Holoscan SDK v3.4.0

Class PoseTreeManager

Base Types

class PoseTreeManager : public holoscan::Resource, public holoscan::FragmentService

Manage a shared PoseTree instance as a FragmentService.

This resource creates and holds a holoscan::PoseTree instance, making it accessible to multiple components (like operators) within the same fragment. It simplifies the management of pose data by providing a centralized, configurable point of access.

To use it, register an instance of PoseTreeManager with the fragment:

Copy
Copied!
            

// In Application::compose() auto pose_tree_manager = make_resource<PoseTreeManager>("pose_tree_manager", from_config("my_pose_tree")); register_service(pose_tree_manager);

Then, operators can access the underlying PoseTree instance via the service() method:

Copy
Copied!
            

// In Operator::initialize() pose_tree_ = service<holoscan::PoseTreeManager>("pose_tree_manager")->tree();

The parameters for the underlying PoseTree can be configured via the application’s YAML configuration file or directly when creating the resource.

YAML-based configuration:

Copy
Copied!
            

my_pose_tree: number_frames: 256 number_edges: 4096 history_length: 16384 default_number_edges: 32 default_history_length: 1024 edges_chunk_size: 16 history_chunk_size: 128

Experimental Feature The Pose Tree feature, including this manager, is experimental. The API may change in future releases.

Public Functions

HOLOSCAN_RESOURCE_FORWARD_ARGS_SUPER (PoseTreeManager, holoscan::Resource) PoseTreeManager()=default
virtual std::shared_ptr<Resource> resource() const override

Return a shared pointer to this resource, part of the FragmentService interface.

Returns

A std::shared_ptr<Resource> pointing to this instance.

virtual void resource(const std::shared_ptr<Resource> &resource) override

Set the internal weak pointer to this resource, part of the FragmentService interface.

Parameters

resource – A std::shared_ptr<Resource> that must point to this instance.

virtual void initialize() override

Initialize the resource and creates the underlying PoseTree instance.

This method is called by the framework after the resource is created and its parameters have been set. It allocates and initializes the PoseTree with the configured capacity parameters.

virtual void setup(holoscan::ComponentSpec &spec) override

Define the parameters for configuring the PoseTree instance.

This method registers the following parameters:

  • number_frames: Maximum number of coordinate frames.

  • number_edges: Maximum number of edges (direct transformations) between frames.

  • history_length: Total capacity for storing historical pose data across all edges.

  • default_number_edges: Default number of edges allocated per new frame.

  • default_history_length: Default history capacity allocated per new edge.

  • edges_chunk_size: Allocation chunk size for a frame’s edge list.

  • history_chunk_size: Allocation chunk size for an edge’s history buffer.

Parameters

spec – The component specification to which the parameters are added.

std::shared_ptr<PoseTree> tree()

Get a shared pointer to the managed PoseTree instance.

This is the primary method for accessing the pose tree from other components.

Returns

A std::shared_ptr<PoseTree> to the underlying pose tree.

std::shared_ptr<PoseTree> tree() const

Get a shared pointer to the managed PoseTree instance from a const context.

Returns

A std::shared_ptr<PoseTree> to the underlying pose tree.

Previous Class PoseTreeEdgeHistory
Next Class RealtimeClock
© Copyright 2022-2025, NVIDIA. Last updated on Jul 1, 2025.