状态监控服务
约 1897 字大约 6 分钟
2025-05-29
提供机器人状态监控接口类,通过 StateMonitor 可以实现状态查询等功能。
接口定义
StateMonitor
是机器人系统状态监控管理类,该类通常用于控制机器人的状态管理,支持状态查询。
GetCurrentState
项目 | 内容 |
---|---|
函数名 | GetCurrentState |
函数声明 | RobotState GetCurrentState(); |
功能概述 | 获取当前机器人聚合状态。 |
参数说明 | robot_state :用于接收状态结构体。 |
返回值 | RobotState 对象。 |
备注 | 非阻塞接口,获取最近监控到的机器人状态数据,包括 BMS 电池状态、故障信息等,后续会持续扩展。 |
RobotState
— 机器人状态数据结构体
用于表示机器人总体状态信息:
字段名 | 类型 | 描述 |
---|---|---|
faults | std::vector<Fault> | 故障信息列表 |
bms_data | BmsData | 电池管理系统数据 |
BmsData
— 电池管理系统数据结构体
表示电池的状态信息:
字段名 | 类型 | 描述 |
---|---|---|
battery_percentage | float | 当前电池剩余电量(百分比,0~100) |
battery_health | float | 电池健康状态(数值越高表示健康状态越好) |
battery_state | BatteryState | 电池状态(见上方枚举) |
power_supply_status | PowerSupplyStatus | 电池充放电状态(见上方枚举) |
枚举类型定义
BatteryState
— 电池状态枚举类型
用于表示电池当前的状态,用于系统中电池状态的判断和处理:
枚举值 | 数值 | 描述 |
---|---|---|
BatteryState::UNKNOWN | 0 | 未知状态 |
BatteryState::GOOD | 1 | 电池状态良好 |
BatteryState::OVERHEAT | 2 | 电池过热 |
BatteryState::DEAD | 3 | 电池损坏 |
BatteryState::OVERVOLTAGE | 4 | 电池过电压 |
BatteryState::UNSPEC_FAILURE | 5 | 未知故障 |
BatteryState::COLD | 6 | 电池过冷 |
BatteryState::WATCHDOG_TIMER_EXPIRE | 7 | 看门狗定时器超时 |
BatteryState::SAFETY_TIMER_EXPIRE | 8 | 安全定时器超时 |
PowerSupplyStatus
— 电池充放电状态
用于表示当前电池的充放电状态:
枚举值 | 数值 | 描述 |
---|---|---|
PowerSupplyStatus::UNKNOWN | 0 | 未知状态 |
PowerSupplyStatus::CHARGING | 1 | 电池充电中 |
PowerSupplyStatus::DISCHARGING | 2 | 电池放电中 |
PowerSupplyStatus::NOTCHARGING | 3 | 电池未充放电 |
PowerSupplyStatus::FULL | 4 | 电池充满 |
错误码映射表
错误码(十六进制) | 错误描述 |
---|---|
0x0000 | 无错误 |
0x1101 | 调用 ROS 服务失败 |
0x1301 | 中控节点丢失 |
0x1302 | APP 节点丢失 |
0x1304 | 音频节点丢失 |
0x1305 | 运动节点丢失 |
0x1306 | LCD 节点丢失 |
0x1307 | realsense 节点丢失 |
0x1308 | 双目相机节点丢失 |
0x1309 | LDS 节点丢失 |
0x130A | 传感器板节点丢失 |
0x130B | 触摸节点丢失 |
0x130C | SLAM 节点丢失 |
0x130D | 导航节点丢失 |
0x130E | AI 节点丢失 |
0x130F | 头部节点丢失 |
0x1310 | 云端处理器节点丢失 |
0x3201 | 激光无数据 |
0x3202 | 双目相机无数据 |
0x3203 | 双目相机数据错误 |
0x3204 | 双目相机初始化失败 |
0x320B | 里程计无数据 |
0x320C | IMU 无数据 |
0x6101 | 机器人连接 APP 失败 |
0x6102 | 与 APP 断开连接 |
0x9201 | 打开 LCD 串口失败 |
0x7201 | 打开头部串口失败 |
0x7202 | 头部无数据 |
0x8201 | 打开传感器板串口失败 |
0x8202 | 传感器板无数据 |
0x2201 | 错误:导航未收到 tf 数据 |
0x2202 | 错误:导航未收到地图数据 |
0x2203 | 错误:导航未收到定位数据 |
0x2204 | 错误:导航未收到超声波数据 |
0x2205 | 错误:导航未收到激光数据 |
0x2206 | 错误:导航未收到 RGBD 数据 |
0x2207 | 错误:导航未收到多线激光数据 |
0x2208 | 错误:导航未收到点 TOF 数据 |
0x2209 | 错误:导航未收到面 TOF 数据 |
0x220A | 错误:导航未收到里程计数据 |
0x2101 | 警告:导航未收到 tf 数据 |
0x2102 | 警告:导航未收到地图数据 |
0x2103 | 警告:导航未收到定位数据 |
0x2104 | 警告:导航未收到超声波数据 |
0x2105 | 警告:导航未收到激光数据 |
0x2106 | 警告:导航未收到 RGBD TOF 数据 |
0x2107 | 警告:导航未收到多线激光数据 |
0x2108 | 警告:导航未收到点 TOF 数据 |
0x2109 | 警告:导航未收到面 TOF 数据 |
0x210A | 警告:导航未收到里程计数据 |
0x4201 | SLAM 定位错误 |
0x4102 | 错误:SLAM 未收到激光数据 |
0x4103 | 错误:SLAM 未收到里程计数据 |
0x4205 | SLAM 地图错误 |