Spatial ======= Spatial provides TF tree access plus local pose, transform, and geometry types. .. tab-set:: :sync-group: sdk-language .. tab-item:: Python :sync: python .. automodule:: olo.spatial :no-members: **Client interfaces** .. autoclass:: olo.spatial.Spatial :members: .. autoclass:: olo.spatial.RobotFrames :members: .. autoclass:: olo.spatial.TransformSubscription :members: .. autoclass:: olo.spatial.TreeSubscription :members: .. autoclass:: olo.spatial.TreeDelta :members: **Types** .. autoclass:: olo.spatial.types.Point :members: .. autoclass:: olo.spatial.types.Vector :members: .. autoclass:: olo.spatial.types.Quaternion :members: .. autoclass:: olo.spatial.types.Pose :members: .. autoclass:: olo.spatial.types.Transform :members: .. autoclass:: olo.spatial.types.Twist :members: .. autoclass:: olo.spatial.types.FrameInfo :members: .. autoclass:: olo.spatial.types.FrameTreeNode :members: .. autoclass:: olo.spatial.types.FrameTree :members: .. tab-item:: TypeScript :sync: typescript Import from ``olo/spatial``: The TypeScript surface mirrors the Python module: method names are camelCase, keyword arguments become an options object with millisecond timeouts, and Python's ``*`` operator maps to ``multiply()``. **Client interfaces** - :doc:`Spatial ` — TF tree access: ``lookup()``, ``tree()``, ``handle()``, ``subscribe()``, ``subscribeTree()``, and ``publishStatic()``. - :doc:`RobotFrames ` — namespace-scoped TF frame handle (created via ``client.spatial.handle()``), plus ``baseFrame()``. - :doc:`TransformSubscription ` — async iterable transform stream. - :doc:`TreeSubscription ` — async iterable tree stream; yields materialized ``FrameTree`` snapshots, or raw deltas via ``changes()``. - :doc:`TreeDelta ` — raw tree change batch (``added`` / ``updated``). **Types** - :doc:`Point ` — Cartesian position in metres. - :doc:`Vector ` — Cartesian vector in metres with dot/cross, normalization, and magnitude clamping. - :doc:`Quaternion ` — orientation (xyzw) with RPY, axis-angle, matrix constructors, and vector rotation. - :doc:`Pose ` — position plus orientation; ``matrix()``, ``inverse()``, ``apply()``, ``rotate()``, and ``multiply()``. - :doc:`Transform ` — rigid transform with optional TF frame metadata and ``stamp``; composition validates frame chaining. - :doc:`Twist ` — linear and angular velocity vectors. - :doc:`FrameInfo ` — flattened frame entry. - :doc:`FrameTreeNode ` — node in a TF subtree. - :doc:`FrameTree ` — multi-root tree with ``flatten()`` and a tree-shaped ``toString()``.