Status: Proposal / roadmap (planning artifact, not yet implemented) Date: 2026-06-20 Supersedes scope of:
docs/proposals/OYA_DOMAIN_PROPOSAL.md(original vision) Builds on:DOMAINS/oya/architecture.md(current state of the domain) Owner: Oya domain Naming: Oya = the domain. "Oya Companion" = the product (working name; persona/voice configurable per user).
0. How to read this plan#
This is two tracks that share one foundation:
- Track 1 — Rust rewrite (where appropriate). Move Oya's performance-critical, real-time, and numerically-heavy code from TypeScript to Rust, using the repo's existing blessed bridging conventions. "Where appropriate" is the operative phrase — this is a surgical hot-path migration, not a wholesale rewrite. Orchestration, SDKs, services, and glue stay TypeScript.
- Track 2 — Companion product. Expand Oya from a library-only domain into a
full product: a home/lab personal-assistant drone that follows you,
perches & recharges (wireless charging / battery swap), talks with you,
sees what you see, connects to home & cloud servers, runs SOTA LLM +
robotics intelligence, acts as a hands-free engineering-lab co-pilot, and
serves as a personal filmmaking director (maturing and tying in the
director assistant that already exists in
yemaya/remote-film-capture).
The foundation both tracks share: the Rust oya-engine crate workspace
(Track 1) becomes the on-drone/edge runtime that the product (Track 2) is built
on.
Everything below is grounded in what is actually in the repo today (verified file paths included), so the plan matches our real conventions rather than a generic robotics stack.
1. Product vision — the three faces of Oya Companion#
One airframe + one intelligence stack, presenting three "modes" that share perception, voice, navigation, and memory:
| Face | What it is | Anchor use case |
|---|---|---|
| Companion / Follower | Flies with you around the home, perches on walls to recharge, converses, sees what you see, answers questions, manages your home/cloud | "Follow me to the kitchen, remind me what's on my calendar, keep an eye on the stove." |
| Lab Co-pilot | Hands-free engineering assistant during physical work — soldering, IoT assembly, bench debugging. Watches your hands & board, reads datasheets, gives step-by-step guidance, warns on hazards | "Is this joint cold? What's pin 3 on this ESP32? Walk me through reflow temps." |
| Director | Personal filmmaking director — frames shots, plans camera moves, coordinates multi-drone coverage, learns your directing style | "Get me a slow orbit of the workbench, then a top-down of the board." |
All three are the same agent brain with different tool-sets and personas. The differentiator vs. a phone assistant is embodiment: it has a body that moves, perches, and a camera that shares your point of view.
2. Current state (grounded)#
- Oya is library-only today. Six TypeScript packages under
libs/oya/:@oya/core(101 source modules + 109 tests, 8,265-line barrel) plus five readiness-evaluator siblings (flight-control,mission-planning,safety,swarm-intelligence,telemetry). Noapps/oya/orservices/oya/. No Rust. - The hard algorithms already exist in TS and are real (stub-audited
2026-05-04,
docs/releases/p2/oya-stub-audit.md): ORCA (swarm-collision-avoidance.ts), SLAM/VIO (visual-slam.ts,advanced-slam-vio.ts), sensor fusion (multi-sensor-fusion.ts), MAVLink v2 (mavlink-protocol.ts), trajectory optimization (cinematography-trajectory.ts). These are the prime Rust-rewrite candidates — and porting them is low-risk because we have a working reference + tests to validate against. - Two known soft spots (honest gaps, not stubs by the repo's definition, but
thin):
natural-language-control.tsis self-described as "a TypeScript abstraction layer — models NLP/LLM pipelines without actual ML inference." Real intelligence must bind to the actual LLM stack (svc-ai/IsisLLMClient).yemaya-integration.ts'sYemayaBridge.connect()is a synchronous state-machine placeholder — the real cross-domain wire (event bus / HTTP) is not implemented.
- A filmmaking director already exists in
libs/yemaya/remote-film-capture/(100+ modules):director-preference-learning.ts,voice-activated-ai-consultation.ts,human-ai-co-direction.ts,human-director-profile-system.ts,directing-style-evolution.ts,direction-effectiveness-scoring.ts,director-session-handoff-protocol.ts. It is mature for home-studio / multi-actor production, but not yet wired to aerial drone cinematography. Bridging it to Oya'scinematography-trajectory.ts/shot-planning.ts/multi-camera-coordination.tsis the "Director" face of the product.
3. Track 1 — Rust rewrite (where appropriate)#
3.1 The triage principle#
Per CLAUDE.md: "Engine kernels / GPU / physics / audio / network / WASM →
Rust." Apply one test to each module: does it run in a hard-real-time loop,
crunch numbers at high frequency, parse a hot wire protocol, or run on the
drone's edge compute? If yes → Rust. If it orchestrates, adapts, exposes an
SDK, or talks to a service → stays TypeScript.
3.2 Migration triage of the 101 @oya/core modules#
→ Rust (oya-engine crate workspace):
| Crate | Absorbs (current TS modules) | Why Rust |
|---|---|---|
oya-math |
math-utils, coordinate-transforms, constants, kinematics (vec/quat/matrix, Vincenty, PID, filters, CRC) |
Called millions of times/sec; SIMD-friendly |
oya-types |
types (branded IDs, frames) — mirrored as Rust newtypes + serde |
Shared vocabulary across crates; FFI boundary |
oya-estimation |
visual-slam, advanced-slam-vio, multi-sensor-fusion, imu-orientation, event-camera-navigation, ikd-tree, gtsam-bridge, indoor-positioning, gps-navigation |
100–1000 Hz state estimation; the #1 perf win |
oya-control |
attitude-control, velocity-position-control, mission-execution |
Hard real-time inner loops; deterministic timing |
oya-navigation |
path-planning, obstacle-avoidance, human-aware-navigation |
Planning under tight latency budgets |
oya-swarm |
swarm-collision-avoidance (ORCA/RVO/HRVO), formation-flying, task-allocation, consensus-algorithms, gnn-swarm-intelligence |
<10 ms planning for N agents |
oya-mavlink |
mavlink-protocol, protocol-sender, px4-autopilot, ardupilot |
Hot framing/parse/sign path; no-GC determinism |
oya-perception |
model-inference, model-optimization, edge-deployment, pose-detection-2d, advanced-pose-estimation, body-reconstruction-3d, multi-view-fusion, temporal-tracking, subject-tracking, obstacle-avoidance vision |
ONNX/TensorRT runtime, on-drone NPU |
oya-cinematography |
cinematography-trajectory (min-snap/min-jerk QP), shot-planning composition math, multi-camera-coordination (MAPF) |
QP/spline solves in the camera loop |
oya-dsp |
audio-systems (beamforming, AEC), spectral processing |
Audio DSP; cpal-class real-time |
oya-node-bridge |
(napi-rs) exposes the above to Node services | TS services call native |
oya-wasm |
(wasm-bindgen) exposes trajectory/preview math to the browser dashboard | In-browser previz without a round-trip |
→ Stay TypeScript (orchestration / glue / services):
- All
*-integration.tsadapters (aja-,aphrodite-,bellona-,isis-,lilith-,sophia-,yemaya-,gaussian-splatting-),sdk-core,drone-control-api,swarm-api,telemetry-api. regulatory-compliance,faa-bvlos-compliance,enterprise-platform,database-schema,data-access-layer,observability,health-check,flight-logging,post-flight-analysis.- The five readiness evaluators (
@oya/flight-control, etc.) — keep as TS CI gates (see §3.5). natural-language-control— rewrite as orchestration over the real LLM stack (not Rust, not abstraction): it becomes a thin TS planner that callsIsisLLMClient+ tools and emits typed commands intooya-control.
Hardware SDK adapters (dji-sdk, hardware-platforms-2025,
generic-hardware): stay TS where they wrap vendor REST/cloud SDKs; the
MAVLink/PX4/ArduPilot paths move to Rust (oya-mavlink).
3.3 Crate workspace layout (mirrors libs/maya/engine-core)#
The repo's canonical pattern is a per-domain Cargo workspace (no root
workspace), e.g. libs/maya/engine-core/Cargo.toml with member crates under
crates/, wired into Nx via nx:run-commands. Oya follows it exactly:
libs/oya/engine/ → project "oya-engine"
├── Cargo.toml # workspace root (members below)
├── rust-toolchain.toml # pin toolchain (match neith/maya)
├── package.json # cargo:build / cargo:test / cargo:clippy
├── project.json # nx:run-commands → cargo, + build:wasm
└── crates/
├── oya-types/ oya-math/ oya-estimation/
├── oya-control/ oya-navigation/ oya-swarm/
├── oya-mavlink/ oya-perception/ oya-cinematography/
├── oya-dsp/
├── oya-node-bridge/ # #[napi] — pattern: libs/uzume/.../uzume-node-bridge
├── oya-wasm/ # #[wasm_bindgen] — pattern: uzume-control-surface-wasm
└── oya-integration-tests/
Bridge conventions, copied verbatim from existing repo crates:
- Node (services):
oya-node-bridgewithcrate-type = ["cdylib","rlib"],build.rscallingnapi_build::setup(),#[napi]annotations,package.jsonbuildnapi build --platform --dts index.d.ts→.node+index.d.ts. (Pattern:libs/uzume/protocol-engines/crates/uzume-node-bridge.) - Browser (dashboard previz):
oya-wasmbuilt withwasm-pack build crates/oya-wasm --target web --out-dir dist/libs/oya/engine/wasm --release. (Pattern:uzume-control-surface-wasm.) - On-drone / edge: crates compile native (aarch64 for Jetson/Qualcomm) — no bridge; Rust is the runtime there.
- Nx: each crate's
build/test/lint/fmttarget =nx:run-commands→cargo … --manifest-path …(pattern:@neith/coreproject.json).
3.4 Migration method (low-risk, test-anchored)#
For each crate, in order of value (estimation → control → mavlink → swarm → perception → cinematography):
- Port with parity tests. The existing
*.test.tsfiles encode known-correct values (the repo bans tests that only assert truthiness). Port each module to Rust and re-prove the same numeric assertions in Rust unit tests (cargo test), then add a differential test: feed identical inputs to TS and Rust, assert outputs match within tolerance. - Bridge + shadow. Expose via
oya-node-bridge; run Rust in shadow mode behind the TS path in SITL, compare outputs before cutover. - Cut over, keep TS as oracle. TS implementation stays as the reference oracle in CI (differential tests) even after the Rust path ships.
- Adversarial pass (per
CLAUDE.md): grep the new Rust for stub indicators, read every public + delegated-to private fn, confirm tests would fail on hardcoded returns.
This means no flag day and no capability regression — the TS code is the safety net and the spec.
3.5 Validation: reuse the readiness evaluators as gates#
The five @oya/* readiness evaluators already score whether flight-control /
mission / safety / swarm / telemetry configs are production-ready and emit typed
issues. Wire them into CI as release gates for the Rust runtime, and add a
new rust-premerge entry (pattern: .github/workflows/v2-rust-premerge.yml)
covering libs/oya/engine/** with clippy -D warnings, cargo test, and the
differential suite.
3.6 Optional further-out: a sovereign runtime#
If/when on-drone determinism demands it, oya-control can run atop a no_std
or neith-runtime-style executor rather than tokio. Out of scope for v1; noted
so the crate boundaries don't preclude it.
4. Track 2 — The Companion product#
4.1 Three-tier compute architecture#
┌─────────────────────────────────────────────────────────────────────┐
│ ON-DRONE EDGE (Jetson Orin/Thor or Qualcomm QRB; aarch64) │
│ oya-engine (native Rust): estimation • control • mavlink • swarm │
│ perception (ONNX/TensorRT): VIO/SLAM, person+hand+object, depth, VLM-lite│
│ wake-word + VAD; safety watchdog; emergency-land FSM (hard real-time)│
│ Works fully OFFLINE for flight safety & follow-me. │
└───────────────▲───────────────────────────────────┬───────────────────┘
secure link │ MAVLink2 (signed) + WebRTC media │ telemetry/events
│ ▼
┌───────────────┴───────────────────────────────────────────────────────┐
│ HOME SERVER (oya-edge-runtime: Rust binary on a home box/NUC/Pi5) │
│ Low-latency control hub • video archive • local vector DB / RAG │
│ Optional local LLM • dock/charging orchestration • offline-first │
│ This is the "connect to servers in your home" tier. │
└───────────────▲───────────────────────────────────┬───────────────────┘
mTLS / E2E │ │ gRPC + event-bus
▼ ▼
┌───────────────────────────────────────────────────────────────────────┐
│ CLOUD (apps/oya/* services in the Oshun monorepo) │
│ Heavy reasoning (Claude via IsisLLMClient) • fleet mgmt • model OTA │
│ Long-term memory • director/yemaya bridge • web/mobile backends │
└───────────────────────────────────────────────────────────────────────┘
Design rule: safety-critical autonomy is local (flight, collision, land); heavy cognition is cloud/home (LLM reasoning, RAG, director planning), with graceful degradation — losing the cloud must never drop the drone.
4.2 New monorepo structure (follows lilith/yemaya conventions)#
apps/oya/
├── svc-flight-gateway/ # owns the secure drone link; wraps oya-node-bridge
├── svc-perception/ # vision/VLM "see what you see"; pose, hands, objects
├── svc-assistant/ # the AGENT BRAIN: IsisLLMClient + tools + RAG + memory
│ # (lab co-pilot + companion personas live here)
├── svc-director/ # cinematography director: yemaya bridge + oya cine
├── svc-mission/ # missions, follow-me policy, energy-aware planning
├── svc-dock/ # perch / wireless-charge / battery-swap orchestration
├── svc-live-stream/ # WebRTC SFU (video + low-latency control/telemetry)
├── bff/ # Fastify BFF (aggregation, response shaping)
├── web/ # Next.js dashboard (live map, video, missions, privacy)
└── mobile/ # React Native companion + manual controller
libs/oya/ (TS, mirrors libs/lilith/*)
├── service-lib/ fastify-core/ event-publisher/ event-handlers/ sdk/ common/
└── engine/ → the Rust crate workspace from §3.3
libs/oya-edge-runtime/ # Rust binary for the HOME SERVER tier (native)
libs/contracts/src/oya/ # zod schemas: telemetry, control, mission, dock, director
Reuse, don't rebuild: @oshun/event-bus (Redis pub/sub), @oshun/websocket
(rooms, redis adapter), @oshun/storage (S3/local for video & logs),
@oshun/database, @oshun/metrics. Per-domain DB isolation = oya database
(pattern: @yemaya/database Prisma or the @lilith/service-lib pg pattern).
4.3 Intelligence stack#
| Layer | What | Reuse / Build |
|---|---|---|
| Wake-word + barge-in | Always-listening trigger; interrupt TTS on speech | Build (Picovoice Porcupine-class on-device model + interrupt logic in svc-voice-pipeline stream handlers). Today only VAD exists. |
| STT | Streaming transcription | Reuse apps/lilith/svc-stt + oya/whisper-asr-bridge.ts (faster-whisper). |
| TTS | Spoken responses, persona voice | Reuse apps/lilith/svc-tts. |
| LLM reasoning | The "advanced LLM intelligence" | Reuse IsisLLMClient (libs/contracts/src/llm) + svc-ai/llm-orchestration.ts. Anthropic Claude is the wired primary; route by task: Opus-class for hard reasoning/director planning, Sonnet/Haiku-class for fast conversational turns, on-device small model for offline fallback. |
| Agent + tools | Tool-calling, multi-step | Reuse svc-ai/agent-executor.ts + agent-coordination.ts + libs/contracts/src/agent. Define Oya tool-sets: flyTo, orbit, perch, lookAt, readLabel, recordClip, setReminder, queryDatasheet. |
| Memory | Session + long-term | Reuse svc-conversation session store (mem/Redis) + a long-term store (vector DB on home server). |
| RAG / knowledge | Datasheets, manuals, home knowledge | Reuse iris/knowledge (GraphRAG, agentic-rag), iris/conversation-rag, sophia/semantic-search. |
| Perception | "See what you see" | Build on oya-perception: VLM for scene QA, hand/tool/object detection, OCR for part labels/PCB silkscreen, depth, person re-ID for follow-me. |
| Embodied policy | Turning intent → safe motion | Build: a bounded behavior layer (behavior-tree/FSM) that maps agent tool-calls to oya-control waypoints, with hard safety overrides (geofence, collision, low-battery). SOTA option: a VLA (vision-language-action) policy for high-level skills, always gated by the deterministic safety FSM. |
natural-language-control.ts is refactored to be the planner seam: STT text
→ IsisLLMClient (with Oya tools) → typed commands → behavior layer →
oya-control. The current "models pipelines without inference" abstraction is
deleted in favor of real calls.
4.4 Follow-me & indoor autonomy#
- Localization:
oya-estimation(VIO/SLAM, UWB optional) — GPS-denied indoor, the proposal's stated <15 cm target. - Person tracking:
oya-perceptionre-ID +subject-tracking.tsmath (now Rust) with Kalman/occlusion recovery. - Social navigation:
human-aware-navigation.ts→oya-navigationfor polite, non-startling motion; speed caps; keep-out around faces/hands. - Obstacle avoidance:
obstacle-avoidance+ depth, 360° coverage. - Safety FSM: emergency land, return-to-dock, watchdog — all on-drone, offline-capable.
4.5 Perch, wireless charging, battery swap — the SW/FW/HW seam#
This is physical engineering the monorepo can't manufacture. The plan is explicit about the boundary so we build the right software:
Monorepo owns (software/firmware-facing):
svc-dock+oya-controlperch routines: perch-target detection (vision), perch approach trajectory (precision terminal guidance), contact/latch confirmation, controlled spin-down.- Charging state machine: detect dock, negotiate charging handshake
(Qi/resonant or contact pads), monitor
battery-state, resume/abort. - Battery-swap orchestration: fly-to-swap-station, align, signal robotic swap dock, verify new pack, re-arm.
- Energy-aware mission planning: in
svc-mission, return-to-dock on battery threshold; schedule perch/charge windows between tasks; pick nearest free dock. - Protocols/contracts for dock ↔ drone (likely MQTT/gRPC over the home LAN).
Out of repo (physical, reference only): perch mechanism (electro-permanent magnet to a steel wall plate / gecko-adhesive / suction), Qi or resonant wireless-charging coils + UL-compliant charging electronics, a robotic battery-swap dock, ducted/caged props. The plan names candidate approaches and defines the firmware/protocol seam; it does not claim to fabricate hardware. Hardware is tracked as a parallel HW workstream with its own BOM/EE/ME owners.
4.6 Conversational lab / engineering co-pilot#
The hands-free assistant during soldering / IoT assembly. Built on §4.3 plus:
- Procedural task graphs: structured step models for common bench tasks (through-hole vs SMD soldering, reflow profiles, ESP32/STM32 bring-up, I²C/SPI bus debugging). Each step has prerequisites, expected visual state, and hazard notes.
- Egocentric visual grounding: VLM +
oya-perceptionwatch your hands and the board to answer "is this joint cold?", "did I bridge pins 3–4?", "is the iron tip oxidized?" — grounded in the live feed, not guessed. - Datasheet RAG: point at a chip → OCR the part number → retrieve the
datasheet (
iris/knowledge) → answer pinout/voltage/timing questions hands-free. - Collaborative problem-solving: the agent (Claude via
IsisLLMClient) does multi-step reasoning, proposes next steps, and asks clarifying questions — a true co-thinker, not a command parser. - Safety alerts: thermal cues (iron left on, hot air), fume/ventilation reminders, ESD warnings, "you're about to power a shorted board."
- Hands-free UX: wake-word + barge-in so you never touch a screen with solder on your fingers; the drone repositions for a better camera angle on request ("look at the underside").
4.7 Filmmaking director — mature it and tie it into Oya#
A coherent director assistant already exists for home-studio production in
libs/yemaya/remote-film-capture/. It is not wired to drones. This face of the
product closes that gap:
- Reuse as-is:
director-preference-learning.ts(learns your directing style → calibrated profile),voice-activated-ai-consultation.ts(the "Iris" between-takes voice consultant),human-ai-co-direction.ts,direction-effectiveness-scoring.ts,directing-style-evolution.ts. - Build the bridge: a new
DroneDirectoragent insvc-directorthat:- takes a director intent (voice or shot-list) and the learned preference profile;
- generates a shot plan via
shot-planning.ts(composition rules, shot sizes, angles, continuity); - compiles a camera trajectory via
cinematography-trajectory.ts(min-snap B-spline/Bezier — nowoya-cinematographyin Rust); - coordinates multiple drones via
multi-camera-coordination.ts(MAPF, coverage, genlock/timecode sync); - emits waypoints + gimbal commands to
oya-control.
- Make the integration real: replace
yemaya-integration.ts's placeholderYemayaBridge.connect()with actual@oshun/event-bus+ HTTP wiring so shot lists flow Yemaya → Oya and footage metadata + telemetry flow back (the module already enumerates exactly these sync surfaces; they just aren't wired). - New capabilities to add: real-time aerial composition feedback (apply composition rules to the live camera feed and auto-nudge framing), and live director voice commands during flight (today consultation is async between takes).
- Feedback loop: each executed shot → director accept/reject → feeds
director-preference-learning→ the profile improves over time.
Result: "Oya, give me a slow 180° orbit of the bench at eye level, then push in
on the board" becomes a planned, multi-drone-capable, style-aware aerial shot —
and Yemaya's post pipeline (dailies-review, conform, timeline) ingests it
automatically.
4.8 Connectivity & data#
- Drone ↔ home: MAVLink2 signed for control/telemetry; WebRTC (reuse
svc-webrtcSFU pattern) for low-latency video + a command data-channel. - Home ↔ cloud: gRPC +
@oshun/event-bus; mTLS, per-home tenancy, E2E-encrypted media. - IoT/dock: MQTT for the charging dock / swap station and any home-IoT the assistant controls.
- Offline-first: home server runs a local vector DB + optional local LLM so the assistant keeps working without internet; cloud is for heavy reasoning, fleet, and OTA.
5. Safety, privacy, security, compliance (non-negotiable)#
A flying, always-listening camera in someone's home is a high-trust product. This is a first-class workstream, not an afterthought.
- Flight safety: ducted/caged props mandatory indoors; speed caps (2–5 mph);
room-boundary geofencing; human-aware keep-out; emergency-land + watchdog
(on-drone, offline); prop-stop on contact. Validated by the
@oya/safetyreadiness evaluator as a release gate. - Privacy (critical): hardware recording indicator (LED + optional audio chime) that cannot be silently disabled; per-room no-fly / no-record zones; physical camera shutter / privacy perch pose; local-first data with explicit cloud opt-in; on-device face/PII redaction option; guest mode; retention limits; clear "what is recorded and where it goes" UX in the dashboard.
- Security: secure boot + signed firmware/OTA; mTLS everywhere; E2E media;
threat-model the drone as a networked camera + actuator (rogue-command,
geofence-bypass, exfiltration). Run the repo's
/security-reviewon each service before ship. - Compliance: indoor flight is largely unregulated by the FAA, but: Remote
ID for any outdoor use; UL for batteries + wireless charging; FCC/CE
for RF; GDPR/CCPA for the camera/audio data.
regulatory-compliance.ts/faa-bvlos-compliance.ts(TS) own this.
6. Hardware reality & the SW/HW boundary#
The monorepo delivers software, firmware-facing protocols, and simulation — not a manufactured drone. To avoid fooling ourselves:
- What we can build & verify here: the full Rust/TS stack, SITL/HITL simulation, perception models, the assistant brain, the director, dashboards, and protocol/firmware seams.
- What needs a parallel HW workstream: airframe + ducted props, perch mechanism, wireless-charging electronics, battery-swap dock, the edge compute module selection (Jetson Orin/Thor vs Qualcomm), and integration/RF/thermal.
- Bring-up path: develop against PX4/ArduPilot SITL + Gazebo/AirSim
first (the
simulationmodules +sitl-integration-framework.tsalready exist), then a dev airframe (ModalAI Starling 2 / Crazyflie for swarm), then custom hardware. Note: heavy sim (UE/Isaac) runs on the Linux box perCLAUDE.md, not on the dev Mac.
7. Phased roadmap#
Each phase ends with a gate (the relevant readiness evaluator must pass + the adversarial stub scan + differential tests where applicable). Phases A–B are the shared foundation; C–I are the product.
| Phase | Theme | Key deliverables | Gate |
|---|---|---|---|
| A | Rust core foundation | oya-engine workspace; port oya-math, oya-types, oya-estimation, oya-control, oya-mavlink; napi bridge; differential parity tests vs TS; SITL |
@oya/flight-control + differential suite green |
| B | Edge runtime + connectivity | oya-edge-runtime (home server); secure link (signed MAVLink2 + WebRTC); telemetry → event-bus/storage; svc-flight-gateway |
@oya/telemetry green; live SITL flight via stack |
| C | Perception + follow-me | oya-perception (VIO/SLAM, person re-ID, depth); oya-navigation, oya-swarm; follow-me + obstacle avoidance + safety FSM |
@oya/safety + @oya/swarm-intelligence green |
| D | Voice + assistant brain | wake-word + barge-in; duplex voice; svc-assistant (IsisLLMClient + tools + RAG + memory); "see what you see" VLM |
end-to-end voice→action in sim |
| E | Lab co-pilot | procedural task graphs; datasheet RAG/OCR; egocentric grounding; hazard alerts | hands-free soldering walkthrough demo |
| F | Director (tie-in) | DroneDirector agent; real yemaya-integration wire; live composition feedback; multi-drone shots; preference loop |
shot-list → aerial shot → dailies ingest |
| G | Perch / charge / swap | svc-dock; perch routines; charging FSM; energy-aware missions; swap orchestration (against HW dock) |
autonomous perch+recharge cycle in sim/HITL |
| H | Product surfaces | bff, web dashboard (map/video/missions/privacy controls), mobile, svc-mission, fleet |
usable product loop, privacy UX shipped |
| I | Hardening | safety cert path, /security-review, privacy audit, reliability, field trials |
ship-readiness sign-off |
Cross-cutting throughout: simulation (Gazebo/AirSim/Isaac on the Linux box),
HITL, eval harnesses, and the new Rust rust-premerge CI gate.
8. Reuse map (build on what exists)#
| Need | Already in repo — reuse |
|---|---|
| Voice pipeline / STT / TTS | apps/lilith/svc-voice-pipeline, svc-stt, svc-tts, oya/whisper-asr-bridge.ts |
| LLM (Claude) | libs/contracts/src/llm (IsisLLMClient), apps/lilith/svc-ai/llm-orchestration.ts |
| Agents + tools | svc-ai/agent-executor.ts, agent-coordination.ts, libs/contracts/src/agent |
| Memory + RAG | svc-conversation/session, iris/conversation-rag, iris/knowledge, sophia/semantic-search |
| Director | libs/yemaya/remote-film-capture/* (preference learning, voice consultation, co-direction) |
| Drone cinematography | oya/core cinematography-trajectory, shot-planning, multi-camera-coordination, subject-tracking |
| Event bus / WS / storage / DB / metrics | @oshun/event-bus, @oshun/websocket, @oshun/storage, @oshun/database, @oshun/metrics |
| Rust bridge patterns | libs/uzume/protocol-engines (napi + wasm), libs/maya/engine-core, libs/neith/* |
| Simulation / SITL | oya/core sitl-integration-framework, gazebo-, airsim-, jmavsim-, physics-simulation |
| Readiness gates | @oya/flight-control, @oya/mission-planning, @oya/safety, @oya/swarm-intelligence, @oya/telemetry |
Net: a large fraction of Track 2 is integration, not greenfield. The
genuinely-new builds are: the Rust crate workspace, wake-word/barge-in, the
embodied behavior/safety layer, the DroneDirector bridge, svc-dock, the lab
task graphs, and the product surfaces — plus all the physical hardware.
9. Risks & open decisions (need your call)#
These genuinely fork the plan — flagged rather than assumed:
- Hardware strategy: (a) integrate an existing dev platform first (PX4/ModalAI/Skydio-class) to move fast on software, vs (b) commit to a custom airframe + custom perch/charging from day one. Recommendation: (a) — software on SITL + dev airframe now, custom HW as a parallel workstream.
- Rust extent: confirm "surgical hot-path migration" (estimation/control/ mavlink/swarm/perception/cinematography → Rust; everything else stays TS) vs a fuller rewrite. Recommendation: surgical, per §3.2.
- Edge compute target: Jetson Orin/Thor (best perception, heavier/pricier)
vs Qualcomm QRB (lighter, 5G) — drives
oya-perceptionruntime choices. - On-device LLM: ship a small local model for offline reasoning, or require home-server/cloud for all cognition (flight safety stays local regardless)?
- Perch mechanism: electro-permanent magnet (needs wall plates) vs
gecko/suction (works on more surfaces, less reliable) — affects
svc-dockand perch guidance. - Privacy posture: local-first default with opt-in cloud (recommended) vs cloud-default — shapes data architecture from the start.
10. Immediate next steps (first concrete slice)#
If approved, the lowest-risk high-value start is Phase A, crate 1–2:
- Scaffold
libs/oya/engine/Cargo workspace + Nx wiring (copy@neith/coreproject.json pattern), withoya-types+oya-math. - Port
math-utils.ts+coordinate-transforms.ts→oya-math, re-proving the existing test vectors incargo test, plus a differential test harness (TS-vs-Rust) wired into CI. - Stand up
oya-node-bridgeand prove a single function (e.g. Vincenty distance) callable from a TS service, matching the TS result bit-for-bit within tolerance.
That establishes the entire Rust↔TS spine end-to-end on a tiny, verifiable surface before we scale it across the estimation/control crates.
Part II — The Home Robotics Hive (expansion)#
This part expands Oya from "a personal companion drone" into a heterogeneous in-home robotics hive: a fleet of role-specialized robots — floor-care rovers, fetch manipulators, scout micro-drones, hybrid wheel+fly units, companion/patrol units, pet and elder-care units, fixed ambient sensor nodes, and charging docks — that share one persistent semantic home map, one coordinate frame, one energy economy, and one tiered (edge / home-server / cloud) intelligence stack.
It was produced by a multi-agent SOTA research pass (14 parallel domain researchers + 4 architecture synthesizers + an adversarial completeness critic, ~1.65M tokens, web-grounded) and is benchmarked against real industry-leading 2025-2026 systems throughout. Every architecture claim names the deployed system or paper it derives from.
Five invariants carry through every section below (and reconcile with Part I):
- Roll by default, fly only when the ground path is gone. Hover cost-of-transport is ~10–100× rolling for the same mass; flight is a budgeted, feasibility-gated resource, never a default. (This is the explicit answer to "flight is not always energy efficient.")
- One shared map, specialized bodies. Every unit reads/writes a single persistent semantic home model rather than carrying a private map that fragments the fleet.
- The agent decides what and where; deterministic Rust/C++ loops own how and all safety/privacy enforcement. No LLM/VLA sits in a hard real-time loop or holds safety authority. (Same posture as Part I's flight stack.)
- Fail loud, never fabricate. When confidence is low or the network drops, units fall back to deterministic local control and surface uncertainty to a human — they never claim a result they did not compute. (This is the repo's own zero-stub doctrine, expressed in robot behavior.)
- Survive offline. Every safety-critical loop (collision, balance, fall-escalation, meds) runs on edge/home-server with the cloud unreachable.
The companion drone of Part I is now one class — the scout micro-drone —
within this hive. The Rust oya-engine workspace (Part I §3) is the shared
real-time core; the apps/oya/* services (Part I §4.2) are the orchestration
tier these new capabilities extend. The unified, authoritative roadmap is §14;
Part I's §7 phase table is the flight-track view within it.
The four sections that follow (§11–§14) are the synthesized architecture; §15 converts the adversarial critic's findings into committed requirements.
11. Hive & modular hardware architecture#
Oya is not a single robot with attachments; it is a fleet of role-specialized bodies that share one persistent home model, one coordinate frame, and one energy economy. This section defines the robot-class taxonomy, the modular hardware contract that lets those bodies interoperate and reconfigure, and the locomotion-energy logic that governs the whole hive. Two principles run through every decision below, both grounded in the research corpus:
- Roll by default, fly only when the ground path is gone. Hover cost-of-transport is roughly 10–100× rolling CoT for the same mass (CapsuleBot, ATMO, Duawlfin, the air-ground actuation work arXiv:2603.26687). Flight is a budgeted, transition-gated resource, never a default.
- Share perception at the hive, specialize the body at the edge. Every unit reads and writes one persistent semantic home map (the Clio/Hydra + ConceptGraphs/HOV-SG lineage; Astro-style lifelong relocalization) rather than carrying a private map that fragments the fleet.
Robot-class taxonomy#
Each class is defined by the smallest viable body for its job. We deliberately avoid over-humanoiding: a Stretch-class Cartesian fetch arm and a Labrador-style "mobility-as-payload" rover cover the large majority of home tasks at a fraction of the cost, risk, and control burden of a balancing humanoid.
| Class | Locomotion | Sensing | Payload / end-effector | Compute tier | Stowed ↔ deployed | Primary jobs |
|---|---|---|---|---|---|---|
| Floor-care rover | Driven wheels + active chassis-lift (AdaptiLift/NeverStuck/ProLeap-style, 4–6 cm thresholds) | Solid-state LiDAR + 3D-ToF + RGB fused (StarSight-2.0 pattern), ultrasonic carpet detect, cliff IR, bump/current | Self-washing roller or sonic-vibration mop, anti-tangle dual roller, extending side brush; HEPA bin | Orin Nano / NPU (~6–10 TOPS): on-device CNN + SLAM scan-match | <90 mm body (turret-less) to reach under furniture | Coverage cleaning, dirt-map production, densest map producer for the hive |
| Fetch manipulator | Differential or omni wheeled base | Head/base depth + eye-in-hand wrist depth (D405-class), fingertip tactile (GelSight/Digit-class) | Prismatic lift + telescoping Cartesian arm (Stretch-class), parallel jaw w/ series-elastic fingertips; tendon multi-finger as upgrade | Jetson Orin NX/AGX (action expert local); Thor-class for on-robot VLA | Arm retracts to base footprint | Retrieve-and-deliver, pick small objects (meds, mug, remote), self-path-clearing |
| Scout micro-drone | Quad rotor, foldable arms (rotor-thrust unfold, ~0.3 s, Peregrine-Falcon style); perch mechanism (claw/gecko/suction) | Monocular/stereo VIO (Skydio-class), IMU, low-light; thin observer | None (camera-only); optional micro 60 GHz radar | Orin Nano-class: VIO + reactive avoidance only | Folds flat into dock bay; perches motors-off | Scout/confirm (fall, intruder, "is the stove on"), elevated/blocked vantage |
| Hybrid wheel+fly unit | M4-style appendage repurposing or Duawlfin unified drivetrain (props double as wheels) | VIO + depth + IMU + wheel/contact odometry | Light payload bay | Jetson Orin NX (energy-aware mode policy + VIO) | Rotor arms tuck for ground mode | Cross thresholds/stairs/gaps a roller can't; roll 90% of the time |
| Companion / patrol unit | Wheeled or wheel-legged (Ascento/B2-W-class), self-balancing low-CoG shell | 4K RGB on telescoping mast (Astro periscope), thermal/IR, far-field mic array, presence radar | Expressive OLED/projected face, speaker | Orin NX/AGX: duplex voice, affect, person re-ID | Mast extends/retracts | Patrol, learned-normalcy anomaly detection, telepresence, voice host |
| Pet unit | Self-balancing rounded pet-safe shell (Enabot EBO-class), V-SLAM patrol | Wide-FOV/IR cam, far-field mic (bark/meow + danger sounds), load cells on nodes | Hot-swap treat launcher (pan-turret-slaved, variable range); no default laser | Orin Nano: pet detect + keypoints (DLC/SLEAP-class) | Modular payload swap | Pet monitoring, budgeted treat play, anxiety detection |
| Elder-care unit | Wheeled base; mobility-as-payload shelf (Labrador Retriever-class) | Companion sensors + rPPG camera; complements fixed radar nodes | Adjustable-height carry shelf; optional compliant arm | Orin NX + home-server VLA | Shelf height adjusts | Carry meds/water/meals, fall confirmation, proactive engagement (ElliQ pattern) |
| Fixed "eye" sensor node | None (wall/ceiling-mounted) | 60 GHz FMCW mmWave radar (TI IWR6843AOP / Infineon BGT60) + PIR + lux/temp/humidity + mic; on-chip point-cloud | None | Radar SoC DSP + small NPU | Always-on; PIR-gated radar | Camera-free presence/fall/respiration, map anchor + relocalization fiducial |
| Charging / swap dock | None (infrastructure) | UWB anchor, visual fiducial (AprilTag), IR alignment, per-slot SoH telemetry | Contact + optional wireless charge; staged-pack magazine + manipulator on swap docks | Hosts home-server brain or edge node | Drone bay occludes camera while docked | Power, opportunistic charging, battery swap, Thread border router, map landmark |
Fixed nodes and docks are first-class hive members, not passive furniture: they anchor drift on each floor (radar/UWB), provide relocalization fiducials, and report charger availability into the fleet scheduler exactly as Open-RMF treats doors and lifts.
Modular & composable hardware: the OyaLink contract#
A heterogeneous fleet only stays maintainable if mechanical, power, and data interfaces are standardized. We define OyaLink, a two-tier docking/payload standard that lets any payload mount on any compatible body and lets units dock to each other and to infrastructure.
Mechanical — two coupling tiers. Light, frequently-swapped payloads (treat launcher, camera head, mop module, scout battery) use a self-aligning electropermanent-magnet (EPM) quick-dock with a chamfered seat and magnet array that pulls out the last millimeters of misalignment (FreeBOT/SMORES-EP lineage; the Edinburgh single-interface EPM connector). EPM holds with zero standing power — critical for parked drones and docked modules that must not idle-drain. Load-bearing or overhead modules (a carry shelf, a manipulator wrist tool) additionally engage a form-fit steel self-locking latch (Schunk/ATI pattern) that stays locked through power loss — a magnet alone must never hold mass over a person or pet. Manipulator wrists expose an ISO 9409-1 bolt pattern so third-party and printed tools interoperate (Stretch quick-change wrist pattern).
Power — dual rail, hot-swappable. A universal USB-C PD 3.1 EPR rail (48 V / 240 W, GaN) carries payload power; a separate 48–58 V traction rail feeds drive. Every hot-swap port has soft-start inrush limiting, ideal-diode ORing, and a per-port e-fuse so a swap can't brown out the bus or arc the contacts. Charging contacts are redundant spring/pogo pins (>100k mate cycles) with magnetic self-centering and charge-confirmation telemetry — single dirty contacts are the classic silent-death failure (the Roomba/docking-failure mode). Docks support bidirectional unit-to-unit power so a docked unit can relay charge.
Data — one bus, hardware-synced. Gigabit Ethernet over the dock plus a hardware PPS/PTP sync line at every dock and node, because UWB TDoA and multi-sensor fusion need sub-millisecond time alignment to associate detections correctly. A CAN/I²C sideband handles hot-plug detect and self-describing payload registration: on dock, a module reports its mass, center-of-mass, geometry, power envelope, capabilities, and driver handle (the Spot GXP / Stretch EndOfArm pattern). The body then updates its dynamics model and the agent's action set live — so a fetch unit that mounts a heavier shelf re-tunes its tip limits before it moves, never after.
Hot-swappable payload modules therefore become the unit of capability: mop ↔ treat-launcher ↔ camera-head ↔ carry-shelf ↔ swap-battery all present the same OyaLink face, and the driver hot-loads with the hardware (a swapped tool swaps its kinematics and policy).
Unfolding and foldable mechanisms (compact stow)#
Stow density and deploy reliability are explicit hardware requirements:
- Foldable rotor arms (scout & hybrid): origami/Sarrus-linkage arms that fold flat into a dock bay and deploy via propeller thrust (actuator-free, ~0.3 s, Peregrine-Falcon/UZH-EPFL lineage), with a positive deployed-state latch and fold-detect sensing that refuses to arm until the airframe is locked open. Folds use dual-stiffness / tensegrity decoupling so an indoor collision folds the frame rather than stripping a servo (EPFL collision-resilient winged drones) — indoors, bumps are guaranteed.
- Unfolding arms (fetch & elder-care): a prismatic-lift + telescoping Cartesian arm retracts into the base footprint when stowed, giving floor-to-shelf vertical range with no IK singularities and intrinsic safety near people (Stretch-3 insight) — preferred over a folding revolute arm for the common fetch case.
- Perching (scout): a lightweight passive claw or gecko/suction pad lets a micro-drone hold an overwatch vantage motors-off on near-zero power, then take off to re-dock — turning "keep an eye on the back door" into a perch-overwatch mission instead of a battery-murdering hover.
- Inter-unit docking: EPM continuous-style self-alignment plus a decentralized assembled-ensemble controller (ModQuad pattern) lets units physically couple — a fetch arm stages an object onto a rover's shelf, or a depleted unit's task is handed off — treated as an auctioned pickup-and-delivery + cooperative-transport problem (Yi 2025; ContactHandover for the final release), with success verified before the giving unit lets go.
All reconfiguration is requested by the agent but executed by a deterministic, gravity-aware, stability-checked planner (Jellyfish-Pump-Algorithm class: structural balance enforced at every intermediate step, not just start and goal). The agent never commands magnet currents or latches directly.
Wheel-vs-fly energy decision logic#
Every locomotion-capable unit runs a deterministic mode-arbitration planner, sitting above the real-time controllers and below the LLM/VLA agent. For each candidate mode (roll · walk · perch · fly) it scores a cost over the persistent home map's per-edge traversability and energy annotations:
cost(mode, edge) = CoT_energy(mode, mass, terrain) // calibrated power model per unit
+ risk(mode, occupancy, proximity) // people/pets → flight penalized hard
+ noise(mode) // quiet hours, elder/pet acceptance
+ time(mode) // urgency from the task
subject to: battery_SoC − energy(mode,route) ≥ reserve_to_nearest_FREE_dock
mode ∈ feasible(edge) // stairs/gap force fly; clutter forces fold
The planner picks the minimum-cost feasible mode, and the chosen mode becomes a command input to a stabilizing controller — never hand-animated open-loop. For expressive or legged/hybrid motion we use the command-conditioned RL pattern (Disney BD-X): a behavior layer authors intent, an RL policy guarantees balance. Concretely:
- Flight is feasibility-gated, not preference-gated: a hybrid unit flies only when the map shows no traversable ground route (uncrossable stairs, a gap, an elevated target) and the energy/risk budget allows. The multi-floor map is per-floor metric submaps joined by stair/elevator transition edges carrying per-edge energy cost (MuNES/HOV-SG), so the planner pre-decides mode route-by-route.
- Reserve-to-return is a hard constraint: Li-ion delivers near-constant power until it quits, so SoC margin is computed against the nearest free dock (factoring charger contention from the fleet scheduler), with conservative, temperature-compensated SoH estimation — bad SoC estimates are the root cause of mid-task strandings.
- Transitions are the highest-risk events (takeoff, landing, fold/unfold, stand-up). They are gated to known-safe transition pads at docks, with compliant landing and abort-to-hover-and-retry, plus a hard low-SoC ditch-to-nearest-pad behavior.
- Battery is telemetered into every task bid: the hive scheduler (Open-RMF-style auction) prefers the cheapest capable embodiment — a roller before a flyer, a scout drone only when no ground unit can reach — so energy economy is enforced at allocation time, not just locomotion time.
Compute and safety boundary. Real-time control, VIO/SLAM, obstacle avoidance, docking/latch loops, and the mode arbiter run on-robot (Orin/Thor-class) and must work offline; the agent only sets weights, priorities, missions, and the "flight is allowed here" budget. If the home server or cloud is unreachable, units fail safe — return to dock or hold a known coverage/perch routine — rather than stall or fabricate success. This keeps the hive's intelligence shared and its bodies modular, while ensuring no actuation, no fold, and no flight ever depends on a network hop.
12. Embodied intelligence & multi-agent architecture#
This section specifies Oya's intelligence stack: how computation is split across robot, home, and cloud; how the brain reasons and acts; how a persistent home digital twin serves as shared memory; how distributed perception delivers "eyes that come to you"; how a multi-agent fleet coordinates, allocates, and hands off work; and how skills are learned and gated for safety over the system's lifetime. Every layer is grounded in deployed systems and current research. The governing principle, drawn from the convergent design of Figure Helix, NVIDIA GR00T N1, and Physical Intelligence π0.5, is a dual-system split: slow semantic reasoning (System 2) decoupled from fast reactive control (System 1), partitioned across compute tiers so that what to do and how to move never compete for the same latency budget — and so that safety-critical loops never depend on a network hop.
1. The three-tier compute split: edge / home-server / cloud#
Oya's intelligence is partitioned by latency criticality and privacy sensitivity, not by convenience. This mirrors the explicit architecture of Gemini Robotics (an embodied-reasoning model plus an on-device VLA executor) and is the only design that survives the recurring failure mode of cloud-dependent home robots — the Moxie shutdown that bricked a fleet, and the Astro/Aldebaran cautionary tales.
| Tier | Hardware | Runs | Latency budget | Must survive offline? |
|---|---|---|---|---|
| On-robot edge | Jetson Thor (128 GB unified, ~2070 FP4 TFLOPS, 40–130 W) on manipulators/humanoid-class; Jetson Orin NX/AGX on rovers; sub-10 W NPU + radar SoC on scout drones and fixed nodes | cuVSLAM odometry, nvblox TSDF/ESDF, reactive obstacle avoidance, balance, grasp control, a fast/quantized VLA (System 1) at 50–200 Hz, on-device ASR (Moonshine/Parakeet), face/body redaction | hard real-time (1 kHz joint loop, ~10 ms reactive policy) | Yes — always |
| Home server | Workstation-class GPU box (RTX/Blackwell), always-on | The canonical persistent home map, the System-2 VLM/LLM planner, fleet orchestrator, MARL/auction policies, full-duplex speech model, anomaly/ReID models, fleet observability, teleop broker | 50–200 ms (planning, replanning at 5–10 Hz) | preferred; fleet degrades gracefully |
| Cloud | Datacenter GPU | Heavy/rare reasoning, model fine-tuning, GR00T-Dreams-style synthetic-data generation, cross-home federated learning, photoreal 3DGS reconstruction, opt-in vet/clinician escalation | seconds–hours | Never a dependency for routine operation |
The hard rule, stated across the floor-care, manipulation, fleet, and locomotion research alike: the LLM/VLA agent decides WHAT and WHERE; deterministic, verified controllers decide HOW. SLAM, local planning, motor control, and collision avoidance stay in a deterministic Rust/C++ loop on the edge. A non-deterministic model in the hard real-time loop blows the latency and safety budget — autoregressive VLA decoding is memory-bandwidth-bound and spikes well past control deadlines on Orin-class silicon. When the home server or cloud is unreachable, every robot fails closed to a cached plan and a local safe policy (a known coverage routine for a rover, safe-stop for a manipulator, ditch-to-nearest-pad for a drone) — never stalling, never fabricating success.
To keep cloud latency from poisoning the loop when offload is used, Oya adopts speculative edge-verifier decoding (a lightweight on-edge model filters token blocks before server validation, demonstrated for ~21% speedup on quadruped control) and Real-Time Chunking (RTC's freeze-and-inpaint: actions guaranteed to execute are frozen while the rest are inpainted by the generative model, eliminating chunk-boundary pauses and tolerating extreme inference delay — applicable to any flow/diffusion VLA with no retraining).
2. The brain: VLA + world model + LLM/VLM, in two systems#
Oya's brain is a layered VLA stack, not a monolithic policy.
System 2 — the deliberative reasoner (home server). An embodied-reasoning VLM in the lineage of Gemini Robotics-ER 1.5 and π0.5 ingests voice/natural-language goals, grounds them against the persistent home map and live perception, and decomposes them into language-level subtask sequences. Following π0.5's hierarchical inference, it predicts the next semantic subtask in language (e.g., "locate the mug → choose stand point → navigate → grasp → carry → deliver"), which then conditions the low-level action expert. It performs native digital tool-calling (home APIs, calendar, web) as ER 1.5 does, runs at 5–10 Hz, and is co-trained on hybrid examples — web VQA, object detection, semantic subtask labels, and low-level actions in one mixture — so internet-scale semantics transfer into physical control. π0.5's central empirical lesson governs our data strategy: open-world generalization scaled with the diversity of training homes (3 → 104), not parameter count. A fleet trained in one home collapses elsewhere; per-home fine-tuning from a teleop flywheel is mandatory for the long tail.
System 1 — the reactive action expert (on-robot edge). A flow-matching / diffusion action expert (π0 / GR00T N1 pattern) produces continuous action chunks at ~50 Hz, conditioned on the slow semantic latent from System 2 — exactly Helix's split of a 7–9 Hz onboard VLM driving a 200 Hz reactive visuomotor policy. The iterative denoise is the latency bottleneck (~80% of end-to-end on datacenter GPUs), so we distill toward few-/one-step experts and run RTC for smooth execution under real jitter.
Cross-embodiment base policy. Rather than maintaining N separate stacks for rovers, fetch arms, drones, and hybrids, Oya fine-tunes one base policy with thin embodiment-specific heads — the OpenVLA-OFT adaptation recipe (parallel decoding, continuous action heads, L1 regression), validated at fleet scale by Gemini's "Motion Transfer" (zero-shot control of ALOHA, bi-arm Franka, and Apollo from shared multi-embodiment data) and Skild's omni-bodied control. Improvements pool across the fleet; embodiment-specific action spaces are respected, because blindly sharing a policy across very different morphologies degrades performance.
The world model as planner and data engine. Oya maintains a learned generative world model alongside the geometric map, used three ways: (a) imagined rollouts for MPC-style "predict futures, pick the best action" planning (RFM-1, 1X World Model); (b) synthetic scenario generation of the actual home from a few captured images, cutting new-skill data collection from months to ~36 hours (GR00T-Dreams); and (c) closed-loop policy evaluation before any policy touches a real robot (Genie 3-class interactive environments, GAIA-2-class controllable rollouts for rare/safety-critical cases). Critically — world-model rollouts drift over long horizons (Genie holds minutes; driving world models struggle past short horizons), so their use is bounded and every rollout is validated against the real map. We never treat a generative rollout as ground truth.
For grasping under the VLA, Oya always carries a model-based 6-DoF fallback — AnyGrasp / Contact-GraspNet generating a ranked, geometry-grounded grasp distribution from wrist+head depth, gated by reachability and a graspability confidence score. The VLA alone never localizes a grasp on an unknown object; the model-based grasper gives a verifiable pose, and an eye-in-hand depth camera (RealSense D405-class) closes the loop on final approach so success doesn't hinge on perfect base localization.
3. The persistent semantic home map: the HIVE's shared memory#
The single most important architectural commitment is that the home map is a shared HIVE asset, not a per-robot map. Map fragmentation across a heterogeneous fleet — each robot in its own coordinate frame — is the failure that breaks everything downstream. Oya enforces one shared coordinate frame, consistent semantic instance IDs, and map-locking/merge discipline across rovers, drones, manipulators, fixed nodes, and docks.
The map is built in three layers:
-
Geometric layer (edge-produced). cuVSLAM stereo-visual-inertial odometry (<1% trajectory error) + nvblox GPU TSDF/ESDF voxel reconstruction feeding Nav2 costmaps, with dynamic-object/people masking so transients never poison the persistent layer, fused into an RTAB-Map-style multi-session pose graph with appearance-based loop closure and tiered STM/WM/LTM memory so lifelong operation stays compute-bounded. Floor rovers are the densest map producers (LiDAR-anchored ground truth); scout drones contribute thin top-down monocular-VIO observations.
-
Semantic scene-graph layer (server-canonical). A hierarchical, open-vocabulary 3D scene graph — building → floor → room → object — in the Hydra + ConceptGraphs / HOV-SG lineage, with per-instance CLIP/SigLIP embeddings lifted zero-shot from 2D foundation models (SAM / Grounding-DINO) via multi-view association, no 3D training required. Clio's Information-Bottleneck task-driven compression decides what each agent role remembers versus forgets, bounding fleet-wide memory and query latency over months of operation.
-
Photoreal twin layer (server/cloud only). Optional language-embedded Gaussian-splat reconstruction (LEGS / Spectacular-AI, with "GS on the Move" motion-blur/rolling-shutter compensation) for UX and VLM grounding — never run on rovers, since the embedded-SLAM evidence is clear that NeRF/3DGS are too heavy for real-time edge while semantic-geometric SLAM is viable. This is the Meta Hyperscape split: edge coarse / cloud heavy / streamed render.
The map is change-aware by design (DynaMem's add/remove voxel/instance memory plus LT-mapper version control), which is what lifts real-home mobile-manipulation success from 30% to 70%. Every object instance carries last_seen, observation count, and a confidence/decay so the twin reflects today's reality, not the first scan. Multi-floor structure is per-floor metric submaps joined by explicit stair/elevator transition edges (MuNES), with per-edge energy cost annotated so the planner can make the roll-vs-fly call. Every unit relocalizes into one shared frame on boot via VPS-style persistent anchors; docks and fixed sensor nodes carry AprilTag/UWB fiducials that bound drift and bootstrap relocalization in low-texture/low-light rooms where visual relocalization fails.
The map is the substrate the agent reasons over: the VLA grounds against object instances (IDs + 3D poses), not raw pixels, so "bring me the mug from the kitchen counter" resolves to a specific tracked instance with a known location and freshness. And it enforces the honest fail-loud seam mandated throughout: when relocalization confidence is low or last_seen is stale, the agent says "I last saw the keys on the hallway table 3 days ago, not sure they're still there" rather than fabricating a confident location.
4. "Eyes that come to you": distributed perception#
Perception is tiered and shared, decoupling where sensing happens from where intelligence lives:
-
Always-on fixed nodes (cheap, non-imaging by default). 60 GHz FMCW mmWave radar SoCs (TI IWR6843AOP / Infineon BGT60) generating range-Doppler point clouds on-chip (privacy by physics — raw RF never leaves the sensor), PIR-gated to sip power (the trick that made battery mmWave like the Aqara FP300 viable), plus Wi-Fi CSI (802.11bf) presence from every AP and robot radio as a free whole-home layer. These cover the camera blind spots — bathrooms, bedrooms, darkness — and own static structure and calibrated anchors in the shared map.
-
On-demand mobile eyes. When a fixed node or the agent decides a higher-confidence look is warranted, the nearest suitable mobile unit — a floor rover, or a scout micro-drone when the target is elevated or the ground path is blocked — navigates to the triggered zone carrying RGB-D + thermal. This is the literal "eyes that come to you" of Astro's go-investigate and Ring's fly-to-viewpoint, but with the intelligence living on the server, not the eye. The drone is a thin observer (Skydio-class VIO + learned obstacle avoidance on edge); the reasoning is elsewhere.
-
Cooperative fusion, semantics over the wire. Following the Bonn smart-edge-sensor architecture, nodes transmit compact semantics — skeletons, point clusters, occupancy deltas — not pixels, fused late into the shared world model. Cross-modal fusion (HeCoFuse-style intermediate-feature fusion) lets a camera-only drone and a LiDAR rover jointly detect a person or obstacle, and is uncertainty- and pose-error-aware (COOPERTRIM / V2X-DGPE) so fusion degrades gracefully to onboard-only when an agent drops off the mesh. Crucially, the mobile robot is the noisiest node: its pose is down-weighted and ICP-aligned before integration, never trusted equal to a calibrated static anchor.
All of this rides a Zenoh peer-to-peer mesh over ROS 2, chosen for partition tolerance and lowest trajectory drift on flaky home Wi-Fi, exchanging compressed descriptors rather than raw point clouds to avoid saturating the network. UWB anchors at docks/nodes give ~10 cm localization for "go to where this person is" intents, with BLE Channel Sounding as a dense cheap fallback.
5. The multi-agent architecture: orchestrator, skill agents, specialists#
Oya is a genuine multi-agent system, not one robot with attachments. The architecture has three agent classes:
The fleet orchestrator agent (one, on the home server). This is the System-2 deliberative brain operating at fleet scale, structured on the Open-RMF fleet-adapter pattern: each robot class is a fleet exposing pose/battery/capabilities; the orchestrator bids tasks out and resolves space-time traffic in shared home spaces. It owns a RobotFleet/RoboOS-style shared declarative world state with two-way replanning. Its job is decomposition and allocation: turning "someone spilled in the kitchen" into a tasking for the nearest floor rover, optionally a scout drone to confirm, and a dirt-heatmap update — choosing which embodiment fits each step (drone to scout, rover to traverse, manipulator to grasp, hybrid to clear stairs) and sequencing handoffs. It is a planner/coordinator and skill-router — it orchestrates learned policies and VLA skills, it does not emit motor commands.
Per-robot skill agents (one per unit, on-robot edge). Each robot runs a small edge VLA as its System 1 — fast reactive control, obstacle avoidance, balance, grasp execution — plus wake-word and reflexive safety. This is what keeps the fleet working when the server is down and what guarantees the orchestrator never blocks a real-time loop.
Task-specialist agents (per domain). Cleaning, fetch, patrol, and care each carry domain-specific reasoning layered on the shared substrate:
- Cleaning runs adaptive boustrophedon cellular-decomposition coverage with Matrix-style multi-pass over high-dirt cells, closing the perception→actuation loop with real dirt sensing (acoustic Dirt Detect + dirty-water turbidity/DirtSense), and extends to multi-robot coverage redistribution (resilient-CPP) so two rovers split a house and reabsorb each other's cells on failure.
- Fetch decomposes find→navigate→grasp→deliver with manipulability-aware base placement (solving "navigable but unreachable") and tactile-gated grasping.
- Patrol runs learned-normalcy anomaly detection — fusing RGB + thermal + audio (glass-break, smoke/CO) against each home's routine, with low-false-positive tuning (the Knightscope SOC model) — never fixed motion alarms, which cry wolf and sink consumer products.
- Care runs the proactive engagement engine (ElliQ pattern: goals × availability × success-probability), the multimodal fall pipeline, and the closed-loop medication-adherence ledger.
Coordination, allocation, and handoff are concrete subsystems, not hand-waving:
- Task allocation is hybrid: auction/CBBA-style bidding for fast online assignment (capability- and battery-aware bids that encode hard capability constraints — never ask a drone to grasp or a rover to climb stairs — and coalition-form when no single robot suffices), augmented by a DeepFleet-style learned congestion forecaster once fleet logs exist, to pre-route around home choke points (doorways, halls, stairs).
- Traffic deconfliction uses MAPF (PIBT / LaCAM*) over a shared space-time traffic schedule, because naive independent navigation deadlocks past 2–3 units in a home's tight corridors.
- Coordination policies are trained with CTDE MARL (QMIX / MAPPO) in Isaac/Habitat sim — centralized training, decentralized execution — so the hive keeps coordinating on each robot's local observations when the server is down.
- Handoff is modeled explicitly as an auctioned pickup-and-delivery plus cooperative-manipulation problem (Yi 2025 pairing, decentralized-MPC transport, ContactHandover for the final transfer), with closed-loop success verification — the giving robot does not release until perception/tactile confirms the receiver has the object. Fabricated handoff success is dangerous for elder/pet care; the agent fails loud and escalates to a human when a transfer is uncertain.
A standing guardrail across all three classes: floor arbitration for conversation. An unarbitrated talking fleet talks over itself; a HIVE-level floor manager assigns one responder per human and silences the rest, fusing per-unit mic-array DoA into a shared "who is speaking, from where" estimate so the best-positioned unit orients and answers.
6. The skill library and lifelong learning#
Oya gets more capable over time through a teleop-to-autonomy data flywheel (the 1X NEO "Expert Mode" / Mobile-ALOHA pattern): failed autonomous tasks are completed by a human teleoperator (with operator-side face blurring and owner consent gating — see safety), every session is logged as a demonstration in Open X-Embodiment / LeRobot format, and policies are fine-tuned per-home from 50–100 demos. ACT-style action chunking with temporal ensembling suppresses the compounding error that sinks naive behavior cloning.
A lifelong skill library (LRLL pattern) distills recurring successful trajectories into named, reusable library skills the orchestrator can route to. To add home-specific skills without catastrophic forgetting of base competencies, we use experience replay, retrieval-based local adaptation, and per-morphology adapters rather than full sequential fine-tuning — and we exploit the empirical finding that pretrained VLAs are notably forgetting-resistant. Synthetic data from the home world model (GR00T-Dreams-style) bootstraps new situations; everything is validated in the Habitat 3.0 / HSSD-200 / OVMM sim harness as CI for the perception and policy stack before any hardware rollout. Sim-to-real fidelity hinges on accurate actuator modeling (delays, torque limits, friction) plus domain randomization — the discipline that let RAI's Spot pipeline transfer zero-shot at 5.2 m/s, and whose absence is the classic "works in sim, fails on hardware" trap.
7. The safety-gated learned-policy pattern#
This is the non-negotiable architectural invariant, stated identically across the safety, manipulation, locomotion, and foundation-model research: the learned policy is the high-performance, untrusted controller; an independent, higher-assurance safety supervisor is the verified authority that can veto it. No current foundation model offers certifiable hard safety, and VLM/LLM hallucination of objects or scenes causes real collisions — so we never trust the VLA alone.
Concretely, every actuation command from the agent/VLA passes through a safety governor running as an isolated, high-integrity process (separate from the lower-assurance autonomy/LLM stack, on a dual-channel safety-rated controller, Cat 3/PLd or SIL2):
- Speed-and-Separation Monitoring (R15.08 / ISO 10218-2): safety-rated lidar fields that scale slow/stop zones with velocity, for any moving base around people and pets.
- Power-and-Force-Limiting (ISO/TS 15066, now folded into ISO 10218-2:2025): per-body-region biomechanical force/pressure thresholds cap manipulator momentum on contact, enforced via current/torque sensing.
- Control-barrier-function / model-predictive shielding: forecasts violations and substitutes safe recoveries; CBF-RL constrains the learned policy at the boundary.
- OOD / hallucination filter: catches the VLA acting on a phantom instance, with multi-view confirmation required before any detection is persisted and Bayesian uncertainty-aware semantics so low-confidence detections never become "facts."
- Geofenced no-go AND no-record zones enforced in both the motion planner (refuses entry) and the perception pipeline (sensors disabled/blurred on entry), so a bathroom is simultaneously unreachable and unrecordable even if navigation is compromised.
The expressive/locomotion analog is the Disney BD-X command-conditioned RL pattern: an animation/behavior layer authors character intent, and an RL policy guarantees balance while tracking it — expression rides on top of a stabilizing policy, never replacing it. The agent proposes; the shield disposes. Out-of-bounds commands are routed to a discard-and-log path, not an E-stop spam path (itself a DoS vector flagged in the ROS 2 threat model). And the agent must treat its own perception inputs as an attack surface — a manipulated camera or voice input must never escalate privilege or bypass the supervisor.
The agent's role, finally, is bounded precisely: it is the conversational, reasoning, orchestration, and skill-routing brain — translating intent, grounding it in the shared map, allocating across embodiments, narrating and explaining its choices, and running the human-in-the-loop escalation tier. It is explicitly not a low-level controller, not a safety authority, and not permitted to fabricate a result it did not verify. When confidence is low, the network drops, or interventions aren't working, it does the one thing every layer of this architecture is built to do: fail loud, fall back to deterministic local control, and ask a human — rather than fake a success it never achieved.
13. Capability / product lines#
Oya ships as ten capability lines, each a concrete deliverable mapped onto the shared HIVE substrate (one persistent semantic home map, the three-tier edge/home-server/cloud intelligence split, the energy-aware "roll-by-default" locomotion policy, and the deterministic-safety-supervisor-over-untrusted-agent architecture). Robot classes are reused across lines — the floor rover, the fetch manipulator, the scout micro-drone, the hybrid wheel+fly unit, the companion/patrol unit, the elder-care unit, fixed sensor nodes, and charging docks — so a "line" is a software + skill + hardware bundle, not a separate product. Every line below specifies its robot class(es), the SOTA techniques adopted, the software subsystems and Rust/TS crates, the agent(s) involved, the hardware, and the headline SOTA bar to beat.
A cross-cutting architectural invariant governs all ten lines: the LLM/VLA agent decides what and where; deterministic, verified Rust/C++ control loops own how and all safety/privacy enforcement. No agent sits in a hard real-time loop, and no agent holds safety or privacy authority — a separate safety supervisor (SSM/PFL/E-stop, ISO 10218-2:2025 + ISO/TS 15066 force limits) and a privacy layer (on-edge redaction, hardware recording indicators) can veto it. Routine operation must survive cloud loss; the home server is the center of gravity.
Line 1 — Floor care (mop / sweep / vacuum)#
| Aspect | Detail |
|---|---|
| Robot class | Floor-care rover (<90 mm body), omni-dock node |
| SOTA techniques | Solid-state/chip-scale LiDAR + 3D-ToF + RGB fusion (StarSight 2.0 pattern); on-device CNN obstacle classification (100–200 classes, image classified then discarded); graph-SLAM with loop closure; boustrophedon cellular decomposition + Matrix-style multi-pass over high-dirt cells; resilient multi-robot coverage redistribution (PMC11644315, 2024); closed-loop dirt sensing (acoustic Dirt Detect + dirty-water turbidity/DirtSense + optional Dyson-style oblique-LED stain detection) → adaptive suction/water/pass-count; self-washing roller or sonic-vibration mop; ultrasonic carpet detection → mop auto-lift; AdaptiLift/NeverStuck chassis-lift for 4–6 cm thresholds |
| Software subsystems | Real-time perception pipeline (Rust hot path); graph-SLAM + loop-closure mapping service; boustrophedon coverage planner with anytime replanning and multi-robot zone partition/failure-reabsorption; adaptive cleaning controller (dirt-signal → setpoints state machine); dock/station controller; fleet zone scheduler |
| Crates / stack | Rust: nalgebra/g2o-style pose-graph optimizer, control loop, coverage planner; on-device NN via TensorRT/ONNX; TS orchestration for scheduling |
| Agent(s) | Home-server VLA/LLM for task-level intent ("mop the kitchen, it's sticky"), mission scheduling over the dirt heatmap, and anomaly narration ("I skipped the bathroom — door was closed"). Never in the SLAM/motor loop; falls back to a known coverage routine if the server is unreachable |
| Hardware | Solid-state LiDAR module(s), RK3588-class NPU (~6 TOPS), RGB + 3D-ToF front module, anti-tangle dual rubber roller, self-washing roller/sonic mop, chassis-lift actuators, 10,000–22,000 Pa brushless suction, full omni-dock (cyclone self-empty, hot-water wash + dry, detergent dosing, IR + fiducial dock alignment) |
| SOTA bar to beat | Roborock Saros 10R — match or exceed its perfect 24/24 obstacle-avoidance benchmark and >90% obstacle avoidance, while keeping the <80 mm under-furniture profile and treating pet waste as a hard-avoid class with conservative margins |
Line 2 — Fetching small objects#
| Aspect | Detail |
|---|---|
| Robot class | Fetch manipulator (Stretch-3-class: prismatic lift + telescoping Cartesian arm on a wheeled base) |
| SOTA techniques | Two-tier control: VLA brain (π0.5 / Gemini-Robotics-ER class, fine-tuned) for semantic planning + grasp/affordance reasoning over a fast on-robot flow-matching action expert; model-based 6-DoF grasp fallback (AnyGrasp / Contact-GraspNet) from wrist+head depth, gated by a graspability confidence score; eye-in-hand (RealSense D405-class) closed-loop final-approach servoing; whole-body MPC with manipulability-/reachability-aware base placement; vision-based fingertip tactile (GelSight/Digit-class) + series-elastic compliant fingers for slip detection and crush-free fragile handling; ACT + temporal ensembling; teleop→autonomy data flywheel (1X NEO Expert Mode pattern) |
| Software subsystems | RGB-D perception + open-vocab detection ("find the blue mug"); model-based 6-DoF grasp engine with collision/reachability gating; fine-tuned VLA policy server; whole-body motion (MPC); Nav2-class navigation tied to the shared map with semantic place memory; tactile/force control; teleop + LeRobot/Open-X demo pipeline; fail-loud capability boundary — escalate (re-perceive, reposition, hand to teleoperator) below grasp confidence rather than execute a doomed grasp |
| Crates / stack | ROS2 + Nav2; TensorRT/llama.cpp-GGUF quantized (FP8/INT4) VLA serving; Rust safety/servoing reflex core; MuJoCo/Isaac sim for tactile Real2Sim2Real |
| Agent(s) | Hierarchical task brain decomposes "bring me my glasses" → locate → choose stand point → navigate → generate+verify grasp → carry → deliver; owns failure recovery and the fail-loud gate; coordinates which HIVE unit fetches |
| Hardware | Prismatic+telescoping arm, parallel-jaw gripper with series-elastic/compliant fingertips (Toyota-HSR-style), wrist depth camera, head/base depth sensor, Jetson Orin→Thor on-robot, ~1–2 kg payload with floor-to-shelf vertical range, backdrivable/current-limited joints + contact E-stop |
| SOTA bar to beat | Toyota HSR — meet or exceed its reported 98% grasp success across YCB objects in a real home, with eye-in-hand + tactile closing the empty-grasp/slip gap that vision-only systems leave open; beat OK-Robot's 58.5% / DynaMem's 70% OVMM success in novel homes via per-home fine-tuning |
Line 3 — Home patrol & security#
| Aspect | Detail |
|---|---|
| Robot class | Companion/patrol rover (telescoping-mast camera), scout micro-drone, fixed sensor nodes |
| SOTA techniques | Learned-normalcy anomaly detection (not fixed motion alarms): fuse 4K RGB + thermal + LiDAR/sonar + audio event classifiers (glass-break, smoke/CO, scream); multi-stage trigger→confirm→escalate (cheap RF/Wi-Fi trigger dispatches a camera-bearing unit to confirm before alarming); continuously-adaptable person ReID (CARPE-ID) + MOT for follow-me bound to the known-residents set; mmWave + Wi-Fi CSI (802.11bf) presence as the always-on layer; human-in-the-loop SOC escalation (Knightscope model) |
| Software subsystems | Security/anomaly engine with low-false-positive tuning; multi-stage escalation state machine; learned per-home normalcy model; cross-modal identity tracker; Foxglove/Formant-style MCAP incident logging + replay; teleop fallback |
| Crates / stack | Edge: TensorRT-quantized RGB/thermal/audio classifiers; Rust event pipeline; Zenoh mesh transport; home-server fusion service |
| Agent(s) | Home-server agent as the judgment layer over the anomaly engine — decides whether a fused detection is a real threat vs household normalcy, routes genuine anomalies to human review before alarming residents, and narrates incidents. Must fail loud, never fabricate a "handled" state |
| Hardware | Telescoping-mast 4K RGB + thermal/IR, far-field mic array, fixed mmWave radar nodes (TI IWR6843AOP / Infineon BGT60) emitting point clouds only, Wi-Fi CSI capture in docks, hardware privacy LED + kill-switch |
| SOTA bar to beat | Knightscope K5 sensor-fusion anomaly detection (6 LiDAR + 13 sonar + 4K + thermal feeding a human-in-the-loop SOC) — match its concealed-person-in-darkness / heat-signature anomaly capability at consumer scale and price, while decisively beating consumer-grade false-alarm fatigue (the failure that sinks products like generic-motion alarms) |
Line 4 — Companion + presence#
| Aspect | Detail |
|---|---|
| Robot class | Companion unit (expressive face/eyes + gimballed head), fixed dock/host node |
| SOTA techniques | Full-duplex speech-to-speech (Moshi/Mimi multi-stream token interleaving, ~200 ms latency, native barge-in/backchannel/overlap) over VAD push-to-talk; predictive multimodal turn-taking (prosody + gaze + VAD) with HIVE-wide floor arbitration (one robot holds the floor per human); LLM-driven real-time facial affect (Expressive Furhat / FACS blendshapes) and aibo/EMO-style OLED-eye affect with asymmetric micro-expressions; anticipatory facial coexpression (Columbia Emo, ~0.8 s ahead); proactive engagement engine (ElliQ: goals × availability × success-probability); per-resident personality drift + long-term episodic memory; mic-array DoA + beamforming → orient to speaker; streaming co-speech gesture (rolling diffusion) |
| Software subsystems | Duplex Conversation Engine (home-server, on-robot half-duplex fallback); Turn-Taking & Floor Arbitration; Affect & Expression Renderer; Speaker Localization & Attention; Persona & Trust Manager (fail-loud + symbiotic-autonomy help-request, CoBot pattern); Proactive Engagement Planner; edge speech I/O (Moonshine/Parakeet ASR, IndexTTS2/Sesame-CSM emotional TTS) |
| Crates / stack | Edge NPU streaming ASR + wake-word + AEC; home-server duplex model + LLM + persona memory on the persistent map; cloud only for heavy reasoning |
| Agent(s) | The conversational/behavioral brain across all three tiers — decides what to say, infers affect, emits emotion/gesture tags, schedules initiations, and maintains per-resident persona and calibrated confidence. Core conversational loop must run edge+home-server so it survives cloud loss (the Moxie lesson) |
| Hardware | 4–6 mic far-field array with hardware AEC, full-range speaker, OLED/LED eyes or projected/LCD face, ≥2-DoF pan/tilt neck, Jetson Orin Nano/NX edge, visible mic/camera mute indicators |
| SOTA bar to beat | ElliQ — match its sustained-engagement bar (~30 interactions/day, ~95% loneliness reduction in the NY State of Aging deployment) and its proactivity, while adding true full-duplex conversation (the Moshi ~200 ms barge-in bar) that ElliQ's request-response model lacks |
Line 5 — Pet interaction#
| Aspect | Detail |
|---|---|
| Robot class | Pet-companion unit (rounded pet-safe shell, modular hot-swap payloads), fixed feeder/litter/camera nodes |
| SOTA techniques | Pet-specialized (not generic-motion) detection; per-individual collarless ID (facial recognition + load-cell weight + gait signature, Litter-Robot-5-Pro pattern); markerless pose (DeepLabCut/SLEAP) + Keypoint-MoSeq behavior-syllable segmentation; bioacoustic bark/meow emotion classification (DogSpeak); two-tier anxiety reasoning (edge LSTM posture → server-side CEP episode inference); pan-turret-slaved variable-range treat launcher with closed-loop consumption verification and a fleet-wide daily-calorie budget; catchable/chase play by default with laser gated behind opt-in + hard eye-avoidance + capped duration; pet-aware social navigation (give-way, wide-berth, sleeping/eating-pet soft no-go) |
| Software subsystems | Pet-perception service (identity + pose tracks on the shared bus); behavior & affect engine; bioacoustic service; persistent per-pet health record (feeding + elimination + weight + activity, Whisker+ generalized); safe-motion/social-navigation layer; interaction orchestrator with consumption verification; separation-anxiety mitigation state machine (graded interventions → escalate to human) |
| Crates / stack | Coral Edge-TPU (4 TOPS @ 2W) always-on detection/keypoints; Jetson Orin on the mobile unit; Rust safe-motion reflexes (stall-and-reverse on paw/tail contact) |
| Agent(s) | Home-server pet-care orchestrator — fuses pose + bark/whine + activity + weight into situational understanding, plans graded responses (treat, calming audio, owner voice clip, companion check-in), enforces cross-node policy (calorie cap, laser limits, quiet hours). Fail-loud: escalates a distressed/sick/trapped pet to a human rather than fabricating a "handled" state |
| Hardware | Pet-safe rounded shell, torque/current-limited stall-reverse drives, jam-resistant variable-energy treat launcher on a pan turret, wide-FOV + IR camera, far-field mic array, load cells on litter/feeder/bed nodes, optional collar IMU for occlusion-robust fusion |
| SOTA bar to beat | Furbo 360 / Petcube — exceed their stationary, cloud-subscription, generic-alert designs with a mobile, local-first unit that does per-individual collarless ID and closed-loop consumption verification, and explicitly avoids the laser-pointer-syndrome failure mode those products default into |
Line 6 — Elder-care & health monitoring#
| Aspect | Detail |
|---|---|
| Robot class | Companion/care unit + "mobility-as-payload" delivery rover (Labrador Retriever-Pro pattern), fixed radar/CSI sensor nodes, fetch manipulator (gated) |
| SOTA techniques | Sensor-fusion fall pipeline: fixed 60 GHz mmWave radar in camera blind spots (bathroom/bedroom) + WiFi-CSI + on-robot skeleton ST-GCN, fused to one home-level fall belief with trigger→confirm→escalate (cheap trigger dispatches a unit for vision+voice confirmation + cancelable countdown before any EMS call); mobility-as-payload carry-and-deliver over fragile manipulation; proactive engagement + episodic memory (ElliQ); RAG-grounded, guardrailed LLM with refusal-to-advise routing (never unguarded medical advice to a vulnerable user); closed-loop medication adherence (dispense + ingestion verification, escalate only on confirmed miss); rPPG/radar contactless vitals and gait-speed/sit-to-stand as deterioration biomarkers; human-in-the-loop escalation tier (care.coach/Hyodol model) |
| Software subsystems | Multimodal fall-detection fusion service; routine & reminder engine with adherence ledger (reminded vs ingested); guardrailed conversational LLM (RAG over vetted clinical + personal KB, guardian models, refusal router); emergency escalation orchestrator (fall → countdown → two-way voice → caregiver → EMS, cellular fallback, cancel, audit); caregiver/family insights portal; offline/degraded-mode controller keeping fall/escalation/meds working without cloud (anti-orphaning) |
| Crates / stack | Edge ST-GCN pose; radar SoC point clouds; home-server fusion + RAG LLM; cellular (LTE/5G) backup on the dock with UPS |
| Agent(s) | Orchestrator/dispatcher + sensor-fusion reasoner + escalation decision agent + care-insight summarizer — a router and safety arbiter, NOT an autonomous medical authority; escalates to humans for empathy- and safety-critical moments and fails loud rather than guess |
| Hardware | Vayyar-class 60 GHz 4D radar nodes (140° FoV), WiFi-CSI capture, NIR camera for rPPG, mobility-as-payload adjustable-height shelf rover with robust low-clearance SLAM, cellular + UPS-backed dock, physical mic/camera shutters |
| SOTA bar to beat | Vayyar Care — match its camera-free, wearable-free fall + long-lie detection (≈97% sensitivity / ≈90% specificity, reduced hospital admissions in the Essex deployment) for the high-fall-risk bathroom/bedroom blind spots, fused with on-robot confirmation to drive false EMS calls toward zero; pair with ElliQ-grade proactive companionship |
Line 7 — Persistent home mapping#
| Aspect | Detail |
|---|---|
| Robot class | All mobile units are producers/consumers; floor rovers are the densest map producers; fixed nodes and docks are anchors; the home server holds the canonical map |
| SOTA techniques | Three-layer persistent map: (1) metric geometric layer (cuVSLAM odometry + nvblox TSDF/ESDF + RTAB-Map-style multi-session pose graph with tiered STM/WM/LTM memory); (2) hierarchical open-vocabulary scene-graph layer (Hydra + ConceptGraphs/HOV-SG: building→floor→room→object with CLIP/SigLIP features); (3) optional photoreal 3DGS twin (LEGS / Spectacular-AI), server-side only — NeRF/3DGS is too heavy for on-rover real time. Change-aware by design (DynaMem add/remove voxel/instance memory + LT-mapper version control; every instance carries last_seen/observation-count/decay); Clio Information-Bottleneck task-driven compression; per-floor submaps joined by explicit stair/elevator transition edges (MuNES); persistent VPS-style relocalization anchors so every unit re-enters one shared coordinate frame; distributed multi-robot pose-graph fusion (Hydra-Multi/Kimera-Multi) with bandwidth-aware descriptor exchange (not raw clouds) |
| Software subsystems | Geometric SLAM + odometry service (Rust core); GPU volumetric reconstruction with dynamic-object/people masking; persistent hierarchical scene-graph store (spatial DB + vector index); change-detection + map-versioning; multi-robot map fusion; relocalization/anchor service; queryable spatial-memory API with freshness + uncertainty; privacy/governance layer (on-prem default, PII redaction, per-room scoping) |
| Crates / stack | Rust geometry hot path + GTSAM/g2o-style backend; nvblox/cuVSLAM (Isaac ROS) on Jetson Orin; Zenoh descriptor exchange; Habitat 3.0 / HSSD-200 / OVMM as the sim CI harness |
| Agent(s) | The query interpreter/grounder, task-relevance curator (Clio), change reasoner ("what changed in the living room since yesterday"), and honesty gate — when relocalization confidence is low or last_seen is stale, it says "I last saw the keys on the hallway table 3 days ago, not sure they're still there" rather than fabricating a confident location |
| Hardware | Global-shutter stereo + IMU per mobile unit, low-cost LiDAR on rovers, RGB-D for TSDF, Jetson Orin AGX/NX (geometry on edge), a GPU home-server box (canonical graph + 3DGS twin), fixed sensor/dock anchors |
| SOTA bar to beat | iRobot Imprint Smart Maps + ClearView/PrecisionVision (proven persistent, editable, multi-floor consumer maps) — match its persistence/UX/privacy bar while exceeding it with an open-vocabulary, change-aware, fleet-shared scene graph that any unit can query, and beat the surveillance/privacy backlash with on-prem-by-default storage |
Line 8 — Energy management & docking#
| Aspect | Detail |
|---|---|
| Robot class | All units + charging docks as first-class fleet members (availability/occupancy/charge-rate/per-slot battery health reported into the scheduler) |
| SOTA techniques | Home modeled as a Persistent-Robot-Charging-Problem (PRCP) instance — periodic-schedule ILP computes the minimum shared docks for 24/7 operation; multi-threshold SOC state machine per platform (CRITICAL force-return / LOW opportunistic / HIGH interruptible) over naive "return at 20%"; opportunistic partial-charge banding (≈40–85% SOC); battery-health-aware co-optimization of task assignment + charge timing/rate (cycling wear + calendar-aging SOC×idle penalty, McCormick-linearized) — the 54%-degradation-cut matheuristic; many-to-many charging (WiBotic-style robot-ID handshake so any robot charges at any dock); precision self-docking (AprilTag coarse homing → Nav2 vision precision-alignment → tapered funnels + magnetic self-centering → pogo-pin contacts) and Skydio-style visual-fiducial precision landing; energy-aware locomotion (per-edge roll-vs-fly-vs-perch cost on the map); robotic battery swap for top-duty patrol drones; UAV perching for near-zero-power overwatch |
| Software subsystems | Fleet Energy Manager (home-server); Dock Registry & Resource Broker (charging as an auctionable resource); SOC/SOH estimation service (coulomb counting + voltage/temp + online SOH); Energy-Cost Locomotion Planner; Docking/Landing Controller; Charge-Handshake protocol; Return-to-Dock policy with checkpoint/resume; Battery-Swap Orchestrator; resilience/failover (on-robot conservative-reserve fallback if the server is down) |
| Crates / stack | Rust scheduler + SOC/SOH estimator + docking state machine; TS dock registry/broker; sim harness for threshold tuning and dock placement against the actual home map |
| Agent(s) | Sits above the deterministic scheduler — translates intent ("keep an eye on the back door tonight" → a persistent mission sustained across charge cycles, preferring perch over hover), sets priorities/weights and preemption, explains return-to-dock decisions, and proposes threshold tuning validated in sim. Never issues charge/abort commands or fabricates SOC; hard energy safety stays deterministic |
| Hardware | Multi-bay heterogeneous-capable docks with pogo-pin contacts (>100k cycles) + magnetic funnels, optional inductive (Qi2.2 / WiBotic 150–300W) for wet/contactless units, UWB-anchor + Thread-border-router docks, accurate fuel gauges, dock UPS (DJI-style >4 h), self-heating cells / dock thermal management |
| SOTA bar to beat | WiBotic Commander many-to-many fleet energy management + OTTO/Rockwell opportunistic-charging SOC banding — adapt their warehouse-proven dock-as-shared-resource and partial-charge-banding economics to a heterogeneous home fleet, sizing docks from a PRCP solver rather than 1:1, and beating the silent-dead-on-the-floor stranding failure |
Line 9 — Ambient / smart-home integration#
| Aspect | Detail |
|---|---|
| Robot class | Fixed sensor nodes (the "always-on" tier) + mobile "eyes that come to you" + docks as Thread border routers / UWB anchors |
| SOTA techniques | Tiered sensing: always-on cheap fixed nodes (PIR + 60 GHz mmWave + lux/temp/humidity + mic array) emitting only point clouds/occupancy events; on-demand mobile RGB-D/thermal eyes dispatched to a triggered zone; device-free Wi-Fi CSI (802.11bf) whole-home presence from every radio; factor-graph fusion core ingesting UWB ranges (TWR/TDoA/AoA), IMU, odometry, LiDAR/VIO, mmWave tracks, and static-anchor detections — the right math for an asynchronous heterogeneous fleet vs a single global EKF; late semantic fusion (skeletons/clusters/occupancy deltas over the wire, never pixels — the Bonn smart-edge-sensor pattern); docks/nodes as UWB anchors (~10 cm) with BLE Channel Sounding fallback; Matter-1.5/Thread-1.4-native (Occupancy + Camera clusters, HRAP unified mesh) as a Matter controller; PIR/Wi-Fi-gated radar wake + Matter LIT for battery nodes; privacy-by-physics (radar/CSI default; cameras only on consented escalation); federated learning + differential privacy across homes |
| Software subsystems | Shared World Model service (Bayesian log-odds semantic occupancy grid); heterogeneous factor-graph fusion engine; per-node perception runtimes (radar pipeline, CSI model, camera pose, acoustic events); cross-modal data-association/identity tracker with sensor handoff; Matter controller + Thread/Zigbee stack; positioning/anchor manager; sensing-task orchestrator (when to escalate cheap RF → camera unit, which unit, roll-vs-fly); privacy & policy engine (per-zone/per-modality consent, fail-closed); federated-learning subsystem |
| Crates / stack | Rust factor-graph core + occupancy-grid math + per-node perception; TS Matter controller/service layer; radar SoC on-chip range-Doppler (raw RF never leaves the node); time-sync (PTP/IEEE-1588) across the fleet |
| Agent(s) | The reasoning + dispatch brain — turns ambient triggers and natural-language into sensing tasks ("go check the kitchen"), runs the escalation policy energy-aware, does cross-modal grounding, acts on the home via the Matter controller, and enforces privacy policy as a first-class reasoning input. Fails loud on low-confidence presence/fall verdicts |
| Hardware | TI IWR6843AOP / Infineon BGT60 radar MMICs (on-chip point cloud), multi-protocol SoCs (Thread/Zigbee + BLE + Wi-Fi, Matter LIT), UWB transceivers (Qorvo DW3000 / NXP QM33xxx) on docks, mic arrays, RGB-D + thermal on mobile units, time-sync hardware |
| SOTA bar to beat | Aqara FP2 / FP300 mmWave presence nodes + Matter occupancy — exceed their fixed-zone, single-modality sensing by fusing radar + Wi-Fi CSI + UWB + on-demand camera into one cross-modal identity track with sensor handoff, beating the #1 presence-sensor complaint (false absence on stationary occupants / lights-off-while-present) |
Line 10 — Lab co-pilot & filmmaking director#
| Aspect | Detail |
|---|---|
| Robot class | Fetch/mobile-manipulator units + scout/cinematography drones + companion host node, coordinated as a heterogeneous ensemble |
| SOTA techniques | Dual-system (System-1/System-2) control on every actuated unit — a shared System-2 reasoner (Gemini-Robotics-ER / VLM, 5–10 Hz) emits semantic subtasks to per-robot System-1 reactive VLAs (50–200 Hz, Helix/GR00T/π0.5 pattern); cross-embodiment foundation policy (OpenVLA-OFT / openpi π0.5, Skild/Gemini Motion-Transfer) so one base policy drives arms, drones, and hybrids with thin embodiment heads; Real-Time Chunking (freeze-and-inpaint) so network jitter never causes chunk-boundary jerks; embodied-reasoning + native tool use (web, lab/home APIs) for multi-step mission decomposition; generative world models (Genie/GAIA-style) for what-if rollouts, home-specific synthetic-scenario generation, and closed-loop policy eval; Skydio-class GPS-denied VIO + 360° obstacle avoidance for cinematography flight; energy-aware roll-vs-fly arbitration as a command mode; hard safety filter (Simplex runtime monitor + CBF/MPC shield + OOD/hallucination detector) wrapping every learned policy |
| Software subsystems | System-2 reasoning + planning service (mission decomposition, cross-robot task allocation, tool calls); per-robot System-1 VLA runtime with RTC; fleet orchestrator (RoboOS/RobotFleet-style shared declarative world state, two-way replanning); cross-embodiment policy registry + adapter layer; safety governor; lifelong skill library (episode store, replay, retrieval-based adaptation, skill distillation, forgetting guards); sim + synthetic-data pipeline (Isaac Lab GPU-parallel RL with accurate actuator modeling); inference-tier router (local-only for safety-critical loops) |
| Crates / stack | Jetson Thor-class on full-body units (VLA + VLM co-resident, FP4/INT8); home-server System-2 + world model + map; Isaac Sim/Isaac Lab for sim-to-real; Rust safety supervisor and real-time control |
| Agent(s) | The fleet's System-2 brain — interprets voice/NL goals, decomposes missions, allocates subtasks across heterogeneous units (drone to scout/frame, rover to traverse, arm to grasp, hybrid to clear stairs), sequences handoffs, calls digital tools, and runs world-model rollouts before committing fleet actions. Proposes; the safety governor disposes. Degrades to autonomous on-robot behavior when disconnected |
| Hardware | Jetson Thor (Blackwell, 128 GB unified memory, 40–130 W) on manipulator/humanoid-class units, Orin NX/AGX on rovers, lightweight NPUs on scout drones (fast reactive policy only), RGB-D + LiDAR + accurate actuator feedback, GPU home-server, shrouded-prop cinematography drones |
| SOTA bar to beat | Figure Helix / Helix 02 dual-system whole-body autonomy (a single VLA running entirely on embedded low-power onboard GPUs at System-1 200 Hz / System-2 7–9 Hz, executing ~4-minute end-to-end household tasks) — match its on-board real-time dual-system bar for lab/director tasks while exceeding single-home generalization via the π0.5 home-diversity scaling result (3 → 104 homes) and the cross-embodiment Motion-Transfer pattern across Oya's heterogeneous fleet |
Shared dependencies across all ten lines. Every line reads and writes the single Line 7 persistent semantic map in one shared coordinate frame; every actuated line routes commands through the deterministic safety supervisor (Lines 1–6, 10) and every perception-bearing line through the privacy layer (on-edge redaction, hardware recording indicators in series with camera power, no-record zones enforced in both planner and perception). Lines 8 and 9 are infrastructure that the other eight consume — energy/docking and ambient sensing are not optional add-ons but the substrate that makes 24/7 autonomy and "eyes that come to you" coherent. The agent tier is consistent throughout: it sets intent, priorities, and missions; it never holds the real-time loop, safety authority, or privacy authority; and it fails loud — surfacing uncertainty and recruiting a human or teammate robot — rather than fabricating a result it did not compute.
14. Monorepo integration & roadmap additions#
This section maps the Oya home-robotics expansion onto the master plan's existing structure. The plan already establishes the oya-engine Rust crate workspace (oya-math, oya-estimation, oya-control, oya-mavlink, oya-swarm, oya-perception, oya-cinematography, plus napi/wasm bridges) and the apps/oya/* service tier (svc-flight-gateway, svc-perception, svc-assistant, svc-director, svc-mission, svc-dock, svc-live-stream, bff, web, mobile), following the lilith/yemaya conventions confirmed in the monorepo (libs/oya, apps/oya, contracts in libs/contracts, proto in libs/proto). The expansion from a cinematography-drone codebase to a heterogeneous in-home HIVE — floor-care rovers, fetch manipulators, scout micro-drones, hybrid wheel+fly units, companion/patrol/care units, fixed ambient nodes, and charging docks — is additive: it reuses the existing real-time Rust core and TypeScript orchestration split, and extends rather than forks the phased roadmap (A–I).
The governing architectural invariant, drawn directly from the SOTA corpus, is the three-tier intelligence split (on-robot edge / home-server / cloud) with a hard separation between the deterministic real-time control loop (Rust) and the LLM/VLA agent tier (TypeScript orchestration + served models). Every crate and service below respects that boundary: SLAM, control allocation, grasp execution, social-navigation, and energy/safety governors are deterministic and verifiable; the agent decides what and where, never how inside a hard-real-time loop. This is the convergent pattern across π0.5 hierarchical inference, Gemini Robotics ER↔VLA, Figure Helix (System-2 at 7–9 Hz conditioning System-1 at 200 Hz), and NVIDIA GR00T N1 — and it is also the master plan's existing posture for the flight stack.
New Rust crates (libs/oya/*)#
These extend the oya-engine workspace. Each ships Cargo.toml, comprehensive types, domain-correctness tests (e.g. boustrophedon-completeness assertions, ISO/TS 15066 force-limit checks against published thresholds, CoT model validation against measured power curves), and exposes a napi-rs binding where a TS service needs synchronous access plus a wasm-pack build where the web/mobile clients need it (matching the existing oya-engine/napi and /wasm convention).
| Crate | Responsibility (real-time / perf-critical) | Grounding |
|---|---|---|
oya-mapping |
The shared persistent home map: graph-SLAM pose-graph backend (GTSAM/iSAM2-style) with appearance-based loop closure, tiered memory (STM/WM/LTM) for bounded lifelong operation, multi-session merge, multi-floor submaps joined by stair/elevator transition edges, and a TSDF/ESDF volumetric layer with dynamic-object masking. Single shared coordinate frame; relocalization on every boot. | RTAB-Map, Hydra/Clio, nvblox+cuVSLAM, MuNES, LT-mapper |
oya-scenegraph |
Open-vocabulary hierarchical 3D scene graph (building→floor→room→object) layered over oya-mapping: per-instance pose, CLIP/SigLIP embeddings, last_seen/observation-count/decay freshness, DynaMem-style add/remove on observed change, Clio Information-Bottleneck task-driven compression. The queryable spatial memory the agent grounds against. |
ConceptGraphs, HOV-SG, Clio, DynaMem, OK-Robot |
oya-floorcare |
Coverage path planning (boustrophedon cellular decomposition + cell-graph traversal), Matrix-style multi-pass over high-dirt cells, anytime replanning for unknown space, multi-robot coverage partition with failure-reabsorption, and the closed-loop dirt-sensing → suction/water/scrub/pass-count adaptive controller + carpet-detection mop-lift state machine. | Choset boustrophedon CPP, resilient multi-robot CPP (2024), Roborock/Ecovacs/Dyson adaptive cleaning |
oya-manipulation |
Model-based 6-DoF grasp generation from depth/point-cloud (Contact-GraspNet/AnyGrasp parameterization) as the verifiable geometry-grounded fallback under the learned policy; whole-body MPC with manipulability-aware base placement; tactile/force slip-detection and grip-force regulation; ACT/flow-matching action-chunk execution with Real-Time Chunking. | AnyGrasp, Contact-GraspNet, Toyota HSR, ACT, RTC |
oya-locomotion |
Per-mode cost-of-transport energy models, the roll/walk/fly mode-arbitration policy (the "roll unless flight required" brain), online morphing-state estimation (mass/CoG/inertia) + INDI/NMPC control allocation for hybrid units, sim-to-real RL gait inference for wheeled-legged blending, GPS-denied VIO for flying units. | M4, Duawlfin, ATMO, ANYmal parkour, energy-aware air-ground actuation (arXiv 2603.26687) |
oya-fleet |
Heterogeneous task allocation: auction/CBBA bidding (capability- and battery-aware), MILP/coalition solver for long-horizon missions with recharge/relay, MAPF traffic deconfliction (PIBT/LaCAM*) over shared home choke points, and DeepFleet-style learned congestion forecasting once fleet logs exist. CTDE policy execution at the edge. | Open-RMF, DeepFleet, MRTA surveys, PIBT/LaCAM* |
oya-energy |
Per-robot SOC/SOH estimation (temperature-compensated coulomb counting + online SOH), multi-threshold return-to-dock state machine (CRITICAL/LOW/HIGH), opportunistic partial-charge banding, PRCP-style minimum-dock sizing, and battery-health-aware charge co-scheduling. | OTTO opportunistic charging, PRCP ILP, meSch, battery-health matheuristic |
oya-ambient |
mmWave FMCW radar pipeline (range/Doppler FFT → CFAR → clustering → tracking → fall/stationary-presence classification), Wi-Fi CSI presence, UWB TWR/TDoA/AoA ranging against dock anchors, and the factor-graph fusion core that ingests radar/CSI/UWB/IMU/odometry/VIO into one home state estimate. | Aqara FP2/FP300, TI IWR6843, 802.11bf, UWB, Bonn smart-edge-sensors |
oya-safety |
The high-integrity, isolated safety governor: SSM safety-field logic, PFL force/momentum caps against ISO/TS 15066 biomechanical thresholds, geofenced no-go/no-record enforcement, CBF/MPC shield + OOD detector that can veto the VLA, and the discard-and-log path for out-of-bounds commands. Separately verified; never overridable by the agent. | ISO 10218-2:2025/TS 15066, R15.08, Simplex/CBF shields, ROS 2 threat model |
oya-comms |
Zenoh peer-to-peer/mesh transport with partition tolerance, bandwidth-aware compressed descriptor/feature exchange (send semantics, not raw clouds/pixels), DDS-Security/SROS2 hardening (per-node X.509 identity, AES-GCM, revocation/namespace fixes beyond stock SROS2), and PTP/IEEE-1588 time sync. | Zenoh vs DDS benchmarks, SROS2 + CCS 2022 flaws, HeCoFuse cooperative fusion |
oya-cinematography is retained unchanged; oya-perception is refactored to depend on oya-scenegraph/oya-mapping so the existing drone perception becomes one producer/consumer of the shared map rather than a private pipeline. oya-swarm is generalized by oya-fleet (the swarm-flight trajectory work becomes a strategy within the broader heterogeneous allocator).
New services (apps/oya/*)#
Each follows the lilith/yemaya service convention (project.json, package.json, tsconfig.json, path mapping in tsconfig.base.json, NestJS-style module with contracts from libs/contracts/oya). These are orchestration/IO/agent-tier services in TypeScript; all hot-path math lives in the crates above, reached via napi.
| Service | Responsibility | Consumes |
|---|---|---|
svc-fleet-orchestrator |
The Open-RMF-pattern core: ingests per-unit pose/battery/capability state, runs the auction + congestion-forecast allocator, maintains the space-time traffic schedule for shared doorways/halls/stairs, and dispatches to per-class fleet adapters. The HIVE's task router. | oya-fleet, oya-energy |
svc-home-map |
Owns the persistent shared world model: serves geometric + scene-graph + (server-side) photoreal 3DGS twin layers, the natural-language/structured spatial query API ("where is X / what changed in the kitchen"), multi-robot map fusion, privacy-zone annotations, and change-detection streams. The single source of truth all units read/write. | oya-mapping, oya-scenegraph, oya-comms |
svc-floorcare |
Floor-rover task tier: zone scheduling, coverage-job lifecycle, dirt-heatmap persistence, omni-dock cycle coordination (self-empty/wash/dry), and recharge-and-resume. | oya-floorcare, oya-energy |
svc-manipulation |
Fetch/manipulator tier: VLA policy serving (π0.5/OpenVLA-OFT-class, per-embodiment adapters), grasp-confidence gating with fail-loud escalation, teleop→autonomy data flywheel (demo capture in LeRobot/OXE format), and hand-off coordination. | oya-manipulation, oya-safety |
svc-pet |
Pet-as-first-class-entity tier: per-individual ID (face/weight/gait), behavior/affect state, pet-aware social-navigation policy distribution, treat-dispensing with cross-node calorie budgeting + consumption verification, and the graded anxiety-mitigation loop. | oya-scenegraph, oya-ambient |
svc-eldercare |
Elder/health tier: multimodal fall fusion (radar+CSI+skeleton) with trigger→confirm→escalate, closed-loop medication adherence (dispense + ingestion verification), proactive engagement engine, RAG-grounded + guardrailed conversational layer with refusal-to-advise routing, and cellular-backed emergency escalation orchestration. | oya-ambient, svc-assistant |
svc-ambient |
Fixed-node + smart-home tier: Matter controller / Thread-1.4 border-router (HRAP) role, exposes Oya nodes as Matter Occupancy/Camera devices, controls third-party lights/locks/shades, and runs the sensing-escalation policy (when to dispatch a camera-bearing mobile eye). | oya-ambient, oya-comms |
svc-energy |
Fleet Energy Manager: dock registry/broker (charging as an auctionable resource), SOC/SOH telemetry aggregation, return-to-dock policy with task checkpoint/resume, battery-swap orchestration for top-duty units, and predictive-maintenance flags. Runs on the home server, with on-robot fail-safe fallback. | oya-energy, oya-fleet |
svc-hri |
Human-robot interaction tier: full-duplex speech-to-speech core (Moshi-style multi-stream), HIVE-wide turn-taking/floor arbitration, per-embodiment affect rendering, mic-array speaker localization fusion, and persona/trust state per resident. | oya-ambient, svc-assistant |
svc-assistant is elevated to the System-2 reasoning brain (Gemini-Robotics-ER-pattern): mission decomposition, embodied spatial reasoning over svc-home-map, tool calls, and delegation to the orchestrator — but it never emits motor commands and is always gated by oya-safety. svc-dock is generalized from a single drone dock to a dock-network controller feeding svc-energy. svc-flight-gateway and svc-live-stream carry over.
New contracts (libs/contracts/oya, libs/proto/oya)#
Typed boundaries are added so heterogeneous units interoperate and the agent's action surface is well-defined: FleetState/TaskBid/Allocation (capability + battery + payload constraints, the hard capability gate that prevents asking a drone to grasp); WorldModelQuery/SceneGraphInstance (object instance with pose, last_seen freshness, uncertainty — the honest fail-loud seam for stale map state); SensorObservation (compressed descriptors/features, never raw frames, with PTP timestamps); CapabilityManifest (self-describing payload/module registration — mass, CoM, power envelope, driver handle — updating dynamics and the agent action set on dock); ConsentPolicy/PrivacyZone (per-person consent, no-go/no-record geofences, retention windows); and SafetyEnvelope (force limits, SSM fields, e-stop state). These follow the existing OpenAPI + proto generation pipeline (libs/openapi, libs/proto).
New readiness-evaluator gates#
The master plan's readiness evaluator is extended with domain-correctness gates that fail loud rather than rubber-stamp — consistent with the project's zero-tolerance-for-stubs and fail-closed posture:
- Coverage completeness —
oya-floorcareboustrophedon decomposition provably covers the free-space cell graph; multi-robot partition reabsorbs a failed unit's cells. - Grasp honesty —
svc-manipulationverifies contact via tactile/load feedback before reporting success and escalates below the confidence threshold; no fabricated grasp success (the explicit anti-stub case from the corpus). - Map freshness — every served
SceneGraphInstancecarries non-fabricatedlast_seen/uncertainty; the agent surfaces staleness ("I last saw it 3 days ago") instead of a confident wrong location. - Energy reserve — no mission dispatched without a verified reserve-to-return-to-a-free-dock budget; SOC estimates temperature-compensated, not voltage-only.
- Safety conformance — manipulator contact forces validated against ISO/TS 15066 per-body-region thresholds; mobile bases against R15.08 safety-field/SSM behavior; the safety governor demonstrably vetoes an out-of-envelope VLA command.
- Privacy enforcement — no-record zones disable/blur sensors in the perception path (not just navigation); recording indicators are hardware-tamper-evident; only derived semantics leave the home tier by default.
- Offline degradation — every safety-critical loop (collision avoidance, balance, fall-escalation, meds) runs on edge/home-server with the cloud unreachable (the Moxie/Cutii anti-orphaning lesson).
- Mode-arbitration economy —
oya-locomotionchooses rolling over flight whenever a traversable ground path exists in the map, validated against the per-mode CoT model.
Roadmap extension (phases A–I)#
The expansion threads through the existing phases rather than appending a parallel track; flight (the current A–I content) is treated as one capability within the broader HIVE.
- Phase A (Foundations) — add
oya-mapping,oya-scenegraph,oya-comms,oya-energy,oya-safetycrates and thelibs/contracts/oyatyped boundaries; stand upsvc-home-mapand the shared coordinate frame. This is the substrate everything else reads/writes. - Phase B (Estimation/Perception) — extend
oya-perceptiononto the shared map; addoya-ambientfixed-node fusion andsvc-ambientwith Matter/Thread integration. - Phase C (Control) — add
oya-locomotion(mode arbitration + morphing control allocation) andoya-manipulation; wireoya-safetyas the mandatory gate on all actuation. - Phase D (Mission/Director) — generalize
oya-swarm→oya-fleet; shipsvc-fleet-orchestrator(Open-RMF pattern) and elevatesvc-assistantto the System-2 brain. - Phase E (Dock/Energy) — generalize
svc-dockto the dock network; shipsvc-energyand the PRCP/opportunistic-charging scheduler. - Phase F (Domain services) —
svc-floorcare,svc-manipulation,svc-pet,svc-eldercare,svc-hri, each behind its readiness gates. - Phase G (HRI/Live) — full-duplex
svc-hri, social navigation, and the supervised-autonomy/teleop console;svc-live-streamcarries over. - Phase H (Learning flywheel) — teleop→autonomy data pipeline, per-home fine-tuning (LoRA adapters), federated learning with differential privacy, and the Habitat/Isaac sim harness as CI for the perception and fleet-fusion stacks.
- Phase I (Hardening) — ETSI EN 303 645 / EU CRA conformance (SBOM, signed A/B OTA, per-device identity, CVD policy), ISO 13482 / UL 3300 certification paths per unit class, and the adversarial safety/privacy verification pass across the whole fleet.
The net effect is a coherent extension: the existing Rust-real-time-core / TypeScript-orchestration division, the three-tier compute split, and the phased delivery model all carry forward, while the new crates and services give the HIVE its shared persistent map, heterogeneous fleet coordination, energy economy, ambient sensing, and the safety/privacy guarantees that in-home deployment makes non-negotiable.
15. Committed requirements from the adversarial critique#
The completeness critic surfaced 19 gaps and 8 high-value additions. None are deferred — each becomes a binding requirement on the crates/services/gates above. Grouped by theme; [C] = critical, [I] = important.
15.1 Multi-floor reach, doors, and the outside boundary#
- [C] Stairs are a first-class locomotion mode, not "just fly." At least the
fetch and floor-care classes get a stair-capable mode (Dreame-X50 ProLeap
retractable-leg lineage for thresholds/short flights; Unitree-B2-W-class
wheeled-legged for full flights) or a per-floor docked sub-fleet with a
dedicated stair-transit carrier. The multi-floor map (
oya-mapping) encodes which units can cross which transition edge; the mode planner models a real stair-climb cost, never assuming a meds/water-carrying rover can fly. - [C] Closed doors and articulated objects. Add an articulated-object
manipulation skill (door / drawer / cabinet / fridge via VLA + force-compliant
arm + handle/affordance detection) to
oya-manipulation. For passive passage, thesvc-ambientMatter controller can request a smart-lock / door-opener, with doors modeled as shared resources in thesvc-fleet-orchestratortraffic schedule. High-consequence actions (unlocking) require a second authorization factor (see 15.4). - [I] Outdoor / threshold scope is decided explicitly. A weather-capable patrol/scout unit handles porch/yard/garage with GPS↔VIO handoff at the threshold, IP-rated hardware, doorsill/garage-door transition skill, and package detection/retrieval. If a deployment is indoor-only, the front-door and garage are hard map edges — stated, not silently unhandled.
15.2 In-home physical safety (people, children, pets, fluids, payloads, noise)#
- [C] Children are a distinct hazard class (not lumped with pets): treat- launcher/small-part choking interlocks when a child is detected, manipulator/drone lockout or ultra-conservative speed near unsupervised children, tip-over/ride-on resistance, child-height sensor coverage, and UL-3300 "external manipulation" robustness (a grabbed/blocked robot yields safely, never torques through). Detection validated on small/fast child morphologies.
- [I] Water/fluid & spill safety. A shared wet-floor/drying map layer that elder-care and patrol units treat as a soft no-go until dry; mopping gated by occupancy (never wet a path a tracked person/pet is on or approaching); multi-modal carpet/low-pile-rug detection (not height-only); leak detection with fail-closed water cutoff; routing away from detected floor outlets/cords.
- [I] Payload securement & drop/spill safety. Lidded/gimbaled/spill-resistant carriers for liquids and meds; acceleration limits while carrying spillable or hazardous payloads; never carry hot/hazardous payloads over a person or down stairs without securement; continuous payload-retention verification; "dropped payload" is a logged safety event with escalation.
- [I] Pet edge cases harden the social-navigation layer. Never-corner / always-leave-an-escape-route as a hard constraint; chew- resistant, no-exposed-cable hardware with electrical safety if chewed; unknown small/exotic animal → treated as hard-avoid; pet waste/vomit is a fleet-wide hard-avoid zone (not just a cleaning decision); no drone flight near an agitated/predatory pet.
- [I] Noise is a first-class scheduler input. A household acoustic/occupancy schedule with per-zone, per-time-of-day dB caps; loud tasks (vacuum, prop flight) deferred to unoccupied/awake windows; a low-noise night-patrol mode (radar/CSI/thermal, rolling slowly, no vacuum/props) distinct from day cleaning, tied to the elder-care sleep/routine model.
15.3 Resilience (the home server, OTA, and degraded modes)#
- [C] The home server is not a single point of failure. UPS-backed always-on appliance; a hot-standby or edge-elected backup brain (a docked Thor-class unit assumes orchestration + escalation if the server is unreachable); the life-safety path (fall detection → escalation) runs fully on-edge with cellular egress and never routes through the server; brain OTA is forbidden while a resident is unattended. CTDE MARL execution is genuinely server-independent for safety tasks.
- [I] Live-OTA safety in an occupied home. Never update a unit mid-task or while it is the sole unattended safety asset; canary/staged fleet rollout (never all units at once); shadow-mode/sim-harness validation (Habitat/Isaac + readiness gates) before any fine-tuned/federated policy controls a real robot near people; automatic rollback on success-rate regression; a known-good policy kept resident for instant fallback.
15.4 People: authorization, accessibility, consent#
- [I] Per-resident authorization & command arbitration. A role model (admin / adult / child / guest) gates which capabilities each person can invoke; floor-arbitration extends to command-arbitration (priority + conflict resolution for simultaneous conflicting orders); explicit child lockouts on manipulators and drone launch; guest mode with reduced capability and recording defaults — bound to the on-device biometric resident registry.
- [I] Accessibility for the actual care users. Large-button/physical controls and an opt-in pendant as alternatives to app/voice; hearing-impaired modes (visual/haptic alerts, on-screen captioning); dysarthria-robust ASR and slower-paced dialogue; dementia-appropriate interaction (human-in-loop care.coach pattern); and fall/gait/pose models explicitly validated on wheelchair/walker users and frail bodies (a walker is never classified as an obstacle to corner).
- [I] Bystander/visitor consent. On-device face/voice handling with unrecognized-person redaction by default; a visible "recording / remote- operator-active" indicator; guest mode minimizing capture; audio-recording consent gating compliant with two-party-consent jurisdictions; audit logs of who/what was recorded; mandatory operator-side blurring + owner-consent gate for any teleop session.
15.5 Security of the expanded attack surface#
- [C] Threat model extends to the smart-home control plane. A compromised
brain must not be able to unlock doors without a separate authorization
factor / physical confirmation; UWB/sensor anti-spoofing via cross-modal
consistency (a hard
oya-comms/oya-ambientrequirement); Sidewalk/3rd-party backhaul treated as untrusted egress with explicit consent; and prompt- injection defenses made concrete — manipulated camera/voice inputs can never escalate agent privilege or trigger high-consequence actuation without the deterministic supervisor plus a confirmation gate.
15.6 Honesty, scope, and viability#
- [I] Honest fetch capability boundaries. Real-home OVMM is ~58–70% success; per-object-class hard confidence gating at the task-promise level. For medication specifically, prefer mobility-as-payload + a fixed verified dispenser over autonomous grasp of loose pills; define in-scope vs always-teleop vs out-of-scope object classes; address floor-pickup tip-over and high-shelf reach; specify teleop availability/SLA and its privacy model.
- [I] Filmmaking director gets its own capability spec (not folded into a
generic VLA bundle). Cinematographic shot-type library (dolly, orbit, crane,
reveal), composition/aesthetic scoring, multi-unit coordinated filming with
angle handoff, subject-tracking-for-framing distinct from collision
avoidance, gimbal/exposure/focus control, and a director-LLM translating
creative intent into shot sequences — reusing
oya-cinematographyand the existingyemaya/remote-film-capturedirector (Part I §4.7). - [I] Map cold-start & onboarding. Guided first-map walkthrough (or autonomous explore), room/zone labeling UX, dock/anchor placement guidance with UWB geometric-dilution feedback, and a "major change detected — re-survey?" flow that distinguishes renovation/move from daily change; graceful first-boot relocalization for a unit with no map yet.
- [I] Consumables & serviceability lifecycle. Per-unit consumable levels (water/detergent/treats/bags) and wear tracking (brushes, props, mop pads, tactile gels, dock contacts) with loud low-consumable/service alerts (never silent failure), design-for-easy-service, and a repairability/right-to-repair stance aligned with EU CRA supported-lifetime obligations.
- [I] Economic & regulatory viability is a readiness gate. A per-line BOM and a phased go-to-market shipping the cheapest viable subset first (floor-care + ambient + companion are nearer-term than humanoid-class fetch); a shared- hardware/shared-compute strategy to avoid Thor-per-unit cost; an explicit product-liability and insurance posture for physical-harm scenarios; and a certification roadmap sequenced by unit class (ISO 13482 / UL 3300 / ISO 10218 / CRA), never gating the whole fleet on the hardest cert. "Will this pencil out at achievable volume?" is itself a gate.
15.7 Adopted additional capabilities (the critic's 8 ideas, accepted)#
- Whole-home hazard monitoring as its own product capability: a queryable
household-state model (stove on/off, fridge ajar, faucet running, window/door
open at night) fused from ambient nodes + mobile eyes — answers "did I leave
the stove on?" and proactively flags gas/flood/open-door hazards. (Arguably the
highest-value safety feature; the sensing primitives already exist in
oya-ambient.) - Grid-aware energy + fleet-as-backup-power: schedule charging/heavy tasks in cheap/clean grid windows (Matter 1.5 tariff/carbon signals) and use the docked fleet's UPS-backed batteries as opportunistic home backup power during outages.
- Capability passport + simulation-first onboarding: every new
module/unit self-registers a
CapabilityManifestand ships a validated sim model so the fleet rehearses integrating it in the home digital twin (Genie/GAIA/Isaac) before it ever moves physically. - Cross-home federated "home archetype" priors (with differential privacy) so a freshly-installed fleet starts competent and personalizes faster — leveraging the π0.5 home-diversity result and the federated subsystem.
- Anti-bricking dignity guarantee for care/companion units: a documented end-of-life / vendor-survival plan (self-hostable brain, data export, no bricking) and anti-manipulative-engagement guardrails — the Moxie/Cutii/ Aldebaran cautionary tales turned into a marketed trust feature.
- Unified "find my things" across the fleet: change-aware scene-graph
last_seenper instance + UWB/BLE tags + on-demand mobile eyes → "where are my keys/glasses/phone/the cat," with honest freshness/uncertainty. - Proactive fall prevention (not just detection): gait-speed/sit-to-stand deterioration biomarkers + floor trip-hazard detection proactively clear/flag hazards and surface decline trends to caregivers — where the clinical value is.
- Home-wide acoustic-event service: unify the per-line mic arrays + DoA + danger-sound classifiers into one shared sense (glass break, smoke/CO alarm, running water, a call for help, a baby crying, a dog in distress) that triggers the nearest mobile eye.
This document is a plan, not an implementation. No code has been written or modified. Part II (the home-robotics hive) was produced by a web-grounded multi-agent SOTA research workflow and benchmarked against named 2025-2026 industry systems; its architecture is a proposal. Hardware claims are scoped to the software/firmware/protocol boundary; the physical robots, perch/charging, and dock mechanisms require a parallel engineering workstream.