7.7 系统状态部分

7.7 系统状态部分

7.7.1 BMS 状态订阅接口

接口名/aima/bms/data/pb_3Aaimdk_2Eprotocol_2EBmsStateChannel
功能概述获取 BMS 电池状态
接口类型 ROS2 Topic
出参
text
{
  "bms_datas": [
    {
      "voltage": 0,
      "current": 0,
      "power": 0,
      "temperature": 0,
      "capacity": 0,
      "charge": 0,
      "charger_state": "ChargerNotPulgin",
      "bms_state": "BatteryStatus_NotPulgin",
      "abnormal_state": "PowerAbnormalStatus_NORMAL"
    },
    {
      "voltage": 58910,
      "current": 7976,
      "power": 0,
      "temperature": 314,
      "capacity": 4047,
      "charge": 42,
      "power_supply_status": "PowerSupplyStatus_CHARGING",
      "charger_state": "ChargerConnected",
      "bms_state": "BatteryStatus_Connected",
      "abnormal_state": "PowerAbnormalStatus_NORMAL"
    }
  ]
}
  • voltage:当前电压,单位 mV
  • current:当前电流,单位 mA,充电为正、放电为负
  • power:当前功率,单位 mW
  • temperature:当前温度,单位 0.1℃
  • capacity:当前容量,单位 mAh
  • charge:当前电量百分比
  • power_supply_status:充电状态(IDEL 空闲 / CHARGING 充电中 / FULL 已充满)
  • charger_state:充电器是否插入(ChargerNotPulgin / ChargerConnected)
  • bms_state:电池是否插入(BatteryStatus_NotPulgin / BatteryStatus_Connected)
  • abnormal_state:异常状态(NORMAL / SHORT_CIRCUIT / 过流 / 过压 / 欠压 / 温度超限等)
  • bms_datas:双电池包数组(下标 0 为未接电池包,下标 1 为在用电池包)
示例脚本examples/other/bms.py
备注
  • 该消息的 ROS2 类型为 ros2_plugin_proto/msg/RosMsgWrapper,需 source prebuilt/ros2_plugin_proto_aarch64/share/ros2_plugin_proto/local_setup.bash 后使用,需要安装 prebuilt 里的 .whl 文件,并用 aimdk.protocol_pb2.BmsStateChannel 反序列化。
  • 订阅端需用 BEST_EFFORT。

7.7.2 急停状态订阅接口

接口名/hal_state/emergency/pb_3Aaimdk_2Eprotocol_2EEmergencyStateChannel
功能概述获取急停状态
接口类型 ROS2 Topic
出参
text
{
  "data": {
    "reason": "Reason_UNDEFINED",
    "wired_emergency_stop": false,
    "wireless_emergency_stop": false,
    "software_emergency_stop": false,
    "left_front_sensor_alarm": false,
    "right_front_sensor_alarm": false,
    "left_sensor_alarm": false,
    "right_sensor_alarm": false,
    "left_back_sensor_alarm": false,
    "right_back_sensor_alarm": false,
    "lift_upper_limit_alarm": false,
    "lift_lower_limit_alarm": false,
    "tray_limit_alarm": false,
    "front_left_tof_alarm": false,
    "front_right_tof_alarm": false,
    "right_front_tof_alarm": false,
    "right_back_tof_alarm": false,
    "back_tof_alarm": false,
    "left_back_tof_alarm": false,
    "left_front_tof_alarm": false
  }
}
  • active:急停是否触发
  • reason:急停触发原因(Reason_ESTOP 有线 / Reason_WIRELESS_ESTOP 无线 / Reason_SOFTWARE_ESTOP 软件 / 各传感器、TOF 报警 / Reason_UNDEFINED 未触发)
  • wired_emergency_stop:有线急停是否触发
  • wireless_emergency_stop:无线急停是否触发
  • software_emergency_stop:软件急停是否触发
  • 其余传感器/TOF 报警位:底盘触边、升降限位、各方向 TOF 报警,无需重点关注
示例脚本examples/other/emergency_state.py
备注
  • 该消息的 ROS2 类型为 ros2_plugin_proto/msg/RosMsgWrapper,需 source prebuilt/ros2_plugin_proto_aarch64/share/ros2_plugin_proto/local_setup.bash 后使用,需要安装 prebuilt 里的 .whl 文件,并用 aimdk.protocol_pb2.EmergencyStateChannel 反序列化。
  • 订阅端需用 BEST_EFFORT。