mobility-gen

Generate synthetic sensor datasets for mobile robots via trajectory recording and replay rendering in Isaac Sim.

4.0k|530|Updated May 28, 2025
One-click install
npx skills add https://github.com/isaac-sim/IsaacSim --skill mobility-gen
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: mobility-gen
Source: https://github.com/isaac-sim/IsaacSim/tree/main/skills/mobility-gen
Command: npx skills add https://github.com/isaac-sim/IsaacSim --skill mobility-gen

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Collecting annotated RGB, depth, segmentation, and pose data for mobile robots in simulation requires coordinating physics-driven trajectory recording with sensor rendering, which is error-prone when done manually. This Skill provides a two-phase pipeline using Isaac Sim's MobilityGen extension: headless trajectory recording followed by replay-and-render to produce training-ready datasets.

Core Features & Use Cases

  • Headless Trajectory Recording: Run RandomPathFollowingScenario or RandomAccelerationScenario without a UI to record robot trajectories with occupancy-map-based A* path planning.
  • Replay & Render Pipeline: Replay recorded trajectories with cameras attached to produce RGB, depth, segmentation, normals, and pose data at configurable frame intervals.
  • Custom Robot Support: Register custom wheeled, holonomic, or policy-based legged robots by subclassing WheeledMobilityGenRobot or PolicyMobilityGenRobot.
  • Use Case: Generate thousands of labeled warehouse navigation episodes with a Nova Carter robot to train a vision-based navigation policy, recording trajectories headlessly overnight and rendering sensor data in batch.

Quick Start

Use the mobility-gen skill to record five random path-following episodes with a CarterRobot in my warehouse USD scene and replay them with RGB and depth rendering enabled.

Frequently Asked Questions about mobility-gen

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate synthetic training data for mobile robots in Isaac Sim?

Use the MobilityGen extension's two-phase pipeline: first record robot trajectories headlessly with RandomPathFollowingScenario or RandomAccelerationScenario, then replay the recordings with replay_directory.py to render RGB, depth, segmentation, and pose data.

How do I add a custom robot to Isaac Sim MobilityGen?

Subclass WheeledMobilityGenRobot for differential-drive robots or PolicyMobilityGenRobot for legged robots, set class attributes like wheel_dof_names and usd_url, and register with the ROBOTS registry. Holonomic robots additionally override build() and write_action() to use a HolonomicController.

Why does MobilityGen fail with ModuleNotFoundError for isaacsim.replicator.mobility_gen?

Isaac Sim extensions are not auto-loaded, so you must pass --enable isaacsim.replicator.mobility_gen.examples to python.sh. All extension-dependent imports must also come after SimulationApp is initialized.

Why does replay fail with KeyError for my custom robot?

The built-in replay_directory.py only knows robots registered in the examples extension. Write a wrapper script that registers your custom robot class with the ROBOTS registry before calling load_scenario().

Can MobilityGen record trajectories without a display?

Yes, use RandomPathFollowingScenario or RandomAccelerationScenario with SimulationApp launched in headless mode. The KeyboardTeleoperationScenario and GamepadTeleoperationScenario require an interactive UI and cannot run headlessly.

What is the difference between MobilityGen and static-scene synthetic data generation?

MobilityGen is robot-trajectory-driven: it records robot motion through a scene and replays it with sensors. Static-scene SDG randomizes object and camera poses without robot movement, which suits object detection datasets rather than navigation training data.