⚙ 开发指南
> SDK
> API
> 数据结构
ArmState(机械臂状态)#
ArmState 是与 P6 目录对应的栏目名称;P7 SDK 没有同名对象。P7 使用 ArmJointState、
ArmMotorState 和 ImuState 三个独立模型返回机械臂相关状态。getter 成功时返回冻结快照,
当前没有可用数据时返回 None。
ArmJointState#
当前 P7 为 7 个转动关节,三个元组按相同关节顺序排列。
| 字段 | 类型 | 长度 | 单位 | 含义 |
|---|---|---|---|---|
angles |
tuple[float, ...] |
7 | rad | 关节位置 |
velocities |
tuple[float, ...] |
7 | rad/s | 关节速度 |
efforts |
tuple[float, ...] |
7 | N·m | 上游转动关节 effort/torque 反馈 |
这些值是反馈,不是命令上限。efforts 不能替代经过标定的外力传感或安全测量。
ArmMotorState#
| 字段 | 类型 | 长度 | 单位/取值 | 含义 |
|---|---|---|---|---|
motor_temperatures |
tuple[float, ...] |
通常 7;上游空数组时为 0 | °C | 各机械臂电机温度 |
error_ids |
tuple[int, ...] |
与温度数组相同 | 0 正常,非 0 为设备错误位或错误码 |
各电机错误标识 |
错误码的逐位含义取决于电机和固件版本。遇到非零值时保留原始整数,不要自行套用其他产品的错误码表 或直接清零。
ImuState#
| 字段 | 类型 | 长度 | 单位 | 坐标系/含义 |
|---|---|---|---|---|
angular_velocity |
tuple[float, ...] |
3,顺序 (x, y, z) |
rad/s | 原始 arm_imu 坐标系中的角速度 |
linear_acceleration |
tuple[float, ...] |
3,顺序 (x, y, z) |
m/s² | 原始 arm_imu 坐标系中的线加速度,包含传感器观测到的重力分量 |
SDK 不在 ImuState 中保留上游 frame_id、时间戳、姿态和协方差。返回的两个三元组不能单独说明
IMU 相对 base_link 的安装方向。
读取方法#
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;模型不带源时间戳,单次非空结果
不能证明状态满足实时控制的新鲜度要求。全部状态 getter 见API 接口总览。