Sanad Dashboard

Connecting...
CAM FACE PLACE MOVE
Operations
Voice & Audio
Motion & Replay
Controller
Navigation
Live Map
Map Editor
Recognition
Recordings
Temperature
Terminal
Settings & Logs

System Info

Loading...
Network interfaces
Subsystems (connected / disconnected)

Audio Control



Controls the ACTIVE speaker — R1 chest (DDS) + the selected PulseAudio sink (JBL/Anker). Applies live.
Manual sink / source override

Quick Actions

Live Voice Commands

Last heard: --
Pending action: --
Audio attached: -- | Arm attached: -- | Gemini: --

Live Gemini Process

Pause: Auto
State: --
User: --

Gemini API Key

The key used by GeminiVoiceClient and the Live Gemini subprocess. Saved to data/motions/config.json. Get a free key at aistudio.google.com/app/apikey.

Typed Replay Engine

Wake Phrase Manager

🔒 Arm actions are disabled while movement is enabled (Controller tab). Disable movement to replay / trigger / teach.

Motion Control

Replay Manager

Macro Recorder (Audio + Motion)

Voice (WAV)
Motion (JSONL)
Speed

Camera Vision & Face Recognition

--
--
phone-free; Vision-ON auto-starts it
Toggles take effect within ~1 second on the running Gemini session — no restart required.

Live Preview

Camera off — toggle Vision ON to see the live feed.
--
Resolution / FPS
JPEG Quality
Camera Source (R1 head — each eye points a different way)
straightens the wide-angle lens (approx — no factory calibration)
Each button rebuilds the capture pipeline (~0.5 s). Modes match the RealSense D435I colour sensor — on USB 2.x, stick to 424×240 or 640×480. If the feed is grayscale/IR, pin the colour node with SANAD_CAMERA_USB_INDEX.

Add New Face

Tip: add 2–3 photos / different angles per person for best recognition. The description is sent to Gemini with the photos — it can then greet and talk about the person using what you wrote.

Enrolled Faces

Loading…

Zones & Places

--
Destination: none
Group locations into zones, add places inside each (name + description + optional reference photos), and link saved faces to a place. “Go here” sets a destination and shows Gemini the place — the robot drives there once movement (locomotion) is enabled.

Add New Zone

Zones

Loading…

🔋 Battery

--%
--
Voltage
--
Current
--
Pack temp
--
Cycles
--
Reading battery…
Live motor surface/winding temperatures from rt/lowstate on the full R1 (29 DOF). Blue ≈ 30°C → red ≈ 120°C. Drag to orbit, scroll to zoom. Streamed over /ws/motor-temps — no second DDS subscriber.
FSM — unknown MSC — SDK —
CAM FACE PLACE MOVE GEMINI-MOVE EXPLORE · soon
Manual operator control. Robot is assumed standing in walking mode — use Ready/Start only if needed. All controls below are locked until Enable movement is on; E-STOP always works. While movement is on, arm replays/actions are disabled (and vice-versa).

Locomotion / Teleop

Discrete step pad
vx 0.00 · vy 0.00 · ω 0.00
W/S forward·back · Q/E strafe · A/D rotate · Space halt

Postures & Modes

MotionSwitcher / Low-Level

Diagnostics — joints 12–28


    

Places

Save current pose as place

Captures the robot's current map pose under this name. Drive (or teleop) the robot to the spot first, then save. Saved places appear in the list to the left.

Missions

Multi-waypoint routes / patrols defined in web_nav3. Run executes the full sequence.

MAP NAVIGATION

map: Click: connecting…
VIEW — pick GOAL to drive, or ADD to bookmark places. Cyan = robot, green dots = this map's places. Each map has its own places. Use the Places list to Go / Move / rename / delete.

Live Map — full web_nav3 dashboard

Full web_nav3 dashboard (live map, set-pose, manual goals, missions) embedded from the robot. Also available standalone at :8765. If it stays blank, check that bringup + rosbridge are alive (see the Navigation tab) and that the robot is reachable on the network.

MAP EDITOR

map: MODE — Tool: Brush load a map…
Edit a SAVED map. Pick a map → Load & Edit. 🧽 Erase removes black phantom obstacles (paints them free); ⬛ Wall paints virtual walls / keep-outs. Click-drag to paint (brush size above). Save stores the edits per-map and applies them to the robot's navigation — it stops avoiding erased points and treats painted walls as keep-outs. Yellow = your edits. The original map .db is never modified.

Skill Registry

No skills configured

Saved Records

Auto — resumes after each clip
No records saved

Terminal — unitree@robot

disconnected
Runs as the dashboard's user on the robot (typically unitree). No SSH handshake — the dashboard is already on the robot. Works on whichever Wi-Fi the robot is connected to.

Scripts Manager

Gemini persona:
Create variants (e.g. sanad_script_v2.txt) then select one and “Use for Gemini”. Default is always sanad_script.txt.

Prompt Management

Storage

loading…
“Clean all” = recordings + named records + logs. Faces, motions & zones are shown for tracking only — manage those in their own tabs.

Live Logs