Context
Current firmware publishes sensor_msgs/BatteryState and a couple of auxiliary power topics. Upstream OpenMower LowLevel exposes a richer low-level status packet with explicit status bits and faster status updates.
Current Local Behavior
- Publishes
power as sensor_msgs/BatteryState at 1 Hz.
- Publishes
power/charge_voltage and power/charger_present at 1 Hz.
- Tracks battery voltage, charge voltage, charge current, battery percent, present flag, power supply status, and health.
Upstream Reference Behavior
OpenMower LowLevel status includes:
- Initialized bit.
- Raspberry Pi power bit.
- Charging enabled bit.
- ESC power bit.
- Rain bit.
- Sound available/busy bits.
- UI board available bit.
- Emergency bitmask.
- Battery voltage, charge voltage, charging current, and battery percentage.
- Status update cycle around 100 ms.
Acceptance Criteria
- Decide on a ROS 2 status representation for low-level board state beyond
BatteryState.
- Publish charger voltage, charge current, charger present, charge enabled, and battery percentage consistently.
- Publish board status bits or equivalent structured topics for Pi power, charging enabled, ESC power, rain, UI, and emergency once available.
- Fill more
BatteryState fields where meaningful, such as current and design capacity if the sign semantics are clear.
- Review status publish rate. Keep
BatteryState at a reasonable rate, but consider faster event/status topics where needed.
- Document topic names and units in README or project documentation.
Notes
Prefer standard ROS messages where they fit, but use explicit custom status only if standard messages become ambiguous.
Context
Current firmware publishes
sensor_msgs/BatteryStateand a couple of auxiliary power topics. Upstream OpenMower LowLevel exposes a richer low-level status packet with explicit status bits and faster status updates.Current Local Behavior
powerassensor_msgs/BatteryStateat 1 Hz.power/charge_voltageandpower/charger_presentat 1 Hz.Upstream Reference Behavior
OpenMower LowLevel status includes:
Acceptance Criteria
BatteryState.BatteryStatefields where meaningful, such as current and design capacity if the sign semantics are clear.BatteryStateat a reasonable rate, but consider faster event/status topics where needed.Notes
Prefer standard ROS messages where they fit, but use explicit custom status only if standard messages become ambiguous.