Skip to content

Commit 156f4cc

Browse files
authored
Merge branch 'main' into mrahme/isaacsim_5_0_joint_pos_out_of_limit_bug
2 parents f5b9ff4 + 0024950 commit 156f4cc

File tree

45 files changed

+1677
-433
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1677
-433
lines changed

.github/CODEOWNERS

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,48 +19,67 @@
1919
/apps/ @kellyguo11 @hhansen-bdai @Mayankm96
2020

2121
# Core Framework
22-
/source/isaaclab/ @Mayankm96 @kellyguo11
2322
/source/isaaclab/isaaclab/actuators @Mayankm96 @jtigue-bdai
2423
/source/isaaclab/isaaclab/app @hhansen-bdai @kellyguo11
2524
/source/isaaclab/isaaclab/assets @kellyguo11 @Mayankm96 @jtigue-bdai
26-
/source/isaaclab/isaaclab/assets/deformable_object @kellyguo11 @Mayankm96 @masoudmoghani
25+
/source/isaaclab/isaaclab/assets/deformable_object @masoudmoghani @ooctipus
2726
/source/isaaclab/isaaclab/controllers @Mayankm96
28-
/source/isaaclab/isaaclab/envs @kellyguo11 @Mayankm96
29-
/source/isaaclab/isaaclab/envs/manager_based_* @Mayankm96 @jtigue-bdai
27+
/source/isaaclab/isaaclab/envs/manager_based_* @Mayankm96 @jtigue-bdai @ooctipus
3028
/source/isaaclab/isaaclab/envs/direct_* @kellyguo11
31-
/source/isaaclab/isaaclab/managers @jtigue-bdai @Mayankm96
32-
/source/isaaclab/isaaclab/sensors @pascal-roth @Mayankm96 @jtigue-bdai
29+
/source/isaaclab/isaaclab/envs/mdp @ooctipus
30+
/source/isaaclab/isaaclab/envs/mimic_* @peterd-NV
31+
/source/isaaclab/isaaclab/envs/ui @ooctipus @ossamaAhmed
32+
/source/isaaclab/isaaclab/envs/utils @Toni-SM
33+
/source/isaaclab/isaaclab/managers @jtigue-bdai @Mayankm96 @ooctipus
34+
/source/isaaclab/isaaclab/sensors/sensor_base* @pascal-roth
3335
/source/isaaclab/isaaclab/sensors/camera @kellyguo11 @pascal-roth
34-
/source/isaaclab/isaaclab/sensors/contact_sensor @jtigue-bdai
36+
/source/isaaclab/isaaclab/sensors/contact_sensor @jtigue-bdai @ooctipus
3537
/source/isaaclab/isaaclab/sensors/imu @jtigue-bdai @pascal-roth
3638
/source/isaaclab/isaaclab/sensors/ray_caster @pascal-roth
37-
/source/isaaclab/isaaclab/sim @Mayankm96 @jtigue-bdai
38-
/source/isaaclab/isaaclab/sim/simulation_context.py @kellyguo11
39+
/source/isaaclab/isaaclab/sensors/frame_transformer @jtigue-bdai
40+
/source/isaaclab/isaaclab/sim/converters @Mayankm96 @jtigue-bdai @kellyguo11
41+
/source/isaaclab/isaaclab/sim/schemas @Mayankm96 @jtigue-bdai @kellyguo11
42+
/source/isaaclab/isaaclab/sim/spawners @Mayankm96 @jtigue-bdai @ooctipus
43+
/source/isaaclab/isaaclab/sim/simulation_* @matthewtrepte @ossamaAhmed @kellyguo11
3944
/source/isaaclab/isaaclab/terrains @Mayankm96
40-
/source/isaaclab/isaaclab/utils @Mayankm96 @jtigue-bdai
41-
/source/isaaclab/isaaclab/utils/modifiers @jtigue-bdai
45+
/source/isaaclab/isaaclab/ui @pascal-roth @jtigue-bdai
46+
/source/isaaclab/isaaclab/utils/buffers @ooctipus @jtigue-bdai
47+
/source/isaaclab/isaaclab/utils/datasets @Peter-NV
4248
/source/isaaclab/isaaclab/utils/interpolation @jtigue-bdai
49+
/source/isaaclab/isaaclab/utils/io @ooctipus
50+
/source/isaaclab/isaaclab/utils/modifiers @jtigue-bdai
4351
/source/isaaclab/isaaclab/utils/noise @jtigue-bdai @kellyguo11
4452
/source/isaaclab/isaaclab/utils/warp @pascal-roth
4553
/source/isaaclab/isaaclab/utils/assets.py @kellyguo11 @Mayankm96
4654
/source/isaaclab/isaaclab/utils/math.py @jtigue-bdai @Mayankm96
4755
/source/isaaclab/isaaclab/utils/configclass.py @Mayankm96
56+
/source/isaaclab/isaaclab/utils/sensors.py @kellyguo11 @pascal-roth
4857

