跳转至
⚙ 开发指南 > SDK > 附录

电机错误码查询#

P7 SDK 通过 ArmMotorState.error_idsEEFMotorState.eef_error_id 返回原始错误整数。错误位或错误码 的含义取决于电机、固件和整机版本,因此这里不提供从其他产品复制的完整数字对照表。

先保存现场信息#

发现非零错误值后,先停止需要该设备保持健康的后续操作,并保存:

  • ServiceState.fsm_stateservice_statevalid
  • 全部机械臂或 EEF 原始错误整数,不只保存第一项;
  • 对应电机温度、关节位置及速度;
  • ArmFirmwareInfo、Python SDK 和 Arm App 版本;
  • 发生时间、当时模式、负载、工具、供电、线缆和现场现象。

不要把 None 当作全零状态,也不要在记录前调用清错。

根据状态选择动作#

现象 下一步 不应执行
非零机械臂 error_ids,FSM 为 UNKNOWN_ERROR 排除供电、线缆、负载、温度或固件所指原因;取得控制权后使用受支持的清错流程 无界重试或丢弃原错误码
EEF 错误为非零 保持停止,记录 EEF 型号、模式、状态和版本,使用对应交付恢复说明 调用当前不受支持的 EEF 清错入口试探
FSM 为 IN_COLLISION 保持停止并按碰撞恢复流程处理 用电机清错、普通 stop 或急停复位绕过碰撞状态
状态缺失、陈旧或无法确认停止 隔离现场,检查通信和服务;必要时使用实体急停 根据旧缓存继续控制或自动恢复

机械臂清错接口#

clear_error()clear_arm_motor_err() 当前进入同一个 UNKNOWN_ERROR 清除路径。服务必须处于 UNKNOWN_ERROR,最新机械臂电机状态必须完整,错误原因必须已经排除,客户端还需要控制权。

client.clear_error() -> bool
client.clear_arm_motor_err(retry: bool = True) -> bool

清错返回 True 后仍应读取 ServiceState,确认回到 IDLE,再读取电机状态确认错误没有复现。 返回 False、超时或错误再次出现时,停止重试并保留日志和原始错误值。

clear_eef_motor_err() 虽然是公开方法,但当前 gRPC 和 DDS 后端都会抛出 UnsupportedOperationError。不要把它加入自动恢复流程。

软件急停不能替代实体急停

SDK 软件急停依赖上位机、网络和板端服务。出现意外运动、人员侵入或无法确认停止时,应由现场 人员操作实体急停,并按现场安全流程处理。

安全与恢复接口见API 接口总览;字段定义见 ArmState(机械臂状态)EEFState(末端执行器状态)