# sanad_api_r1 — copy to .env and fill in. docker compose reads it automatically. # ── fleet server (REQUIRED — YS Lootah gives you these two) ────────────────── SERVER_URL=https://fleet.example.com DEVICE_TOKEN=REPLACE_WITH_DEVICE_TOKEN # ── identity ───────────────────────────────────────────────────────────────── # This robot's fleet id, sent in the telemetry body as "sn". Set the real R1 id. SN=r1_0000 # ── DDS (reading robot state) ──────────────────────────────────────────────── # The R1 backpack link is eth10 (SanadR1 default). Use the interface that sees # the robot's DDS traffic. Domain 0 unless your robot is configured otherwise. DDS_INTERFACE=eth10 DDS_DOMAIN=0 # Which NIC's MAC to report as the robot identity (defaults to DDS_INTERFACE). # MAC_INTERFACE=eth10 # ── status / position options ──────────────────────────────────────────────── # Read the loco FSM for a richer status (READ-ONLY GET RPC, never commands # motion). 0 = derive status from battery + joint motion only (safe default). R1_READ_FSM=0 # Position source: none (default) | rosbridge. The R1 localizes with stereo VSLAM # on the ROS side; set 'rosbridge' + ROSBRIDGE_URL to report x,y from /odom. R1_POSITION_SOURCE=none ROSBRIDGE_URL=ws://127.0.0.1:9090 # ── fault thresholds ───────────────────────────────────────────────────────── LOW_SOC=15 MOTOR_TEMP_MAX=85 # ── cadence / transport ────────────────────────────────────────────────────── POLL_INTERVAL=2 VERIFY_TLS=1 HTTP_TIMEOUT=10 # ── robot identity card (shown on the dashboard) ───────────────────────────── ROBOT_BRAND=unitree ROBOT_TYPE=humanoid ROBOT_MODEL=r1 # Optional: Sanad data dir whose size is reported in storage (as /host/ # when the installer's read-only /:/host mount is used). Empty = omit. STORAGE_DATA_PATH=