What you need
- Two SO-101 arms, one you hold and one that moves
- ROS 2 on each machine, and a working
colconworkspace - A VideoSDK token, and one room id both machines join
- LeRobot installed, for calibrating the arms
Install
Two pieces. The bridge node comes from pip, and the ROS packages come from git.If either prints nothing, build once more. The first
colcon build does not
always write the environment hook that makes a package findable.The driver
so101_driver talks to the servos, so you do not have to write that part. It
publishes the topics the bridge reads.
Find the ports
The two arms use identical adapters with no serial number, so/dev/ttyACM0
and /dev/ttyACM1 swap between reboots. Use the by-path name, which follows
the socket the cable is in.
Calibrate
Calibrate both arms with LeRobot. Its SO-101 guide covers the procedure.Start the drivers
One per arm, with the port and the calibration named.Without
calibration_file the driver falls back to placeholder offsets and
warns that joint angles are not physically meaningful. It still runs, but the
numbers do not correspond to real positions.Point the bridge at them
The driver publishes under node-relative names, so the bridge’s defaults will not match. Set these three:params.yaml
calibration_profile fills joint_min and joint_max from the same LeRobot
calibration, so there are no travel numbers to type. Leave joint_min and
joint_max unset when you use it: the node refuses to start with both.
Run it
Related
Quickstart
The same path for a robot that is not an SO-101.
Reference
Every parameter, topic and service the bridge takes.
SO-101 on LeRobot
The same arm with no ROS install at all.
Safety
What the bridge stops, and what your driver has to stop.