| | --- |
| | title: Reachy Mini Simple Control Panel |
| | emoji: 🤖 |
| | colorFrom: blue |
| | colorTo: purple |
| | sdk: static |
| | pinned: false |
| | --- |
| | |
| | # Reachy Mini Simple Control Panel |
| |
|
| | A lightweight, static HTML/JS control panel for Reachy Mini robot using WebSockets for real-time control. |
| |
|
| | ## Features |
| |
|
| | - **Real-time WebSocket Control**: Instant response using WebSocket streaming |
| | - **Task Space Control**: Real-time head pose control (X, Y, Z, Roll, Pitch, Yaw) |
| | - **Body & Antennas**: Control body yaw and antenna positions |
| | - **Auto-reconnect**: Automatically reconnects if connection is lost |
| | - **No Dependencies**: Pure HTML/CSS/JavaScript |
| | - **100% Client-Side**: No backend needed, runs entirely in the browser |
| |
|
| | ## How to Use |
| |
|
| | ### On HuggingFace Spaces |
| |
|
| | Just open the Space - the app will automatically try to connect to your local robot at `localhost:8000`. |
| |
|
| | **Requirements:** |
| | - Reachy Mini daemon running on `localhost:8000` on your local machine |
| | - Modern web browser with WebSocket support |
| |
|
| | ### Local Testing |
| |
|
| | #### Option 1: Open Directly (Simplest) |
| |
|
| | Just open `index.html` in your web browser: |
| |
|
| | ```bash |
| | open index.html # macOS |
| | xdg-open index.html # Linux |
| | start index.html # Windows |
| | ``` |
| |
|
| | #### Option 2: Serve with Python |
| |
|
| | ```bash |
| | python server.py |
| | ``` |
| |
|
| | Then open http://localhost:7860 in your browser. |
| |
|
| | #### Option 3: Serve with any HTTP server |
| |
|
| | ```bash |
| | # Using Python 3 |
| | python3 -m http.server 7860 |
| | |
| | # Using Node.js |
| | npx http-server -p 7860 |
| | |
| | # Using PHP |
| | php -S localhost:7860 |
| | ``` |
| |
|
| | ## Requirements |
| |
|
| | - Reachy Mini daemon running on `localhost:8000` |
| | - Modern web browser with WebSocket support |
| |
|
| | ## Architecture |
| |
|
| | This app uses: |
| | - **WebSocket** (`ws://localhost:8000/api/move/ws/set_target`) for real-time pose streaming |
| | - Pure client-side JavaScript (no backend needed) |
| | - Automatic reconnection if connection is lost |
| |
|
| | **Note**: Due to browser security (Mixed Content policy), the WebSocket connection from HuggingFace Spaces (HTTPS) to localhost (HTTP) may be blocked. For best results, run the app locally. |
| |
|
| | ## Technical Details |
| |
|
| | - **Slider Updates**: Use `input` event for real-time updates |
| | - **Auto-reconnect**: WebSocket reconnects every 2 seconds if disconnected |
| | - **State Management**: Client-side state tracking prevents feedback loops |
| | - **Error Handling**: Graceful error messages and automatic recovery |
| | - **No Backend**: Fully static - runs entirely in the browser |
| |
|