4.3 运控诊断异常码

目前运控执行过程中出现的异常信息会在遥控器上弹窗显示,错误码如下表所示:

key

项目含义

key_str

code 解析

提示内容

0

空项目,无意义

None

不提示

1

恢复站立诊断项。
是否因为关节位置不对导致狗不能站起来

RecoverStand_JointPos

0:无报错;
其他:12个关节编号0~11对应code的0~11bit,哪个关节位置不对,哪个bit就置1.

关节位置异常,无法站立,故障码:$code

2

恢复站立诊断项。
是否因为电机报错导致狗不能站起来。

RecoverStand_MotorWarningLevel

0: 无报错;
其他:MotorWarningLeve的等级,1~3,数字越大,问题越严重

关节硬件异常,无法站立,故障码:$code

3

恢复站立诊断项。
是否因为电池电量低导致狗不能站起来。

RecoverStand_SocWarningLevel

0:无报错;
其他:SocWarningLeve的等级,1~3,数字越大,问题越严重

电量过低,无法站立,故障码:$code

4

恢复站立诊断项。
是否因为IMU报错导致狗不能站起来。

RecoverStand_ImuStatus

0:无报错;
其他:bit0:
0:ok;
1:IMU 模块不可用;bit1:
0:ok;
1:IMU 姿态不适合恢复站立;

IMU传感器异常,无法站立,故障码:$code

5

恢复站立诊断项。
是否因为指令不对导致狗不能站起来。

RecoverStand_CmdError

0:无报错;
1: 阻尼指令还在,不能响应恢复站立指令;
2: 卸力指令还在,不能响应恢复站立指令;

存在阻尼或卸力指令,无法站立,故障码:$code

6

视觉模式下的报错。
高程图节点是否出错。

VisualMode_ElevationMapping

0:无报错;
-1:高程图节点超时;
1:前深度相机出错;
2:前深度相机里程计出错;

高程图异常,视觉模式不可用,故障码:$code

7

视觉模式下的报错。
里程计节点是否出错。

VisualMode_Odom

0:无报错;
-1:里程计超时;
1:里程计未进入视觉模式;
2:里程计初始化中;
3:里程计数据输入出错;

里程计异常,视觉模式不可用,故障码:$code

8

视觉模式下的报错。
运控内部感知模块是否出错。

VisualMode_Perception

0:无报错;
1:出错;

获取地图异常,视觉模式不可用,故障码:$code

9
10
11
12

前右腿状态
前左腿状态
后右腿状态
后左腿状态

Leg_frontRight
Leg_frontLeft
Leg_rearRight
Leg_rearLeft

0:无报错;
其他值:
以下各bit值为0表示无报错,值为1解析如下:
bit0: A关节通讯丢失;
bit1: H关节通讯丢失;
bit2: K关节通讯丢失;
bit3: 该腿CAN总线busoff;
bit4: A关节出错;
bit5: H关节出错;
bit6: K关节出错;
bit8: A关节反馈了具体的Errcode;
bit9: H关节反馈了具体的Errcode;
bit10: K关节反馈了具体的Errcode;

右前腿硬件异常,故障码:$code
左前腿硬件异常,故障码:$code
右后腿硬件异常,故障码:$code
左后腿硬件异常,故障码:$code

13

电机温度状态等级

MotroTempWarning

0:OK;
其他值:1~3,数字越大,问题越严重

电机高温预警,故障码:$code

14

电池电量状态等级

SocWarning

0:OK;
其他值:1~3,数字越大,问题越严重

低电量预警,故障码:$code

15

Imu状态

Imu

0:OK;
1: Imu不可用

IMU传感器模块异常,故障码:$code

16

运行时安全检测

SafetyChecker

0:OK;
其他值:
以下各bit值为0表示无报错,值为1解析如下:
bit0: imu出错;
bit1:机身姿态角超出极限范围;
bit2:关节角度或速度超限;
bit3:关节硬件异常;
bit4:关节角度到达硬限位;
bit5:足端位置超限;

运行时安全检测异常,故障码:$code

17

UserMode切换(一般模式,高速模式,视觉模式)

UserModeSwitch

0:OK;
1:切换到视觉模式失败;
2:切换到高速模式失败;

切换到xx模式失败,视在静止状态重试 ,故障码:$code

用户可通过订阅话题"report_all_item"获取上述所有诊断项的结果。诊断项的数据结构如下:

status_report_set #外层消息定义
Header header               #
uint16 total_count          # 一共有几项
uint16 error_count          # 出错的有几项
status_report[] report_set  # 各项诊断详情 组成的数组
status_report #内层消息定义
string key_str  # key转成字符串,目的是提高可读性
int16 key       # key 诊断项目的唯一识别id,每个项目都不一样
int16 code      # 故障码,详情见上表
string str      # 字符串信息,code含义提示,目的是减少查code的时间