Multi-robot task allocation chooses which feasible robot should own each task and when that decision should change. Nearest distance is rarely enough. Current commitments, travel time, service duration, congestion, payload, access, battery, charging queues, deadlines and fault state all affect completion.
The allocator should first reject impossible robot-task pairs, then compare the remaining candidates with a declared cost model. Assignment quality also includes stability: constant reassignment can waste travel, confuse physical ownership and create traffic even when each new mathematical result is marginally better.
Use this guide with the AMR and AGV selection guide and VDA 5050 guide. Replay production-like orders and faults before allowing the allocator to control a live fleet.
Define the allocation objective in operational units
Choose whether the system minimizes completion time, lateness, energy, travel, station blockage or a weighted combination. State the horizon and unit of every term. An opaque score makes it difficult to explain why a distant robot displaced a nearby one or why an urgent order waited.
The Google OR-Tools assignment example shows how assignments can be represented as minimum-cost flow. A production model adds time, state and resource constraints, but the principle remains: costs and feasibility must be comparable and traceable.

Snapshot tasks and robots on one clock
An allocation run needs a coherent snapshot. Task state includes pickup, delivery, payload, priority, deadline, service time and dependencies. Robot state includes pose, active commitment, remaining work, load, capability, battery, health and accessible regions.
Attach source timestamp and maximum age to each field. A fresh task combined with an old robot pose or battery estimate produces a precise answer to an inconsistent problem. Reject or quarantine candidates whose required state exceeds the allocation freshness limit.
| Input | Required fields | Feasibility use | Cost use |
|---|---|---|---|
| Task | Locations, load, deadline, service | Capability and access | Lateness and service time |
| Robot | Pose, load, health, commitment | Availability and payload | Remaining work and travel |
| Battery | Energy and reserve | Can finish safely | Charge detour and queue |
| Map and traffic | Routes, closures, reservations | Reachability | Predicted travel and delay |
| Station | Capacity and status | Service compatibility | Queue and occupancy |
Filter infeasible candidates before scoring
Remove pairs that violate payload, tool, region permission, map compatibility, health, energy reserve or task dependency. Feasibility is a hard gate when violation cannot be traded for faster completion. Giving an impossible pair a large finite cost risks selecting it when all alternatives are also expensive.
Return a reason code for every rejection. If no candidate remains, expose the dominant causes immediately rather than placing the task in a silent queue. Distinguish temporary infeasibility, such as charging, from structural mismatch that requires a different robot or human process.
Estimate completion time instead of straight-line distance
Completion cost begins with remaining current work, travel to pickup, service, travel to delivery and final service. Add route restrictions, turn costs, expected congestion and station queues. Euclidean distance can favor a robot separated by a wall, one-way lane or occupied intersection.
Calibrate segment and service estimates from production logs. Track predicted versus actual completion by route, robot and condition. When error grows, update the model deliberately; do not let unexplained ad hoc penalties accumulate inside a score no operator can audit.

