Autonomous mobile robot fleets are commanded through predefined workflows, a warehouse
management system integration, or a custom dashboard built during commissioning. Each of those
works well for the tasks that were anticipated, and poorly for everything else.
The practical consequence is that the operation adapts to the tool rather than the tool adapting to the
operation. A supervisor who wants to sequence two tasks conditionally, or route around a blocked aisle
for the afternoon, or prioritise one dock over another because a truck is late, is either configuring a
workflow or calling an integrator.
That single sentence contains an entity reference, two locations, a precedence constraint, an implied robot allocation and an implied battery condition. Expressing it in a dashboard takes several screens.Expressing it in speech takes four seconds.
Warehouse floors are radio hostile environments full of metal racking, and site policy frequently forbids operational data leaving the building at all. Running the planning layer on the floor removes both problems, and it also removes the per instruction inference cost that would otherwise scale with throughput
A single Kria KR260 node on the warehouse network hosts the reasoning and planning layer. It listens to the supervisor, resolves what they said against a live registry of real robots and real locations, produces a structured mission plan, and hands that plan to the existing fleet manager and ROS2 stack+
The most important design decision in this architecture is what the model is not allowed to do.
| The model does | The model never does |
|---|---|
| Understand operator intent | Drive the robot |
| Resolve names to real entities | Compute a path |
| Order tasks and dependencies | Interpret sensor data |
| Propose an allocation | Override a safety stop |
| Emit a structured plan | Write directly to a controller |
| Ask when uncertain | Guess a destination |
| Element | Configuration |
|---|---|
| Platform | AMD Kria KR260 robotics starter kit |
| System on module | Kria K26, Zynq UltraScale+ MPSoC |
| Processors | Quad core Cortex-A53 with dual core Cortex-R5F |
| Memory | 4 GB on-module DDR4 |
| Acceleration | Programmable fabric with DPU for vision and audio offload |
| Networking | Multiple Gigabit Ethernet on the carrier |
| Storage | NVMe or eMMC for model, index and audit log |
Where the KR260 is deployed on the robot rather than at a supervisor station, it also carries the perception payload. In the reference design the two roles are separated, with a planning node on the network and perception handled on each robot.
Acoustic conditions drive this choice more than anything else. A warehouse floor typically sits well above conversational noise levels, with reverberation from hard surfaces and racking. A headset with a close talking microphone will outperform a far field array in most facilities, and it also makes it unambiguous who is issuing an instruction.
The planning node sits alongside the fleet manager on the operational network, not on the corporate network and not on the internet. It needs to reach the fleet manager and the message broker. It does not need, and in the reference design does not have, an outbound path
A language model that does not know what robots exist will invent one. The world model is the component that prevents that, and it is the difference between a
demonstration and a deployable system.
| Entity class | Attributes tracked |
|---|---|
| Robots | Identifier, type, payload capability, current task, battery state, location, availability |
| Docks and bays | Identifier, aliases, current occupancy, access restrictions |
| Racks and storage | Identifier, aisle, level, capacity, current contents where known |
| Zones | Boundaries, access rules, temporary exclusions, speed restrictions |
| Charging points | Identifier, occupancy, compatibility by robot type |
| Loads | Pallet or tote identifiers currently known to the system |
Every entity the model names in a plan must resolve to a real record in the world model. There is no path by which an unresolved name reaches the fleet manage
| Condition | Behaviour |
|---|---|
| Name resolves uniquely | Proceed. |
| Name resolves to several entities | Ask the operator to disambiguate, listing the candidates. |
| Name does not resolve | Reject and say so. Never substitute the nearest match. |
| Entity exists but is unavailable | Report why, and offer the feasible alternative if one exists. |
| Entity state is stale | Treat as unknown and request confirmation. |
The model does not write free text that is then parsed. It generates directly into a schema, using grammar constrained decoding so that structurally invalid output is not merely rejected but is impossible to produce
Language models are good at understanding what someone meant. They are unreliable at constraint satisfaction, and unreliable in a way that is hard to test. The planner is therefore a conventional deterministic component that takes the model’s interpretation and turns it into something feasible.
| Planner responsibility | What it checks |
|---|---|
| Dependency ordering | Precedence expressed in the instruction is turned into an acyclic task graph and validated. |
| Feasibility | Is there a robot of the right type, free within the window, able to reach both locations. |
| Battery and duty | Does the assigned robot have enough charge for the full task chain plus a return margin. |
| Zone and access rules | Are all traversals and all destinations permitted for this robot type at this time. |
| Capacity | Does the destination have space, and is the load within payload limits. |
| Conflict | Does this plan contend with an already dispatched plan for the same robot, load or location. |
Where the instruction does not name a robot, the planner proposes one. The allocation policy is configuration, not model behaviour, so a site can tune it without retraining anything.
Every rejection is returned to the operator with the specific reason and, where one exists, a feasible alternative. A plan that fails silently is worse than no plan, because the operator believes work is underway.
A three billion parameter model at sixteen bit precision needs roughly six gigabytes for weights alone, against four gigabytes available on the module. At four bit the same model comes down to approximately 1.7 gigabytes, leaving room for the speech model, the world model, the index and the operating system.
Throughput is bound by memory bandwidth rather than by arithmetic, because every generated token requires the full weight set to stream out of DDR. Halving the bytes per weight roughly doubles the
achievable token rate
| Component | Allocation |
|---|---|
| Quantized model weights | ~1.7 to 2.2 GB |
| Key value cache at working context | ~150 to 250 MB |
| Speech recognition model | ~75 MB |
| World model and entity index | ~100 to 200 MB |
| Runtime, ROS2 bridge and OS | ~600 to 800 MB |
| Headroom retained | Reserved, not consumed |
Theoretical bandwidth on the module is a ceiling nobody reaches. Closing the gap between theoretical and achieved bandwidth is where the engineering effort actually goes.
| Component | Role |
|---|---|
| ROS2 | Middleware and node graph across the robot fleet. |
| Nav2 | Path planning, obstacle avoidance and recovery behaviours. |
| MoveIt | Manipulation where the robot carries an arm. |
| VSLAM | Localisation and map maintenance. |
| Object detection | Load identification and pick verification on the DPU. |
| Fleet manager | Dispatch, traffic control and contention resolution. |
| MQTT | State distribution and plan handoff. |
| OPC-UA | Integration with conveyors, doors and fixed automation. |
Everything below the mission plan. Localisation, path planning, obstacle avoidance, docking, pick verification and every safety function operate exactly as they did before the language layer was introduced, and they are validated the same way.
Safety is not implemented in software that a language model can influence. It is implemented where it always was, and the language layer sits entirely outside that boundary
| Safety function | Where it lives |
|---|---|
| Emergency stop | Hardwired, independent of all software. |
| Protective laser scanners | Safety rated devices on the robot, directly interlocked. |
| Speed and separation | Safety controller on the robot. |
| Zone interlocks | Safety PLC on the fixed installation. |
| Traffic management | Fleet manager, unchanged. |
| Mission planning | The only place the language layer participates. |
Every instruction produces a record, held locally. This is what makes the system defensible when a movement is questioned weeks later.
| Recorded | Purpose |
|---|---|
| Transcript | What was actually said, as understood. |
| World snapshot reference | What the system believed at that moment. |
| Generated plan | The exact structured output. |
| Validation outcome | Accepted, rejected, or amended, and why. |
| Operator confirmation | Who authorised dispatch. |
| Execution result | Returned from the fleet manager. |
Model, grammar, schema and application are released as one signed bundle with a single version number. The mission plan schema version travels inside every plan, so a fleet manager receiving a plan always knows which contract it was built against.
| Phase | Scope | Exit criteria |
|---|---|---|
|
Phase 0 Assessment |
Fleet manager interface review, entity taxonomy, acoustic survey, safety authority engagement. | Agreed schema and integration approach. |
|
Phase 1 Shadow mode |
Plans generated and validated but never dispatched, run alongside existing operation. | Grounding accuracy and rejection behaviour measured against real instructions. |
|
Phase 2 Supervised dispatch |
Plans dispatched with mandatory operator confirmation on every instruction. | Zero ungrounded dispatches over an agreed window. |
|
Phase 3 Routine operation |
Confirmation required only above a significance threshold, tuned per site. | Throughput and instruction latency targets met. |
|
Phase 4 Expansion |
Additional zones, task types, languages and sites. | Repeatable deployment package. |
| Measure | What it tells you |
|---|---|
| Grounding accuracy | Share of instructions correctly resolved to real entities. |
| Ambiguity rate | How often the system has to ask, which should fall as aliases are learned. |
| Ungrounded dispatch count | Must be zero. This is the safety relevant number. |
| Instruction to dispatch time | End to end latency the supervisor experiences. |
| Instructions per shift | Whether the interface is actually being used. |
| Fleet utilisation | Idle time recovered. |
| Configuration tickets raised | Integrator dependency reduced. |
| Risk | Mitigation |
|---|---|
| Acoustic environment | Acoustic survey in Phase 0, close talking microphones preferred, per zone tuning rather than a single reference setup. |
| Entity drift | Live subscription with explicit staleness handling, and unknown rather than last known good when the threshold is exceeded. |
| Ungrounded dispatch | Grammar constrained generation, schema validation, semantic validation and confirmation, in that order. Four independent gates. |
| Operator trust | Shadow mode before dispatch, so the operation sees the system be right before it is allowed to act. |
| Scheduler conflict | Never introduce a second dispatcher. The fleet manager remains the sole authority. |
| Accent and language variation | Site specific speech tuning, and alias learning from the audit trail rather than from a generic vocabulary. |
| Schema evolution | Version carried inside every plan, with an explicit compatibility policy on the fleet manager side. |