XLeRobot Teleop#

FAQ#

  • If you are using Ubuntu, be sure to run sudo chmod 666 /dev/ttyACM0 and sudo chmod 666 /dev/ttyACM1 after plugging in the motor control board.

  • Then run python lerobot/find_port.py to check the control board ID. Then change the names correspondingly in

  • image

  • If you are having error of not detecting any motor after sudo chmod ..., try replugging the power cable.

  • If you are having error of need 9 motors, but 8 detected, you need to switch the port names in the above figure.

Keyboard Teleop#

Complete system control including dual arms, mobile base, and head motors. Run 4_xlerobot_teleop_keyboard.py for comprehensive keyboard-based teleoperation of the entire XLeRobot system with separate key mappings for left arm, right arm, base movement, and head control.

Xbox Controller Teleop#

Intuitive gamepad control for the full XLeRobot system. Run 5_xlerobot_teleop_xbox.py for Xbox controller-based teleoperation with ergonomic stick and trigger mappings for natural human-robot interaction.

Switch Joycon Teleop#

  • The Joycon teleop is built based the repo joycon-robotics (by box2ai). So first you need to git clone that repo and install it following its guide (including installing external packages and make install). Then directly replace all the codes with my modified version.

  • Based on my own experience, it’s recommended to also run sudo apt install joycond and sudo systemctl enable --now joycond to ensure better bluetooth connection.

  • Put your Joy-Con(s) in pairing mode: Hold down the small sync button on the side of the Joy-Con (between SR and SL buttons) until the lights (single dot) start flashing

  • Open Bluetooth settings: Go to Settings → Bluetooth (or use bluetoothctl from terminal).

    • Look for “Joy-Con (L)” or “Joy-Con (R)” in the device list

    • Click to pair each one, then you should see the lights (multiple dots) flashing

    • Then press: Left: L (upper trigger) + Right: R (upper trigger) together, and you should see only the first light dot on both joycons is on, meaning the connection is successful.

  • You can run the test file joycon_test_read.py first to ensure successful connection.

  • Then you can run 6_so100_joycon_ee_control.py for single SO101 arm control (only one joycon needed) as shown below, and 7_xlerobot_teleop_joycon.py for the complete XLeRobot teleop (this is what I used for most of the teleoping home tasks in the 0.3.0 demo).

VR Teleop#

You can try controlling XLeRobot with VR in simulation first. The offical code for VR teleop the real robot is coming soon.