Model shared traffic and stations
Robots compete for narrow aisles, lifts, doors, workcells and chargers. Independent shortest paths can produce a globally slow assignment because several robots arrive at one bottleneck together. Include reservation delay or a congestion forecast in the candidate completion estimate.
The Open-RMF demonstrations repository illustrates fleet and infrastructure coordination workflows. Regardless of framework, define which service owns doors, lanes and station reservations so assignment and traffic control do not make incompatible promises.
| Operational event | Recompute candidates? | Preserve ownership? | Evidence to record |
|---|---|---|---|
| New task | Yes | Existing work normally held | Snapshot and bids |
| Robot fault | Yes for affected work | Physical load may remain | Fault, load and recovery owner |
| Route closure | Yes for impacted routes | Hold if safe and feasible | Closure version and paths |
| Small cost improvement | Usually no | Use hysteresis | Best and current cost gap |
| Deadline risk | Yes | Policy dependent | Predicted lateness and options |
Treat battery as mission energy, not one threshold
A robot needs energy for remaining work, pickup and delivery, a reachable charger and a reserve under uncertainty. A single battery percentage threshold ignores payload, route, temperature, aging and charger queue. Estimate completion energy and require a defensible post-task reserve.
Separate dispatch permission from charge scheduling. A low-priority task may still be feasible before charging when it ends near a station, while an urgent long task may not be. Record the energy estimate and reserve reason in every candidate decision.
Express deadlines and priority without starvation
Priority can enter through lateness cost, service class or hard deadline constraints. An unbounded weight can make one class consume all capacity and leave older work waiting indefinitely. Use aging or explicit service guarantees so lower-priority tasks gain urgency over time.
Replay burst traffic and prolonged high-priority demand. Report deadline misses by class, age distribution and maximum wait, not only average throughput. Separate true emergency work from business preference so the policy remains explainable.
Reallocate only after material change
Recompute when a new order arrives, a task completes, a robot fails, a route closes or predicted cost changes materially. Freeze work that is physically underway unless interruption is supported. Reallocating a picked load without a transfer process creates two software plans for one physical object.
Apply hysteresis, minimum hold time and switching cost. Change ownership only when improvement exceeds the disruption cost or current execution becomes infeasible. Log the current and proposed costs, trigger and policy threshold for every reassignment.
Preserve physical task ownership during faults
A robot can go offline while still carrying material. Task status, physical load location, robot command ownership and recoverability are distinct facts. Do not simply return the order to the unassigned pool until the system knows whether another robot or a person can access the load.
Create states for stranded, recoverable, transferred and manually resolved work. Prevent duplicate pickup. When communication returns, reconcile robot-local and fleet state with idempotent events and an authoritative ownership rule.
Choose centralized and distributed boundaries
A centralized allocator can compare the whole fleet but depends on current shared state and service availability. Distributed bidding can scale across heterogeneous fleets but still needs consistent task identity, cost semantics, deadlines and award authority. Neither architecture removes stale-state or split-brain risk.
Define proposal expiry, award confirmation, duplicate handling and leader failover. The allocator should degrade predictably when connectivity is lost. Robots already executing safe work may continue under a bounded policy while new cross-fleet allocation pauses.
Validate offline, in shadow mode and under faults
Replay historical orders, poses, battery and station events to compare current and candidate policies. Then run shadow mode on live state without issuing awards. Compare predicted completion, actual outcome, churn, deadlines and congestion while preserving the production allocator.
Inject robot loss, delayed telemetry, charger outage, blocked aisle, order burst and allocator restart. Inspect tail completion time and starving tasks. A lower average can hide severe instability or a small group of orders that never complete.
Expose the decision, alternatives and uncertainty
For every award, retain feasible candidates, rejected reasons, cost components, current assignment, selected assignment, runner-up and data ages. Operator tools should explain the decision in completion-time terms rather than a single score. Track predicted versus actual cost to reveal model drift.
Release allocator versions with scenarios and rollback criteria.
- Filter impossible robot-task pairs before ranking.
- Estimate full completion, queues and charging.
- Use hysteresis and explicit switching cost.
- Separate software assignment from physical load ownership.
- Replay faults and inspect tail performance and starvation.
Frequently asked questions
Should the nearest robot always receive a new task?
No. Remaining work, route time, congestion, payload, battery, charging and deadlines can make another robot finish earlier.
How should allocation weights be chosen?
Express terms in operational units where possible, calibrate from logs and replay scenarios before versioning any change.
When should a fleet reassign a task?
Reassign after material state or cost change, while respecting physical execution, switching cost and a stability threshold.
What happens to a task when its robot fails?
Preserve physical load and ownership state, determine recoverability, then transfer or reassign only through an explicit process.
How can a new allocator be tested safely?
Use offline replay, then shadow mode, followed by bounded pilots with fault injection and rollback criteria.
Fleet Optimization and Operational Authority Boundary
Task allocation optimizes operational decisions; it does not authorize unsafe motion or override access, traffic, safeguarding, battery or human-work rules. Keep those constraints enforceable outside the objective score.