Proof of concept · scope & build plan

Library service robot on PUDU BellaBot Pro

Two customizations sit on top of the vendor's platform: a conversational layer that answers patrons and drives the robot, and an RFID layer that reads the books. Neither is supplied by PUDU. This is what they are, where they run, and what a first PoC has to contain to prove them.

Status · draft for vendor call Vendor · PUDU (CN) Platform · BellaBot Pro

The governing constraint

One boundary decides the whole shape of this build

PUDU exposes two completely separate integration surfaces, and everything we want to build lands on the second one. Getting this right up front is the difference between a realistic estimate and a proposal that unravels in delivery.

The Cloud API is fleet orchestration only. Signed REST — dispatch a task, read status, fetch map points, receive callbacks. It has no access to peripherals, no microphone, no text-to-speech, and no arbitrary screen rendering. Callbacks time out at 5 seconds with 3 retries, so no model inference can happen inside one.

The OS SDK is an Android library we embed in our own app, running on the robot's head unit. PdCoreSDK gives us navigation, map and shelf data, tray detection, lights and the LED matrix. This is the only layer where voice and RFID can live.

So the deliverable is an application, not an integration. We are writing an Android app that ships on the robot, plus a backend behind it. The Cloud API is a supporting actor used for dispatch and reporting.

Scenarios

What the robot actually does on the floor

Five scenarios cover the service. Two of them are enough to prove both customizations, and those two are the PoC — the rest are deliberately deferred so the first build stays falsifiable.

S1

Find and guide

In PoC

A patron asks for a book or a subject. The robot resolves it against the live catalogue, then physically walks them to the right bay and shows the call number on screen.

"Where do I find machine learning?" → ASRorchestrator LLM → ILS query → call no. 006.31 → shelf → map point → navigate → TTS + screen
S2

Overnight shelf sweep

In PoC

Out of hours the robot runs a cruise route down the aisles. The RFID antenna reads spines continuously; every read is stamped with the robot's pose and reconciled against the catalogue. Misfiled and missing items land in a report before opening.

cruise route → RFID reads + getCurrentPose() → read → bay mapping → diff vs ILS → exception report
S3

Return and sort

Phase 2

A patron places a book on the tray. Tray vision detects the placement, RFID identifies exactly which title it is, check-in posts to the ILS, and the robot routes to the correct sorting trolley.

tray event → RFID tag → catalogue match → ILS check-in → delivery task to trolley
S4

Reader's advisory

Phase 2

"Something like Sapiens but about economics." Keyword search fails at this; semantic retrieval over blurbs and subject headings does not. This is the one place retrieval genuinely earns its keep.

open request → embedding search over blurbs + subjects → 3 candidates → live availability from ILS → offer to guide
S5

Ask the library

Phase 2

Hours, fines, membership, renewals, events. A small document corpus — if it is under a few dozen pages, prompt-stuffing beats standing up retrieval infrastructure for it.

policy question → policy corpus → grounded answer + citation

Architecture

Where each piece runs

ON THE ROBOT — BELLABOT PRO HEAD UNIT Our Android app · the thing we write MIC CAPTURE · ASR · TTS · RFID DRIVER · PATRON UI · TASK STATE in-process USB PdCoreSDK · PUDU supplied NAV · MAP · SHELVES · TRAYS · LIGHTS UHF RFID reader · hardware add-on DOES NOT EXIST — NEEDS VENDOR MOD HTTPS / WSS over site WiFi OUR BACKEND Orchestrator LLM · tool router RETRIEVAL IS ONE TOOL AMONG SEVERAL — NOT THE ARCHITECTURE ILS adapter + RFID RECONCILIATION Retrieval index DISCOVERY + POLICY ONLY Fleet dispatch + CALLBACK RECEIVER REST nightly index signed REST SYSTEMS OF RECORD Library ILS / LMS Blurbs · subjects · policy PUDU Cloud API
Violet marks what we build or add; solid outlines are supplied by PUDU or the library. The dashed box is the one component that exists nowhere yet. Note that live availability is always read through the ILS adapter at request time and never embedded into the retrieval index — vectorised copies of loan status go stale silently and send patrons to empty shelves.

