Skip to content
⚙ Development Guide > SDK > API

API Reference#

The public P7 Python SDK entry points are concentrated in AirbotClient, state data models, control enums, motion options, exceptions, and utilities. Ordinary state getters do not acquire control authority. Ordinary motion, mode switching, and some recovery commands require the current client to hold a valid lease.

Client and Control Authority#

Task Main Entry Point Details
Create and close a client AirbotClient(...), close(), context manager SDK Introduction and Architecture
Inspect client identity get_client_id, get_source_name, get_client_instance_id, get_client_session_id Control Authority (Lease)
Acquire, release, and hand over control authority acquire_control(), release_control(), handover_to_previous() Control Authority (Lease)

The four identity entry points are read-only properties; access them without parentheses. A successful acquire_control() means only that the lease was acquired for that call. It does not mean the robot arm is already in the required mode.

State Reading#

State Getter Return Type
Service and FSM get_service_state() ServiceState | None
Robot arm joints get_arm_joint_state() ArmJointState | None
Robot arm motors get_arm_motor_state() ArmMotorState | None
EEF joints get_eef_joint_state() EEFJointState | None
EEF motors get_eef_motor_state() EEFMotorState | None
IMU get_imu_state() ImuState | None
End-effector pose get_end_pose() CartesianPose | None
Firmware information get_firmware_info() ArmFirmwareInfo | None

These methods are all read-only. The models do not consistently carry source timestamps; a non-None result alone does not prove that the data meets real-time-control freshness requirements. For the fields, see ArmState (Robot Arm State), EEFState (End-Effector State), CartesianPose (End-Effector Pose), ServiceState (Server State), and FirmwareInfo (Firmware Information).

Control Modes and Motion#

Task Main Entry Point Details
Switch robot-arm mode switch_controller(), enter_gravity_compensation_mode() Control Modes
Set joint speed and send a joint target set_arm_speed(), move_joint() PTP Point-to-Point Planning
Send a single Cartesian target move_end_pose(), move_end_pose_linear(), move_end_pose_circle() PTP / LIN / CIRC
Send a multi-waypoint sequence move_joint_waypoints(), move_end_pose_waypoints() Multi-Segment Trajectory Blending
Query and control the EEF get_eef_mode(), switch_eef_control_mode(), set_eef_speed(), move_eef() EEFState (End-Effector State)

Joint entry points use JointMoveOptions; Cartesian, EEF, and waypoint entry points use their corresponding options types. A field being accepted by a model does not mean that the current mode sends it. See Motion Options for details.

Safety and Recovery#

Task Main Entry Point Important Limitation
Software emergency stop and reset set_arm_emergency_stop() Depends on communication and cannot replace the physical emergency stop
Clear supported UNKNOWN_ERROR conditions clear_error(), clear_arm_motor_err() Record and eliminate the cause first; requires control authority
Clear EEF motor errors clear_eef_motor_err() Both current gRPC and DDS backends raise UnsupportedOperationError
Return all 7 axes to zero return_zero() Produces active motion; not calibration or general-purpose fault recovery

See Motor Error Code Troubleshooting for prerequisites, return values, and failure handling.

Package-Level Exports#

The top-level package also exports Controller, EEF modes, state models, five motion option classes, two public exceptions, joint-limit constants, __version__, and utilities. See Controller for the control enum, ArmControlOptions (Control Options) for motion options, and Supported Teaching-Pendant and Gripper Models for conversion utilities.

False, client timeouts, and nonblocking returns cannot be interpreted directly as “the command was not executed.” After a motion or recovery request fails, stop sending new targets and reconcile the outcome using the FSM, joint feedback, motor state, and on-site observations.