Skip to content

Commit

Permalink
Merge branch 'main' into feature/scale-rot-mesh-converter
Browse files Browse the repository at this point in the history
  • Loading branch information
Dhoeller19 authored Oct 28, 2024
2 parents e4853fb + 9cc298e commit 554d36c
Show file tree
Hide file tree
Showing 106 changed files with 3,257 additions and 576 deletions.
36 changes: 22 additions & 14 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,33 @@ name: Build & deploy docs

on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
check-secrets:
name: Check secrets
runs-on: ubuntu-latest
outputs:
trigger-deploy: ${{ steps.trigger-deploy.outputs.defined }}
steps:
- id: trigger-deploy
env:
REPO_NAME: ${{ secrets.REPO_NAME }}
BRANCH_REF: ${{ secrets.BRANCH_REF }}
if: "${{ github.repository == env.REPO_NAME && github.ref == env.BRANCH_REF }}"
run: echo "defined=true" >> "$GITHUB_OUTPUT"

build-docs:
name: Build Docs
runs-on: ubuntu-latest
needs: [check-secrets]

steps:
- name: Checkout code
Expand All @@ -24,8 +45,8 @@ jobs:
run: pip install -r requirements.txt

- name: Check branch docs building
if: ${{ github.event_name == 'pull_request' }}
working-directory: ./docs
if: needs.check-secrets.outputs.trigger-deploy != 'true'
run: make current-docs

- name: Generate multi-version docs
Expand All @@ -40,19 +61,6 @@ jobs:
name: docs-html
path: ./docs/_build

check-secrets:
name: Check secrets
runs-on: ubuntu-latest
outputs:
trigger-deploy: ${{ steps.trigger-deploy.outputs.defined }}
steps:
- id: trigger-deploy
env:
REPO_NAME: ${{ secrets.REPO_NAME }}
BRANCH_REF: ${{ secrets.BRANCH_REF }}
if: "${{ github.repository == env.REPO_NAME && github.ref == env.BRANCH_REF }}"
run: echo "defined=true" >> "$GITHUB_OUTPUT"

deploy-docs:
name: Deploy Docs
runs-on: ubuntu-latest
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ the framework more mature and useful for everyone. These may happen in forms of
design proposals and more.

For general information on how to contribute see
<https://isaac-sim.github.io/IsaacLab/source/refs/contributing.html>.
<https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html>.
5 changes: 5 additions & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,20 @@ Guidelines for modifications:
* Calvin Yu
* Chenyu Yang
* David Yang
* Dorsa Rohani
* Felix Yu
* Gary Lvov
* Giulio Romualdi
* HoJin Jeon
* Jan Kerner
* Jean Tampon
* Jia Lin Yuan
* Jingzhou Liu
* Johnson Sun
* Kaixi Bao
* Kourosh Darvish
* Lionel Gulich
* Louis Le Lay
* Lorenz Wellhausen
* Masoud Moghani
* Michael Gussert
Expand All @@ -70,6 +74,7 @@ Guidelines for modifications:
* Zhengyu Zhang
* Ziqi Fan
* Qian Wan
* Wei Yang

## Acknowledgements

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ installation steps, features, tutorials, and how to set up your project with Isa

