ArmState (Robot Arm State)#
ArmState is the section name used to correspond to the P6 navigation; the P7 SDK does not have an object with this name.
P7 returns robot-arm-related state through three independent models: ArmJointState, ArmMotorState, and ImuState.
When a getter succeeds, it returns an immutable snapshot; it returns None when no current data is available.
ArmJointState#
The current P7 has 7 revolute joints. The three tuples follow the same joint order.
| Field | Type | Length | Unit | Meaning |
|---|---|---|---|---|
angles |
tuple[float, ...] |
7 | rad | Joint position |
velocities |
tuple[float, ...] |
7 | rad/s | Joint velocity |
efforts |
tuple[float, ...] |
7 | N·m | Effort/torque feedback from upstream revolute joints |
These values are feedback, not command limits. efforts is not a substitute for calibrated external-force sensing or
safety measurements.
ArmMotorState#
| Field | Type | Length | Unit/Value | Meaning |
|---|---|---|---|---|
motor_temperatures |
tuple[float, ...] |
Usually 7; 0 when the upstream array is empty | °C | Temperature of each robot-arm motor |
error_ids |
tuple[int, ...] |
Same as the temperature array | 0 means normal; a value other than 0 means a device error bit or error code |
Error identifier for each motor |
The bit-level meaning of an error code depends on the motor and firmware version. When a value is nonzero, retain the original integer. Do not apply an error-code table from another product or clear the error without diagnosis.
ImuState#
| Field | Type | Length | Unit | Coordinate Frame/Meaning |
|---|---|---|---|---|
angular_velocity |
tuple[float, ...] |
3, ordered (x, y, z) |
rad/s | Angular velocity in the original arm_imu frame |
linear_acceleration |
tuple[float, ...] |
3, ordered (x, y, z) |
m/s² | Linear acceleration in the original arm_imu frame, including the gravity component observed by the sensor |
The SDK does not retain the upstream frame_id, timestamp, orientation, or covariance in ImuState. The two returned
three-element tuples alone do not identify the IMU mounting orientation relative to base_link.
Retrieval Methods#
joint_state = client.get_arm_joint_state() # ArmJointState | None
motor_state = client.get_arm_motor_state() # ArmMotorState | None
imu_state = client.get_imu_state() # ImuState | None
None of the three methods requires control authority. They may return None when an array is missing or lengths do not
match. The models do not carry source timestamps, so a single nonempty result does not prove that the state is fresh enough
for real-time control. See API Reference for all state getters.