7.7 System Status

7.7 System Status

7.7.1 BMS Status Subscription Interface

Interface Name/aima/bms/data/pb_3Aaimdk_2Eprotocol_2EBmsStateChannel
OverviewGet BMS battery status
Interface Type ROS2 Topic
Output
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: Current voltage, in mV
  • current: Current, in mA. Positive while charging and negative while discharging
  • power: Current power, in mW
  • temperature: Current temperature, in 0.1 degrees Celsius
  • capacity: Current capacity, in mAh
  • charge: Current battery percentage
  • power_supply_status: Charging status (`IDEL` idle / `CHARGING` charging / `FULL` fully charged)
  • charger_state: Whether the charger is plugged in (`ChargerNotPulgin` / `ChargerConnected`)
  • bms_state: Whether the battery is inserted (`BatteryStatus_NotPulgin` / `BatteryStatus_Connected`)
  • abnormal_state: Abnormal state (`NORMAL` / `SHORT_CIRCUIT` / overcurrent / overvoltage / undervoltage / temperature limit exceeded)
  • bms_datas: Dual-battery array (index `0` is the unplugged battery pack, index `1` is the active battery pack)
Example Scriptexamples/other/bms.py
Remarks
  • The ROS2 message type is `ros2_plugin_proto/msg/RosMsgWrapper`. Before use, run `source prebuilt/ros2_plugin_proto_aarch64/share/ros2_plugin_proto/local_setup.bash`, install the `.whl` files under `prebuilt`, and deserialize with `aimdk.protocol_pb2.BmsStateChannel`.
  • The subscriber must use `BEST_EFFORT`.

7.7.2 Emergency Stop Status Subscription Interface

Interface Name/hal_state/emergency/pb_3Aaimdk_2Eprotocol_2EEmergencyStateChannel
OverviewGet emergency stop status
Interface Type ROS2 Topic
Output
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: Whether the emergency stop is triggered
  • reason: Reason for the emergency stop (`Reason_ESTOP` wired / `Reason_WIRELESS_ESTOP` wireless / `Reason_SOFTWARE_ESTOP` software / sensor or TOF alarm / `Reason_UNDEFINED` not triggered)
  • wired_emergency_stop: Whether the wired emergency stop is triggered
  • wireless_emergency_stop: Whether the wireless emergency stop is triggered
  • software_emergency_stop: Whether the software emergency stop is triggered
  • Other sensor and TOF alarm fields indicate chassis touch sensors, lift limits, and TOF alarms in different directions, and usually do not need focused attention.
Example Scriptexamples/other/emergency_state.py
Remarks
  • The ROS2 message type is `ros2_plugin_proto/msg/RosMsgWrapper`. Before use, run `source prebuilt/ros2_plugin_proto_aarch64/share/ros2_plugin_proto/local_setup.bash`, install the `.whl` files under `prebuilt`, and deserialize with `aimdk.protocol_pb2.EmergencyStateChannel`.
  • The subscriber must use `BEST_EFFORT`.