- LeftArmController
- LeftGripperController
- MasterLeftArm
- MasterRightArm
- RightArmController
- RightGripperController
- RobotStatus
- System
- Time
- Point
- Pose
- PoseStamped
- PoseWithCovariance
- Quaternion
- Transform
- TransformStamped
- Vector3
- Wrench
- WrenchStamped
- CompressedImage
- JointState
- TFMessage
- AudioData
- AudioDataStamped
- AudioInfo
- DownloadMeta
- DownloadRequest
- DownloadResponse
- ExecutionResult
- FileTransferMeta
- GetMapListResponse
- GetRobotStatusReply
- GetRobotStatusRequest
- GripperPosition
- JointPositions
- ManipulatorControlModeParam
- ModelTypeResult
- PingRequest
- PlayAudioResponse
- PongResponse
- PowerStatus
- RobotDynamicInfo
- RobotModeParam
- RobotRuntimeInfo
- RobotStaticInfo
- StartLocalizationParam
- StopAudioResponse
- UploadRequest
Left arm controller service
def set_joint_positions(joint_positions: JointPositions, timeout) -> ExecutionResultControl joint angles (must set JOINT_POSITIONS mode first)
For Quanta_X2
upper limit: [3.1067, 2.0944, 3.1067, 1.0472, 3.1067, 1.0472, 1.5708]lower limit: [-3.1067, -2.0944, -3.1067, -2.5307, -3.1067, -1.0472, -1.5708]
For Quanta_X1 and Desktop
upper limit: [2.792, 3.44, 3.14, 1.57, 1.4, 1.745]lower limit: [-2.792, 0.0, -3.14, -1.57, -1.4, -1.745]
Parameters:
joint_positions(JointPositions)
Returns:
def set_end_pose(_geometry_msgs__: _geometry_msgs__.Pose, timeout) -> ExecutionResultControl end effector pose (must set END_POSE mode first)
For Quanta_X2
upper limit: [5.0, 5.0, 5.0, 1.0, 1.0, 1.0, 1.0]lower limit: [-5.0, -5.0, -5.0, -1.0, -1.0, -1.0, -1.0]
For Quanta_X1 and Desktop
upper limit: [5.0, 5.0, 5.0, 1.0, 1.0, 1.0, 1.0]lower limit: [-5.0, -5.0, -5.0, -1.0, -1.0, -1.0, -1.0]
Parameters:
position(Point)orientation(Quaternion)
Returns:
def get_joint_states(timeout) -> _sensor_msgs__.JointStateGet joint states (positions, velocities, efforts)
Parameters:
- No parameters
Returns:
JointStateheader(Header)name(List[string])position(List[double])velocity(List[double])effort(List[double])
def get_end_pose(timeout) -> _geometry_msgs__.PoseStampedGet end effector pose
Parameters:
- No parameters
Returns:
PoseStampedheader(Header)pose(Pose)
def reset(timeout) -> ExecutionResultReset arm to home position
Parameters:
- No parameters
Returns:
def get_wrench_ext_world(timeout) -> _geometry_msgs__.WrenchStampedGet wrench ext world
Parameters:
- No parameters
Returns:
WrenchStampedheader(Header)wrench(Wrench)
def get_wrench_ext_local(timeout) -> _geometry_msgs__.WrenchStampedGet wrench ext local
Parameters:
- No parameters
Returns:
WrenchStampedheader(Header)wrench(Wrench)
def get_joint_states_stream(timeout) -> Iterator[_sensor_msgs__.JointState]Get joint states stream
Parameters:
- No parameters
Returns:
JointStateheader(Header)name(List[string])position(List[double])velocity(List[double])effort(List[double])
def get_end_pose_stream(timeout) -> Iterator[_geometry_msgs__.PoseStamped]Get end pose stream
Parameters:
- No parameters
Returns:
PoseStampedheader(Header)pose(Pose)
def get_wrench_ext_world_stream(timeout) -> Iterator[_geometry_msgs__.WrenchStamped]Get wrench ext world stream
Parameters:
- No parameters
Returns:
WrenchStampedheader(Header)wrench(Wrench)
def get_wrench_ext_local_stream(timeout) -> Iterator[_geometry_msgs__.WrenchStamped]Get wrench ext local stream
Parameters:
- No parameters
Returns:
WrenchStampedheader(Header)wrench(Wrench)
def set_position(gripper_position: GripperPosition, timeout) -> ExecutionResultControl gripper opening/closing degree
For Quanta_X2
upper limit: 25.2lower limit: 0.0
For Quanta_X1
upper limit: 4.5lower limit: 0.0
Parameters:
gripper_position(GripperPosition)
Returns:
def get_position(timeout) -> GripperPositionGet current gripper state
Parameters:
- No parameters
Returns:
def get_position_stream(timeout) -> Iterator[GripperPosition]Get position stream
Parameters:
- No parameters
Returns:
Iterator[[GripperPosition](#message-xrsdkgripperposition)]: Stream of GripperPosition
def get_joint_states_stream(timeout) -> Iterator[_sensor_msgs__.JointState]Get Joint state stream
Parameters:
- No parameters
Returns:
JointStateheader(Header)name(List[string])position(List[double])velocity(List[double])effort(List[double])
============================================================================
def get_control_mode(timeout) -> ManipulatorControlModeParamParameters:
- No parameters
Returns:
def set_control_mode(manipulator_control_mode_param: ManipulatorControlModeParam, timeout) -> ExecutionResultParameters:
manipulator_control_mode_param(ManipulatorControlModeParam)
Returns:
def get_joint_states(timeout) -> _sensor_msgs__.JointStateGet joint states
Parameters:
- No parameters
Returns:
JointStateheader(Header)name(List[string])position(List[double])velocity(List[double])effort(List[double])
def get_end_pose(timeout) -> _geometry_msgs__.PoseStampedGet End Pose
Parameters:
- No parameters
Returns:
PoseStampedheader(Header)pose(Pose)
def get_gripper_position(timeout) -> GripperPositionParameters:
- No parameters
Returns:
def get_joint_states_stream(timeout) -> Iterator[_sensor_msgs__.JointState]Get joint state stream
Parameters:
- No parameters
Returns:
JointStateheader(Header)name(List[string])position(List[double])velocity(List[double])effort(List[double])
def get_end_pose_stream(timeout) -> Iterator[_geometry_msgs__.PoseStamped]Get End Pose stream
Parameters:
- No parameters
Returns:
PoseStampedheader(Header)pose(Pose)
def get_gripper_state_stream(timeout) -> Iterator[GripperPosition]Parameters:
- No parameters
Returns:
Iterator[[GripperPosition](#message-xrsdkgripperposition)]: Stream of GripperPosition
def set_joint_positions(joint_positions: JointPositions, timeout) -> ExecutionResultPlaceholder methods, backend is not supported yet.
Parameters:
joint_positions(JointPositions)
Returns:
def set_end_pose(_geometry_msgs__: _geometry_msgs__.Pose, timeout) -> ExecutionResultControl end effector pose (must set END_POSE mode first) position: [x, y, z] in meters, range: [-5.0, 5.0] orientation: [qx, qy, qz, qw] quaternion, range: [-1.0, 1.0]
Parameters:
position(Point)orientation(Quaternion)
Returns:
def get_gripper_joint_states_stream(timeout) -> Iterator[_sensor_msgs__.JointState]Backward compatibility for old API shape.
Parameters:
- No parameters
Returns:
JointStateheader(Header)name(List[string])position(List[double])velocity(List[double])effort(List[double])
def get_control_mode(timeout) -> ManipulatorControlModeParamParameters:
- No parameters
Returns:
def set_control_mode(manipulator_control_mode_param: ManipulatorControlModeParam, timeout) -> ExecutionResultParameters:
manipulator_control_mode_param(ManipulatorControlModeParam)
Returns:
def get_joint_states(timeout) -> _sensor_msgs__.JointStateGet joint states
Parameters:
- No parameters
Returns:
JointStateheader(Header)name(List[string])position(List[double])velocity(List[double])effort(List[double])
def get_end_pose(timeout) -> _geometry_msgs__.PoseStampedGet End Pose
Parameters:
- No parameters
Returns:
PoseStampedheader(Header)pose(Pose)
def get_gripper_position(timeout) -> GripperPositionParameters:
- No parameters
Returns:
def get_joint_states_stream(timeout) -> Iterator[_sensor_msgs__.JointState]Get joint state stream
Parameters:
- No parameters
Returns:
JointStateheader(Header)name(List[string])position(List[double])velocity(List[double])effort(List[double])
def get_end_pose_stream(timeout) -> Iterator[_geometry_msgs__.PoseStamped]Get End Pose stream
Parameters:
- No parameters
Returns:
PoseStampedheader(Header)pose(Pose)
def get_gripper_state_stream(timeout) -> Iterator[GripperPosition]Parameters:
- No parameters
Returns:
Iterator[[GripperPosition](#message-xrsdkgripperposition)]: Stream of GripperPosition
def set_joint_positions(joint_positions: JointPositions, timeout) -> ExecutionResultPlaceholder methods, backend is not supported yet.
Parameters:
joint_positions(JointPositions)
Returns:
def set_end_pose(_geometry_msgs__: _geometry_msgs__.Pose, timeout) -> ExecutionResultControl end effector pose (must set END_POSE mode first) position: [x, y, z] in meters, range: [-5.0, 5.0] orientation: [qx, qy, qz, qw] quaternion, range: [-1.0, 1.0]
Parameters:
position(Point)orientation(Quaternion)
Returns:
def get_gripper_joint_states_stream(timeout) -> Iterator[_sensor_msgs__.JointState]Backward compatibility for old API shape.
Parameters:
- No parameters
Returns:
JointStateheader(Header)name(List[string])position(List[double])velocity(List[double])effort(List[double])
Right arm controller service
def set_joint_positions(joint_positions: JointPositions, timeout) -> ExecutionResultControl joint angles (must set JOINT_POSITIONS mode first)
For Quanta_X2
upper limit: [3.1067, 2.0944, 3.1067, 1.0472, 3.1067, 1.0472, 1.5708]lower limit: [-3.1067, -2.0944, -3.1067, -2.5307, -3.1067, -1.0472, -1.5708]
For Quanta_X1 and Desktop
upper limit: [2.792, 3.44, 3.14, 1.57, 1.4, 1.745]lower limit: [-2.792, 0.0, -3.14, -1.57, -1.4, -1.745]
Parameters:
joint_positions(JointPositions)
Returns:
def set_end_pose(_geometry_msgs__: _geometry_msgs__.Pose, timeout) -> ExecutionResultControl end effector pose (must set END_POSE mode first)
Supports position and orientation control
Parameters:
position(Point)orientation(Quaternion)
Returns:
def get_joint_states(timeout) -> _sensor_msgs__.JointStateGet joint states (positions, velocities, efforts)
Parameters:
- No parameters
Returns:
JointStateheader(Header)name(List[string])position(List[double])velocity(List[double])effort(List[double])
def get_end_pose(timeout) -> _geometry_msgs__.PoseStampedGet end effector pose
Parameters:
- No parameters
Returns:
PoseStampedheader(Header)pose(Pose)
def reset(timeout) -> ExecutionResultReset arm to home position
Parameters:
- No parameters
Returns:
def get_wrench_ext_world(timeout) -> _geometry_msgs__.WrenchStampedGet wrench ext world
Parameters:
- No parameters
Returns:
WrenchStampedheader(Header)wrench(Wrench)
def get_wrench_ext_local(timeout) -> _geometry_msgs__.WrenchStampedGet wrench ext local
Parameters:
- No parameters
Returns:
WrenchStampedheader(Header)wrench(Wrench)
def get_joint_states_stream(timeout) -> Iterator[_sensor_msgs__.JointState]Get joint states stream
Parameters:
- No parameters
Returns:
JointStateheader(Header)name(List[string])position(List[double])velocity(List[double])effort(List[double])
def get_end_pose_stream(timeout) -> Iterator[_geometry_msgs__.PoseStamped]Get end pose stream
Parameters:
- No parameters
Returns:
PoseStampedheader(Header)pose(Pose)
def get_wrench_ext_world_stream(timeout) -> Iterator[_geometry_msgs__.WrenchStamped]Get wrench ext world stream
Parameters:
- No parameters
Returns:
WrenchStampedheader(Header)wrench(Wrench)
def get_wrench_ext_local_stream(timeout) -> Iterator[_geometry_msgs__.WrenchStamped]Get wrench ext local stream
Parameters:
- No parameters
Returns:
WrenchStampedheader(Header)wrench(Wrench)
def set_position(gripper_position: GripperPosition, timeout) -> ExecutionResultControl gripper opening/closing degree
For Quanta_X2
upper limit: 25.2lower limit: 0.0
For Quanta_X1
upper limit: 4.5lower limit: 0.0
Parameters:
gripper_position(GripperPosition)
Returns:
def get_position(timeout) -> GripperPositionGet current gripper state
Parameters:
- No parameters
Returns:
def get_position_stream(timeout) -> Iterator[GripperPosition]Get position stream
Parameters:
- No parameters
Returns:
Iterator[[GripperPosition](#message-xrsdkgripperposition)]: Stream of GripperPosition
def get_joint_states_stream(timeout) -> Iterator[_sensor_msgs__.JointState]Get Joint state stream
Parameters:
- No parameters
Returns:
JointStateheader(Header)name(List[string])position(List[double])velocity(List[double])effort(List[double])
Real-time whole-robot status query service; client wraps JSON payload in SdkResult.
def get_robot_status(fields = None, request_id = None) -> SdkResultQuery the robot's real-time status.
Parameters:
fields- Filter list. None or [] returns everything; supports two-level paths, e.g. ["energy"] (whole category) or ["energy.battery_level"] (single field).request_id- Per-call trace id; auto-generated as uuid4 when omitted, echoed back in SdkResult.request_id for log correlation.
Returns:
SdkResult: on success,datais a status dict (energy/motion/execution/safety/health); on failure,erroris a standard ErrorCode
def set_work_mode(robot_mode_param: RobotModeParam, timeout) -> ExecutionResultSet Robot work mode: IDLE, INFERE, COLLECT, SDK
Parameters:
robot_mode_param(RobotModeParam)
Returns:
def get_static_info(timeout) -> RobotStaticInfoGet Robot system info
Parameters:
- No parameters
Returns:
def get_dynamic_info(timeout) -> RobotDynamicInfoGet Robot runtime info
Parameters:
- No parameters
Returns:
def get_model_type(timeout) -> ModelTypeResultGet robot model type (works on all models, does not depend on application node)
Parameters:
- No parameters
Returns:
Fields:
| Field | Type | Description |
|---|---|---|
sec |
int32 |
|
nanosec |
uint32 |
Fields:
| Field | Type | Description |
|---|---|---|
x |
double |
|
y |
double |
|
z |
double |
Fields:
| Field | Type | Description |
|---|---|---|
position |
Point |
|
orientation |
Quaternion |
Fields:
| Field | Type | Description |
|---|---|---|
header |
Header |
|
pose |
Pose |
Fields:
| Field | Type | Description |
|---|---|---|
pose |
Pose |
|
covariance |
List[double] |
Fields:
| Field | Type | Description |
|---|---|---|
x |
double |
|
y |
double |
|
z |
double |
|
w |
double |
Fields:
| Field | Type | Description |
|---|---|---|
translation |
Vector3 |
|
rotation |
Quaternion |
Fields:
| Field | Type | Description |
|---|---|---|
header |
Header |
|
child_frame_id |
string |
|
transform |
Transform |
Fields:
| Field | Type | Description |
|---|---|---|
x |
double |
|
y |
double |
|
z |
double |
Fields:
| Field | Type | Description |
|---|---|---|
force |
Vector3 |
|
torque |
Vector3 |
Fields:
| Field | Type | Description |
|---|---|---|
header |
Header |
|
wrench |
Wrench |
Fields:
| Field | Type | Description |
|---|---|---|
header |
Header |
|
format |
string |
|
data |
bytes |
Fields:
| Field | Type | Description |
|---|---|---|
header |
Header |
|
name |
List[string] |
|
position |
List[double] |
|
velocity |
List[double] |
|
effort |
List[double] |
Fields:
| Field | Type | Description |
|---|---|---|
transforms |
List[TransformStamped] |
Fields:
| Field | Type | Description |
|---|---|---|
data |
bytes |
Fields:
| Field | Type | Description |
|---|---|---|
audio_info |
AudioInfo |
|
audio_data |
AudioData |
Fields:
| Field | Type | Description |
|---|---|---|
channels |
uint32 |
|
sample_rate |
uint32 |
|
sample_format |
string |
|
bitrate |
uint32 |
|
coding_format |
string |
|
bit_depth |
uint32 |
Fields:
| Field | Type | Description |
|---|---|---|
total_size |
uint64 |
Fields:
| Field | Type | Description |
|---|---|---|
identifier |
string |
Fields:
| Field | Type | Description |
|---|---|---|
meta |
DownloadMeta |
|
chunk |
bytes |
Fields:
| Field | Type | Description |
|---|---|---|
is_success |
bool |
|
error_message |
string |
|
error_code |
ErrorCode |
Detailed error classification |
Fields:
| Field | Type | Description |
|---|---|---|
identifier |
string |
|
total_size |
uint64 |
Fields:
| Field | Type | Description |
|---|---|---|
header |
ExecutionResult |
Call status: is_success / error_code / error_message |
map_list |
List[string] |
List of saved map names |
Fields:
| Field | Type | Description |
|---|---|---|
json |
string |
Payload (JSON string) grouped into energy/motion/execution/safety/health. Unavailable or uncaptured fields are null. |
Fields:
| Field | Type | Description |
|---|---|---|
fields |
List[string] |
Filter field list: empty -> all fields; "energy" -> whole category; "energy.battery_level" -> single field (two-level path). |
Fields:
| Field | Type | Description |
|---|---|---|
header |
Header |
|
position |
float |
Fields:
| Field | Type | Description |
|---|---|---|
positions |
List[double] |
Fields:
| Field | Type | Description |
|---|---|---|
mode |
ManipulatorControlMode |
Fields:
| Field | Type | Description |
|---|---|---|
model_type |
RobotModelType |
Fields:
| Field | Type | Description |
|---|---|---|
payload |
string |
Fields:
| Field | Type | Description |
|---|---|---|
success |
bool |
|
message |
string |
|
play_id |
uint64 |
equals ROS request_id; reserved 0 for "stop all" |
resource_id |
string |
empty when cache=false |
Fields:
| Field | Type | Description |
|---|---|---|
payload |
string |
Fields:
| Field | Type | Description |
|---|---|---|
is_charging |
bool |
Whether the robot is charging |
value |
float |
Battery level |
Fields:
| Field | Type | Description |
|---|---|---|
power_status |
PowerStatus |
|
runtime_info |
RobotRuntimeInfo |
Fields:
| Field | Type | Description |
|---|---|---|
mode |
RobotWorkMode |
Fields:
| Field | Type | Description |
|---|---|---|
cpu_load_percent |
float |
|
gpu_load_percent |
float |
|
memory_usage_mb |
float |
|
core_temp_celsius |
float |
Fields:
| Field | Type | Description |
|---|---|---|
model_type |
RobotModelType |
|
model |
string |
|
robot_id |
uint32 |
|
device_sn |
string |
|
device_name |
string |
|
software_version |
string |
|
hardware_version |
string |
reserved for future use |
device_ip |
List[string] |
Fields:
| Field | Type | Description |
|---|---|---|
map_name |
string |
Map name used for localization |
use_init_pose |
bool |
Whether to use initial pose for localization |
init_pose |
Pose |
Initial pose in map coordinate system, valid only when use_init_pose is true |
Fields:
| Field | Type | Description |
|---|---|---|
success |
bool |
|
message |
string |
Fields:
| Field | Type | Description |
|---|---|---|
meta |
FileTransferMeta |
|
chunk |
bytes |
| Value | Description |
|---|---|
CX001 (0) |
|
CX002 (1) |
|
EX001 (2) |
|
DESKTOP (3) |
|
EX001_MASTER (4) |
|
EX002 (5) |
|
INVALID_MODEL (255) |
| Value | Description |
|---|---|
IDLE (0) |
Robot is idle |
INFERE (1) |
Robot is in inference mode |
COLLECT (2) |
Robot is in collect mode |
SDK (3) |
Robot is in SDK mode |
| Value | Description |
|---|---|
PRIORITY_URGENT (0) |
|
PRIORITY_HIGH (1) |
|
PRIORITY_NORMAL (2) |