Components
RoIS 2.0 defines 17 basic HRI Components. This page shows how each maps to a physical robot and to a virtual avatar, and what OpenRoIS provides for it today.
Robots and Avatars Share Most Components
Perception and speech components run the same models whether their input comes from a robot camera or a webcam. Of the 17 basic components, 13 keep the same interface and the same underlying models across paradigms, differing at most in their input source, output device, or coordinate system. Only 4 (Reaction, Navigation, Follow, and Move) need implementations specific to the paradigm, which is precisely the boundary that per-backend components keep separate. This is what makes an adapter for a new platform inexpensive to write.
| Component | Physical robot | Virtual avatar | Across paradigms |
|---|---|---|---|
| Person Detection | Detector on the robot camera | Detector on a webcam or virtual sensor | Identical |
| Person Localization | Depth camera and tracker | World position or webcam depth | Coordinate system differs |
| Person Identification | Face or re-identification model | Same model | Identical |
| Face Detection | Face detector | Same detector | Identical |
| Face Localization | Face mesh | Same face mesh | Identical |
| Sound Detection | Voice activity detection | Same detection | Identical |
| Sound Localization | Microphone array | Microphone array or virtual source | Source differs |
| Speech Recognition | Speech-to-text model | Same model | Identical |
| Gesture Recognition | Pose model | Same model | Identical |
| Speech Synthesis | Text to speech on a speaker | Text to speech with lip sync | Output differs |
| Audio Streaming | Microphone to WebRTC | Synthesized audio to WebRTC | Source differs |
| Video Streaming | Camera to WebRTC | Rendered frames to WebRTC | Source differs |
| System Information | Battery, pose, and health | Frame rate and avatar state | State differs |
| Reaction | LEDs or gestures | Animations and expressions | Paradigm-specific |
| Navigation | Navigation stack, for example Nav2 | Navigation mesh | Paradigm-specific |
| Follow | Navigation and tracking | Virtual follow behavior | Paradigm-specific |
| Move | Velocity commands to motors | Avatar transform | Paradigm-specific |
Status in OpenRoIS
Typed models are the per-component Python, TypeScript, and C# types generated by the type pipeline. Reference implementations are published components that run against real hardware.
| Component | Typed models | Reference implementation |
|---|---|---|
| System Information | Available | Preferred Robotics Kachaka (gRPC, ROS 2) |
| Navigation | Available | Preferred Robotics Kachaka (gRPC, ROS 2) |
| Person Detection | Available | In Progress (Intel RealSense, PR #3) |
| Reaction | Available | Planned |
| Person Localization | In Progress (PR #3) | In Progress (PR #3) |
| Person Identification | In Progress (PR #3) | In Progress (PR #3) |
| Speech Synthesis, Speech Recognition | Planned | Planned |
| Face Detection, Face Localization | Planned | Planned |
| Sound Detection, Sound Localization | Planned | Planned |
| Gesture Recognition | Planned | Planned |
| Follow, Move | Planned | Planned |
| Audio Streaming, Video Streaming | Planned | Planned (control plane demonstrated by the mock adapter's VideoStreaming) |
A reference platform based on the open-source Pollen Robotics Reachy Mini is in progress (Phase 8 of the roadmap), so that every basic component can be tried on affordable, openly documented hardware. Its adapter covers System Information, Navigation (head and body poses), Reaction, Speech Synthesis, Speech Recognition, Person Detection, Face Detection, and Video Streaming, and runs in simulation today.
User-Defined Components
RoIS allows components beyond the basic 17, reusing the common messages and the profile
mechanism. OpenRoIS supports them with the same decorators: declare the component name and
its RoSO function classification, for example
@component("NavigationInformation") for a component that publishes the destinations
a robot knows. Service applications discover user-defined components through the profile
exactly like basic ones.
Community Components
Adapters for additional platforms are developed as community components, separate from the core repository. A catalog and registry for them is part of the long-term roadmap.