Capability audit

What exists, what we write, what the vendor still has to answer

Taken directly from the PUDU Cloud API and OS SDK documentation. Anything marked unconfirmed is a live question for the call — several of them can move the estimate materially in either direction.

Capability Source Status Note
Navigation to a named point PUDU Exists custom_call cloud-side; newDestinationNaviTask() on-robot. BellaBot Pro supported.
Map points and shelf data PUDU Exists /map-service/v1/open/point and getRetailShelves(). Point types are catering-flavoured; needs a library naming convention.
Multi-tray delivery tasks PUDU Exists delivery_task, priority 1–5, queueing, per-tray destinations.
Tray occupancy detection PUDU Exists Vision-based. Detects that something was placed, never which book — that gap is exactly what RFID fills.
Robot pose stream PUDU Unconfirmed poseFl exists; sampling rate and accuracy undocumented. Determines whether a read maps to a bay or only to an aisle.
Text-to-speech Us Absent No TTS anywhere in either API. Audio endpoints are KettyBot-only and play pre-recorded named clips.
Microphone / speech input Us Absent Not exposed. Must go through raw Android — needs mic permission and audio focus for a third-party app.
Existing PUDU voice assistant PUDU Unconfirmed They demo "AI-powered voice interaction". If its backend is pointable at our endpoint, most of the voice scope disappears.
Arbitrary screen content Us Constrained Cloud custom_content allows image, video or QR only. Rich UI needs our app rendering to the Android display.
RFID / NFC / barcode Us Absent Zero mentions across the entire documentation set. Fully greenfield: hardware, mounting, driver, power.
Third-party APK installation PUDU Unconfirmed Hard dependency. If a custom app cannot be installed and held in the foreground, the entire approach fails.
API credentials PUDU Gated Docs restrict issuance to distributors and self-operated merchants, reviewed by a regional lead. May require vendor sponsorship.

Work packages

What we need to build, end to end

Effort is relative sizing, not calendar time — real durations depend on the vendor answers and on which ILS the library runs. Packages marked for the PoC are the minimum set that proves both customizations on real hardware.

ID Work package Effort In PoC Depends on
WP-01 On-robot app shell. Android project, PdCoreSDK init and connection handling, navigation task wrapper, patron screen UI, kiosk/foreground behaviour. L Yes SDK access, dev robot
WP-02 Voice I/O. Mic capture with wake word or push-to-talk, streaming ASR, TTS playback, barge-in, audio focus arbitration against the stock assistant. L Yes Q5, Q6 — may shrink to S
WP-03 Orchestrator and tool schemas. LLM tool-calling over the robot and catalogue APIs, dialogue state, grounding and refusal rules, latency budget. M Yes WP-04
WP-04 ILS adapter. Catalogue search, item status, holdings and location lookup, check-in/out. Normalises whichever ILS the library runs into one internal contract. M Yes ILS API access
WP-05 Shelf-to-map mapping. Call-number ranges mapped to bays, bays mapped to PUDU map points, plus the map authoring pass on site. M Yes Site survey, WP-04
WP-06 RFID hardware integration. Reader and antenna selection, mounting and mast design, power, USB or BLE link, EMI validation against LiDAR and depth sensors. L Yes Q8–Q11, vendor NRE
WP-07 Read reconciliation service. Pose-stamped tag reads, deduplication, read-to-bay attribution, diff against catalogue, misfiled and missing exception reporting. M Yes WP-05, WP-06
WP-08 Cloud API integration. Signed request layer, task dispatch, status polling, callback receiver with async hand-off inside the 5s window. S Yes Credentials
WP-09 Retrieval index. Embeddings over blurbs and subject headings for discovery, plus the policy corpus. Explicitly excludes availability and location. S No Content licensing
WP-10 Safety and operations. Fallback when the model or network fails, escalate-to-staff path, conversation logging, an eval set for answer quality, privacy review for mic and camera. M Partial

PoC boundary

Hold the first build to this

The PoC exists to answer two questions and nothing else: can our app own the robot's interaction surface, and can RFID reads be attributed to a shelf accurately enough to be useful. Everything not serving those two questions is deferred.

