The week before peak season last November, a 3PL e-commerce fulfillment center in East China had an unforgettable night shift. At 2:30 AM, an AMR hauling a rack died mid-artery — the only path for 200-plus robots between storage and the pick zone. A dozen robots queued behind it, the RCS map went red, pick stations starved. Cleared in 43 minutes; 3,000-plus orders missed. The post-mortem was almost insulting: the robot was at 12%, RCS gave it a long cross-floor task, and it ran out of juice halfway.
That is the cruelty of battery dispatch: months of quiet, then one dead robot shuts down the building. Here is the full teardown — battery-aware RCS dispatch, threshold math, a failsafe and rescue playbook for 2:30 AM, and why wireless charging is a showroom toy.
Reading the fuel gauge
RCS dispatch is the math a taxi driver does before a fare: check the gauge first. Every task gets an energy estimate — distance, lifts, the trip back to a charger — checked against the tank:
remaining charge ≥ task drain + safety margin + return drain
Plenty of sites check whether the robot can finish the task and forget the return leg — dying on the way home is just a more expensive way to block an aisle.
Three tiers, like markings on a fuel gauge. Tier 1, task admission (~30%): below it, no new work — finish what is in hand, then charge. Tier 2, forced recall (~20%): cross it and the robot is recalled regardless, nearest charger now. Tier 3, hard failsafe (12–15%): park where it stands, report a fault, red beacon, wait for a human. Set it so it never fires; if it fires, tiers 1 and 2 both leaked.
Three tiers, each catching what the last one missed. Too many warehouses run one 20% cutoff, or nothing, trusting the robot to sense low battery. The back half of a lithium discharge curve is a cliff — 12% to zero can be minutes.
Where to set the line
Set the threshold too high and robots live at the chargers. Too low and they die in the aisles. The trade-off:
| Forced-recall threshold | Charges/robot/day | Charger queuing | Stranding risk | Fleet availability |
|---|---|---|---|---|
| 35% | 5–6 | 10+ min queues at peak | Near zero | ~78% |
| 25% | 3–4 | Occasional queues | Low | ~86% |
| 15% | 2–3 | Rarely queues | Medium-high | ~91% |
| 10% | 1–2 | None | High; guaranteed in peak | ~93% — until one incident wipes it out |
The math: a 100-robot site moves the recall threshold from 15% to 30%, each robot charging ~1.5 extra times a day at ~25 minutes per round trip plus queue — 100 × 1.5 × 25 ≈ 62.5 robot-hours a day. Two to three robots running around the clock, wasted; over a year, two to three robots' worth of output burned as overhead.
At 10% the availability column looks great — until you price the expected loss. One main-artery stranding: 43 minutes, 3,000 delayed orders, a dozen people around one dead robot. At $0.30 all-in per delayed order, that is $900 before SLA penalties — one incident, four figures. Two or three a year wipes out every point of saved availability.
So the line sits in the middle: forced recall at 20–25%, task admission around 30%, hard failsafe at 12–15% — the working range for a 24/7 e-commerce operation. A starting point, not a destination: cold storage, heavy payloads, and ramp-heavy layouts push the numbers up 5–10 points.
One more boundary: the charger ratio — one charger per 8–10 robots. Too few and peak-hour queues form; robots burn past the recall line waiting and die at the charger's doorstep: out of power at the place closest to power. Too many and you buy idle hardware. That 1:8–1:10 assumes 2-hour fast charges and a 25% recall threshold; with a different charge rate, redo the math.
The failsafe: three gates
Thresholds are numbers on paper. Failsafes are actions.
Gate 1 — refuse dispatch when low. Before assigning, RCS runs a battery pre-check: if estimated drain (including the return leg) exceeds remaining charge, refuse and reroute. The key is dynamic estimation — an empty robot and one hauling a ton burn very different energy, as do a freezer and a room-temp floor. The model needs payload and temperature as correction factors, or it is decoration.
Gate 2 — mid-task diversion to the nearest charger. The robot crosses the recall line mid-task; RCS freezes the task, reserves the nearest free charger (reserve, not just point — two robots must not dive for the same pile), and reassigns the task. On the WCS map it shows as low-battery diverting so others route around it early.
Gate 3 — the human rescue SOP, drilled like a fire drill: (1) RCS pushes the alarm to the on-duty phone and floor display — aisle plus coordinates. (2) A named rescuer on scene within 5 minutes — named, not whoever is free; two per shift. (3) Tow bar or hand dolly in cabinets at both ends of the main artery. (4) Tow to the nearest pull-off bay — closer than the charger; restore traffic first — then clear the roadblock in RCS. (5) Reset: onto a charger, close the ticket, log battery, location, task type. That log tunes your thresholds.

