Skip to content

Commit 98dc71c

Browse files
committed
update
1 parent 83bd480 commit 98dc71c

File tree

25 files changed

+97
-232
lines changed

25 files changed

+97
-232
lines changed

CONTRIBUTORS.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,9 @@ Guidelines for modifications:
3131

3232
## Contributors
3333

34+
* Anton Bjørndahl Mortensen
3435
* Alice Zhou
35-
* Amr Mousa
3636
* Andrej Orsula
37-
* Anton Bjørndahl Mortensen
3837
* Antonio Serrano-Muñoz
3938
* Arjun Bhardwaj
4039
* Brayden Zhang

docs/index.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ and support for running in the cloud.
2323

2424
Additionally, Isaac Lab provides over 26 environments, and we are actively working on adding more environments
2525
to the list. These include classic control tasks, fixed-arm and dexterous manipulation tasks, legged locomotion tasks,
26-
and navigation tasks. A complete list is available in the `environments <source/overview/environments>`_ section.
26+
and navigation tasks. A complete list is in available in the `environments <source/overview/environments>`_ section.
2727

2828
The framework also includes over 16 robots. If you are looking to add a new robot, please refer to the
2929
:ref:`how-to` section. The current list of robots includes:
@@ -88,7 +88,7 @@ Table of Contents
8888
source/overview/reinforcement-learning/index
8989
source/overview/teleop_imitation
9090
source/overview/showroom
91-
source/overview/simple_agents
91+
source/overview/basic_agents
9292

9393
.. toctree::
9494
:maxdepth: 2

docs/source/deployment/run_docker_example.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Running an example with Docker
22
==============================
33

4-
From the root of the Isaac Lab repository, the ``docker`` directory contains all the Docker relevant files. These include the three files
4+
From the root of the ``Isaac Lab`` repository, the ``docker`` directory contains all the Docker relevant files. These include the three files
55
(**Dockerfile**, **docker-compose.yaml**, **.env**) which are used by Docker, and an additional script that we use to interface with them,
66
**container.py**.
77

docs/source/features/hydra.rst

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,13 @@ Any parameter of the environment can be modified by adding one or multiple eleme
1010
to the command line input, where ``a.b.param1`` reflects the parameter's hierarchy, for example ``env.actions.joint_effort.scale=10.0``.
1111
Similarly, the agent's parameters can be modified by using the ``agent`` prefix, for example ``agent.seed=2024``.
1212

13-
The way these command line arguments are set follow the exact structure of the configuration files. Since the different
14-
RL frameworks use different conventions, there might be differences in the way the parameters are set. For example,
15-
with *rl_games* the seed will be set with ``agent.params.seed``, while with *rsl_rl*, *skrl* and *sb3* it will be set with
16-
``agent.seed``.
13+
.. note::
14+
15+
The way these command line arguments are set follow the exact structure of the configuration files. Since the different
16+
RL frameworks use different conventions, there might be differences in the way the parameters are set. For example,
17+
with `rl_games` the seed will be set with ``agent.params.seed``, while with `rsl_rl`, `skrl` and `sb3` it will be set with
18+
``agent.seed``.
19+
1720

1821
As a result, training with hydra arguments can be run with the following syntax:
1922

@@ -57,6 +60,33 @@ The above command will run the training script with the task ``Isaac-Cartpole-v0
5760
of the form ``--param``, for example ``--num_envs``, ``--seed``, ``--max_iterations``. These arguments have precedence
5861
over the hydra arguments, and will overwrite the values set by the hydra arguments.
5962

63+
.. attention::
64+
65+
Particular care should be taken when modifying the parameters using command line arguments. Some of the configurations
66+
perform intermediate computations based on other parameters. These computations will not be updated when the parameters
67+
are modified.
68+
69+
For example, for the configuration of the Cartpole camera depth environment:
70+
71+
.. literalinclude:: ../../../source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct/cartpole/cartpole_camera_env.py
72+
:language: python
73+
:start-at: class CartpoleDepthCameraEnvCfg
74+
:end-at: tiled_camera.width
75+
:emphasize-lines: 16
76+
77+
If the user were to modify the width of the camera, i.e. ``env.tiled_camera.width=128``, then the parameter
78+
``env.num_observations=10240`` (1*80*128) must be updated and given as input as well.
79+
80+
Similarly, the ``__post_init__`` method is not updated with the command line inputs. In the ``LocomotionVelocityRoughEnvCfg``, for example,
81+
the post init update is as follows:
82+
83+
.. literalinclude:: ../../../source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/locomotion/velocity/velocity_env_cfg.py
84+
:language: python
85+
:start-at: class LocomotionVelocityRoughEnvCfg
86+
:emphasize-lines: 23, 29, 31
87+
88+
Here, when modifying ``env.decimation`` or ``env.sim.dt``, the user would have to give the updated ``env.sim.render_interval``,
89+
``env.scene.height_scanner.update_period``, and ``env.scene.contact_forces.update_period`` as input as well.
6090

6191
Modifying advanced parameters
6292
-----------------------------
@@ -97,33 +127,3 @@ This example shows two noteworthy points:
97127