4958
# RL Environment
50-
/source/isaaclab_tasks/ @Mayankm96 @kellyguo11
5159
/source/isaaclab_tasks/isaaclab_tasks/direct @kellyguo11
5260
/source/isaaclab_tasks/isaaclab_tasks/manager_based @Mayankm96
61+
/source/isaaclab_tasks/isaaclab_tasks/utils @Mayankm96
5362

5463
# Assets
5564
/source/isaaclab_assets/isaaclab_assets/ @pascal-roth
5665

66+
# Mimic
67+
/source/isaaclab_mimic/isaaclab_mimic @peterd-NV
68+
69+
# RL
70+
/source/isaaclab_rl/isaaclab_rl/rsl_rl @Mayankm96 @ClemensSchwarke
71+
/source/isaaclab_rl/isaaclab_rl/rl_games @Toni-SM
72+
/source/isaaclab_rl/isaaclab_rl/sb3 @Toni-SM
73+
/source/isaaclab_rl/isaaclab_rl/skrl @Toni-SM
74+
5775
# Standalone Scripts
58-
/scripts/demos/ @jtigue-bdai @kellyguo11 @Mayankm96
59-
/scripts/environments/ @Mayankm96
76+
/scripts/benchmarks/ @ooctipus @kellyguo11
77+
/scripts/demos/ @ooctipus
78+
/scripts/environments/ @ooctipus
79+
/scripts/imitation_learning/ @Peter-NV
80+
/scripts/reinforcement_learning/ @ooctipus @Toni-NV
6081
/scripts/tools/ @jtigue-bdai @Mayankm96
61-
/scripts/tutorials/ @jtigue-bdai @pascal-roth @kellyguo11 @Mayankm96
62-
/scripts/reinforcement_learning/ @jtigue-bdai @kellyguo11 @Mayankm96
63-
/scripts/imitation_learning/ @jtigue-bdai @kellyguo11 @Mayankm96
82+
/scripts/tutorials/ @jtigue-bdai @pascal-roth
6483

6584
# Github Actions
6685
# This list is for people wanting to be notified every time there's a change

CONTRIBUTORS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ Guidelines for modifications:
5959
* David Yang
6060
* Dhananjay Shendre
6161
* Dorsa Rohani
62+
* Emily Sturman
6263
* Fabian Jenelten
6364
* Felipe Mohr
6465
* Felix Yu

apps/isaaclab.python.headless.rendering.kit

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ app.audio.enabled = false
8888
# Enable Vulkan - avoids torch+cu12 error on windows
8989
app.vulkan = true
9090

91+
# Disables rate limit in runloop
92+
app.runLoops.main.rateLimitEnabled=false
93+
9194
# disable replicator orchestrator for better runtime perf
9295
exts."omni.replicator.core".Orchestrator.enabled = false
9396

