Skip to content

踩坑GitHub agilexrobotics/piper_sdk9 个月前

PiPER机械臂示教模式后无法切换回CAN控制模式 ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:机械臂无法从STANDBY模式切换回CAN模式(GitHub agilexrobotics/piper_sdk #103)

状态:已解决

问题 ​

用户在使用完示教模式(0x02)后尝试切换回CAN控制模式(0x01),机械臂始终停留在STANDBY状态。原代码直接调用MotionCtrl_1(0x00, 0x00, 0x02)退出示教后立即执行使能与模式设置,未正确处理中间状态转换时序,导致模式切换指令被忽略或失效。

环境 ​

机型:agilex-piper;SDK:piper_sdk;控制接口:CAN;模式状态:STANDBY(0x00)/TEACH(0x02)/CAN_CTRL(0x01)

解决办法 ​

  1. 若当前为示教模式(0x02),先调用self.piper.MotionCtrl_1(0x02, 0, 0)恢复至待机模式,并强制time.sleep(1)等待状态稳定。
  2. 调用self.piper.MotionCtrl_2(0x01, 0x00, 100, 0x00)设置目标为CAN控制模式,再次time.sleep(1)确保指令下发完成。
  3. 循环调用self.piper.EnablePiper()直至返回True,完成电机使能。
  4. 再次发送self.piper.MotionCtrl_2(0x01, 0x00, 100, 0x00)确认模式,并通过轮询GetArmStatus().arm_status.ctrl_mode == 0x01验证切换成功。
  5. 注意:切换过程中机械臂会失能自由落体,务必提前手动扶持或放置安全位置。

讨论原作者:@chiawenwang 等,版权归原作者所有。

来源

本页事实对应的公开页面,以原文为准。

  1. GitHub agilexrobotics/piper_sdk #103:机械臂无法从STANDBY模式切换回CAN模式访问 2026-10-26