Skip to main content
Live connection to a remote robot, with its methods exposed as Python attributes. Created by connect() when no program is provided. The robot is the root of a recursive component tree discovered at construction time: robot methods are direct calls (robot.set_velocity(0.5)), and every named subcomponent — sensors, end effector, arms, and their own children — is a RemoteComponent reachable both via the subcomponents mapping and as an attribute (robot.left_arm.wrist_cam.getImage()).

Fields

Dict of child name → RemoteComponent for every top-level child of the robot.
Derived dict of the children whose remote role is sensor.
Derived RemoteComponent for the child end effector, or None.
Hardware identity (serial number, model, controller version) of the root node alone — advertised per node, so every component in the tree carries its own and none aggregates its children’s. A composite robot whose serial lives on a subcomponent reports {} here; walk subcomponents and apply your own policy to decide which serial identifies the robot. {} also means unknown.

Constructor

Signature

Properties

RemoteComponent | None
The child end effector, or None (derived view).Prefers the child named "end_effector", else the first child whose remote role is end effector.
dict[str, str]
Hardware identity of the physical unit behind this node.The manufacturer identity the robot reported when this connection introspected it — serial_number, model, controller_version — each key present only when the robot could read it, so an empty dict means unknown. Absence is never evidence of difference: two components that both report no serial are not thereby the same unit, nor thereby distinct ones.Read from the introspection payload at connect time, so it costs no round-trip and does not change for the life of the connection; call getIdentity() on the component for a live read.Per-node, never aggregated. It reports what this node itself advertised and nothing about its children: a composite robot whose serial lives on its arm reports {} at the root while robot.subcomponents["arm"].identity carries the serial. A caller that wants “the robot’s serial” walks subcomponents and picks by its own policy — which node’s serial counts as the robot’s is a decision this client does not make.
MonitorClient
str
dict[str, RemoteComponent]
Child components whose remote role is sensor (derived view).
RobotHandle
The underlying low-level robot handle (Zenoh session).
dict[str, RemoteComponent]
Named child components of this node (snapshot dict).
str

Methods

shutdown()

Signature
Close this Python handle’s local resources and owned signaling session.