Am I the only person running a robot 24/7?
TL:DR Summary) In current system $16 batteries only last a little over 2 months.
I have found running my robot 24/7 to be quite a challenge.
The first hurdle was to enable running while charging. I discovered that I could keep my Raspberry Pi 3B based GoPiGo3 robot running while the battery was being charged. To prevent the “smart” charger getting confused, the robot minimizes the computational load and load variations. Additionally, I had to develop a “charging state model” to detect the four states: [Unknown, Not Charging, Charging, Trickling] and all possible state transitions.
The robot was drawing only 318 mA at 9.6v in that early test. My robot draws 340 mA at 9.6v now, in “maintenance thoughts” mode. It is in this low demand state most of the time while I am learning and developing the “OpenCV Assisted Docking Approach” software.
The second hurdle was enabling the robot to connect its battery to the charger without my assistance. This involved repurposing an iRobot docking station:
and iRobot charging contacts:
Electrically:
This is a [u]video of Carl getting off and back onto his dock[/u] - (How he spends his 24 hours most days.)
The robot’s “life” starts out well with new batteries:
2019-07-01 08:30|------------ boot ------------
2019-07-01 08:31|[logMaintenance.py.main]** NEW BATTERY SET -Powerowl 2800mAH (2250 in BC-3000 refresh) **
2019-07-01 08:32|[logMaintenance.py.main]** Starting at Cycle 233, Life 2414 hrs **
2019-07-01 08:33|[juicer.py.main]---- juicer.py started at 10.7v
2019-07-01 15:13|[juicer.py.dock]---- Docking 234 completed at 8.1 v after 6.7 h playtime
2019-07-01 18:17|[juicer.py.undock]---- Dismount 235 at 10.8 v after 3.1 h recharge
but after two months (150 cycles ~ 1350 hours) the decline begins:
2019-09-04 02:02|[juicer.py.dock]---- Docking 382 completed at 8.1 v after 5.8 h playtime
2019-09-04 04:46|[juicer.py.undock]---- Dismount 383 at 10.9 v after 2.7 h recharge
2019-09-04 10:29|[juicer.py.dock]---- Docking 383 completed at 8.1 v after 5.7 h playtime
2019-09-04 13:08|[juicer.py.undock]---- Dismount 384 at 10.9 v after 2.7 h recharge
2019-09-04 18:48|[juicer.py.dock]---- Docking 384 completed at 8.1 v after 5.7 h playtime
2019-09-04 21:32|[juicer.py.undock]---- Dismount 385 at 10.8 v after 2.7 h recharge
Two more weeks, and the charger starts getting less “smart” (false fully charged detections):
2019-09-13 12:27|[juicer.py.dock]---- Docking 420 completed at 8.1 v after 5.0 h playtime
2019-09-13 14:12|[juicer.py.undock]---- Dismount 420 at 10.0 v after 1.8 h recharge
2019-09-13 17:57|[juicer.py.dock]---- Docking 421 completed at 8.1 v after 3.7 h playtime
2019-09-13 20:29|[juicer.py.undock]---- Dismount 421 at 10.5 v after 2.5 h recharge
2019-09-14 01:31|[juicer.py.dock]---- Docking 422 completed at 8.1 v after 5.0 h playtime
2019-09-14 03:06|[juicer.py.undock]---- Dismount 422 at 10.1 v after 1.6 h recharge
2019-09-14 06:30|[juicer.py.dock]---- Docking 423 completed at 8.1 v after 3.4 h playtime
2019-09-14 09:03|[juicer.py.undock]---- Dismount 423 at 10.6 v after 2.5 h recharge
So its 3 to 5 hour playtimes this week:
I tried EBL 2800 mAh cells, and PowerOwl 2800 mAh cells. They both started out delivering 2300 mAh in my robot when new and both began to decline around the same number of cycles (150) and need replacing around 200 cycles.
Future
I am very apprehensive about redesigning Carl’s power system around lithium technology. I don’t have a “fire proof house” for Carl to recharge in. I’m considering investigating using a 3000mAh 3S (11.1v nominal 12.6 volt max) battery with a built-in BMS (balance and protection) board. Supposedly I will get more cycles. I ordered up several configurations and chargers from aliexpress. Hopefully, Carl and I will survive the investigation.
I also just ordered a set of Eneloop Pro that supposedly will deliver more capacity for more cycles (at twice the cost), so we’ll see if Carl likes “Pro” batteries better. Reference: https://eneloop101.com