docs/index.rst

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Isaac lab is developed with specific robot assets that are now **Batteries-inclu
3333
- **Humanoids**: Unitree H1, Unitree G1
3434
- **Quadcopter**: Crazyflie
3535

36-
The platform is also designed so that you can add your own robots! please refer to the
36+
The platform is also designed so that you can add your own robots! Please refer to the
3737
:ref:`how-to` section for details.
3838

3939
For more information about the framework, please refer to the `paper <https://arxiv.org/abs/2301.04195>`_
@@ -48,12 +48,13 @@ For more information about the framework, please refer to the `paper <https://ar
4848
License
4949
=======
5050

51-
The Isaac Lab framework is open-sourced under the BSD-3-Clause license.
52-
Please refer to :ref:`license` for more details.
51+
The Isaac Lab framework is open-sourced under the BSD-3-Clause license,
52+
with certain parts under Apache-2.0 license. Please refer to :ref:`license` for more details.
5353

5454
Acknowledgement
5555
===============
56-
Isaac Lab development initiated from the `Orbit <https://isaac-orbit.github.io/>`_ framework. We would appreciate if you would cite it in academic publications as well:
56+
Isaac Lab development initiated from the `Orbit <https://isaac-orbit.github.io/>`_ framework.
57+
We would appreciate if you would cite it in academic publications as well:
5758

5859
.. code:: bibtex
5960

docs/source/api/lab_rl/isaaclab_rl.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
isaaclab_rl
1+
.. _api-isaaclab-rl:
2+
3+
isaaclab_rl
24
===========
35

46
.. automodule:: isaaclab_rl

docs/source/how-to/add_own_library.rst

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ Isaac Lab, you will first need to make a wrapper for the library, as explained i
6868

6969
The following steps can be followed to integrate a new library with Isaac Lab:
7070

71-
1. Add your library as an extra-dependency in the ``setup.py`` for the extension ``isaaclab_tasks``.
71+
1. Add your library as an extra-dependency in the ``setup.py`` for the extension ``isaaclab_rl``.
7272
This will ensure that the library is installed when you install Isaac Lab or it will complain if the library is not
7373
installed or available.
7474
2. Install your library in the Python environment used by Isaac Lab. You can do this by following the steps mentioned
@@ -86,6 +86,15 @@ works as expected and can guide users on how to use the wrapper.
8686
* Add some tests to ensure that the wrapper works as expected and remains compatible with the library.
8787
These tests can be added to the ``source/isaaclab_rl/test`` directory.
8888
* Add some documentation for the wrapper. You can add the API documentation to the
89-
``docs/source/api/lab_tasks/isaaclab_rl.rst`` file.
89+
:ref:`API documentation<api-isaaclab-rl>` for the ``isaaclab_rl`` module.
90+
91+
92+
Configuring an RL Agent
93+
-----------------------
94+
95+
Once you have integrated a new library with Isaac Lab, you can configure the example environment to use the new library.
96+
You can check the :ref:`tutorial-configure-rl-training` for an example of how to configure the training process to use a
97+
different library.
98+
9099

91100
.. _rsl-rl: https://github.com/leggedrobotics/rsl_rl

