explaingit

robot-i-o/rio

Analysis updated 2026-05-18

17PythonAudience · researcherComplexity · 4/5Setup · hard

TLDR

RIO is a Python interface for controlling many different robot arms, grippers, and cameras through one codebase, built for data collection, teleoperation, and Vision-Language-Action policy deployment in robot learning research.

Mindmap

mindmap
  root((repo))
    What it does
      Unified robot interface
      Data collection
      Teleoperation
      VLA policy deployment
    Tech stack
      Python
      uv
      mkdocs
      openpi
    Use cases
      Control robot arms
      Collect demo data
      Deploy VLA policies
    Audience
      Robotics researchers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Control different robot arms like Franka, Kinova, or Universal Robots through one shared Python interface

USE CASE 2

Collect robot demonstration data for training robot learning models

USE CASE 3

Teleoperate a robot arm remotely using a human controller

USE CASE 4

Deploy a Vision-Language-Action policy to control a robot from camera input and instructions

What is it built with?

Pythonuvmkdocsopenpi

How does it compare?

robot-i-o/rio0petru/sentimoalingalingling/akasha-wechat
Stars171717
LanguagePythonPythonPython
Setup difficultyhardmoderatehard
Complexity4/53/54/5
Audienceresearcherdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires physical robot hardware, a separate openpi dependency, and Ubuntu 22.04, optionally with a real-time kernel patch.

In plain English

RIO is a Python tool that lets researchers control many different kinds of robot arms, robot grippers, cameras, and remote control devices through one shared interface, instead of writing separate code for each brand of hardware. The project supports robot arms from several manufacturers, including Franka, Kinova, Universal Robots, UFACTORY, and SO100, so a single codebase can work across different robots without being rewritten. It is built for the field of robot learning, where researchers collect data from real robots, sometimes by having a human operator control the robot remotely, called teleoperation, and use that data to train AI systems. RIO includes built-in support for collecting this kind of data, for teleoperation itself, and for running Vision-Language-Action policies, a type of AI model that takes in what a robot sees and a written instruction, then decides how the robot should move. Grouping all of this behind one interface means a lab that switches from one robot arm brand to another does not need to rewrite its data collection or control code from scratch. The project depends on a companion library called openpi from Physical Intelligence, which must be downloaded separately into the project folder. Setup has been tested on Ubuntu 22.04, optionally with a real time kernel patch installed for more precise timing, and uses the uv tool to manage the Python environment and install dependencies. Documentation can be built and viewed locally using mkdocs. The README itself is quite short and mainly covers installation steps rather than usage details, so most information about how to actually run data collection, teleoperation, or policy deployment with RIO lives in the project's separate documentation site rather than the main page. Since the project is aimed at robot learning researchers rather than general developers, using it in practice assumes access to compatible physical robot hardware and familiarity with that research area.

Copy-paste prompts

Prompt 1
Help me set up RIO on Ubuntu 22.04 including the openpi dependency and uv environment.
Prompt 2
Explain what Vision-Language-Action policy deployment means in the context of RIO.
Prompt 3
What robot arms and grippers does RIO support, and how would I add support for a new one?
Prompt 4
Show me how to build and browse RIO's documentation locally with mkdocs.

Frequently asked questions

What is rio?

RIO is a Python interface for controlling many different robot arms, grippers, and cameras through one codebase, built for data collection, teleoperation, and Vision-Language-Action policy deployment in robot learning research.

What language is rio written in?

Mainly Python. The stack also includes Python, uv, mkdocs.

How hard is rio to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is rio for?

Mainly researcher.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.