Setup

Prerequisites

  • An assembled Lerobot SO101 leader + follower kits.

  • A computer running Ubuntu 22.04 with ROS2 Humble installed.

  • Conda installed for Python environment management.

  • (Optional) NVIDIA Isaac Sim 5.0 .

Python environment

Create an isolated Conda environment for Lerobot and install the forked repository that the ROS 2 bridge depends on:

conda create -n lerobot_ros2 python=3.10
conda activate lerobot_ros2
conda install -n lerobot_ros2 -c conda-forge "libstdcxx-ng>=12" "libgcc-ng>=12"
git clone https://github.com/nimiCurtis/lerobot.git
cd lerobot
pip install -e ".[all]"

The additional libstdcxx-ng and libgcc-ng packages avoid missing GLIBCXX symbols when importing ROS 2 Python modules from Conda.

USB access

Add your user to the dialout group so the bridge can communicate with the serial-connected arms:

sudo usermod -aG dialout $USER

Log out and back in for the group membership to take effect. As a temporary fallback you can change the permissions on the detected device paths:

sudo chmod 666 /dev/<leader port>
sudo chmod 666 /dev/<follower port>

Calibration

Follow the Lerobot SO101 calibration guide to generate JSON calibration files for each manipulator. Save them to a known directory and reference that path from the bridge parameter files. The bundled defaults under so101_ros2_bridge/config/calibration provide an initial reference but should be replaced with your measured values.

Verification

Use lerobot-find-port to list the connected leader and follower USB ports. Then execute the Lerobot tutorials to validate communication and calibration before continuing to the ROS 2 workspace.

Optional: Isaac Lab environment

If you are using Isaac Sim 5.0, install Isaac Lab in a separate Conda environment following the official instructions . Isaac Lab requires Python 3.11, so keeping it separate from lerobot_ros2 (Python 3.10) avoids dependency conflicts. Activate the environment when working with the simulator-specific teleoperation tools:

conda activate lerobot_isaaclab

Then from the previously cloned lerobot repo:

cd lerobot
pip install -e ".[<your extras here>]" # e.g. ".[all] or ".[feetech,smolvla,pi,async]" etc.