In First build

  • One robot, one library floor, one aisle range instrumented
  • Roughly 500 tagged books as the test corpus
  • Scenario S1 — find and guide, voice in and out
  • Scenario S2 — overnight sweep producing a real exception report
  • Read-only ILS integration
  • Staff-supervised operation, no unattended patron use
  • Accuracy measured against a hand-audited ground truth of the same shelf

Out Deferred

  • Returns, check-in writes and sorting (S3)
  • Reader's advisory and semantic discovery (S4)
  • Policy question answering (S5)
  • Multi-robot fleet coordination
  • Multilingual support
  • Patron identification and personalisation
  • Full-floor coverage and production hardening

Critical path

What blocks the start

B1

A development robot on site

Nothing in WP-01, 02, 06 or 07 can be validated without physical hardware. Peripheral behaviour, audio focus, EMI and pose accuracy are all empirical questions the documentation does not answer. This is the longest lead item — raise it first on the call.

B2

Permission to run our own app on the robot

The entire architecture assumes we can install and foreground a custom APK with mic and USB access. If PUDU will not permit it, the approach has to be redesigned around a companion device and the estimate changes fundamentally.

B3

API credentials and regional routing

Issuance is restricted to distributors and self-operated merchants. We may need PUDU to sponsor us or to resell through them. No India or Middle East node is listed — confirm where our deployment routes and what that means for latency and data residency.

B4

ILS API surface

Sitting entirely on our side, and more likely to be the schedule risk than anything PUDU-related. If the library runs Koha, Alma, Sierra or SirsiDynix, check the API surface and rate limits now rather than after the vendor call.

B5

RFID hardware NRE and lead time

The vendor has done chassis modifications before — their own materials show a custom airport variant. But an RFID mount is new work: NRE cost, minimum order quantity and lead time all need to land before the PoC can be scheduled.

Vendor call

Questions, in priority order

Q5 and Q7 have the largest effect on scope. If their existing voice stack is pluggable, WP-02 collapses from a large package to a small one.

Access and commercials Q1—Q3
  1. Can we obtain ApiAppKey and ApiAppSecret as a systems integrator, or must it be sponsored or resold through you? Which regional node serves our deployment?
  2. Is the OS SDK AAR and sdk_demo available to us, under what licence, and which BellaBot Pro firmware version is required?
  3. Can you provide a loaner or development unit, and on what timeline?
Conversational layer Q4—Q7
  1. Is there any TTS or ASR capability on BellaBot Pro that we can call?
  2. Your "AI-powered voice interaction" — can its language backend be pointed at a customer endpoint? What is the interface?
  3. Can a third-party APK take microphone access and audio focus, and how does it arbitrate with the stock assistant?
  4. Can a third-party APK be sideloaded, foregrounded or set as launcher — and does it survive OTA updates?
RFID and hardware Q8—Q12
  1. Is a USB host port exposed to the Android head unit? What voltage and current is available for a powered UHF reader?
  2. Can our app hold USB device permission persistently across reboots, or is BLE the better path?
  3. Are you open to a hardware modification — reader, antenna and mount — as you did for the airport trash-bin variant? NRE, MOQ and lead time?
  4. Any prior UHF RFID deployment? What interference should we expect between reader antennas and the LiDAR or depth sensors?
  5. Can we see the Shelf Inspection solution from your retail materials — is it productised and extensible to library shelving?
Integration and operations Q13—Q17
  1. Is getRetailShelves() available on BellaBot Pro, and how are shelves authored in the map editor?
  2. Is cruise-task dispatch available for BellaBot Pro through the Cloud API, or OS SDK only? The cloud endpoint documents PuduBot2 only.
  3. What is the poseFl sampling rate and pose accuracy? This directly determines RFID read attribution granularity.
  4. Is the 5-second, 3-retry callback policy tunable? What throughput do callbacks sustain?
  5. Full datasheet please: tray payload and dimensions, battery runtime under continuous load, charging dock, ramp and threshold limits, and minimum aisle width — library stacks are considerably narrower than restaurant floors.