huggingface / lerobot

🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning
Apache License 2.0
7.67k stars 738 forks source link

Enable control of the follower arm with PS4 joystick #516

Open IliaLarchenko opened 1 week ago

IliaLarchenko commented 1 week ago

What this does

You can control the follower arm using a PlayStation 4 controller, which can be useful for people who don't have a leader arm or for anybody who wants to try an alternative way of teleoperation.

Limitations: The controller should be connected via USB (Bluetooth can require some extra fixes)

I added a new type of device - controllers. I think it makes sense in the long run to have them as a separate device type.

How it was tested

I tested it on Mac and Ubuntu and only with SO-ARM100 You can see the results here: https://www.youtube.com/shorts/Ini2DATLawU

How to checkout & try? (for the reviewer)

It requires hid to run, I didn't add it to the dependencies because it is not needed for most of the users who don't have PS4. So, if you want to try you will need to install it yourself.

I created a new config so100_ps4, adjust the port of the follower arm, connect PS4 joystick via USB and run:

python lerobot/scripts/control_robot.py teleoperate \
    --robot-path lerobot/configs/robot/so100_ps4.yaml \
    --robot-overrides '~cameras' \
    --display-cameras 0
Cadene commented 1 week ago

Interesting design! Thanks for your PR. We would like to include it after our improvements of the robot devices API.