docs/source/overview/reinforcement-learning/rl_existing_scripts.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ RSL-RL
6565
# run script for training
6666
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task Isaac-Reach-Franka-v0 --headless
6767
# run script for playing with 32 environments
68-
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/play.py --task Isaac-Reach-Franka-v0 --num_envs 32 --load_run run_folder_name --checkpoint model.pt
68+
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/play.py --task Isaac-Reach-Franka-v0 --num_envs 32 --load_run run_folder_name --checkpoint /PATH/TO/model.pt
6969
# run script for playing a pre-trained checkpoint with 32 environments
7070
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/play.py --task Isaac-Reach-Franka-v0 --num_envs 32 --use_pretrained_checkpoint
7171
# run script for recording video of a trained agent (requires installing `ffmpeg`)
@@ -81,7 +81,7 @@ RSL-RL
8181
:: run script for training
8282
isaaclab.bat -p scripts\reinforcement_learning\rsl_rl\train.py --task Isaac-Reach-Franka-v0 --headless
8383
:: run script for playing with 32 environments
84-
isaaclab.bat -p scripts\reinforcement_learning\rsl_rl\play.py --task Isaac-Reach-Franka-v0 --num_envs 32 --load_run run_folder_name --checkpoint model.pt
84+
isaaclab.bat -p scripts\reinforcement_learning\rsl_rl\play.py --task Isaac-Reach-Franka-v0 --num_envs 32 --load_run run_folder_name --checkpoint /PATH/TO/model.pt
8585
:: run script for playing a pre-trained checkpoint with 32 environments
8686
isaaclab.bat -p scripts\reinforcement_learning\rsl_rl\play.py --task Isaac-Reach-Franka-v0 --num_envs 32 --use_pretrained_checkpoint
8787
:: run script for recording video of a trained agent (requires installing `ffmpeg`)

docs/source/refs/release_notes.rst

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ Improvements
154154
------------
155155

156156
Core API
157-
^^^^^^^^
157+
~~~~~~~~
158158

159159
* **Actuator Interfaces**
160160
* Fixes implicit actuator limits configs for assets by @ooctipus
@@ -198,7 +198,7 @@ Core API
198198
* Allows slicing from list values in dicts by @LinghengMeng @kellyguo11
199199

200200
Tasks API
201-
^^^^^^^^^
201+
~~~~~~~~~
202202

203203
* Adds support for ``module:task`` and gymnasium >=1.0 by @kellyguo11
204204
* Adds RL library error hints by @Toni-SM
@@ -212,7 +212,7 @@ Tasks API
212212
* Pre-processes SB3 env image obs-space for CNN pipeline by @ooctipus
213213

214214
Infrastructure
215-
^^^^^^^^^^^^^^^
215+
~~~~~~~~~~~~~~
216216

217217
* **Dependencies**
218218
* Updates torch to 2.7.0 with CUDA 12.8 by @kellyguo11
@@ -239,7 +239,7 @@ Bug Fixes
239239
---------
240240

241241
Core API
242-
^^^^^^^^
242+
~~~~~~~~
243243

244244
* **Actuator Interfaces**
245245
* Fixes DCMotor clipping for negative power by @jtigue-bdai
@@ -267,12 +267,12 @@ Core API
267267
* Fixes ``quat_inv()`` implementation by @ozhanozen
268268

269269
Tasks API
270-
^^^^^^^^^
270+
~~~~~~~~~
271271

272272
* Fixes LSTM to ONNX export by @jtigue-bdai
273273

274274
Example Tasks
275-
^^^^^^^^^^^^^
275+
~~~~~~~~~~~~~
276276

277277
* Removes contact termination redundancy by @louislelay
278278
* Fixes memory leak in SDF by @leondavi

docs/source/setup/ecosystem.rst

Lines changed: 46 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,15 +83,46 @@ be the single robot learning framework for Isaac Sim. Previously released framew
8383
and we encourage users to follow our migration guides to transition over to Isaac Lab.
8484

8585

