A GUI application for controlling LeRobot systems with calibration, recording, and inference capabilities.
- 🔐 Login authentication system
- 🎯 Robot calibration controls
- 📹 Data recording with task configuration
- 🤖 Model inference with trained model selection
- 👁️ Dataset visualization - visualize collected data using Rerun
- 📊 System status monitoring
- 🖥️ Cross-platform support (macOS, Linux, Windows)
- 💻 Automatic GUI/CLI fallback - tries GUI first, falls back to CLI if needed
Before running on Ubuntu, install the required system dependencies:
sudo apt update
sudo apt install -y \
build-essential \
pkg-config \
libssl-dev \
libfontconfig1-dev \
libfreetype6-dev \
libxrandr-dev \
libxinerama-dev \
libxcursor-dev \
libxi-dev \
libxkbcommon-dev \
libgl1-mesa-dev \
libglu1-mesa-devFor Ubuntu 20.04 or older, you may also need:
sudo apt install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-devInstall Rust if you haven't already:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env- Clone or copy this directory to your system
- Navigate to the project directory:
cd lerobot_control_center - Build and run the application:
cargo run
- Login: Enter any username and password to access the dashboard
- System Status: View connection status for robot, camera, and server
- Calibration: Start robot calibration process
- Recording: Configure and start data recording sessions
- Inference: Select trained models and run inference
- Visualize Data: Browse and visualize collected datasets using Rerun viewer
- Enter a data folder path or use the example path button
- Launches Rerun viewer with the dataset for exploration
The application will try to start in GUI mode first, providing a full graphical interface with:
- Visual login screen
- Interactive control panels
- Real-time progress indicators
- System status displays
If GUI dependencies fail (e.g., no display server, unsupported platform), the application automatically switches to CLI mode with:
- Text-based login prompt
- Menu-driven interface
- All core functionality available
- Same LeRobot command execution
The application uses the OpenGL-based glow renderer for maximum compatibility across platforms. If GUI fails, it automatically falls back to CLI mode.
If you encounter winit platform errors, the application will automatically switch to CLI mode. This ensures functionality even on:
- Headless servers
- Unusual Linux distributions
- Embedded systems
- Docker containers without display
On Linux, if you get compilation errors about missing libraries, ensure all the prerequisites listed above are installed.
On Linux, you may need to add your user to certain groups for hardware access:
sudo usermod -a -G dialout,video $USERThen log out and log back in.
The application is built with:
- egui: Immediate mode GUI framework
- eframe: Application framework for egui with
glowbackend - Rust: Systems programming language
To modify the UI, edit src/main.rs. The application uses a simple state machine with login and dashboard states.
LeRobotApp: Main application stateshow_login(): Login screen UIshow_dashboard(): Main dashboard with control panelsshow_controls(): Robot control interface
All button interactions are logged to the console for development and debugging purposes.