feat: add gamepad control#6
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces gamepad teleoperation support, adding a new GamepadDevice, a frontend JS handler, and a LiberoGamepadStrategy to map gamepad inputs to robot actions. The review feedback highlights several critical issues, including a reversed direction bug on the Left Stick Y-axis, state collisions and WebSocket flooding when multiple gamepads are connected, potential AttributeError crashes due to missing payload keys, misleading key binding descriptions, and an anti-pattern of swallowing exceptions during event draining.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
What does this PR do?
This PR adds complete gamepad teleoperation support to the VLA project. The implementation covers frontend browser‑based gamepad input collection, WebSocket communication, a backend device abstraction layer, a strategy mapping layer, and seamless integration with the existing training/inference pipeline.
Key Features
Button Mapping
Configuration
In
rob_sac_env.yaml:In
teleop/config.py: