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 |