Skip to content

Environments, assets, workflow for open-source mobile robotics, integrated with IsaacLab.

License

Notifications You must be signed in to change notification settings

UWRobotLearning/WheeledLab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fig1


WheeledLab

IsaacLab IsaacSim Python Linux platform

Environments, assets, workflow for open-source mobile robotics, integrated with IsaacLab.

Website | Paper

Installing IsaacLab (~20 min)

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

Setup Conda Environment

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

Install Isaac Sim

We'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

# 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 -i

Source: https://isaac-sim.github.io/IsaacLab/main/source/setup/installation/pip_installation.html

Ubuntu 20.04

Setup Conda Environment

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

Install Isaac Sim

  1. 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
  1. 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
  1. Let's make sure Isaac Sim was installed correctly. Go into the isaacsim and 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. 
  1. Run source setup_conda_env.sh in the isaacsim directory. Example:
cd isaacsim
source setup_conda_env.sh

Note! You MUST run source setup_conda_env.sh every time you start a new session.

Install Isaac Lab

# Clone Isaac Lab v2.0.2
git clone --branch v2.0.2 https://github.com/isaac-sim/IsaacLab.git

Next, 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_sim

Finally, install Isaac Lab extensions by running the following:

./isaaclab.sh -i

Warning! 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

Installing WheeledLab (~5 min)

# 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_rl

After this, we recommend Setting Up VSCode.

Training Quick Start

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_CONFIG

To start a elevation run:

python source/wheeledlab_rl/scripts/train_rl.py --headless -r RSS_ELEV_CONFIG

To start a visual run:

python source/wheeledlab_rl/scripts/train_rl.py --headless -r RSS_VISUAL_CONFIG

Though 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.

Deployment

A separate repository is maintained for existing integrations and deployments. See https://github.com/UWRobotLearning/RealLab for code.

Current Integrations

  1. HOUND [1] - https://github.com/UWRobotLearning/RealLab/tree/hound
  2. MuSHR [2] - https://github.com/UWRobotLearning/RealLab/tree/mushr
  3. F1Tenth [3] - (coming soon)

If you have an integration or request for a platform not seen above, please contact us or consider contributing!

Setting Up VSCode

It is a million times harder to develop in IsaacLab without Intellisense. Setting up the vscode workspace is STRONGLY advised.

  1. Find where your IsaacLab directory 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/
  2. Change .vscode/tasks.json line 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"
  3. Ctrl + Shift + P to bring up the VSCode command palette. type Tasks:Run Task or type until you see it show up and highlight it and press Enter.

  4. 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.

  5. If successful, you should now have .vscode/{settings.json, launch.json} in your <WheeledLab> repo and settings.json should have a populated list of paths under the "python.analysis.extraPaths" key.

  6. Make sure you at least have Microsoft's Python extension installed for intellisense to work.

If it still doesn't 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",

References

This work

@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},
}

Cited

[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.

About

Environments, assets, workflow for open-source mobile robotics, integrated with IsaacLab.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 9

Languages