This Unity 6.0 project is the client-side control application for the MARP robot. Designed primarily for the Valve Steam Deck, it enables wireless teleoperation and real-time video streaming over a local WiFi network.
- Wireless Teleoperation: Control the robot's mobility, head movements, and expressive outputs via a shared local WiFi network.
- Live Video Feed: Receive and display a real-time video stream from the robot's onboard cameras/sensors.
- Input Support: Native support for Steam Deck controls and Xbox Controllers using Unity's Input System.
The following diagram illustrates the mapping between user inputs (Steam Deck/Xbox Controller) and the robot's control surfaces and expressive outputs.
The application is designed to run on the following hardware:
| Component | Role | Voltage (V) | Amperage (A) | Wattage (W) | Physical Dimensions (") | Link | Notes |
|---|---|---|---|---|---|---|---|
| Handheld Console | Operator input/output | 5ā20 (USB-C PD) | ā¤3.0 | ā¤45 | 11.7" Ć 4.6" Ć 1.9" | Valve Steam Deck | Target Platform. Wireless dual joysticks, triggers, and action buttons with real-time video stream and diagnostics. |
| Controller | Operator input | 5 | ā¤1.5 | ā¤7.5 | Gamepad form factor | Xbox Elite Controller | Optional/Dev input. Wired or wireless dual joysticks, triggers, and action buttons. |
- Engine: Unity 6.0
- Target Platform: Linux (Steam Deck)
- Input System: Unity Input System Package
- Open the project in Unity 6.0.
- Ensure the Input System package is installed.
- Open
Assets/Scenes/Main.unity(or relevant scene). - To test on Steam Deck, build for Linux architecture.

