feat: add native Svelte UI for robot recording, teleop, and eval

Adds a generic web dashboard at ui/ that works with any robot/teleop
type in lerobot. Calls lerobot-record, lerobot-teleoperate, and
lerobot-eval as background subprocesses.

Features:
- Setup tab: robot type/port/id, dynamic camera configuration
- Record tab: dataset config, teleop device, start/stop recording
- Teleop tab: start/stop teleoperation
- Evaluate tab: policy path, env type, device config
- Live MJPEG camera preview (paused during subprocess, auto-restarts)
- Terminal-style log panel streaming subprocess stdout/stderr
- Hardware discovery: serial ports, CAN interfaces, OpenCV cameras
- Config persistence via localStorage
- Dark theme, responsive camera grid

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Pepijn
2026-03-13 22:37:19 -07:00
parent 86e7302e10
commit f97f57e950
10 changed files with 3680 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
import { defineConfig } from 'vite';
import { svelte } from '@sveltejs/vite-plugin-svelte';
export default defineConfig({
plugins: [svelte()],
server: {
port: 5173,
proxy: {
'/api': 'http://localhost:8000',
},
},
});