RURI Format
The Robot URI (RURI) is an addressable identifier for locating and communicating with robots.
Format
rcan://<registry>/<manufacturer>/<model>/<device-id>[:<port>][/<capability>] Components
| Component | Required | Description | Example |
|---|---|---|---|
scheme | Yes | Always "rcan://" | rcan:// |
registry | Yes | Registry domain | continuon.cloud |
manufacturer | Yes | Manufacturer namespace | acme |
model | Yes | Robot model | bot-x1 |
device-id | Yes | Unique device ID (8 hex or UUID) | 12345678 |
port | No | Network port (default: 8080) | :9000 |
capability | No | Specific endpoint | /arm |
Examples
# Basic RURI
rcan://continuon.cloud/continuon/companion-v1/d3a4b5c6
# With full UUID
rcan://continuon.cloud/continuon/companion-v1/d3a4b5c6-7890-1234-5678-abcdef012345
# With capability endpoint
rcan://continuon.cloud/continuon/companion-v1/d3a4b5c6/arm
# Local network discovery
rcan://local.rcan/discovered/192.168.1.42:8080
# Custom port
rcan://my-server.lan/acme/bot-x1/a1b2c3d4:9000 Validation Regex
^rcan://([a-z0-9][a-z0-9.-]*[a-z0-9])/([a-z0-9][a-z0-9-]*[a-z0-9])/([a-z0-9][a-z0-9-]*[a-z0-9])/([0-9a-f]{8}(?:-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})?)(?::(\d{1,5}))?(/[a-z][a-z0-9/-]*)?$ Device ID Formats
Short Form (8 hex characters)
d3a4b5c6 Typically derived from MAC address or assigned by manufacturer.
Full UUID
d3a4b5c6-7890-1234-5678-abcdef012345 Standard UUID format for guaranteed uniqueness.
Common Capabilities
| Capability | Description |
|---|---|
/arm | Robotic arm control |
/vision | Camera and vision system |
/nav | Navigation and localization |
/teleop | Teleoperation interface |
/chat | Voice/text interaction |
/status | Health and diagnostics |
Parsing in Code
JavaScript/TypeScript
import { parseRURI } from '@/utils/ruri';
const result = parseRURI('rcan://continuon.cloud/acme/bot-x1/12345678');
if (result.valid) {
console.log(result.parsed.registry); // "continuon.cloud"
console.log(result.parsed.manufacturer); // "acme"
console.log(result.parsed.model); // "bot-x1"
console.log(result.parsed.deviceId); // "12345678"
}