Robot API Reference#
Robot implementations are expected to satisfy the Robot protocol.
class Robot(Protocol):
def connect(self) -> None: ...
def disconnect(self) -> None: ...
def get_observation(self) -> RobotObservation: ...
def send_action(self, action: np.ndarray, *, goal_time: float = 0.1) -> None: ...
def is_connected(self) -> bool: ...
@property
def joint_names(self) -> list[str]: ...
RobotObservation#
class RobotObservation(Protocol):
joint_positions: np.ndarray
timestamp: float
sensor_data: dict[str, np.ndarray] | None
images: dict[str, Frame] | None
Requirements#
The
joint_positionsorder must matchjoint_names.The action passed to
send_action()must matchjoint_names.disconnect()must leave the hardware in a safe stationary state.connect()should be idempotent or fail with a clear error.