跳转至
⚙ 开发指南 > SDK > API > 数据结构

ArmState(机械臂状态)#

ArmState 是与 P6 目录对应的栏目名称;P7 SDK 没有同名对象。P7 使用 ArmJointStateArmMotorStateImuState 三个独立模型返回机械臂相关状态。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 接口总览