Unverified Commit d603b67f authored by Kelly Guo's avatar Kelly Guo Committed by GitHub

Updates code for release 1.3.0 (#1444)

# Description

Updates code for release 1.3.0

---------
Signed-off-by: 's avatarKelly Guo <kellyg@nvidia.com>
Co-authored-by: 's avatarDavid Hoeller <dhoeller@nvidia.com>
parent b3ecfe3d
...@@ -13,13 +13,28 @@ ...@@ -13,13 +13,28 @@
[![License](https://img.shields.io/badge/license-BSD--3-yellow.svg)](https://opensource.org/licenses/BSD-3-Clause) [![License](https://img.shields.io/badge/license-BSD--3-yellow.svg)](https://opensource.org/licenses/BSD-3-Clause)
**Isaac Lab** is a unified and modular framework for robot learning that aims to simplify common workflows **Isaac Lab** is a GPU-accelerated, open-source framework designed to unify and simplify robotics research workflows, such as reinforcement learning, imitation learning, and motion planning. Built on [NVIDIA Isaac Sim](https://docs.omniverse.nvidia.com/isaacsim/latest/overview.html), it combines fast and accurate physics and sensor simulation, making it an ideal choice for sim-to-real transfer in robotics.
in robotics research (such as RL, learning from demonstrations, and motion planning). It is built upon
[NVIDIA Isaac Sim](https://docs.omniverse.nvidia.com/isaacsim/latest/overview.html) to leverage the latest Isaac Lab provides developers with a range of essential features for accurate sensor simulation, such as RTX-based cameras, LIDAR, or contact sensors. The framework's GPU acceleration enables users to run complex simulations and computations faster, which is key for iterative processes like reinforcement learning and data-intensive tasks. Moreover, Isaac Lab can run locally or be distributed across the cloud, offering flexibility for large-scale deployments.
simulation capabilities for photo-realistic scenes and fast and accurate simulation.
## Key Features
Isaac Lab offers a comprehensive set of tools and environments designed to facilitate robot learning:
- **Robots**: A diverse collection of robots, from manipulators, quadrupeds, to humanoids, with 16 commonly available models.
- **Environments**: Ready-to-train implementations of more than 30 environments, which can be trained with popular reinforcement learning frameworks such as RSL RL, SKRL, RL Games, or Stable Baselines. We also support multi-agent reinforcement learning.
- **Physics**: Rigid bodies, articulated systems, deformable objects
- **Sensors**: RGB/depth/segmentation cameras, camera annotations, IMU, contact sensors, ray casters.
## Getting Started
Our [documentation page](https://isaac-sim.github.io/IsaacLab) provides everything you need to get started, including detailed tutorials and step-by-step guides. Follow these links to learn more about:
- [Installation steps](https://isaac-sim.github.io/IsaacLab/main/source/setup/installation/index.html#local-installation)
- [Reinforcement learning](https://isaac-sim.github.io/IsaacLab/main/source/overview/reinforcement-learning/rl_existing_scripts.html)
- [Tutorials](https://isaac-sim.github.io/IsaacLab/main/source/tutorials/index.html)
- [Available environments](https://isaac-sim.github.io/IsaacLab/main/source/overview/environments.html)
Please refer to our [documentation page](https://isaac-sim.github.io/IsaacLab) to learn more about the
installation steps, features, tutorials, and how to set up your project with Isaac Lab.
## Contributing to Isaac Lab ## Contributing to Isaac Lab
......
...@@ -4,12 +4,12 @@ Reinforcement Learning Wrappers ...@@ -4,12 +4,12 @@ Reinforcement Learning Wrappers
We provide wrappers to different reinforcement libraries. These wrappers convert the data We provide wrappers to different reinforcement libraries. These wrappers convert the data
from the environments into the respective libraries function argument and return types. from the environments into the respective libraries function argument and return types.
Stable-Baselines3
----------------- RL-Games
--------
- Training an agent with - Training an agent with
`Stable-Baselines3 <https://stable-baselines3.readthedocs.io/en/master/index.html>`__ `RL-Games <https://github.com/Denys88/rl_games>`__ on ``Isaac-Ant-v0``:
on ``Isaac-Cartpole-v0``:
.. tab-set:: .. tab-set::
:sync-group: os :sync-group: os
...@@ -19,30 +19,65 @@ Stable-Baselines3 ...@@ -19,30 +19,65 @@ Stable-Baselines3
.. code:: bash .. code:: bash
# install python module (for stable-baselines3) # install python module (for rl-games)
./isaaclab.sh -i sb3 ./isaaclab.sh -i rl_games
# run script for training # run script for training
# note: we set the device to cpu since SB3 doesn't optimize for GPU anyway ./isaaclab.sh -p source/standalone/workflows/rl_games/train.py --task Isaac-Ant-v0 --headless
./isaaclab.sh -p source/standalone/workflows/sb3/train.py --task Isaac-Cartpole-v0 --headless --device cpu
# run script for playing with 32 environments # run script for playing with 32 environments
./isaaclab.sh -p source/standalone/workflows/sb3/play.py --task Isaac-Cartpole-v0 --num_envs 32 --checkpoint /PATH/TO/model.zip ./isaaclab.sh -p source/standalone/workflows/rl_games/play.py --task Isaac-Ant-v0 --num_envs 32 --checkpoint /PATH/TO/model.pth
# run script for recording video of a trained agent (requires installing `ffmpeg`) # run script for recording video of a trained agent (requires installing `ffmpeg`)
./isaaclab.sh -p source/standalone/workflows/sb3/play.py --task Isaac-Cartpole-v0 --headless --video --video_length 200 ./isaaclab.sh -p source/standalone/workflows/rl_games/play.py --task Isaac-Ant-v0 --headless --video --video_length 200
.. tab-item:: :icon:`fa-brands fa-windows` Windows .. tab-item:: :icon:`fa-brands fa-windows` Windows
:sync: windows :sync: windows
.. code:: batch .. code:: batch
:: install python module (for stable-baselines3) :: install python module (for rl-games)
isaaclab.bat -i sb3 isaaclab.bat -i rl_games
:: run script for training :: run script for training
:: note: we set the device to cpu since SB3 doesn't optimize for GPU anyway isaaclab.bat -p source\standalone\workflows\rl_games\train.py --task Isaac-Ant-v0 --headless
isaaclab.bat -p source\standalone\workflows\sb3\train.py --task Isaac-Cartpole-v0 --headless --device cpu
:: run script for playing with 32 environments :: run script for playing with 32 environments
isaaclab.bat -p source\standalone\workflows\sb3\play.py --task Isaac-Cartpole-v0 --num_envs 32 --checkpoint /PATH/TO/model.zip isaaclab.bat -p source\standalone\workflows\rl_games\play.py --task Isaac-Ant-v0 --num_envs 32 --checkpoint /PATH/TO/model.pth
:: run script for recording video of a trained agent (requires installing `ffmpeg`) :: run script for recording video of a trained agent (requires installing `ffmpeg`)
isaaclab.bat -p source\standalone\workflows\sb3\play.py --task Isaac-Cartpole-v0 --headless --video --video_length 200 isaaclab.bat -p source\standalone\workflows\rl_games\play.py --task Isaac-Ant-v0 --headless --video --video_length 200
RSL-RL
------
- Training an agent with
`RSL-RL <https://github.com/leggedrobotics/rsl_rl>`__ on ``Isaac-Reach-Franka-v0``:
.. tab-set::
:sync-group: os
.. tab-item:: :icon:`fa-brands fa-linux` Linux
:sync: linux
.. code:: bash
# install python module (for rsl-rl)
./isaaclab.sh -i rsl_rl
# run script for training
./isaaclab.sh -p source/standalone/workflows/rsl_rl/train.py --task Isaac-Reach-Franka-v0 --headless
# run script for playing with 32 environments
./isaaclab.sh -p source/standalone/workflows/rsl_rl/play.py --task Isaac-Reach-Franka-v0 --num_envs 32 --load_run run_folder_name --checkpoint model.pt
# run script for recording video of a trained agent (requires installing `ffmpeg`)
./isaaclab.sh -p source/standalone/workflows/rsl_rl/play.py --task Isaac-Reach-Franka-v0 --headless --video --video_length 200
.. tab-item:: :icon:`fa-brands fa-windows` Windows
:sync: windows
.. code:: batch
:: install python module (for rsl-rl)
isaaclab.bat -i rsl_rl
:: run script for training
isaaclab.bat -p source\standalone\workflows\rsl_rl\train.py --task Isaac-Reach-Franka-v0 --headless
:: run script for playing with 32 environments
isaaclab.bat -p source\standalone\workflows\rsl_rl\play.py --task Isaac-Reach-Franka-v0 --num_envs 32 --load_run run_folder_name --checkpoint model.pt
:: run script for recording video of a trained agent (requires installing `ffmpeg`)
isaaclab.bat -p source\standalone\workflows\rsl_rl\play.py --task Isaac-Reach-Franka-v0 --headless --video --video_length 200
SKRL SKRL
---- ----
...@@ -129,48 +164,12 @@ SKRL ...@@ -129,48 +164,12 @@ SKRL
:: run script for playing with 32 environments with the MAPPO algorithm (IPPO is also supported) :: run script for playing with 32 environments with the MAPPO algorithm (IPPO is also supported)
isaaclab.bat -p source\standalone\workflows\skrl\play.py --task Isaac-Shadow-Hand-Over-Direct-v0 --num_envs 32 --algorithm MAPPO --checkpoint /PATH/TO/model.pt isaaclab.bat -p source\standalone\workflows\skrl\play.py --task Isaac-Shadow-Hand-Over-Direct-v0 --num_envs 32 --algorithm MAPPO --checkpoint /PATH/TO/model.pt
RL-Games Stable-Baselines3
-------- -----------------
- Training an agent with
`RL-Games <https://github.com/Denys88/rl_games>`__ on ``Isaac-Ant-v0``:
.. tab-set::
:sync-group: os
.. tab-item:: :icon:`fa-brands fa-linux` Linux
:sync: linux
.. code:: bash
# install python module (for rl-games)
./isaaclab.sh -i rl_games
# run script for training
./isaaclab.sh -p source/standalone/workflows/rl_games/train.py --task Isaac-Ant-v0 --headless
# run script for playing with 32 environments
./isaaclab.sh -p source/standalone/workflows/rl_games/play.py --task Isaac-Ant-v0 --num_envs 32 --checkpoint /PATH/TO/model.pth
# run script for recording video of a trained agent (requires installing `ffmpeg`)
./isaaclab.sh -p source/standalone/workflows/rl_games/play.py --task Isaac-Ant-v0 --headless --video --video_length 200
.. tab-item:: :icon:`fa-brands fa-windows` Windows
:sync: windows
.. code:: batch
:: install python module (for rl-games)
isaaclab.bat -i rl_games
:: run script for training
isaaclab.bat -p source\standalone\workflows\rl_games\train.py --task Isaac-Ant-v0 --headless
:: run script for playing with 32 environments
isaaclab.bat -p source\standalone\workflows\rl_games\play.py --task Isaac-Ant-v0 --num_envs 32 --checkpoint /PATH/TO/model.pth
:: run script for recording video of a trained agent (requires installing `ffmpeg`)
isaaclab.bat -p source\standalone\workflows\rl_games\play.py --task Isaac-Ant-v0 --headless --video --video_length 200
RSL-RL
------
- Training an agent with - Training an agent with
`RSL-RL <https://github.com/leggedrobotics/rsl_rl>`__ on ``Isaac-Reach-Franka-v0``: `Stable-Baselines3 <https://stable-baselines3.readthedocs.io/en/master/index.html>`__
on ``Isaac-Cartpole-v0``:
.. tab-set:: .. tab-set::
:sync-group: os :sync-group: os
...@@ -180,28 +179,30 @@ RSL-RL ...@@ -180,28 +179,30 @@ RSL-RL
.. code:: bash .. code:: bash
# install python module (for rsl-rl) # install python module (for stable-baselines3)
./isaaclab.sh -i rsl_rl ./isaaclab.sh -i sb3
# run script for training # run script for training
./isaaclab.sh -p source/standalone/workflows/rsl_rl/train.py --task Isaac-Reach-Franka-v0 --headless # note: we set the device to cpu since SB3 doesn't optimize for GPU anyway
./isaaclab.sh -p source/standalone/workflows/sb3/train.py --task Isaac-Cartpole-v0 --headless --device cpu
# run script for playing with 32 environments # run script for playing with 32 environments
./isaaclab.sh -p source/standalone/workflows/rsl_rl/play.py --task Isaac-Reach-Franka-v0 --num_envs 32 --load_run run_folder_name --checkpoint model.pt ./isaaclab.sh -p source/standalone/workflows/sb3/play.py --task Isaac-Cartpole-v0 --num_envs 32 --checkpoint /PATH/TO/model.zip
# run script for recording video of a trained agent (requires installing `ffmpeg`) # run script for recording video of a trained agent (requires installing `ffmpeg`)
./isaaclab.sh -p source/standalone/workflows/rsl_rl/play.py --task Isaac-Reach-Franka-v0 --headless --video --video_length 200 ./isaaclab.sh -p source/standalone/workflows/sb3/play.py --task Isaac-Cartpole-v0 --headless --video --video_length 200
.. tab-item:: :icon:`fa-brands fa-windows` Windows .. tab-item:: :icon:`fa-brands fa-windows` Windows
:sync: windows :sync: windows
.. code:: batch .. code:: batch
:: install python module (for rsl-rl) :: install python module (for stable-baselines3)
isaaclab.bat -i rsl_rl isaaclab.bat -i sb3
:: run script for training :: run script for training
isaaclab.bat -p source\standalone\workflows\rsl_rl\train.py --task Isaac-Reach-Franka-v0 --headless :: note: we set the device to cpu since SB3 doesn't optimize for GPU anyway
isaaclab.bat -p source\standalone\workflows\sb3\train.py --task Isaac-Cartpole-v0 --headless --device cpu
:: run script for playing with 32 environments :: run script for playing with 32 environments
isaaclab.bat -p source\standalone\workflows\rsl_rl\play.py --task Isaac-Reach-Franka-v0 --num_envs 32 --load_run run_folder_name --checkpoint model.pt isaaclab.bat -p source\standalone\workflows\sb3\play.py --task Isaac-Cartpole-v0 --num_envs 32 --checkpoint /PATH/TO/model.zip
:: run script for recording video of a trained agent (requires installing `ffmpeg`) :: run script for recording video of a trained agent (requires installing `ffmpeg`)
isaaclab.bat -p source\standalone\workflows\rsl_rl\play.py --task Isaac-Reach-Franka-v0 --headless --video --video_length 200 isaaclab.bat -p source\standalone\workflows\sb3\play.py --task Isaac-Cartpole-v0 --headless --video --video_length 200
All the scripts above log the training progress to `Tensorboard`_ in the ``logs`` directory in the root of All the scripts above log the training progress to `Tensorboard`_ in the ``logs`` directory in the root of
the repository. The logs directory follows the pattern ``logs/<library>/<task>/<date-time>``, where ``<library>`` the repository. The logs directory follows the pattern ``logs/<library>/<task>/<date-time>``, where ``<library>``
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
[package] [package]
title = "Isaac Lab Python Headless" title = "Isaac Lab Python Headless"
description = "An app for running Isaac Lab headlessly" description = "An app for running Isaac Lab headlessly"
version = "1.2.0" version = "1.3.0"
# That makes it browsable in UI with "experience" filter # That makes it browsable in UI with "experience" filter
keywords = ["experience", "app", "isaaclab", "python", "headless"] keywords = ["experience", "app", "isaaclab", "python", "headless"]
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
[package] [package]
title = "Isaac Lab Python Headless Camera" title = "Isaac Lab Python Headless Camera"
description = "An app for running Isaac Lab headlessly with rendering enabled" description = "An app for running Isaac Lab headlessly with rendering enabled"
version = "1.2.0" version = "1.3.0"
# That makes it browsable in UI with "experience" filter # That makes it browsable in UI with "experience" filter
keywords = ["experience", "app", "isaaclab", "python", "camera", "minimal"] keywords = ["experience", "app", "isaaclab", "python", "camera", "minimal"]
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
[package] [package]
title = "Isaac Lab Python" title = "Isaac Lab Python"
description = "An app for running Isaac Lab" description = "An app for running Isaac Lab"
version = "1.2.0" version = "1.3.0"
# That makes it browsable in UI with "experience" filter # That makes it browsable in UI with "experience" filter
keywords = ["experience", "app", "usd"] keywords = ["experience", "app", "usd"]
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
[package] [package]
title = "Isaac Lab Python Camera" title = "Isaac Lab Python Camera"
description = "An app for running Isaac Lab with rendering enabled" description = "An app for running Isaac Lab with rendering enabled"
version = "1.2.0" version = "1.3.0"
# That makes it browsable in UI with "experience" filter # That makes it browsable in UI with "experience" filter
keywords = ["experience", "app", "isaaclab", "python", "camera", "minimal"] keywords = ["experience", "app", "isaaclab", "python", "camera", "minimal"]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment