Environments, assets, workflow for open-source mobile robotics, integrated with IsaacLab.
If you already have Isaac Lab installed, feel free to move directly to installing Wheeled Lab. Though, we recommend at least creating a new Conda environment for Isaac Lab + Wheeled Lab development.
Ubuntu 22.04
While this isn't technically necessary, we highly recommend using conda to keep dependencies and packages organized.
Conda can be installed here.
# Create a conda environment named WL
conda create -n WL python=3.10
conda activate WLWe'll be installing Isaac Sim v4.5.0 here because WheeledLab was developed with 4.5.0 (WheeledLab should still work with v5.1.0).
pip install --upgrade pip
pip install 'isaacsim[all,extscache]==4.5.0' --extra-index-url https://pypi.nvidia.com# Install Isaac Lab v2.0.2 (make sure you have build dependencies first, e.g. `sudo apt install cmake build-essential` on ubuntu)
git clone --branch v2.0.2 https://github.com/isaac-sim/IsaacLab.git
./isaaclab.sh -iSource: https://isaac-sim.github.io/IsaacLab/main/source/setup/installation/pip_installation.html
Ubuntu 20.04
Again, while this isn't technically necessary, we highly recommend using conda to keep dependencies and packages organized.
Conda can be installed here.
# Create a conda environment named WL
conda create -n WL python=3.10
conda activate WL- Download Isaac Sim from the Isaac Sim website. You can also do this in terminal by running:
wget https://download.isaacsim.omniverse.nvidia.com/isaac-sim-standalone-4.5.0-linux-x86_64.zip- Unzip the binaries. In this example, we'll be unzipping the contents to the folder
isaacsim.
# Generally speaking, you want to run "unzip ZIPPED_FOLDER.zip -d DESTINATION_FOLDER"
unzip isaac-sim-standalone-4.5.0-linux-x86_64.zip -d isaacsim- Let's make sure Isaac Sim was installed correctly. Go into the
isaacsimand run./isaac-sim.sh.
cd isaacsim
./isaac-sim.sh
# If you see something like "Isaac Sim Full App is loaded", you should be good to go. - Run
source setup_conda_env.shin the isaacsim directory. Example:
cd isaacsim
source setup_conda_env.shNote! You MUST run source setup_conda_env.sh every time you start a new session.
# Clone Isaac Lab v2.0.2
git clone --branch v2.0.2 https://github.com/isaac-sim/IsaacLab.gitNext, create a symbolic link between the installed Isaac Sim and the Isaac Lab directory. Do so by running the following in the Isaac Lab folder.
cd Isaaclab
ln -s ~/PATH/TO/ISAAC/SIM/DIRECTORY _isaac_simFinally, install Isaac Lab extensions by running the following:
./isaaclab.sh -iWarning! The IsaacLab install command (./isaaclab.sh -i) automatically installs the newest version of NumPy. The newest version of NumPy is NOT compatible, so you MUST install NumPy v1.x. You can do so by running pip install --force-reinstall "numpy<2".
Source: https://isaac-sim.github.io/IsaacLab/main/source/setup/installation/binaries_installation.html
# Activate the conda environment that was created via the IsaacLab setup.
conda activate <your IsaacLab env here> # 'WL' if you followed instructions above
git clone git@github.com:UWRobotLearning/WheeledLab.git
cd WheeledLab/source
pip install -e wheeledlab
pip install -e wheeledlab_tasks
pip install -e wheeledlab_assets
pip install -e wheeledlab_rlAfter this, we recommend Setting Up VSCode.
Training runs can take a couple hours to produce a transferable policy.
To start a drifting run:
python source/wheeledlab_rl/scripts/train_rl.py --headless -r RSS_DRIFT_CONFIGTo start a elevation run:
python source/wheeledlab_rl/scripts/train_rl.py --headless -r RSS_ELEV_CONFIGTo start a visual run:
python source/wheeledlab_rl/scripts/train_rl.py --headless -r RSS_VISUAL_CONFIGThough optional (and free), we strongly advise using Weights & Biases (wandb) to record and track training status. Logging to wandb is turned on by default. If you would like to disable it, add train.log.no_wandb=True to the CLI arguments.
See more details about training in the wheeledlab_rl README.md
Tip
If you encounter an error such as ModuleNotFoundError: No module named 'isaacsim', navigate to the Isaac Sim directory and run source setup_conda_env.sh. This script must be executed before starting any training run in Wheeled Lab to ensure the environment is set up correctly.
A separate repository is maintained for existing integrations and deployments. See https://github.com/UWRobotLearning/RealLab for code.
- HOUND [1] - https://github.com/UWRobotLearning/RealLab/tree/hound
- MuSHR [2] - https://github.com/UWRobotLearning/RealLab/tree/mushr
- F1Tenth [3] - (coming soon)
If you have an integration or request for a platform not seen above, please contact us or consider contributing!
It is a million times harder to develop in IsaacLab without Intellisense. Setting up the vscode workspace is STRONGLY advised.
-
Find where your
IsaacLabdirectory currently is. We'll refer to it as<IsaacLab>in this section. Move the VSCode tools to this workspace.cd <WheeledLab> cp -r <IsaacLab>/.vscode/tools ./.vscode/ cp -r <IsaacLab>/.vscode/*.json ./.vscode/
-
Change
.vscode/tasks.jsonline 11"command": "${workspaceFolder}/../IsaacLab/isaaclab.sh -p ${workspaceFolder}/.vscode/tools/setup_vscode.py"
to
"command": "<IsaacLabDir>/isaaclab.sh -p ${workspaceFolder}/.vscode/tools/setup_vscode.py"
-
Ctrl+Shift+Pto bring up the VSCode command palette. typeTasks:Run Taskor type until you see it show up and highlight it and pressEnter. -
Click on
setup_python_env. Follow the prompts until you're able to run the task. You should see a console at the bottom and the status of the task. -
If successful, you should now have
.vscode/{settings.json, launch.json}in your<WheeledLab>repo andsettings.jsonshould have a populated list of paths under the"python.analysis.extraPaths"key. -
Make sure you at least have Microsoft's Python extension installed for intellisense to work.
The setup_vscode task doesn't work for me for whatever reason. If that's true for you too, add the following lines to the end of the list under the key "python.analysis.extraPaths" in the .vscode/settings.json file:
"<IsaacLab>/source/isaaclab",
"<IsaacLab>/source/isaaclab_assets",
"<IsaacLab>/source/isaaclab_tasks",
"<IsaacLab>/source/isaaclab_rl",@misc{2502.07380,
Author = {Tyler Han and Preet Shah and Sidharth Rajagopal and Yanda Bao and Sanghun Jung and Sidharth Talia and Gabriel Guo and Bryan Xu and Bhaumik Mehta and Emma Romig and Rosario Scalise and Byron Boots},
Title = {Demonstrating WheeledLab: Modern Sim2Real for Low-cost, Open-source Wheeled Robotics},
Year = {2025},
Eprint = {arXiv:2502.07380},
}
[1] Sidharth Talia, Matt Schmittle, Alexander Lambert, Alexander Spitzer, Christoforos Mavrogiannis, and Siddhartha S. Srinivasa.Demonstrating HOUND: A Low-cost Research Platform for High-speed Off-road Underactuated Nonholonomic Driving, July 2024.URL http://arxiv.org/abs/2311.11199.arXiv:2311.11199 [cs].
[2] Siddhartha S. Srinivasa, Patrick Lancaster, Johan Michalove, Matt Schmittle, Colin Summers, Matthew Rockett, Rosario Scalise, Joshua R. Smith, Sanjiban Choudhury, Christoforos Mavrogiannis, and Fereshteh Sadeghi.MuSHR: A Low-Cost, Open-Source Robotic Racecar for Education and Research, December 2023.URL http://arxiv.org/abs/1908.08031.arXiv:1908.08031 [cs].
[3] Matthew O’Kelly, Hongrui Zheng, Dhruv Karthik, and Rahul Mangharam. F1TENTH: An Open-source Eval- uation Environment for Continuous Control and Reinforcement Learning. In Proceedings of the NeurIPS 2019 Competition and Demonstration Track, pages 77– 89. PMLR, August 2020. URL https://proceedings.mlr. press/v123/o-kelly20a.html. ISSN: 2640-3498.