98128
- The parameter we set has a space, so it must be enclosed in quotes.
99129
- The parameter is a list while it is a tuple in the config. This is due to the fact that Hydra does not support tuples.
100-
101-
102-
Modifying inter-dependent parameters
103-
------------------------------------
104-
105-
Particular care should be taken when modifying the parameters using command line arguments. Some of the configurations
106-
perform intermediate computations based on other parameters. These computations will not be updated when the parameters
107-
are modified.
108-
109-
For example, for the configuration of the Cartpole camera depth environment:
110-
111-
.. literalinclude:: ../../../source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct/cartpole/cartpole_camera_env.py
112-
:language: python
113-
:start-at: class CartpoleDepthCameraEnvCfg
114-
:end-at: tiled_camera.width
115-
:emphasize-lines: 16
116-
117-
If the user were to modify the width of the camera, i.e. ``env.tiled_camera.width=128``, then the parameter
118-
``env.num_observations=10240`` (1*80*128) must be updated and given as input as well.
119-
120-
Similarly, the ``__post_init__`` method is not updated with the command line inputs. In the ``LocomotionVelocityRoughEnvCfg``, for example,
121-
the post init update is as follows:
122-
123-
.. literalinclude:: ../../../source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/locomotion/velocity/velocity_env_cfg.py
124-
:language: python
125-
:start-at: class LocomotionVelocityRoughEnvCfg
126-
:emphasize-lines: 23, 29, 31
127-
128-
Here, when modifying ``env.decimation`` or ``env.sim.dt``, the user needs to give the updated ``env.sim.render_interval``,
129-
``env.scene.height_scanner.update_period``, and ``env.scene.contact_forces.update_period`` as input as well.
File renamed without changes.

docs/source/overview/simple_agents.rst renamed to docs/source/overview/basic_agents.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ The list of environments available registered with OpenAI Gym can be found by ru
3131
Dummy agents
3232
~~~~~~~~~~~~
3333

34-
These include dummy agents that output zero or random agents. They are
34+
These include basic agents that output zero or random agents. They are
3535
useful to ensure that the environments are configured correctly.
3636

3737
- Zero-action agent on the Cart-pole example

docs/source/overview/developer-guide/development.rst renamed to docs/source/overview/developer-guide/extensions.rst

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
Application Development
2-
=======================
3-
41
Extensions
52
~~~~~~~~~~
63

@@ -11,7 +8,9 @@ standalone applications. A folder is recognized as an extension if it contains
118
an ``extension.toml`` file in the ``config`` directory. More information on extensions can be found in the
129
`Omniverse documentation <https://docs.omniverse.nvidia.com/kit/docs/kit-manual/latest/guide/extensions_basic.html>`__.
1310

14-
Each extension in Isaac Lab is written as a python package and follows the following structure:
11+
Isaac Lab in itself provides extensions for robot learning. These are written into the
12+
``source/extensions`` directory. Each extension is written as a python package and
13+
follows the following structure:
1514

1615
.. code:: bash
1716
@@ -80,8 +79,8 @@ important to note that Omniverse also provides a similar
8079
However, it requires going through the build process and does not support testing of the python module in
8180
standalone applications.
8281

83-
Custom Extension Dependency Management
84-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
82+
Extension Dependency Management
83+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
8584

8685
Certain extensions may have dependencies which require installation of additional packages before the extension
8786
can be used. While Python dependencies are handled by the `setuptools <https://setuptools.readthedocs.io/en/latest/>`__
@@ -130,15 +129,12 @@ Standalone applications
130129

131130
In a typical Omniverse workflow, the simulator is launched first, after which the extensions are
132131
enabled that load the python module and run the python application. While this is a recommended
133-
workflow, it is not always possible to use this workflow.
134-
135-
For example, for robot learning, it is essential to have complete control over simulation stepping
136-
and all the other functionalities instead of asynchronously waiting for the simulator to step. In
137-
such cases, it is necessary to write a standalone application that launches the simulator using
138-
:class:`~omni.isaac.lab.app.AppLauncher` and allows complete control over the simulation through
139-
the :class:`~omni.isaac.lab.sim.SimulationContext` class.
140-
141-
The following snippet shows how to write a standalone application:
132+
workflow, it is not always possible to use this workflow. For example, for robot learning, it is
133+
essential to have complete control over simulation stepping and all the other functionalities
134+
instead of asynchronously waiting for the simulator to step. In such cases, it is necessary to
135+
write a standalone application that launches the simulator using :class:`~omni.isaac.lab.app.AppLauncher`
136+
and allows complete control over the simulation through the :class:`~omni.isaac.lab.sim.SimulationContext`
137+
class.
142138

