First install and source lerobot.
sudo apt-get install cmake build-essential python3-dev pkg-config libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libswresample-dev libavfilter-dev pkg-config virtualenv
git clone https://github.com/vicoslab/arm101.git
cd arm101
virtualenv .
source bin/activate
pip install lerobot 'lerobot[feetech]'Copy 99-custom.rules from the udev_rules dir to /etc/udev/rules.d or run:
sudo cp udev_rules/99-custom.rules /etc/udev/rules.d/99-custom.rulesThen update udev:
sudo udevadm control --reload-rules && sudo udevadm triggerWhen arms are plugged in they should now map to /dev/arm_XY, e.g.
-
arm F2 ->
/dev/arm_f2 -
arm L4 ->
/dev/arm_l4.
Copy the existing calibration files from calibrations to lerobot's cache directory at ~/.cache/huggingface/lerobot/calibration/robots/so101_follower
Or run:
cp calibrations/* ~/.cache/huggingface/lerobot/calibration/robots/so101_follower/Calibrations were created by plugging in both arms and running e.g.:
lerobot-calibrate --robot.type=so101_follower --robot.port=/dev/arm_f7 --robot.id=arm_f7
lerobot-calibrate --robot.type=so101_follower --robot.port=/dev/arm_l7 --robot.id=arm_l7Replace the arm IDs with your specific leader and follower arm and run:
lerobot-teleoperate \
--robot.type=so101_follower \
--robot.port=/dev/arm_f7 \
--robot.id=arm_f7 \
--teleop.type=so101_leader \
--teleop.port=/dev/arm_l7 \
--teleop.id=arm_l7Only plug in the follower robot, run python3 teleop.py, recalibrate and the robot should set itself into its default position.