Synthetic Data

This chapter is the Isaac Sim datagen pipeline: USD scenes → ROS 2 interface → task-queue orchestration → LeRobot recording / export.

This How-To category is the Isaac datagen pipeline, not Gazebo or teleop. Reference pages stay the source of APIs; this chapter only explains how the pieces connect.

Documented branches

Those branches are newer than main. Follow them, not main.

Terminology

Humanoid here means a wheeled-arm humanoid (mobile base + arms, e.g. FiveAges W2). It does not mean a bipedal or footed humanoid.

Pipeline

FaSim-Isaac + robot_usds (+ env / private USD)
        ↓  Isaac scene, ROS 2 bridge
ros2_robot_interface
        ↓  motion / state / gripper / Nav2 client
robot_action_composer  (task_queue YAML + skills)
        ↓  StageTarget sequences via ROS2RobotInterface
lerobot_ros2  (record_datasets.py → LeRobot dataset on disk)

Stage

Role in datagen

Start here

FaSim-Isaac

Isaac Sim line for synthetic scenes. Scripts pull USD and start Sim.

Isaac scenes and USD

robot_usds

Robot USD superproject used by FaSim (robots/).

same page

ros2_robot_interface

Python interface used by motion and recording.

Interface and orchestration

robot_action_composer

task_queue YAML + skill registry; motion-generation / ros2-stack.

same page

lerobot_ros2

Monorepo that hosts the Isaac example workspace and recording plugins. Stop at record / export.

LeRobot record and export

In this section

Baseline

  • ROS 2 Jazzy

  • Python 3.12 (same baseline as the lerobot_ros2 / composer READMEs on those branches)

Out of scope

This chapter does not cover:

  • Gazebo

  • ros2-viser or fa-py-libraries

  • Policy training, online inference, or dataset consumption (examples/IsaacSim/policy_training/train.py, inference.py)

Package-level APIs: ros2_robot_interface, robot_action_composer, lerobot_ros2, FaSim-Isaac, robot_usds.