Keeping Your Robot Awake 24/7 Is Challenging

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

4 Likes

My robot Gizmo has used lipos and auto dock to run continuously(longest run 16 hours) the charging system is reliable the only thing stopping 24 hour unsupervised operation is the navigation system. the robot can get lost or stuck after a few laps of the house. I use a 5 amp hour lipo battery pack and a cheep BMS and set the charge voltage to 12.4 volts but after 9 mouths operation(3 to 5 days per week) the battery is loosing capacity

1 Like

UPDATE: Carl Passes Another 1000 Hours - First Li-Ion Test Result

Carl just passed 1000 hours into his “second year of life” on NiMH batteries. (His “birthday” is Aug 22, 2018)

pi@Carl:~/Carl $ ./totallife.sh 
Total Life:  4326.12 hrs
Life this year:  1001.75 hrs
Sessions (boot) this year:  14
Average Time Between Reboot:  71 hrs
Total Dockings:  500
Dockings this year:  149
Ave Cycle total life:  8.6 hours
Ave Cycle this year:  6.7 hours
Last Docking:  2019-10-04 07:04|[juicer.py.dock]---- Docking 500 completed at 8.1 v after 7.7 h playtime
Last Recharge:  2019-10-03 23:21|[juicer.py.undock]---- Dismount 499 at 11.2 v after 3.5 h recharge

Carl “plays” quite happily for 7.7 hours at a time of his current NiMH batteries (8x Eneloop Pro 2500mAh AA cells) after he docks to recharge for 3.5 hours. At the moment, he is docked, charging for the 15th cycle on this battery set; Each cycle lasts about 11 hours when the charger doesn’t mess up and start trickle charging early.

Panasonic makes two levels of Eneloop NiMH cells. I chose the higher capacity, lower cycles Eneloop Pro cells to test in Carl this time. They are the first batteries to deliver their promised capacity, which is very encouraging. When these cells eventually need replacing, I’m going to try the lower capacity, higher cycles Eneloop 2000 mAH cells.

Many people have responded to my “battery posts” that I should use Li-Ion batteries. With so many reports of Li-Ion battery fires, I was hesitant to even consider investigating the idea. (I should add my wife has said Carl will have to be an “outside pet” if he gets “those fire sticks”.)

Sometimes I get excited about new experiments before doing enough research. This investigation seems to be an example of that.

I purchased four “UniversALBC 18650 3.7v 4000mAh” cells from aliexpress, which arrived 16 days later from China, marked “Fan Accessories”. (US Postal regulations seem to prohibit international shipments of Li-Ion cells not installed in equipment. Just cells is not permitted as I read the regs.)

After three cycles, charging to 4.2v, then discharging at 500mA down to 2.8-3.0v, in a BC-3000 charger, the cells are consistently delivering 1900mAh. A three cell (3S1P) 11.1v nominal battery, operating from 12.6v down to 9v, this would deliver about 21 wH. Most people suggest only discharging to the knee at 3.5-3.6v per cell which would decrease the total power delivered to roughly 16 wH.

For reference, Carl’s current NiMH 9.6v 2500mAH battery is delivering 24 wH, so these early results do not portend Li-Ion cells in Carl’s future.

Researching Li-Ion performance on the Internet confirmed that my results are exactly matching the average Chinese Li-Ion cell performance. Apparently there are some Panasonic and Samsung variety Li-Ion cells which do deliver on their promised initial capacities, (at a cost and actual cycle life similar to NiMH), but even those still come with the warning “Do not charge unattended!” The whole point of allowing Carl to run 24/7 is so that I don’t have to tend to his needs.

Test setup: Fire Resistant Bag with BC-3000 charger (outside of bag for photo):

I wonder did you ever thought of moving the charger on to your robot? My robot can run 24/7 and I have the charger on my robot. Advantage: With only two contacts the robot can be powered from the dock while charging, so the battery does not get discharged while docked.

I’m using LSD-NiMH batteries (similar to your eneloops, but I forgot the exact product name) with a TEA1101 IC based charge module.

1 Like

That is an interesting concept I had not considered.