Introduction to RCAN

The Robot Communication & Addressing Network (RCAN) is an open protocol for identifying, discovering, and communicating with robots across networks and organizations.

What is RCAN?

RCAN is a federated protocol that provides:

  • Universal Robot Identification - Every robot gets a unique, permanent Robot Registration Number (RRN)
  • Addressable URIs - Robot URIs (RURIs) that work like email addresses for robots
  • Local Discovery - mDNS-based discovery for LAN environments
  • Role-Based Access - Five-level permission system from Guest to Creator
  • Safety First - Protocol-level safety invariants that can't be bypassed

Why RCAN?

As robots become more prevalent, we need standards for:

Identity

How do you uniquely identify a robot across its lifetime? Serial numbers are manufacturer-specific. MAC addresses can be spoofed. RCAN provides permanent, verifiable identities through RRNs.

Discovery

How do robots find each other on a network? How do applications discover available robots? RCAN uses mDNS for local discovery and federated registries for global lookup.

Communication

How do you send commands to a robot securely? How do you ensure only authorized users can control it? RCAN defines message formats, authentication, and role-based permissions.

Safety

How do you ensure remote commands can't override local safety systems? RCAN makes safety invariants part of the protocol itself, not optional features.

Core Principles

Federated, Not Centralized

Like email, RCAN is federated. Anyone can run a registry. Robots can move between registries. No single entity controls the network.

Local Supremacy

A robot's local safety systems always take precedence over remote commands. If the network goes down, the robot enters a safe state.

Owner Control

Robot owners (Level 4) can always redirect their robot to a different registry. No vendor lock-in.

Open Standard

RCAN is open source and community-driven. The specification, reference implementations, and registry are all publicly available.

Components

Component Purpose
RRN Robot Registration Number - permanent unique identifier (e.g., RRN-00000001)
RURI Robot URI - addressable endpoint (e.g., rcan://registry.example.com/acme/bot-x1/12345678)
Registry Database of registered robots with their specifications and metadata
Discovery mDNS service for finding robots on local networks
Messages Protocol buffer format for robot communication

Next Steps

Edit this page on GitHub Last updated: 2/22/2026