20% is not 20% everywhere
December 2024, a cold-chain DC in southern China (minus 18°C freezer) commissioned 60 AMRs with every parameter copied from a room-temperature site: recall threshold 20%. First week: five strandings — RCS showed 22%, and the robot just stopped.
In the cold, lithium internal resistance climbs, usable capacity drops to roughly 70%, and the discharge curve steepens. The RCS battery model was calibrated at room temperature — in the freezer it read fiction. Three fixes: recall threshold to 30%, a temperature correction factor in the model, chargers moved from outside the freezer door into an insulated nook inside. After that: zero strandings through peak season.
The counter-intuitive lesson: 20% in a room-temp warehouse means two more tasks; 20% in a freezer means about to die. The percentage is meaningless — what matters is how many meters it buys at this temperature with this payload.
The maintenance traps
Trap 1 — nobody tracks degradation. A year-old lithium pack routinely holds 10–20% less than nameplate while RCS still does math on factory capacity. Symptom: the 20% recall line worked on new robots and starts stranding year-old ones. Fix: full charge-discharge calibration quarterly, per-robot state-of-health in RCS, packs below 80% SOH flagged for replacement.
Trap 2 — dirty charge contacts. Warehouse dust oxidizes the contacts, resistance climbs, and a robot that charged all night walks out at half charge. At the morning peak RCS dispatches it as full; it dies two tasks in. Fix: wipe contacts weekly on the inspection sheet, plus an RCS rule — any robot ending a charge below 95% is flagged and gets no long tasks until checked.
Trap 3 — phantom readings. Voltage-based estimation lies during load spikes: lifting a ton sags the voltage, RCS thinks it lost 5% and panics a recall; the load comes off, voltage recovers, the charge reappears. Fix: coulomb counting as primary estimator, voltage as backup, and a moving-average filter so noise never drives dispatch.
Wireless charging is showroom theater
Every trade show, someone asks about wireless charging. My answer never changes: do not pay the stupid tax.
The specs: wireless transfer efficiency typically 70–80% versus 92%+ for contact charging; wireless power usually a few hundred watts versus kilowatts for contact piles; wireless demands centimeter-precise alignment — drift 2–3 cm and it barely charges; one wireless pad costs what 3–4 contact chargers cost.
On the showroom floor it looks magical. But a warehouse is a 24/7 battlefield: fifteen points of lost efficiency means an extra hour of charging daily; low power means 4+ hours for a full charge; bad alignment means it sat there all night and charged nothing. Stack all three and you paid multiples for lower availability.
Auto-docking contact chargers are the answer: the robot drives in, contacts touch, charging starts. Simple, cheap, a worn contact module swaps in minutes. Spend the savings on an extra charger or two — moving the ratio from 1:10 to 1:8 so peak hours never queue.
The counter-intuitive rule: the fancier the charging technology, the lower the real-world availability. Warehouses need rugged, cheap, and fast to repair — not keynote-beautiful.
Was it worth it? One number tells you.
Three threshold tiers, a failsafe playbook, a rescue SOP, the right charger ratio — it costs money and hours. Was it worth it? One number answers: monthly low-battery strandings.
Before starting, count three months of strandings and price each one (delayed orders × cost per order + responder labor), then review monthly. If it drops from 7–8 a month to near zero, the system paid for itself. If not: gut-feel threshold, a pre-check model missing temperature and payload correction, or a rescue SOP never drilled?
Battery dispatch was never a technology problem. It is a discipline problem: every parameter written down, every drill rehearsed. The difference between the warehouse where one dead robot shuts down the building and the one with zero strandings is not the robot brand — it is the threshold numbers in RCS and the two names on the rescue roster.
By Da Liu, Automation Engineer







