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 Script
examples/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`.
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 Script
examples/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`.