86+
Is Isaac Lab a simulator?
87+
-------------------------
88+
89+
Often, when people think of simulators, they think of various commonly available engines, such as
90+
`MuJoCo`_, `Bullet`_, and `Flex`_. These engines are powerful and have been used in a number of
91+
research projects. However, they are not designed to be a general purpose simulator for robotics.
92+
Rather they are primarily physics engines that are used to simulate the dynamics of rigid and
93+
deformable bodies. They are shipped with some basic rendering capabilities to visualize the
94+
simulation and provide parsing capabilities of different scene description formats.
95+
96+
Various recent works combine these physics engines with different rendering engines to provide
97+
a more complete simulation environment. They include APIs that allow reading and writing to the
98+
physics and rendering engines. In some cases, they support ROS and hardware-in-the-loop simulation
99+
for more robotic-specific applications. An example of these include `AirSim`_, `DoorGym`_, `ManiSkill`_,
100+
`ThreeDWorld`_ and lastly, `Isaac Sim`_.
101+
102+
At its core, Isaac Lab is **not** a robotics simulator, but a framework for building robot learning
103+
applications on top of Isaac Sim. An equivalent example of such a framework is `RoboSuite`_, which
104+
is built on top of `MuJoCo`_ and is specific to fixed-base robots. Other examples include
105+
`MuJoCo Playground`_ and `Isaac Gym`_ which use `MJX`_ and `PhysX`_ respectively. They
106+
include a number of pre-built tasks with separated out stand-alone implementations for individual
107+
tasks. While this is a good starting point (and often convenient), a lot of code
108+
repetition occurs across different task implementations, which can reduce code-reuse for larger
109+
projects and teams.
110+
111+
The main goal of Isaac Lab is to provide a unified framework for robot learning that includes
112+
a variety of tooling and features that are required for robot learning, while being easy to
113+
use and extend. It includes design patterns that simplify many of the common requirements for
114+
robotics research. These include simulating sensors at different frequencies, connecting to different
115+
teleoperation interfaces for data collection, switching action spaces for policy learning,
116+
using Hydra for configuration management, supporting different learning libraries and more.
117+
Isaac Lab supports designing tasks using *manager-based (modularized)* and *direct (single-script
118+
similar to Isaac Gym)* patterns, leaving it up to the user to choose the best approach for their
119+
use-case. For each of these patterns, Isaac Lab includes a number of pre-built tasks that can be
120+
used for benchmarking and research.
121+
122+
86123
Why should I use Isaac Lab?
87124
---------------------------
88125

89-
Since Isaac Sim remains closed-sourced, it is difficult for users to contribute to the simulator and build a
90-
common framework for research. On its current path, we see the community using the simulator will simply
91-
develop their own frameworks that will result in scattered efforts with a lot of duplication of work.
92-
This has happened in the past with other simulators, and we believe that it is not the best way to move
93-
forward as a community.
94-
95126
Isaac Lab provides an open-sourced platform for the community to drive progress with consolidated efforts
96127
toward designing benchmarks and robot learning systems as a joint initiative. This allows us to reuse
97128
existing components and algorithms, and to build on top of each other's work. Doing so not only saves
@@ -113,3 +144,12 @@ to Isaac Lab, please reach out to us.
113144
.. _OmniIsaacGymEnvs: https://github.com/isaac-sim/OmniIsaacGymEnvs
114145
.. _Orbit: https://isaac-orbit.github.io/
115146
.. _Isaac Automator: https://github.com/isaac-sim/IsaacAutomator
147+
.. _AirSim: https://microsoft.github.io/AirSim/
148+
.. _DoorGym: https://github.com/PSVL/DoorGym/
149+
.. _ManiSkill: https://github.com/haosulab/ManiSkill
150+
.. _ThreeDWorld: https://www.threedworld.org/
151+
.. _RoboSuite: https://robosuite.ai/
152+
.. _MuJoCo Playground: https://playground.mujoco.org/
153+
.. _MJX: https://mujoco.readthedocs.io/en/stable/mjx.html
154+
.. _Bullet: https://github.com/bulletphysics/bullet3
155+
.. _Flex: https://developer.nvidia.com/flex

docs/source/setup/walkthrough/project_setup.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ used as the default output directories for tasks run by this project.
6969

7070

7171
Project Structure
72-
------------------------------
72+
-----------------
7373

7474
There are four nested structures you need to be aware of when working in the direct workflow with an Isaac Lab template
7575
project: the **Project**, the **Extension**, the **Modules**, and the **Task**.

0 commit comments

Comments
 (0)