SDK Data Reference

Coordinate Transforms

Device-level coordinate transforms, published independently of the per-stream data flows.

APIReturnsDescription
manager.tf_static()FrameTransformsStatic coordinate transforms (sent at 1 Hz)
manager.tf()FrameTransformsDynamic coordinate transforms (data-driven)
sub = manager.tf_static().subscribe()
transforms = await sub.recv_async()
for tf in transforms.transforms:
    print(f"{tf.parent_frame_id}{tf.child_frame_id}")

For the coordinate transform type definitions, see SDK FrameTransform and FrameTransforms. For the coordinate-frame conventions and frame tree, see Coordinate Frames.

tf_static — Static Coordinate Transforms

Publishes fixed coordinate-frame relationships at 1 Hz. Subscribe through manager.tf_static().

{
  "transforms": [
    {
      "timestamp_us": 1709876543210,
      "parent_frame_id": "l_wrist",
      "child_frame_id": "l_hand_emf_tx",
      "translation": [0.01, 0.042, 0.005],
      "rotation": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0,
        "w": 1.0
      }
    }
  ]
}

tf — Dynamic Coordinate Transforms

Driven by the dorsum IMU orientation. Publishes the waist → {l/r}_wrist real-time transform at the IMU sampling rate. Subscribe through manager.tf().

{
  "transforms": [
    {
      "timestamp_us": 1709876543210,
      "parent_frame_id": "waist",
      "child_frame_id": "l_wrist",
      "translation": [0.0, -0.3, -0.5],
      "rotation": {
        "x": 0.0,
        "y": 0.17,
        "z": 0.0,
        "w": 0.98
      }
    }
  ]
}