跳转至
⚙ 开发指南 > SDK > 概念指南

控制模式说明#

控制模式决定 P7 如何处理后续运动命令。模式切换需要服务可用和控制权;切换成功后仍应读取 ServiceState.fsm_state 确认实际状态。

模式选择#

SDK 模式 对应 FSM 状态 适用任务 主要限制
Controller.idle IDLE 任务开始前或结束后的空闲状态 不接受普通运动目标
Controller.planning_control PLANNING_CONTROL PTP、LIN、CIRCLE、OMPL 和路点规划 规划成功与执行完成是不同阶段
Controller.servo_control SERVO_CONTROL 连续关节或末端位姿目标 应保持稳定发送节拍并准备主动停止流程
Controller.mit_control FORCE_CONTROL 经专项验证的低层 MIT 关节控制 需要与负载、安装和整机版本匹配的参数
enter_gravity_compensation_mode() GRAVITY_COMPENSATION 人工拖动和示教 不属于 Controller 枚举,机械臂可在外力作用下移动

线协议中仍可能观察到 POSITION_CONTROL,但当前 Python SDK 没有对应的公开 Controller 成员。 不要根据状态名构造未公开的直接位置控制命令。

切换并确认#

from arm_p7_sdk import Controller

if not client.switch_controller(Controller.planning_control, timeout_ms=5000):
    raise RuntimeError("无法进入 planning_control")

state = client.get_service_state()
if state is None or state.fsm_state != "PLANNING_CONTROL":
    raise RuntimeError("尚未确认 PLANNING_CONTROL")

controller_state 是服务报告的底层控制器名称,不能代替 fsm_state。SDK 本地保存的模式也可能因 外部切换、重力补偿或状态缓存延迟而与实际 FSM 不同。

MIT 与重力补偿需要额外安全检查

MIT 参数会进入低层命令;重力补偿会让机械臂在外力作用下移动。没有与当前负载和整机版本匹配 的参数时不要进入 MIT。进入重力补偿前清空运动范围、托住机械臂,并确保实体急停可立即操作。

模式枚举和确认方式见控制模式(Controller),接口入口见 API 接口总览