外观
踩坑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)
解决办法
- 若当前为示教模式(0x02),先调用
self.piper.MotionCtrl_1(0x02, 0, 0)恢复至待机模式,并强制time.sleep(1)等待状态稳定。 - 调用
self.piper.MotionCtrl_2(0x01, 0x00, 100, 0x00)设置目标为CAN控制模式,再次time.sleep(1)确保指令下发完成。 - 循环调用
self.piper.EnablePiper()直至返回True,完成电机使能。 - 再次发送
self.piper.MotionCtrl_2(0x01, 0x00, 100, 0x00)确认模式,并通过轮询GetArmStatus().arm_status.ctrl_mode == 0x01验证切换成功。 - 注意:切换过程中机械臂会失能自由落体,务必提前手动扶持或放置安全位置。
讨论原作者:@chiawenwang 等,版权归原作者所有。
来源
本页事实对应的公开页面,以原文为准。