Part II: Teleoperation and data collection · §18 of 43

zeus uses the bimanual OpenArm Mini (bi_openarm_mini): two small 3D-printed 7-DoF + gripper leader arms with Feetech STS3215 servos, each on its own USB serial board (CH343, 1a86:55d3). The rest of Part II is written for that kit.

For reference, LeRobot v0.6.2 has two OpenArm teleoperator families:

OpenArm Mini (openarm_mini / bi_openarm_mini), used on zeusOpenArm Leader (openarm_leader / bi_openarm_leader)
What it isSmall leader arm, Feetech STS3215 servosA full-size OpenArm with Damiao motors, used passively (torque off)
ConnectionUSB serial → /dev/serial/by-id/…CAN-FD (two more CAN channels)
Mapping to followerIn code: per-side sign flips (SIDE_MOTORS_TO_FLIP), joint 6 ↔ joint 7 swapped (JOINT_REMAP), gripper 0–100 % → 0 … −65°1:1
Force feedbackNoneNone in LeRobot

How the Mini maps to the follower matters when debugging (§27). These are the joints LeRobot negates, per side:

Mini servoside=leftside=rightDrives follower joint
joint_1, 3, 4, 5flippedflippedsame
joint_2—flippedjoint_2
joint_6flipped—joint_7
joint_7flippedflippedjoint_6

So a Mini read with the wrong side (or plugged into the other arm’s port) inverts follower joints 2 and 7. That’s exactly what happened on zeus before the ports were sorted out.

Enactic’s C++ openarm_teleop (force feedback, needs Damiao leaders) is covered in §28.