We wholeheartedly welcome contributions from the community to make this framework mature and useful for everyone.
These may happen as bug reports, feature requests, or code contributions. For details, please check our
[contribution guidelines](https://isaac-sim.github.io/IsaacLab/source/refs/contributing.html).
[contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html).

## Troubleshooting

Please see the [troubleshooting](https://isaac-sim.github.io/IsaacLab/source/refs/troubleshooting.html) section for
Please see the [troubleshooting](https://isaac-sim.github.io/IsaacLab/main/source/refs/troubleshooting.html) section for
common fixes or [submit an issue](https://github.com/isaac-sim/IsaacLab/issues).

For issues related to Isaac Sim, we recommend checking its [documentation](https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/overview.html)
Expand Down
2 changes: 1 addition & 1 deletion docker/cluster/cluster_interface.sh
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ case $command in
job)
if [ $# -ge 1 ]; then
passed_profile=$1
if [ -f ".env.$passed_profile" ]; then
if [ -f "$SCRIPT_DIR/../.env.$passed_profile" ]; then
profile=$passed_profile
shift
fi
Expand Down
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@

def skip_member(app, what, name, obj, skip, options):
# List the names of the functions you want to skip here
exclusions = ["from_dict", "to_dict", "replace", "copy", "__post_init__"]
exclusions = ["from_dict", "to_dict", "replace", "copy", "validate", "__post_init__"]
if name in exclusions:
return True
return None
Expand Down
1 change: 0 additions & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@ Table of Contents
source/features/multi_gpu
source/features/tiled_rendering
source/features/reproducibility
.. source/features/motion_generators

.. toctree::
:maxdepth: 1
Expand Down
16 changes: 16 additions & 0 deletions docs/source/api/lab/omni.isaac.lab.sensors.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
RayCasterCfg
RayCasterCamera
RayCasterCameraCfg
Imu
ImuCfg

Sensor Base
-----------
Expand Down Expand Up @@ -150,3 +152,17 @@ Ray-Cast Camera
:inherited-members:
:show-inheritance:
:exclude-members: __init__, class_type

Inertia Measurement Unit
------------------------

.. autoclass:: Imu
:members:
:inherited-members:
:show-inheritance:

.. autoclass:: ImuCfg
:members:
:inherited-members:
:show-inheritance:
:exclude-members: __init__, class_type
6 changes: 6 additions & 0 deletions docs/source/api/lab/omni.isaac.lab.sim.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
SimulationContext
SimulationCfg
PhysxCfg
RenderCfg

.. rubric:: Functions

Expand Down Expand Up @@ -46,6 +47,11 @@ Simulation Configuration
:show-inheritance:
:exclude-members: __init__

.. autoclass:: RenderCfg
:members:
:show-inheritance:
:exclude-members: __init__

Simulation Context Builder
--------------------------

Expand Down
6 changes: 3 additions & 3 deletions docs/source/features/hydra.rst
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,8 @@ Elements in dictionaries are handled as a parameters in the hierarchy. For examp

.. literalinclude:: ../../../source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/classic/cartpole/cartpole_env_cfg.py
:language: python
:lines: 99-111
:emphasize-lines: 10
:lines: 90-114
:emphasize-lines: 11

the ``position_range`` parameter can be modified with ``env.events.reset_cart_position.params.position_range="[-2.0, 2.0]"``.
This example shows two noteworthy points:
Expand All @@ -112,7 +112,7 @@ For example, for the configuration of the Cartpole camera depth environment:
:language: python
:start-at: class CartpoleDepthCameraEnvCfg
:end-at: tiled_camera.width
:emphasize-lines: 16
:emphasize-lines: 10, 15

If the user were to modify the width of the camera, i.e. ``env.tiled_camera.width=128``, then the parameter
``env.observation_space=[80,128,1]`` must be updated and given as input as well.
Expand Down
38 changes: 37 additions & 1 deletion docs/source/features/tiled_rendering.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Tiled-Camera Rendering
This feature is only available from Isaac Sim version 4.2.0 onwards.

Tiled rendering in combination with image processing networks require heavy memory resources, especially
at larger resolutions. We recommend running at 512 cameras in the scene on RTX 4090 GPUs or similar.
at larger resolutions. We recommend running 512 cameras in the scene on RTX 4090 GPUs or similar.


Tiled rendering APIs provide a vectorized interface for collecting data from camera sensors.
Expand Down Expand Up @@ -129,3 +129,39 @@ Instance Segmentation
- If ``colorize_instance_segmentation=True`` in the camera config, a 4-channel RGBA image will be returned with dimension (B, H, W, 4) and type ``torch.uint8``. The info ``idToLabels`` dictionary will be the mapping from color to USD prim path of that semantic entity. The info ``idToSemantics`` dictionary will be the mapping from color to semantic labels of that semantic entity.

- If ``colorize_instance_segmentation=False``, a buffer of dimension (B, H, W, 1) of type ``torch.int32`` will be returned, containing the instance ID of each pixel. The info ``idToLabels`` dictionary will be the mapping from instance ID to USD prim path of that semantic entity. The info ``idToSemantics`` dictionary will be the mapping from instance ID to semantic labels of that semantic entity.


Current Limitations
-------------------

Due to current limitations in the renderer, we can have only **one** :class:`~sensors.TiledCamera` instance in the scene.
For use cases that require a setup with more than one camera, we can imitate the multi-camera behavior by moving the location
of the camera in between render calls in a step.

For example, in a stereo vision setup, the below snippet can be implemented:

.. code-block:: python
# render image from "first" camera
camera_data_1 = self._tiled_camera.data.output["rgb"].clone() / 255.0
# update camera transform to the "second" camera location
self._tiled_camera.set_world_poses(
positions=pos,
orientations=rot,
convention="world"
)
# step the renderer
self.sim.render()
self._tiled_camera.update(0, force_recompute=True)
# render image from "second" camera
camera_data_2 = self._tiled_camera.data.output["rgb"].clone() / 255.0
Note that this approach still limits the rendering resolution to be identical for all cameras. Currently, there is no workaround
to achieve different resolution images using :class:`~sensors.TiledCamera`. The best approach is to use the largest resolution out of all of the
desired resolutions and add additional scaling or cropping operations to the rendered output as a post-processing step.

In addition, there may be visible quality differences when comparing render outputs of different numbers of environments.
Currently, any combined resolution that has a width less than 265 pixels or height less than 265 will automatically switch
to the DLAA anti-aliasing mode, which does not perform up-sampling during anti-aliasing. For resolutions larger than 265 in both
width and height dimensions, we default to using the "performance" DLSS mode for anti-aliasing for performance benefits.
Anti-aliasing modes and other rendering parameters can be specified in the :class:`~sim.RenderCfg`.
2 changes: 2 additions & 0 deletions docs/source/overview/core-concepts/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@ This section we introduce core concepts in Isaac Lab.

task_workflows
actuators

# motion_generators
11 changes: 9 additions & 2 deletions docs/source/overview/environments.rst
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,10 @@ Classic environments that are based on IsaacGymEnvs implementation of MuJoCo-sty
| | | |
| | |cartpole-depth-direct-link|| |
+------------------+-----------------------------+-------------------------------------------------------------------------+
| |cartpole| | |cartpole-resnet-link| | Move the cart to keep the pole upwards in the classic cartpole control |
| | | based off of features extracted from perceptive inputs with pre-trained |
| | |cartpole-theia-link| | frozen vision encoders |
+------------------+-----------------------------+-------------------------------------------------------------------------+

.. |humanoid| image:: ../_static/tasks/classic/humanoid.jpg
.. |ant| image:: ../_static/tasks/classic/ant.jpg
Expand All @@ -69,8 +73,11 @@ Classic environments that are based on IsaacGymEnvs implementation of MuJoCo-sty
.. |humanoid-link| replace:: `Isaac-Humanoid-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/classic/humanoid/humanoid_env_cfg.py>`__
.. |ant-link| replace:: `Isaac-Ant-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/classic/ant/ant_env_cfg.py>`__
.. |cartpole-link| replace:: `Isaac-Cartpole-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/classic/cartpole/cartpole_env_cfg.py>`__
.. |cartpole-rgb-link| replace:: `Isaac-Cartpole-RGB-Camera-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/classic/cartpole/cartpole_camera_env_cfg.py>`__
.. |cartpole-depth-link| replace:: `Isaac-Cartpole-Depth-Camera-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/classic/cartpole/cartpole_camera_env_cfg.py>`__
.. |cartpole-rgb-link| replace:: `Isaac-Cartpole-RGB-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/classic/cartpole/cartpole_camera_env_cfg.py>`__
.. |cartpole-depth-link| replace:: `Isaac-Cartpole-Depth-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/classic/cartpole/cartpole_camera_env_cfg.py>`__
.. |cartpole-resnet-link| replace:: `Isaac-Cartpole-RGB-ResNet18-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/classic/cartpole/cartpole_camera_env_cfg.py>`__
.. |cartpole-theia-link| replace:: `Isaac-Cartpole-RGB-TheiaTiny-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/classic/cartpole/cartpole_camera_env_cfg.py>`__


.. |humanoid-direct-link| replace:: `Isaac-Humanoid-Direct-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct/humanoid/humanoid_env.py>`__
.. |ant-direct-link| replace:: `Isaac-Ant-Direct-v0 <https://github.com/isaac-sim/IsaacLab/blob/main/source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/direct/ant/ant_env.py>`__
Expand Down
4 changes: 2 additions & 2 deletions docs/source/setup/installation/binaries_installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ To check the minimum system requirements,refer to the documentation
:sync: windows

On Windows systems, by default,Isaac Sim is installed in the directory
``C:\Users\%USERPROFILE%\AppData\Local\ov\pkg\isaac_sim-*``, with ``*`` corresponding to the Isaac Sim version.
``%USERPROFILE%\AppData\Local\ov\pkg\isaac_sim-*``, with ``*`` corresponding to the Isaac Sim version.

Verifying the Isaac Sim installation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down Expand Up @@ -66,7 +66,7 @@ variables to your terminal for the remaining of the installation instructions:
.. code:: batch
:: Isaac Sim root directory
set ISAACSIM_PATH="C:\Users\%USERPROFILE%\AppData\Local\ov\pkg\isaac-sim-4.2.0"
set ISAACSIM_PATH="%USERPROFILE%\AppData\Local\ov\pkg\isaac-sim-4.2.0"
:: Isaac Sim python executable
set ISAACSIM_PYTHON_EXE="%ISAACSIM_PATH:"=%\python.bat"
Expand Down
16 changes: 3 additions & 13 deletions docs/source/tutorials/03_envs/create_manager_rl_env.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ For this tutorial, we use the cartpole environment defined in ``omni.isaac.lab_t

.. literalinclude:: ../../../../source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/classic/cartpole/cartpole_env_cfg.py
:language: python
:emphasize-lines: 63-68, 124-149, 152-162, 165-169, 187-192
:emphasize-lines: 117-141, 144-154, 172-174
:linenos:

The script for running the environment ``run_cartpole_rl_env.py`` is present in the
Expand Down Expand Up @@ -117,13 +117,8 @@ For various goal-conditioned tasks, it is useful to specify the goals or command
handled through the :class:`managers.CommandManager`. The command manager handles resampling and updating the
commands at each step. It can also be used to provide the commands as an observation to the agent.

For this simple task, we do not use any commands. This is specified by using a command term with the
:class:`envs.mdp.NullCommandCfg` configuration. However, you can see an example of command definitions in the
locomotion or manipulation tasks.

.. literalinclude:: ../../../../source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/classic/cartpole/cartpole_env_cfg.py
:language: python
:pyobject: CommandsCfg
For this simple task, we do not use any commands. Hence, we leave this attribute as its default value, which is None.
You can see an example of how to define a command manager in the other locomotion or manipulation tasks.

Defining curriculum
-------------------
Expand All @@ -134,11 +129,6 @@ we provide a :class:`managers.CurriculumManager` class that can be used to defin

In this tutorial we don't implement a curriculum for simplicity, but you can see an example of a
curriculum definition in the other locomotion or manipulation tasks.
We use a simple pass-through curriculum to define a curriculum manager that does not modify the environment.

.. literalinclude:: ../../../../source/extensions/omni.isaac.lab_tasks/omni/isaac/lab_tasks/manager_based/classic/cartpole/cartpole_env_cfg.py
:language: python
:pyobject: CurriculumCfg

Tying it all together
---------------------
Expand Down
2 changes: 1 addition & 1 deletion isaaclab.sh
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,7 @@ while [[ $# -gt 0 ]]; do
python_exe=$(extract_python_exe)
echo "[INFO] Using python from: ${python_exe}"
shift # past argument
${python_exe} $@
${python_exe} "$@"
# exit neatly
break
;;
Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ extra_standard_library = [
"toml",
"trimesh",
"tqdm",
"torchvision",
"transformers",
"einops" # Needed for transformers, doesn't always auto-install
]
# Imports from Isaac Sim and Omniverse
known_third_party = [
Expand Down
4 changes: 2 additions & 2 deletions source/extensions/omni.isaac.lab/config/extension.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
[package]

# Note: Semantic Versioning is used: https://semver.org/
version = "0.25.2"

version = "0.27.7"

# Description
title = "Isaac Lab framework for Robot Learning"
Expand All @@ -13,7 +14,6 @@ keywords = ["kit", "robotics", "learning", "ai"]

[dependencies]
"omni.isaac.core" = {}
"omni.isaac.ml_archive" = {}
"omni.replicator.core" = {}

[python.pipapi]
Expand Down
Loading

0 comments on commit 554d36c

Please sign in to comment.