🚚 WIA Delivery Robot Standard Ebook | Chapter 1 of 8
A delivery robot is easy to picture and surprisingly hard to integrate. The machine itself—a small wheeled box that rolls along a pavement or a hotel corridor and opens its lid for the right person—is the visible part. The invisible part is the stream of data that tells a fleet platform where the robot is, what it is carrying, which route it has committed to, and whether it is safe to send it the next job. When every manufacturer invents that stream independently, an operator who buys robots from two vendors ends up running two fleet platforms. WIA ROB-010 exists to remove that duplication.
This chapter sets the scene for the rest of the book. It explains what kind of machine the standard is written for, how such a machine is built in layers, why interoperability is the problem worth standardizing, how the four phases of WIA ROB-010 are organized, how the standard relates to neighbouring ISO, OASIS and ROS work, and what the regulatory landscape looks like in broad terms. It closes with conventions and a small set of sample identifiers that every later chapter reuses.
The standard ships with an interactive simulator (simulator/index.html in the delivery-robot package). It is a teaching aid, not a reference implementation, but it is the quickest way to see the concepts of this book in motion. It has five tabs, each switched by the JavaScript function showPanel(). Table 1-1 maps them to the chapters where the underlying rules are explained.
| Panel (tab id) | What you can do | Main handlers | Covered in |
|---|---|---|---|
Robot Control (control) | See battery, speed, location and cargo count; choose a mode; start, pause or emergency-stop the robot | startRobot(), pauseRobot(), emergencyStop() | Ch.3 (RobotState, mode), Ch.4 (command endpoints), Ch.5 (emergency stop) |
Route Planning & Navigation (route) | Pick origin, destination, route preference and navigation mode; compute distance, time, battery use and waypoints | planRoute() | Ch.2 (localization), Ch.3 (Route schema), Ch.5 (A* and DWA) |
Package Management (package) | Register a package and generate an access QR code; list current packages | addPackage(), generateQR() | Ch.3 (Package schema), Ch.4 (package endpoints) |
Fleet Management & Monitoring (fleet) | Filter robots by status and zone; refresh fleet data; trigger route optimization | refreshFleet(), optimizeRoutes() | Ch.4 (fleet endpoints), Ch.6 (telemetry, dispatch, charging) |
Safety & Testing (safety) | Run obstacle-avoidance scenarios with different sensor suites; test the emergency brake; view a checklist | runSafetyTest(), emergencyBrakeTest() | Ch.5 (failure modes), Ch.7 (testing and conformance) |
Because the simulator is a demonstration, it takes liberties that a conformant implementation must not. Three are worth noticing now, because they illustrate exactly the kind of drift this standard is meant to prevent:
ROB-001-2025. Phase 1 requires robot_id to be a UUID. A human-friendly label is fine on a screen, but it is not the identifier that goes on the wire.speed in metres per second, and the route constraint is max_speed_ms. A dashboard may convert for display; the payload may not.The same comparison between "what a screen shows" and "what the contract says" recurs throughout the book. Being able to spot it is one of the most practical skills an integrator can take away.
For the purposes of WIA ROB-010, a delivery robot is a low-speed, wheeled, autonomous ground vehicle that carries goods in a closed, access-controlled compartment over the final segment of a delivery. Each part of that sentence narrows the scope.
The robots in scope move at roughly walking pace and share space with pedestrians: pavements, pedestrian crossings, campus paths, building lobbies, corridors and lifts. Speed is not fixed by the standard as a single number—Phase 1 carries the robot's actual speed in m/s and a route-level max_speed_ms constraint, and Phase 3 specifies behaviour such as slowing to 0.5 m/s in crowded areas and crossing a road at 1–2 m/s. The consequence of low speed is that stopping is usually the safest reaction to uncertainty, which is why the emergency-stop and "waiting" behaviours in Phase 3 are so prominent.
Unlike a courier who hands over a parcel, a robot has to decide who may open its lid. The Package model in Phase 1 therefore carries an access_control object with an access code, an optional QR code, and flags for biometric or signature confirmation. That makes the cargo compartment part of the data contract, not just part of the hardware. It also creates a security obligation: an access code is a secret and must be kept out of telemetry and logs, a point Chapter 3 returns to.
"Last mile" is the logistics term for the final leg of a delivery—from a local hub, store, kitchen or locker bank to the recipient's door. It is the leg with the most stops, the least consolidation and the most varied terrain, which is why it attracts automation. A delivery robot typically covers this leg in one of three settings:
The standard does not treat these as separate robot classes. The same schemas apply; what changes is the configuration—for example, sidewalk_only and elevator_allowed in the route's navigation constraints, or which localization source dominates.
Two neighbouring technologies are often grouped with delivery robots but are outside the scope of WIA ROB-010. Table 1-2 contrasts them qualitatively.
| Aspect | Sidewalk / indoor delivery robot | Delivery drone | Road-going automated vehicle |
|---|---|---|---|
| Operating space | Pavements, crossings, corridors, lifts | Low-altitude airspace | Public roads with motor traffic |
| Typical speed | Walking pace | Much faster than walking | Road traffic speeds |
| Main interaction partners | Pedestrians, wheelchair users, cyclists, doors and lifts | Airspace users and ground bystanders | Drivers, cyclists, road infrastructure |
| Safe fallback | Stop in place and wait | Controlled landing or return | Minimal-risk manoeuvre to a safe stop |
| Dominant regulatory frame | Local rules for pavement and building use, robot-specific safety schemes | Aviation authorities | Road-vehicle type approval and traffic law |
| Covered by WIA ROB-010? | Yes | No | No |
The comparison matters because it explains several design choices. A drone standard would need airspace coordination; a road-vehicle standard would need to reason about lane-level traffic at speed. WIA ROB-010 instead concentrates on pedestrians, crossings, safety margins around people and objects, and building infrastructure.
Every delivery robot, whatever its brand, can be described as a stack of five layers. Understanding the stack is the key to understanding where a data standard can help and where it cannot.
WIA ROB-010 does not tell you how to build any of these layers internally. It defines the interfaces between them, and a few behavioural rules the autonomy layer must honour. Figure 1-1 overlays the four phases on the stack.
+--------------------------------------------------------------------+
| CLOUD FLEET PLATFORM |
| fleet manager | route optimizer | analytics | operator dashboard |
| ^ Phase 4: telemetry topics, dispatch, charging, OTA |
| | Phase 2: REST /api/v1/... (auth, robots, packages, routes) |
+-----|--------------------------------------------------------------+
| MQTT / HTTPS -- payloads are Phase 1 JSON documents
+-----v--------------------------------------------------------------+
| AUTONOMY APPLICATION |
| localization | perception | planning | behaviour state machine |
| Phase 3: localization, obstacle handling, A* / DWA, |
| crosswalk and sidewalk rules, emergency stop |
+--------------------------------------------------------------------+
| MIDDLEWARE (e.g. ROS 2) -- internal topics, not standardized |
+--------------------------------------------------------------------+
| FIRMWARE motor control, BMS, low-level safety loop |
+--------------------------------------------------------------------+
| HARDWARE chassis, LiDAR, cameras, ultrasonic, IMU, GNSS, |
| battery, cargo compartment, e-stop button |
+--------------------------------------------------------------------+
Phase 1 (data format) cuts across every arrow that leaves the robot.
Two observations follow from the figure. First, Phase 1 is not a layer of its own; it is the vocabulary used on every connection that crosses the robot boundary—MQTT telemetry, REST responses, stored records. Second, the middleware layer is deliberately left alone. A team that has invested in ROS 2 does not need to change its internal topics; it needs a translation step at the edge of the robot that turns internal messages into Phase 1 documents. That separation keeps the standard stable while robot software continues to evolve.
Consider an operator that runs deliveries for a large residential complex, a hospital campus or a city district. Over time it acquires robots from more than one manufacturer: one model for outdoor paths, another for indoor lift-riding, a third bought later because it carries temperature-controlled goods. Without a shared contract, each model arrives with its own ecosystem, and the operator discovers the following differences.
| Concern | Typical vendor-specific variation | Common contract in WIA ROB-010 |
|---|---|---|
| Robot identity | Serial numbers, short names, or database keys | robot_id as UUID (Phase 1) |
| Position and heading | Local map coordinates, different angle origins, unstated accuracy | WGS84 latitude/longitude, heading with 0 = North and 90 = East, declared accuracy and source (Phase 1) |
| Units | km/h versus m/s, battery as voltage versus percentage | speed in m/s, battery_level as 0–100 % (Phase 1) |
| Operating mode | Free-text or proprietary state names | mode enum: autonomous, manual, idle, charging, error (Phase 1) |
| Package tracking | Different status vocabularies and access schemes | Package status lifecycle and access_control object (Phase 1) |
| Commands | Custom SDKs, different authentication | REST under /api/v1 with OAuth 2.0 scopes (Phase 2) |
| Safety behaviour | Undocumented reaction to sensor loss or low battery | Emergency-stop triggers and a failure-mode table (Phase 3) |
| Fleet telemetry | Proprietary cloud push, polling, or vendor dashboards only | MQTT topic fleet/robots/{robot_id}/state with Phase 1 payloads (Phase 4) |
Each row on its own looks like a minor integration chore. Together they make it impractical to put mixed robots behind one dashboard, one dispatch algorithm and one customer tracking page. The costs also compound over time: every firmware update from any vendor can break an adapter, and every new robot model needs another one.
There is also a safety dimension. If an operations centre cannot tell, in a uniform way, that a robot has entered an error state, lost GPS, or dropped below the battery threshold at which it should return to charge, it cannot supervise a mixed fleet reliably. And there is an audit dimension: building managers, insurers and authorities increasingly want evidence of what a robot did, and evidence is only comparable if it has a common shape.
A data contract does not make robots identical. Vendors still compete on hardware, perception quality, battery life and cost. What it does is make the exchange predictable, so that a fleet platform written once can supervise any conformant robot, and a customer-facing application can show the same package status regardless of which machine carries the parcel.
WIA ROB-010 is published as four normative phase documents, each at version 1.0.0 with status "Stable". Each phase closes with three non-normative annexes. Table 1-4 is the map you will return to most often.
| Phase | Scope | Key artefacts | Chapters |
|---|---|---|---|
| Phase 1 — Data Format | JSON representation of robot state, packages, routes and sensor readings | JSON Schema 2020-12 documents with $id under https://wiastandards.com/schemas/delivery-robot/v1/; RobotState, Position, Package, Route, SensorReadings | Ch.2 (meaning of the numbers), Ch.3 (schemas) |
| Phase 2 — API Interface | REST interface for robot control, package management, route planning and fleet queries | POST /oauth/token; /api/v1/robots, /packages, /routes/calculate, /fleet/...; OAuth 2.0 scopes; error envelope; rate-limit headers | Ch.4 |
| Phase 3 — Navigation Protocol | How the robot localizes, detects obstacles, plans, obeys pedestrian rules and reacts to emergencies | A* global planning, DWA local planning, safety margins, crosswalk procedure, behaviour state machine, emergency-stop sequence, failure-mode table, performance metrics | Ch.2 (localization, sensing), Ch.5 (planning, behaviour) |
| Phase 4 — Fleet Integration | Operating many robots as one fleet from the cloud | Telemetry pipeline, MQTT topic, task assignment and auction, coordination zones, charging protocol, predictive maintenance, OTA updates, security and disaster recovery | Ch.6 |
| Conformance and evidence | How an implementation demonstrates that it follows the phases | Tiers Surface / Verified / Anchored; test vectors; evidence package (SBOM, OpenAPI, vector matrix, signed manifest); CLI tool | Ch.7 |
| Beyond the phases | Features promised in the README but not yet specified | Mission manifest, hand-off events, incident reporting, roadmap tiers | Ch.8 |
The phases are layered in the sense that each builds on the previous one. Phase 2 responses carry Phase 1 objects; Phase 3 behaviour is reported through Phase 1 fields such as mode, errors and position.source; Phase 4 telemetry is literally "JSON-encoded RobotState (see Phase 1)". An implementer can therefore adopt the standard incrementally: start by emitting valid Phase 1 documents, then expose the Phase 2 API, then document Phase 3 behaviour, and finally connect to a Phase 4 fleet platform. Chapter 8 turns this into an adoption checklist.
Each phase document ends with three annexes, which are explicitly non-normative:
The annexes are useful, but they are also where the current text is least consistent. They refer to an "Annex A" for conformance tiers and to an "Annex D", neither of which exists in the phase documents. And Annex E's statement that renaming or removing a field triggers a minor version bump contradicts the Phase 1 versioning rule that breaking changes require a major bump. This book points out such gaps where they matter and recommends the safer interpretation; in this case, Chapter 3 recommends treating any rename or removal as a major change.
The README names three conformance tiers. Surface covers the data formats. Verified adds an annual third-party audit. Anchored means publishing a continuous evidence package. The tiers describe how much assurance a claim of conformance carries, not how capable the robot is. Chapter 7 explains what each tier requires in practice.
The four normative phase documents are titled "WIA ROB-010". The README and the OpenAPI file in the same package use the alias WIA-ROBOT-005; the OpenAPI server path, for example, is /wia-robot-005/v1. Both names refer to the same delivery-robot standard. This book uses WIA ROB-010 throughout, because that is the name on the normative text, and mentions the alias again only when discussing the OpenAPI file in Chapter 4. If you write procurement or compliance documents, quote both forms once so that readers searching either name find your document.
A frequent misunderstanding is to read a data standard as a safety certificate. WIA ROB-010 is a data and protocol layer. It defines what robots and platforms say to each other and certain behaviours that should be observable in that exchange. It does not certify that a robot is mechanically or electrically safe, and conforming to it does not replace any product-safety assessment. The README lists several frameworks with which the standard is intended to be compatible; Table 1-5 summarizes how each relates.
| Standard / framework | What it covers | Relationship to WIA ROB-010 |
|---|---|---|
| ISO 13482:2014 — safety requirements for personal care robots | Hazard identification and safety requirements for service robots that operate close to people, including mobile servant robots | Product safety track. A delivery robot may be assessed against it; ROB-010 conformance says nothing about the outcome. ROB-010 can carry evidence (e-stop events, error states) that such an assessment might use. |
| ISO 22166-1:2021 — modularity for service robots, general requirements | Principles for designing service robots from interoperable modules | Shares the goal of interchangeable parts; ROB-010 applies the idea at the data-exchange boundary rather than inside the robot. |
| ISO 22737 — low-speed automated driving systems for predefined routes | Requirements for low-speed automated vehicles on predefined routes | A related domain rather than the same one; useful for concepts such as operating on predefined routes. The README cites it as ISO 22737:2023, but the published edition is ISO 22737:2021. |
| ISO/IEC 27001:2022 — information security management systems | Organizational controls for information security | The fleet platform, credentials and telemetry handling in Phases 2 and 4 sit inside the operator's security management system. |
| OASIS Common Alerting Protocol (CAP) 1.2 | An XML format for exchanging public warnings and alerts | Named in the README for incident broadcast; not yet used in the phase documents. Chapter 8 shows a possible mapping. |
| ROS 2 (Humble) | Open-source robot middleware | A common implementation base for the autonomy layer; ROB-010 payloads are produced at the edge of a ROS 2 system rather than replacing its internal messages. |
The practical rule is to keep the tracks apart when you plan a project. The product-safety track (hazard analysis, functional safety of the stop circuit, electrical and battery safety, any national certification) produces a safety case. The ROB-010 track produces conformance evidence for data and interfaces. Some artefacts serve both—an emergency-stop latency measurement, for example—but a certificate from one track never substitutes for the other. Chapter 7 develops this distinction in detail.
Beyond the standards listed in the README, the phase documents themselves reference well-known engineering specifications: JSON Schema draft 2020-12 for data definitions, OAuth 2.0 for authorization, OpenAPI for describing the REST interface, MQTT for telemetry, TLS 1.3 and AES-256 for protecting data, and NTPv4 or PTP for time synchronization. None of them is specific to robots, which is a strength: most teams already have tools for them.
Law governing delivery robots differs between countries and often between cities, and it changes. This section therefore describes the kinds of rules a deployment usually meets, rather than quoting limits that may be out of date by the time you read this.
Outdoor delivery robots use space that the law usually reserves for pedestrians. Many jurisdictions therefore require some form of authorization before a robot may travel on public pavements: a permit, a pilot programme, a registration, or a certification scheme. Conditions may cover where and when robots may operate, how fast they may move, how heavy they may be, whether a remote operator must be able to intervene, what insurance is held, and how the robot is identified to the public. Indoor and private-campus operation is usually governed instead by the property owner's rules and by general product-safety and workplace law.
In Korea, the Intelligent Robots Development and Distribution Promotion Act (지능형 로봇 개발 및 보급 촉진법) sets up an operating-safety certification (운행안전인증) for outdoor mobile robots, and the Road Traffic Act (도로교통법) links sidewalk use by such robots to that certification. The detailed requirements, the certifying body's procedures and any numerical limits should be taken from the current official text published on the national law information service (law.go.kr) and from the certifying body, not from secondary summaries. WIA ROB-010 conformance is not part of that certification and does not substitute for it.
Where robots cross roads, they are subject to local traffic rules for pedestrian crossings. Phase 3 of the standard encodes a conservative crossing procedure—detect the crossing, check the signal, scan for vehicles, signal intent, cross at 1–2 m/s and yield even when the robot has right of way. It also contains a sidewalk etiquette rule that says to pass on the left; as Chapter 5 explains, which side to pass on is a matter of local custom and should be configurable per jurisdiction rather than hard-coded.
A robot with cameras records people who have not agreed to be recorded. Data-protection law—for example the EU General Data Protection Regulation (GDPR) and Korea's Personal Information Protection Act (개인정보 보호법)—applies to images in which people can be identified. Phase 4 of the standard sets relevant practices: blur faces before uploading video to the cloud, collect only necessary data, and automatically delete old telemetry after a retention period (the spec's example is 90 days). Phase 1 supports this by recommending that sensor payloads carry detections and an image_url rather than raw frames. Chapter 6 discusses retention in more depth, including the difference between telemetry retention and the retention of audit evidence.
Pavements are used by wheelchair users, people with visual impairments, parents with prams and older people walking slowly. Authorities and building managers pay close attention to whether robots block ramps, doorways or tactile paving. The Phase 3 safety margins—for example a 2.0 m margin around wheelchairs and strollers, and the rule never to block ramps or doorways—exist for this reason. Chapter 8 returns to the social questions.
The chapters build on each other, but different readers can take different routes:
Requirement keywords follow the convention used in IETF documents (RFC 2119 and RFC 8174): MUST and MUST NOT mark absolute requirements, SHOULD and SHOULD NOT mark strong recommendations that may be departed from with good reason, and MAY marks an option. When this book quotes a requirement it gives the phase and section, for example "Phase 3 §6.1". When it offers the author's own recommendation, it says so explicitly. Field names, enum values, API paths and topic names appear in code font and are never translated. Numbers labelled "spec target" come from the normative phase documents; numbers labelled "typical" or "for example" are illustrations and are not requirements.
To keep examples comparable from chapter to chapter, the book uses one robot, one package and one route. The identifiers below are UUIDs in version 4 format: the robot ID is the one used in the Phase 2 and Phase 4 examples, and the package and route IDs are made up for this book; the position is an example location in central Seoul, the same one the simulator displays.
{
"robot_id": "550e8400-e29b-41d4-a716-446655440000",
"package_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"route_id": "3b241101-e2bb-4255-8caf-4136c566a962",
"example_position": { "latitude": 37.5665, "longitude": 126.9780 },
"schema_version": "1.0.0"
}
This is not a Phase 1 document—it is simply a reference card. Chapter 3 builds complete RobotState, Package and Route documents around these identifiers, Chapter 4 uses them in API calls, and Chapter 6 publishes them over MQTT. When you adapt examples for your own tests, replace them with your own UUIDs; never reuse sample identifiers in production data.
This book explains the standard as published at version 1.0.0 and points out where the text is incomplete or inconsistent. It does not invent requirements that the standard does not contain; where it proposes a shape for something the standard leaves open—most visibly the mission manifest and hand-off events in Chapter 8—the proposal is labelled as non-normative. It also avoids market forecasts and deployment statistics: they age quickly and are rarely verifiable. The aim is to leave you able to build, test and argue about conformant systems using the standard's own text.
Back to Index | Chapter 2: Localization and Perception Fundamentals — Turning Robot State into Numbers →