Introduction
OpenRoIS is a community-driven open-source middleware that implements the OMG Robotic Interaction Service (RoIS) Framework 2.0. It lets service applications control physical robots, virtual avatars, and digital services through the standard RoIS interfaces, on a single machine, across a local network, or over the internet.
The Problem
Service applications for human-robot interaction are usually written against the hardware-specific interface of one platform. A change of hardware forces a rewrite of the application, which undermines reuse and slows the transfer of research into practice. The cost grows multiplicatively: integrating N applications with M platforms means N × M integrations, each built and maintained separately.
The Standard
RoIS 2.0, standardized by the Object Management Group (OMG), defines a platform-independent model for this interaction. Service applications talk to HRI Engines through five interfaces (System, Command, Query, Event, and Streaming) and exchange symbolic messages such as "a person was detected" or "navigate to the kitchen", never raw sensor data or motor commands. The specification leaves transport and implementation technology open.
A specification alone does not drive adoption. Researchers and engineers need a maintained implementation, usable SDKs, reference adapters, and a network gateway. OpenRoIS provides them, developed in the open under the Apache License 2.0.
What OpenRoIS Provides
| Part | What it is |
|---|---|
| Gateway | The process applications connect to. It presents every robot behind it through the RoIS interfaces, as one engine profile. |
| Adapters and the component SDK | An adapter connects one robot to the gateway. You write its components in Python with @component, @command, @query and @event. |
| Client SDKs | JavaScript, Python and Unity SDKs with one method per RoIS operation, checked against one conformance list. |
| Inspector | A browser application that shows the engines and components behind a gateway and drives them, with every message in view. |
| MCP server | Gives an AI agent the robots behind a gateway through the Model Context Protocol. |
| Wire protocol | The RoIS interfaces mapped onto JSON-RPC 2.0 over WebSocket, usable from browsers and across the internet. |
Two design choices hold these together. One Engine class realizes both the main and the
sub HRI Engine roles of RoIS, so the gateway and every adapter behave alike. And the engine
speaks one protocol at every hop, the
RoIS method catalog, which keeps it independent of ROS 2, gRPC, game engines, or any other
middleware.
Project Status
OpenRoIS is alpha software with an unstable API. Release v0.1.0 runs end to end: a
real Reachy Mini and a simulated one behind one gateway, driven by an application and by
an AI agent. The gateway does not authenticate connections yet, no virtual avatar adapter
exists yet, and media streaming is not carried yet. The roadmap
lists what comes next, in order.
Where to Go Next
- Try it: the quick start runs a gateway, a mock adapter and the Inspector with Docker in a few minutes.
- Build with it: write a service application, connect an AI agent, or write the components and adapter for your robot.
- Understand it: read RoIS in brief and the architecture.