+ if self.pub_battery.get_num_connections() > 0:
+ batmsg = BatteryState()
+ batmsg.header.stamp = rospy.Time.now()
+ batmsg.voltage = volt
+ batmsg.current = float('nan')
+ batmsg.charge = float('nan')
+ batmsg.capacity = float('nan')
+ batmsg.design_capacity = 5.0
+ batmsg.percentage = float('nan')
+ batmsg.power_supply_status = BatteryState.POWER_SUPPLY_STATUS_DISCHARGING
+ batmsg.power_supply_health = BatteryState.POWER_SUPPLY_HEALTH_UNKNOWN
+ batmsg.power_supply_technology = BatteryState.POWER_SUPPLY_TECHNOLOGY_NIMH
+ self.pub_battery.publish(batmsg)
+
+ if volt < 7 and (rospy.Time.now() - self.volt_last_warn).to_sec() > 10:
+ rospy.logerr("Voltage critical: %.2fV" % (volt))
+ self.volt_last_warn = rospy.Time.now()
+