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

~/Documents/openarm_teleop is a clone of enactic/openarm_teleop (commit eb2d493). It’s a separate C++ alternative to LeRobot teleop:

openarm_teleop (Enactic)LeRobot
LanguageC++ (openarm_can + its own dynamics via the URDF)Python
Leader hardwareDamiao leader arms (CAN)OpenArm Mini (Feetech) or Damiao leader
ModesUnilateral (leader → follower) and bilateral (force feedback to the leader); gravity compensation modeUnilateral only
Gravity / friction compensationYes (config/*.yaml: Kp/Kd + tanh friction model)No
Dataset recording / learningNoYes
Default CAN layout (script/launch_*.sh)right: leader can0, follower can2; left: leader can1, follower can3whatever you pass

It doesn’t support the OpenArm Mini. Its scripts also expect ~/openarm_ros2_ws/src/openarm_description/urdf/robot/v10.urdf.xacro, a path from the old openarm_description layout that no longer exists in the current version (assets/robot/openarm_v1.0/urdf/openarm_v10.urdf.xacro). Using it requires adapting WS_DIR/XACRO_PATH in script/launch_*.sh and building the binaries. There’s an untracked Dockerfile in that directory, which seems to be your own.

Use it if you have Damiao leaders and want force feedback or gravity compensation. Use LeRobot for data collection and learning.