Robot Control: Simulation to Reality Transfer using Isaac Lab
A robotics simulation and training framework built on NVIDIA Isaac Lab for developing and training custom robot controllers with sim-to-real transfer capabilities.
This project focuses on:
- Developing custom robot configurations for simulation
- Training robust control policies in Isaac Sim
- Transferring learned behaviors from simulation to real hardware
- Building reusable components for robot control research
RC-Sim2Real/
├── isaac_lab/ # Isaac Lab fork with custom robots (separate git repo)
│ └── source/
│ └── isaaclab_assets/
│ └── robots/ # Custom robot configurations
├── env_isaaclab/ # Python virtual environment (gitignored)
├── docs/ # Project documentation
├── scripts/ # Helper scripts and utilities
└── README.md # This file
- Ubuntu 24.04+ (GLIBC 2.35+)
- NVIDIA GPU with CUDA 12.8 support
- Python 3.11+
- UV or pip for package management
-
Clone this repository:
cd /home/maxboels/projects # You're already here!
-
Activate the virtual environment:
source env_isaaclab/bin/activate -
Isaac Lab is already installed at
isaac_lab/- This is a fork of isaac-sim/IsaacLab
- Your fork: maxboels/IsaacLab
cd isaac_lab
source ../env_isaaclab/bin/activate
# Test Isaac Sim
python -c "from isaacsim import SimulationApp; app = SimulationApp({'headless': True}); app.close()"
# Run Isaac Lab example
./isaaclab.sh -p source/standalone/tutorials/00_sim/create_empty.py-
Navigate to the robots directory:
cd isaac_lab/source/isaaclab_assets/isaaclab_assets/robots/ -
Create a new Python file for your robot configuration (e.g.,
my_robot.py) -
Define the robot using Isaac Lab's articulation configuration system
-
Register the robot in
__init__.py -
Test your robot in simulation
See existing robots in isaac_lab/source/isaaclab_assets/isaaclab_assets/robots/ for reference:
franka.py- Franka Emika Panda armunitree.py- Unitree quadrupedsquadcopter.py- Aerial vehicles
Training scripts use the integrated RL frameworks:
- rl_games - High-performance PPO implementation
- rsl_rl - ETH Zurich's RL library
- stable-baselines3 - Popular RL algorithms
- skrl - PyTorch RL library
Best practices for sim-to-real transfer:
- Domain randomization in simulation
- Realistic physics parameters
- Sensor noise modeling
- Gradual real-world deployment
- Isaac Lab Setup Guide - Detailed installation steps
- Isaac Lab Official Docs
- Isaac Sim Documentation
# Activate environment
source env_isaaclab/bin/activate
# Run Isaac Lab with specific python script
cd isaac_lab
./isaaclab.sh -p path/to/script.py
# Update Isaac Lab extensions
./isaaclab.sh --install
# Format code
./isaaclab.sh --format
# Run tests
./isaaclab.sh --test- Isaac Sim: 5.0.0
- Isaac Lab: 0.47.1
- PyTorch: 2.7.0+cu128
- Python: 3.11.14
- Warp: 1.9.1
cd isaac_lab
git checkout -b feature/my-robot-name
# Make changes to source/isaaclab_assets/isaaclab_assets/robots/
# ... develop and test ...
git add .
git commit -m "Add my robot configuration"
git push origin feature/my-robot-nameIf you want to pull updates from NVIDIA's Isaac Lab:
cd isaac_lab
git fetch upstream
git merge upstream/main
git push origin main- Develop custom robot configurations
- Create training environments
- Implement baseline RL policies
- Test sim-to-real transfer
- Document deployment procedures
- The
isaac_lab/directory is managed as a separate git repository (your fork) - The
env_isaaclab/virtual environment is specific to this project setup - Keep documentation updated in the
docs/folder - Use
scripts/for helper utilities and automation
This is a personal research project. For contributing to Isaac Lab itself, see the official repository.
- Isaac Lab: See isaac_lab/LICENSE
- Custom components: [Your chosen license]
Author: maxboels
Last Updated: October 20, 2025