A high-performance application for controlling a KUKA youBot in Webots using a Rust-based controller and a Tauri-based web interface.
- 8-Directional Mecanum Control: Support for forward, backward, strafing, and diagonal movement.
- Real-time Sensor Visualization:
- Front Camera: Compressed JPEG stream with frame-skipping optimization.
- 180° LiDAR: SICK sensor visualization with radial grid mapping.
- High Performance:
- WebSocket-based low-latency communication (Port 9001).
- Throttled telemetry updates to minimize UI lag.
- Deterministic frame skipping for camera feed.
- Webots: Robot simulation environment.
- Rust: Controller logic and WebSocket server.
- Tauri: Cross-platform desktop UI framework.
- Tailwind CSS: Modern glassmorphism UI design.
- Tokio / Tungstenite: Asynchronous WebSocket handling.
webots-controller/: Rust source for the Webots controller.src/main.rs: Core logic for sensors and motors.src/webots_api.rs: FFI bindings for Webots C API.
ui/: Frontend application.index.html: Main UI with sensor visualization and control logic.
worlds/: Webots world files.youbot_control.wbt: Configured world with KUKA youBot.
- Open Webots: Load the world file in
worlds/youbot_control.wbt. - Build Controller: Run
cargo buildinwebots-controller/. - Run UI: Launch the Tauri application or open
ui/index.html(if using a local dev server). - Control: Use WASD or the UI buttons to move the robot.
- Camera: Images are converted from BGRA to RGB, then encoded as JPEG (quality 30) on the Rust side to reduce network payload by ~90%.
- LiDAR: Points are processed and sent as a float array, rendered on a high-performance 2D canvas.
- UI: CSS
backdrop-filterwas removed to ensure smooth rendering even on lower-end hardware.