Skip to content

Add bi-gamepad teleop + quick reset support for bimanual garment manipulation task#47

Open
Reza2kn wants to merge 1 commit intolehome-official:mainfrom
Reza2kn:feat/bi-gamepad-teleop-stable
Open

Add bi-gamepad teleop + quick reset support for bimanual garment manipulation task#47
Reza2kn wants to merge 1 commit intolehome-official:mainfrom
Reza2kn:feat/bi-gamepad-teleop-stable

Conversation

@Reza2kn
Copy link

@Reza2kn Reza2kn commented Feb 28, 2026

Title
Add bi-gamepad teleop + quick reset support for bimanual garment manipulation task

Description

Summary

This PR adds gamepad teleoperation for the bimanual garment task and improves teleop usability/stability for data collection workflows.

What’s included

  • Added new bi-gamepad teleop device:
    • File: source/lehome/lehome/devices/gamepad/bi_gamepad.py
    • Export: source/lehome/lehome/devices/gamepad/__init__.py
  • Wired bi-gamepad into device selection and parser choices:
    • scripts/utils/parser.py
    • scripts/utils/dataset_record.py
    • source/lehome/lehome/devices/__init__.py
  • Action pipeline support for gamepad/vision bi-arm relative control:
    • source/lehome/lehome/devices/action_process.py
  • Quick reset callback support in teleop loop:
    • Keyboard R
    • Gamepad VIEW/BACK
    • Handled in idle/live/recording phases
    • scripts/utils/dataset_record.py
  • Keyboard robustness improvements for bi-keyboard key handling and compatibility:
    • source/lehome/lehome/devices/keyboard/bi_keyboard.py
  • Included bi-gamepad and bi-vision in gripper effort reset path:
    • source/lehome/lehome/utils/env_utils.py

Gamepad control model (current)

  • Split bimanual control (left controls left arm, right controls right arm)
  • Gripper:
    • Left: L2 close / L1 open
    • Right: R2 close / R1 open
  • Wrist flex + rotation separation with combos:
    • Right: X/B (Square/Circle on PS) for wrist flex, R1 + X/B for wrist rotation
    • Left: D-pad Left/Right for wrist flex, L1 + D-pad Left/Right for wrist rotation
  • Start control:
    • Gamepad START/MENU or keyboard B
  • Quick reset:
    • Gamepad VIEW/BACK or keyboard R

Notes

  • This PR focuses on teleop input behavior and workflow control.
  • No cloth/physics parameters were intentionally modified as part of this PR.
  • CPU mode remains recommended for garment physics stability in current challenge setup.

Validation performed

  • Local teleop runtime verification for:
    • bi-keyboard start/control/reset
    • bi-gamepad start/control/reset
    • side-correct bimanual mapping and wrist/gripper combos
  • Python syntax checks for modified modules (py_compile)

Potential follow-ups (separate PRs)

  • Optional per-controller preset profiles (PS/Xbox naming differences)
  • Optional calibration utility for axis inversion/deadzone tuning via CLI flags

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant