Skip to main content

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.

ComponentPhysical robotVirtual avatarAcross paradigms
Person DetectionDetector on the robot cameraDetector on a webcam or virtual sensorIdentical
Person LocalizationDepth camera and trackerWorld position or webcam depthCoordinate system differs
Person IdentificationFace or re-identification modelSame modelIdentical
Face DetectionFace detectorSame detectorIdentical
Face LocalizationFace meshSame face meshIdentical
Sound DetectionVoice activity detectionSame detectionIdentical
Sound LocalizationMicrophone arrayMicrophone array or virtual sourceSource differs
Speech RecognitionSpeech-to-text modelSame modelIdentical
Gesture RecognitionPose modelSame modelIdentical
Speech SynthesisText to speech on a speakerText to speech with lip syncOutput differs
Audio StreamingMicrophone to WebRTCSynthesized audio to WebRTCSource differs
Video StreamingCamera to WebRTCRendered frames to WebRTCSource differs
System InformationBattery, pose, and healthFrame rate and avatar stateState differs
ReactionLEDs or gesturesAnimations and expressionsParadigm-specific
NavigationNavigation stack, for example Nav2Navigation meshParadigm-specific
FollowNavigation and trackingVirtual follow behaviorParadigm-specific
MoveVelocity commands to motorsAvatar transformParadigm-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.

ComponentTyped modelsReference implementation
System InformationAvailablePreferred Robotics Kachaka (gRPC, ROS 2)
NavigationAvailablePreferred Robotics Kachaka (gRPC, ROS 2)
Person DetectionAvailableIn Progress (Intel RealSense, PR #3)
ReactionAvailablePlanned
Person LocalizationIn Progress (PR #3)In Progress (PR #3)
Person IdentificationIn Progress (PR #3)In Progress (PR #3)
Speech Synthesis, Speech RecognitionPlannedPlanned
Face Detection, Face LocalizationPlannedPlanned
Sound Detection, Sound LocalizationPlannedPlanned
Gesture RecognitionPlannedPlanned
Follow, MovePlannedPlanned
Audio Streaming, Video StreamingPlannedPlanned (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.