SO-ARM100/101 Robotic Arm Calibration and Remote Control
Robotic Arm Calibration and Remote Control
Video
Calibrate Robotic Arm
Open the terminal and enter the LeRobot environment and directory
conda activate lerobot cd ~/lerobot
Check if the computer recognizes the port number
Connect the power supply to the driver board and use a USB cable to connect the driver board to the Jetson Orin Nano.
ls /dev/ttyACM*
Grant port permissions
sudo chmod 666 /dev/ttyACM*
Calibrate Follower Arm
Calibrate the follower arm by running the following example commands:
lerobot-calibrate \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_awesome_follower_arm
Note: You need to fill in your actual port number for robot.port; the name of robot.id can be modified, but the name used must remain consistent during subsequent training.
Move the robotic arm to a position where all joints are at the midpoint of their range of motion. Then, press the Enter key to confirm the center position, manually move each joint within its full range of motion, allowing the system to record different MIN and MAX values.
Calibrate Leader Arm
The steps for calibrating the leader arm are the same as those mentioned above. Please run the following example commands:
lerobot-calibrate \
--teleop.type=so101_leader \
--teleop.port=/dev/ttyACM1 \
--teleop.id=my_awesome_leader_arm
Other Notes
1. If you need to recalibrate the robotic arm, completely delete the files in either ~/.cache/huggingface/lerobot/calibration/robots or ~/.cache/huggingface/lerobot/calibration/teleoperators and recalibrate the robotic arm again, otherwise error messages will appear. If the .cache folder is not found in the Home folder, it may be hidden. You can press the keyboard shortcut Ctrl+H in the Home folder to display hidden files.
2. The codes for SO100 and SO101 are compatible. SO100 users can directly operate using the parameters and code from SO101.
Remote Control Operation
Before performing remote control operation, the two robotic arms should be fixed with clamps to prevent the robotic arms from tipping over during remote control operation. Then, connect the driver boards of the leader arm and the follower arm to the Jetson Orin Nano using two separate USB cables, and connect each driver board to its corresponding power supply.
Open the terminal and enter the LeRobot environment and directory
conda activate lerobot cd ~/lerobot
Check if the computer recognizes the port number
ls /dev/ttyACM*
Grant permissions to the serial port
sudo chmod 666 /dev/ttyACM*
Run the following command for remote control operation
The first inserted USB port will be mapped to /dev/ttyACM0, and the second inserted USB port will be mapped to /dev/ttyACM1. Please note the mapping interface for leader and follower before running the code.
lerobot-teleoperate \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM1 \
--robot.id=my_awesome_follower_arm \
--teleop.type=so101_leader \
--teleop.port=/dev/ttyACM0 \
--teleop.id=my_awesome_leader_arm
Press the Ctrl+C shortcut key on the keyboard to exit the remote control operation.