OpenArm ROS 2 Guide (v1.0 bimanual, Jazzy, main branch)

Current version: V3

Earlier versions are kept unchanged in the version archive.

A practical reference for the OpenArm ROS 2 stack as installed in the openarm container on zeus: how it is built, how to run it in simulation, how to command it, and how to bring up and command the physical OpenArm v1.0 over SocketCAN. Part II covers teleoperation, data collection and policy learning with Hugging Face LeRobot, installed on the host, and how it relates to the ROS 2 stack. Part III is a step-by-step guide to running a trained policy on the robot with LeRobot, written for someone doing it for the first time.

Versions this guide was written against (inside the container, /root/ros2_ws/src):

RepoCommitDate
enactic/openarm_ros2 (main)b9d7a672026-10-06
enactic/openarm_descriptionc1030412026-10-02
enactic/openarm_canf340d4b (v1.4.0)2026-09-16
huggingface/lerobot (main, host, conda env lerobot)b863b42 (v0.6.2)2026-10-08

ROS 2 Jazzy, ros2_control 4.x, MoveIt 2. Everything below was checked against these sources. Where behaviour could not be verified without hardware, it is marked ⚠ verify.

Contents