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 | |
|---|---|---|
| Language | C++ (openarm_can + its own dynamics via the URDF) | Python |
| Leader hardware | Damiao leader arms (CAN) | OpenArm Mini (Feetech) or Damiao leader |
| Modes | Unilateral (leader → follower) and bilateral (force feedback to the leader); gravity compensation mode | Unilateral only |
| Gravity / friction compensation | Yes (config/*.yaml: Kp/Kd + tanh friction model) | No |
| Dataset recording / learning | No | Yes |
Default CAN layout (script/launch_*.sh) | right: leader can0, follower can2; left: leader can1, follower can3 | whatever 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.