143139
.. code:: python
144140
@@ -169,8 +165,14 @@ The following snippet shows how to write a standalone application:
169165
simulation_app.close()
170166
171167
172-
It is necessary to launch the simulator before running any other code because extensions are hot-loaded
173-
when the simulator starts. Many Omniverse modules become available only after the simulator is launched.
174-
To do this, use the :class:~omni.isaac.lab.app.AppLauncher class to start the simulator. After that,
175-
the :class:~omni.isaac.lab.sim.SimulationContext class can be used to control the simulation. For further
176-
details, we recommend exploring the Isaac Lab tutorials.
168+
The ``source/standalone`` directory contains various standalone applications designed using the extensions
169+
provided by ``Isaac Lab``. These applications are written in python and are structured as follows:
170+
171+
* **demos**: Contains various demo applications that showcase the core framework ``omni.isaac.lab``.
172+
* **environments**: Contains applications for running environments defined in ``omni.isaac.lab_tasks`` with different agents.
173+
These include a random policy, zero-action policy, teleoperation or scripted state machines.
174+
* **tools**: Contains applications for using the tools provided by the framework. These include converting assets, generating
175+
datasets, etc.
176+
* **tutorials**: Contains step-by-step tutorials for using the APIs provided by the framework.
177+
* **workflows**: Contains applications for using environments with various learning-based frameworks. These include different
178+
reinforcement learning or imitation learning libraries.

docs/source/overview/developer-guide/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ using VSCode.
1212

1313
vs_code
1414
repo_structure
15-
development
15+
extensions
1616
template
Lines changed: 3 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Repository organization
22
-----------------------
33

4-
The Isaac Lab repository is structured as follows:
4+
The ``Isaac Lab`` repository is structured as follows:
55

66
.. code-block:: bash
77
@@ -16,7 +16,6 @@ The Isaac Lab repository is structured as follows:
1616
├── pyproject.toml
1717
├── README.md
1818
├── docs
19-
├── docker
2019
├── source
2120
│   ├── extensions
2221
│   │   ├── omni.isaac.lab
@@ -28,43 +27,9 @@ The Isaac Lab repository is structured as follows:
2827
│   │   ├── tools
2928
│   │   ├── tutorials
3029
│   │   └── workflows
31-
├── tools
3230
└── VERSION
3331
34-
The ``source`` directory contains the source code for all Isaac Lab *extensions*
32+
The ``source`` directory contains the source code for all ``Isaac Lab`` *extensions*
3533
and *standalone applications*. The two are the different development workflows
3634
supported in `Isaac Sim <https://docs.omniverse.nvidia.com/isaacsim/latest/introductory_tutorials/tutorial_intro_workflows.html>`__.
37-
38-
39-
Extensions
40-
~~~~~~~~~~
41-
42-
Extensions are modularized packages that formulate the Omniverse ecosystem. In Isaac Lab. these are written
43-
into the ``source/extensions`` directory. To simplify the build process, Isaac Lab directly use the
44-
`setuptools <https://setuptools.readthedocs.io/en/latest/>`__ python package to build the python module
45-
provided by the extensions. This is done by the ``setup.py`` file in the extension directory.
46-
47-
The extensions are organized as follows:
48-
49-
* **omni.isaac.lab**: Contains the core interface extension for Isaac Lab. This provides the main modules for actuators,
50-
objects, robots and sensors.
51-
* **omni.isaac.lab_assets**: Contains the extension with pre-configured assets for Isaac Lab.
52-
* **omni.isaac.lab_tasks**: Contains the extension with pre-configured environments for Isaac Lab. It also includes
53-
wrappers for using these environments with different agents.
54-
55-
56-
Standalone
57-
~~~~~~~~~~
58-
59-
The ``source/standalone`` directory contains various standalone applications written in python.
60-
They are structured as follows:
61-
62-
* **benchmarks**: Contains scripts for benchmarking different framework components.
63-
* **demos**: Contains various demo applications that showcase the core framework :mod:`omni.isaac.lab`.
64-
* **environments**: Contains applications for running environments defined in :mod:`omni.isaac.lab_tasks` with
65-
different agents. These include a random policy, zero-action policy, teleoperation or scripted state machines.
66-
* **tools**: Contains applications for using the tools provided by the framework. These include converting assets,
67-
generating datasets, etc.
68-
* **tutorials**: Contains step-by-step tutorials for using the APIs provided by the framework.
69-
* **workflows**: Contains applications for using environments with various learning-based frameworks. These include different
70-
reinforcement learning or imitation learning libraries.
35+
These are described in the following sections.

docs/source/overview/developer-guide/vs_code.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Setting up Visual Studio Code
22
-----------------------------
33

44
The following is only applicable for Isaac Sim installed via the Omniverse Launcher.
5-
The Isaac Lab repository includes the VSCode settings to easily allow setting
5+
The ``Isaac Lab`` repository includes the VSCode settings to easily allow setting
66
up your development environment. These are included in the ``.vscode`` directory
77
and include the following files:
88

@@ -21,7 +21,7 @@ and include the following files:
2121
2222
To setup the IDE, please follow these instructions:
2323

24-
1. Open the ``IsaacLab`` directory on Visual Studio Code IDE
24+
1. Open the ``Isaac Lab`` directory on Visual Studio Code IDE
2525
2. Run VSCode `Tasks <https://code.visualstudio.com/docs/editor/tasks>`__, by
2626
pressing ``Ctrl+Shift+P``, selecting ``Tasks: Run Task`` and running the
2727
``setup_python_env`` in the drop down menu.

0 commit comments

Comments
 (0)