机械臂异常查看以及处理方法
当机械臂未成功执行运动指令时,可以在python终端中查询到对应的异常信息, 例如
读取机器人状态
状态反馈解析
正常情况下此接口反馈全0,读取机器人状态如下:
from pymycobot import Pro450Client
pro450 = Pro450Client('192.168.0.232', 4500)
if pro450.is_power_on() !=1:
pro450.power_on() # 上电
pro450.get_robot_status() #读取机器人状态
返回:
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
表示机器人未在运动,无关节超限,无关节硬件报错、无关节软件报错
各个值完整解析如下:
[保留,是否正在运动,J1是否超限,J2是否超限,J3是否超限,J4是否超限,J5是否超限,J6是否超限,J1是否电机硬件报错,J2是否电机硬件报错,J3是否电机硬件报错,J4是否电机硬件报错,J5是否电机硬件报错,J6是否电机硬件报错,J1是否软件通信报错,J2是否软件通信报错,J3是否软件通信报错,J4是否软件通信报错,J5是否软件通信报错,J6是否软件通信报错]
案例如下:
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0]
表示机器人在运动时报错,J4报控制错误。
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
表示机器人J2超限。
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0]
表示机器人J5线路异常--接收报错
异常解决
关节超限
关节超限时,可使用以下解决方法之一:
- 执行超限回零接口:
pro450.over_limit_return_zero() #机器人会以较慢速度回到原点
- 执行关节放松,手动将关节移动到限位内
pro450.set_motor_enable(254, 0)
关节硬件报错
大部分硬件报错可以使用异常恢复
pro450.servo_restore(joint_id)
若使用异常恢复或者机器人重启后,仍然频繁出现此问题,请联系我方工程师,具体各关节硬件详细报错:
比特位(2字节) | 错误状态 |
---|---|
0 | CAN总线错误,可使用异常恢复,无法恢复时,检查通信线路,修复后重新通电使能 |
1 | 短路,可使用异常恢复 |
2 | 无效的设置数据 |
3 | 控制错误,可使用异常恢复 |
4 | CAN通信错误,可使用异常恢复,无法恢复时,检查通信线路,修复后重新通电使能 |
5 | 反馈错误,可使用异常恢复 |
6 | 正限位开关激活 |
7 | 负限位开关激活 |
8 | 负限位开关激活 |
9 | 过流,可使用异常恢复 |
10 | 12t保护,可使用异常恢复过温,可使用异常恢复 |
11 | 驱动板过温,可使用异常恢复 |
12 | 过压,可使用异常恢复 |
13 | 欠压,可使用异常恢复 |
14 | 命令错误 |
15 | 启用处于非活动状态 |
关节软件报错
软件上的错误反馈主要为:线路异常、can模块异常、编码器异常、掉使能等,当出现掉使能,请使用pro450.set_motor_enable(254, 1)
上使能再运动,其它异常,请联系我方工程师,具体各关节软件详细报错:
比特位(1字节) | 错误状态 1-异常 0-正常 |
---|---|
0 | Can初始化异常,需检查主控板。修复控制板异常后,掉电再上电。表现:机器无法使能、控制等 |
1 | 电机初始化异常,需检查电机通信线路等修复异常后,掉电再上电。表现:机器无法正常反馈关节信息、控制等 |
2 | 电机发送异常,需检查电机通信线路等,表现:机器位置反馈等异常;可使用异常恢复清除。 |
3 | 电机接收异常,需检查电机通信线路等,表现:机器位置反馈等异常:可使用异常恢复清除。此反馈可正常控制机器,无需提示用户,主要用于排查异常 |
4 | 位置超差,需检查电机编码器等,表现机器掉使能,无法运动控制:可使用异常恢复清除。 |
5 | 末端发送异常,需检查末端通信线路等,表现:未端接口反馈异常;可使用异常恢复清除。 |
6 | 末端接收异常,需检查末端通信线路等,表现:未端接口反馈异常:可使用异常恢复清除。此反馈可正常控制机器,无需提示用户,主要用于排查异常 |
7 | 电机编码器报错,编码器报错时,不可运动,需要清除编码器报错。旧版电机驱动板无报错-即使报了编码器错误,软件无法反馈异常。如何区分新1日:板子上带电池的为新驱动板。 |
8 | 掉使能会反馈,运动前机器必须是使能状态 |
机器人处于运动状态,机器人无法运动
机器人处于运动状态,发送运动点位不响应,请先将机器人运动停止,执行pro450.stop()
、pro450.resume()
,如仍然无法继续运动,请联系我方工程师。