Unverified Commit e0a8df23 authored by Mayank Mittal's avatar Mayank Mittal Committed by GitHub

Fixes errors while building the docs (#3370)

# Description

Another time of manually fixing errors seen in the docs. We should have
CI strictly enforce doc build warnings so they get removed before MR is
merged.

## Type of change

- This change requires a documentation update

## Checklist

- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] I have updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there
parent cc7685b1
...@@ -87,6 +87,15 @@ source_suffix = { ...@@ -87,6 +87,15 @@ source_suffix = {
# TODO: Enable this by default once we have fixed all the warnings # TODO: Enable this by default once we have fixed all the warnings
# nitpicky = True # nitpicky = True
nitpick_ignore = [
("py:obj", "slice(None)"),
]
nitpick_ignore_regex = [
(r"py:.*", r"pxr.*"), # we don't have intersphinx mapping for pxr
(r"py:.*", r"trimesh.*"), # we don't have intersphinx mapping for trimesh
]
# put type hints inside the signature instead of the description (easier to maintain) # put type hints inside the signature instead of the description (easier to maintain)
autodoc_typehints = "signature" autodoc_typehints = "signature"
# autodoc_typehints_format = "fully-qualified" # autodoc_typehints_format = "fully-qualified"
...@@ -112,8 +121,9 @@ autodoc_default_options = { ...@@ -112,8 +121,9 @@ autodoc_default_options = {
intersphinx_mapping = { intersphinx_mapping = {
"python": ("https://docs.python.org/3", None), "python": ("https://docs.python.org/3", None),
"numpy": ("https://numpy.org/doc/stable/", None), "numpy": ("https://numpy.org/doc/stable/", None),
"trimesh": ("https://trimesh.org/", None),
"torch": ("https://pytorch.org/docs/stable/", None), "torch": ("https://pytorch.org/docs/stable/", None),
"isaac": ("https://docs.omniverse.nvidia.com/py/isaacsim", None), "isaacsim": ("https://docs.isaacsim.omniverse.nvidia.com/5.0.0/py/", None),
"gymnasium": ("https://gymnasium.farama.org/", None), "gymnasium": ("https://gymnasium.farama.org/", None),
"warp": ("https://nvidia.github.io/warp/", None), "warp": ("https://nvidia.github.io/warp/", None),
"dev-guide": ("https://docs.omniverse.nvidia.com/dev-guide/latest", None), "dev-guide": ("https://docs.omniverse.nvidia.com/dev-guide/latest", None),
...@@ -148,13 +158,6 @@ autodoc_mock_imports = [ ...@@ -148,13 +158,6 @@ autodoc_mock_imports = [
"pxr.PhysxSchema", "pxr.PhysxSchema",
"pxr.PhysicsSchemaTools", "pxr.PhysicsSchemaTools",
"omni.replicator", "omni.replicator",
"omni.isaac.core",
"omni.isaac.kit",
"omni.isaac.cloner",
"omni.isaac.urdf",
"omni.isaac.version",
"omni.isaac.motion_generation",
"omni.isaac.ui",
"isaacsim", "isaacsim",
"isaacsim.core.api", "isaacsim.core.api",
"isaacsim.core.cloner", "isaacsim.core.cloner",
......
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
DifferentialIKControllerCfg DifferentialIKControllerCfg
OperationalSpaceController OperationalSpaceController
OperationalSpaceControllerCfg OperationalSpaceControllerCfg
PinkIKController pink_ik.PinkIKController
PinkIKControllerCfg pink_ik.PinkIKControllerCfg
pink_ik.NullSpacePostureTask pink_ik.NullSpacePostureTask
Differential Inverse Kinematics Differential Inverse Kinematics
...@@ -43,12 +43,24 @@ Operational Space controllers ...@@ -43,12 +43,24 @@ Operational Space controllers
:show-inheritance: :show-inheritance:
:exclude-members: __init__, class_type :exclude-members: __init__, class_type
Differential Inverse Kinematics Controllers (Based on Pink)
-----------------------------------------------------------
For detailed documentation of Pink IK controllers and tasks, see: Pink IK Controller
------------------
.. toctree:: .. automodule:: isaaclab.controllers.pink_ik
:maxdepth: 1
isaaclab.controllers.pink_ik .. autoclass:: PinkIKController
:members:
:inherited-members:
:show-inheritance:
.. autoclass:: PinkIKControllerCfg
:members:
:inherited-members:
:show-inheritance:
:exclude-members: __init__, class_type
Available Pink IK Tasks
^^^^^^^^^^^^^^^^^^^^^^^
.. autoclass:: NullSpacePostureTask
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
MeshConverterCfg MeshConverterCfg
UrdfConverter UrdfConverter
UrdfConverterCfg UrdfConverterCfg
MjcfConverter
MjcfConverterCfg
Asset Converter Base Asset Converter Base
-------------------- --------------------
...@@ -52,3 +54,17 @@ URDF Converter ...@@ -52,3 +54,17 @@ URDF Converter
:inherited-members: :inherited-members:
:show-inheritance: :show-inheritance:
:exclude-members: __init__ :exclude-members: __init__
MJCF Converter
--------------
.. autoclass:: MjcfConverter
:members:
:inherited-members:
:show-inheritance:
.. autoclass:: MjcfConverterCfg
:members:
:inherited-members:
:show-inheritance:
:exclude-members: __init__
...@@ -4,5 +4,3 @@ ...@@ -4,5 +4,3 @@
.. automodule:: isaaclab_tasks.utils .. automodule:: isaaclab_tasks.utils
:members: :members:
:imported-members: :imported-members:
.. rubric:: Submodules
...@@ -21,7 +21,7 @@ What These Features Do ...@@ -21,7 +21,7 @@ What These Features Do
Usage Examples Usage Examples
-------------- --------------
Fabric cloning can be toggled by setting the ``clone_in_fabric`` flag in the ``InteractiveSceneCfg`` configuration. Fabric cloning can be toggled by setting the :attr:`isaaclab.scene.InteractiveSceneCfg.clone_in_fabric` flag.
**Using Fabric Cloning with a RL environment** **Using Fabric Cloning with a RL environment**
...@@ -34,7 +34,7 @@ Fabric cloning can be toggled by setting the ``clone_in_fabric`` flag in the ``I ...@@ -34,7 +34,7 @@ Fabric cloning can be toggled by setting the ``clone_in_fabric`` flag in the ``I
env = ManagerBasedRLEnv(cfg=env_cfg) env = ManagerBasedRLEnv(cfg=env_cfg)
Stage in memory can be toggled by setting the ``create_stage_in_memory`` in the ``SimulationCfg`` configuration. Stage in memory can be toggled by setting the :attr:`isaaclab.sim.SimulationCfg.create_stage_in_memory` flag.
**Using Stage in Memory with a RL environment** **Using Stage in Memory with a RL environment**
...@@ -48,8 +48,9 @@ Stage in memory can be toggled by setting the ``create_stage_in_memory`` in the ...@@ -48,8 +48,9 @@ Stage in memory can be toggled by setting the ``create_stage_in_memory`` in the
env = ManagerBasedRLEnv(cfg=cfg) env = ManagerBasedRLEnv(cfg=cfg)
Note, if stage in memory is enabled without using an existing RL environment class, a few more steps are need. Note, if stage in memory is enabled without using an existing RL environment class, a few more steps are need.
The stage creation steps should be wrapped in a ``with`` statement to set the stage context. The stage creation steps should be wrapped in a :py:keyword:`with` statement to set the stage context.
If the stage needs to be attached, the ``attach_stage_to_usd_context`` function should be called after the stage is created. If the stage needs to be attached, the :meth:`~isaaclab.sim.utils.attach_stage_to_usd_context` function should
be called after the stage is created.
**Using Stage in Memory with a manual scene setup** **Using Stage in Memory with a manual scene setup**
......
...@@ -140,7 +140,7 @@ Pre-recorded demonstrations ...@@ -140,7 +140,7 @@ Pre-recorded demonstrations
^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
We provide a pre-recorded ``dataset.hdf5`` containing 10 human demonstrations for ``Isaac-Stack-Cube-Franka-IK-Rel-v0`` We provide a pre-recorded ``dataset.hdf5`` containing 10 human demonstrations for ``Isaac-Stack-Cube-Franka-IK-Rel-v0``
`here <https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.0/Isaac/IsaacLab/Mimic/franka_stack_datasets/dataset.hdf5>`_. `here <https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.0/Isaac/IsaacLab/Mimic/franka_stack_datasets/dataset.hdf5>`__.
This dataset may be downloaded and used in the remaining tutorial steps if you do not wish to collect your own demonstrations. This dataset may be downloaded and used in the remaining tutorial steps if you do not wish to collect your own demonstrations.
.. note:: .. note::
...@@ -451,7 +451,7 @@ Generate the dataset ...@@ -451,7 +451,7 @@ Generate the dataset
^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^
If you skipped the prior collection and annotation step, download the pre-recorded annotated dataset ``dataset_annotated_gr1.hdf5`` from If you skipped the prior collection and annotation step, download the pre-recorded annotated dataset ``dataset_annotated_gr1.hdf5`` from
`here <https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.0/Isaac/IsaacLab/Mimic/pick_place_datasets/dataset_annotated_gr1.hdf5>`_. `here <https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.0/Isaac/IsaacLab/Mimic/pick_place_datasets/dataset_annotated_gr1.hdf5>`__.
Place the file under ``IsaacLab/datasets`` and run the following command to generate a new dataset with 1000 demonstrations. Place the file under ``IsaacLab/datasets`` and run the following command to generate a new dataset with 1000 demonstrations.
.. code:: bash .. code:: bash
...@@ -514,7 +514,7 @@ Demo 2: Visuomotor Policy for a Humanoid Robot ...@@ -514,7 +514,7 @@ Demo 2: Visuomotor Policy for a Humanoid Robot
Download the Dataset Download the Dataset
^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^
Download the pre-generated dataset from `here <https://download.isaacsim.omniverse.nvidia.com/isaaclab/dataset/generated_dataset_gr1_nut_pouring.hdf5>`_ and place it under ``IsaacLab/datasets/generated_dataset_gr1_nut_pouring.hdf5``. Download the pre-generated dataset from `here <https://download.isaacsim.omniverse.nvidia.com/isaaclab/dataset/generated_dataset_gr1_nut_pouring.hdf5>`__ and place it under ``IsaacLab/datasets/generated_dataset_gr1_nut_pouring.hdf5``.
The dataset contains 1000 demonstrations of a humanoid robot performing a pouring/placing task that was The dataset contains 1000 demonstrations of a humanoid robot performing a pouring/placing task that was
generated using Isaac Lab Mimic for the ``Isaac-NutPour-GR1T2-Pink-IK-Abs-Mimic-v0`` task. generated using Isaac Lab Mimic for the ``Isaac-NutPour-GR1T2-Pink-IK-Abs-Mimic-v0`` task.
......
...@@ -219,9 +219,9 @@ Attaching IO Descriptors to Custom Action Terms ...@@ -219,9 +219,9 @@ Attaching IO Descriptors to Custom Action Terms
In this section, we will cover how to attach IO descriptors to custom action terms. Action terms are classes that In this section, we will cover how to attach IO descriptors to custom action terms. Action terms are classes that
inherit from the :class:`managers.ActionTerm` class. To add an IO descriptor to an action term, we need to expand inherit from the :class:`managers.ActionTerm` class. To add an IO descriptor to an action term, we need to expand
upon its :meth:`ActionTerm.IO_descriptor` property. upon its :meth:`~managers.ActionTerm.IO_descriptor` property.
By default, the :meth:`ActionTerm.IO_descriptor` property returns the base descriptor and fills the following fields: By default, the :meth:`~managers.ActionTerm.IO_descriptor` property returns the base descriptor and fills the following fields:
- ``name``: The name of the action term. - ``name``: The name of the action term.
- ``full_path``: The full path of the action term. - ``full_path``: The full path of the action term.
- ``description``: The description of the action term. - ``description``: The description of the action term.
...@@ -238,7 +238,7 @@ By default, the :meth:`ActionTerm.IO_descriptor` property returns the base descr ...@@ -238,7 +238,7 @@ By default, the :meth:`ActionTerm.IO_descriptor` property returns the base descr
self._IO_descriptor.export = self.export_IO_descriptor self._IO_descriptor.export = self.export_IO_descriptor
return self._IO_descriptor return self._IO_descriptor
To add more information to the descriptor, we need to override the :meth:`ActionTerm.IO_descriptor` property. To add more information to the descriptor, we need to override the :meth:`~managers.ActionTerm.IO_descriptor` property.
Let's take a look at an example on how to add the joint names, scale, offset, and clip to the descriptor. Let's take a look at an example on how to add the joint names, scale, offset, and clip to the descriptor.
.. code-block:: python .. code-block:: python
......
...@@ -58,7 +58,7 @@ are compositional in this way as a solution for cloning arbitrarily complex envi ...@@ -58,7 +58,7 @@ are compositional in this way as a solution for cloning arbitrarily complex envi
The **sim** is an instance of :class:`SimulationCfg`, and this is the config that controls the nature of the simulated reality we are building. This field is a member The **sim** is an instance of :class:`SimulationCfg`, and this is the config that controls the nature of the simulated reality we are building. This field is a member
of the base class, ``DirecRLEnvCfg``, but has a default sim configuration, so it's *technically* optional. The ``SimulationCfg`` dictates of the base class, ``DirecRLEnvCfg``, but has a default sim configuration, so it's *technically* optional. The ``SimulationCfg`` dictates
how finely to step through time (dt), the direction of gravity, and even how physics should be simulated. In this case we only specify the time step and the render interval, with the how finely to step through time (dt), the direction of gravity, and even how physics should be simulated. In this case we only specify the time step and the render interval, with the
former indicating that each step through time should simulate :math:`1/120`th of a second, and the latter being how many steps we should take before we render a frame (a value of 2 means former indicating that each step through time should simulate :math:`1/120` th of a second, and the latter being how many steps we should take before we render a frame (a value of 2 means
render every other frame). render every other frame).
.. currentmodule:: isaaclab.scene .. currentmodule:: isaaclab.scene
......
...@@ -79,7 +79,7 @@ joint positions, current end-effector pose, and the Jacobian matrix. ...@@ -79,7 +79,7 @@ joint positions, current end-effector pose, and the Jacobian matrix.
While the attribute :attr:`assets.ArticulationData.joint_pos` provides the joint positions, While the attribute :attr:`assets.ArticulationData.joint_pos` provides the joint positions,
we only want the joint positions of the robot's arm, and not the gripper. Similarly, while we only want the joint positions of the robot's arm, and not the gripper. Similarly, while
the attribute :attr:`assets.Articulationdata.body_state_w` provides the state of all the the attribute :attr:`assets.ArticulationData.body_state_w` provides the state of all the
robot's bodies, we only want the state of the robot's end-effector. Thus, we need to robot's bodies, we only want the state of the robot's end-effector. Thus, we need to
index into these arrays to obtain the desired quantities. index into these arrays to obtain the desired quantities.
......
...@@ -12,7 +12,7 @@ Added ...@@ -12,7 +12,7 @@ Added
Changed Changed
^^^^^^^ ^^^^^^^
* Added AssetBase inheritance for :class:`~isaaclab.assets.surface_gripper.SurfaceGripper` * Added AssetBase inheritance for :class:`~isaaclab.assets.surface_gripper.SurfaceGripper`.
0.45.11 (2025-09-04) 0.45.11 (2025-09-04)
...@@ -36,7 +36,7 @@ Added ...@@ -36,7 +36,7 @@ Added
0.45.10 (2025-09-02) 0.45.10 (2025-09-02)
~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~
Fixed Fixed
^^^^^ ^^^^^
...@@ -92,7 +92,7 @@ Added ...@@ -92,7 +92,7 @@ Added
0.45.6 (2025-08-22) 0.45.6 (2025-08-22)
~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
Fixed Fixed
^^^^^ ^^^^^
...@@ -101,7 +101,7 @@ Fixed ...@@ -101,7 +101,7 @@ Fixed
0.45.5 (2025-08-21) 0.45.5 (2025-08-21)
~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
Fixed Fixed
^^^^^ ^^^^^
...@@ -113,7 +113,7 @@ Fixed ...@@ -113,7 +113,7 @@ Fixed
0.45.4 (2025-08-21) 0.45.4 (2025-08-21)
~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
Added Added
^^^^^ ^^^^^
...@@ -198,9 +198,9 @@ Fixed ...@@ -198,9 +198,9 @@ Fixed
Fixed Fixed
^^^^^ ^^^^^
* Fixed the old termination manager in :class:`~isaaclab.managers.TerminationManager` term_done logging that logs the * Fixed the old termination manager in :class:`~isaaclab.managers.TerminationManager` term_done logging that
instantaneous term done count at reset. This let to inaccurate aggregation of termination count, obscuring the what really logs the instantaneous term done count at reset. This let to inaccurate aggregation of termination count,
happeningduring the traing. Instead we log the episodic term done. obscuring the what really happening during the training. Instead we log the episodic term done.
0.44.9 (2025-07-30) 0.44.9 (2025-07-30)
......
...@@ -505,6 +505,7 @@ class RigidObjectCollection(AssetBase): ...@@ -505,6 +505,7 @@ class RigidObjectCollection(AssetBase):
all the external wrenches will be applied in the frame specified by the last call. all the external wrenches will be applied in the frame specified by the last call.
.. code-block:: python .. code-block:: python
# example of setting external wrench in the global frame # example of setting external wrench in the global frame
asset.set_external_force_and_torque(forces=torch.ones(1, 1, 3), env_ids=[0], is_global=True) asset.set_external_force_and_torque(forces=torch.ones(1, 1, 3), env_ids=[0], is_global=True)
# example of setting external wrench in the link frame # example of setting external wrench in the link frame
......
...@@ -55,9 +55,9 @@ def randomize_rigid_body_scale( ...@@ -55,9 +55,9 @@ def randomize_rigid_body_scale(
If the dictionary does not contain a key, the range is set to one for that axis. If the dictionary does not contain a key, the range is set to one for that axis.
Relative child path can be used to randomize the scale of a specific child prim of the asset. Relative child path can be used to randomize the scale of a specific child prim of the asset.
For example, if the asset at prim path expression "/World/envs/env_.*/Object" has a child For example, if the asset at prim path expression ``/World/envs/env_.*/Object`` has a child
with the path "/World/envs/env_.*/Object/mesh", then the relative child path should be "mesh" or with the path ``/World/envs/env_.*/Object/mesh``, then the relative child path should be ``mesh`` or
"/mesh". ``/mesh``.
.. attention:: .. attention::
Since this function modifies USD properties that are parsed by the physics engine once the simulation Since this function modifies USD properties that are parsed by the physics engine once the simulation
......
...@@ -107,16 +107,20 @@ class InteractiveSceneCfg: ...@@ -107,16 +107,20 @@ class InteractiveSceneCfg:
.. note:: .. note::
Collisions can only be filtered automatically in direct workflows when physics replication is enabled. Collisions can only be filtered automatically in direct workflows when physics replication is enabled.
If ``replicated_physics=False`` and collision filtering is desired, make sure to call ``scene.filter_collisions()``. If :attr:`replicated_physics` is ``False`` and collision filtering is desired, make sure to call
``scene.filter_collisions()``.
""" """
clone_in_fabric: bool = False clone_in_fabric: bool = False
"""Enable/disable cloning in fabric. Default is False. """Enable/disable cloning in fabric. Default is False.
If True, cloning happens through Omniverse fabric, which is a more optimized method for performing cloning in
scene creation. However, this limits flexibility in accessing the stage through USD APIs and instead, the stage Omniverse Fabric is a more optimized method for performing cloning in scene creation. This reduces the time
must be accessed through USDRT. taken to create the scene. However, it limits flexibility in accessing the stage through USD APIs and instead,
If False, cloning will happen through regular USD APIs. the stage must be accessed through USDRT.
.. note:: .. note::
Cloning in fabric can only be enabled if physics replication is also enabled. Cloning in fabric can only be enabled if :attr:`replicated_physics` is also enabled.
If ``replicated_physics=False``, we will automatically default cloning in fabric to be False. If :attr:`replicated_physics` is ``False``, cloning in Fabric will automatically
default to ``False``.
""" """
...@@ -21,6 +21,7 @@ class ContactSensorData: ...@@ -21,6 +21,7 @@ class ContactSensorData:
Note: Note:
If the :attr:`ContactSensorCfg.track_pose` is False, then this quantity is None. If the :attr:`ContactSensorCfg.track_pose` is False, then this quantity is None.
""" """
contact_pos_w: torch.Tensor | None = None contact_pos_w: torch.Tensor | None = None
...@@ -29,13 +30,15 @@ class ContactSensorData: ...@@ -29,13 +30,15 @@ class ContactSensorData:
Shape is (N, B, M, 3), where N is the number of sensors, B is number of bodies in each sensor Shape is (N, B, M, 3), where N is the number of sensors, B is number of bodies in each sensor
and M is the number of filtered bodies. and M is the number of filtered bodies.
Collision pairs not in contact will result in nan. Collision pairs not in contact will result in NaN.
Note: Note:
If the :attr:`ContactSensorCfg.track_contact_points` is False, then this quantity is None.
If the :attr:`ContactSensorCfg.filter_prim_paths_expr` is empty, then this quantity is an empty tensor. * If the :attr:`ContactSensorCfg.track_contact_points` is False, then this quantity is None.
If the :attr:`ContactSensorCfg.max_contact_data_per_prim` is not specified or less than 1, then this quantity * If the :attr:`ContactSensorCfg.filter_prim_paths_expr` is empty, then this quantity is an empty tensor.
* If the :attr:`ContactSensorCfg.max_contact_data_per_prim` is not specified or less than 1, then this quantity
will not be calculated. will not be calculated.
""" """
quat_w: torch.Tensor | None = None quat_w: torch.Tensor | None = None
......
...@@ -9,7 +9,7 @@ This module defines the general configuration of the environment. It includes pa ...@@ -9,7 +9,7 @@ This module defines the general configuration of the environment. It includes pa
configuring the environment instances, viewer settings, and simulation parameters. configuring the environment instances, viewer settings, and simulation parameters.
""" """
from typing import Literal from typing import Any, Literal
from isaaclab.utils import configclass from isaaclab.utils import configclass
...@@ -165,9 +165,14 @@ class PhysxCfg: ...@@ -165,9 +165,14 @@ class PhysxCfg:
class RenderCfg: class RenderCfg:
"""Configuration for Omniverse RTX Renderer. """Configuration for Omniverse RTX Renderer.
These parameters are used to configure the Omniverse RTX Renderer. The defaults for IsaacLab are set in the These parameters are used to configure the Omniverse RTX Renderer.
experience files: `apps/isaaclab.python.rendering.kit` and `apps/isaaclab.python.headless.rendering.kit`. Setting any
value here will override the defaults of the experience files. The defaults for IsaacLab are set in the experience files:
* ``apps/isaaclab.python.rendering.kit``: Setting used when running the simulation with the GUI enabled.
* ``apps/isaaclab.python.headless.rendering.kit``: Setting used when running the simulation in headless mode.
Setting any value here will override the defaults of the experience files.
For more information, see the `Omniverse RTX Renderer documentation`_. For more information, see the `Omniverse RTX Renderer documentation`_.
...@@ -177,88 +182,109 @@ class RenderCfg: ...@@ -177,88 +182,109 @@ class RenderCfg:
enable_translucency: bool | None = None enable_translucency: bool | None = None
"""Enables translucency for specular transmissive surfaces such as glass at the cost of some performance. Default is False. """Enables translucency for specular transmissive surfaces such as glass at the cost of some performance. Default is False.
Set variable: /rtx/translucency/enabled This is set by the variable: ``/rtx/translucency/enabled``.
""" """
enable_reflections: bool | None = None enable_reflections: bool | None = None
"""Enables reflections at the cost of some performance. Default is False. """Enables reflections at the cost of some performance. Default is False.
Set variable: /rtx/reflections/enabled This is set by the variable: ``/rtx/reflections/enabled``.
""" """
enable_global_illumination: bool | None = None enable_global_illumination: bool | None = None
"""Enables Diffused Global Illumination at the cost of some performance. Default is False. """Enables Diffused Global Illumination at the cost of some performance. Default is False.
Set variable: /rtx/indirectDiffuse/enabled This is set by the variable: ``/rtx/indirectDiffuse/enabled``.
""" """
antialiasing_mode: Literal["Off", "FXAA", "DLSS", "TAA", "DLAA"] | None = None antialiasing_mode: Literal["Off", "FXAA", "DLSS", "TAA", "DLAA"] | None = None
"""Selects the anti-aliasing mode to use. Defaults to DLSS. """Selects the anti-aliasing mode to use. Defaults to DLSS.
- DLSS: Boosts performance by using AI to output higher resolution frames from a lower resolution input. DLSS samples multiple lower resolution images and uses motion data and feedback from prior frames to reconstruct native quality images.
- DLAA: Provides higher image quality with an AI-based anti-aliasing technique. DLAA uses the same Super Resolution technology developed for DLSS, reconstructing a native resolution image to maximize image quality.
Set variable: /rtx/post/dlss/execMode - **DLSS**: Boosts performance by using AI to output higher resolution frames from a lower resolution input.
DLSS samples multiple lower resolution images and uses motion data and feedback from prior frames to reconstruct
native quality images.
- **DLAA**: Provides higher image quality with an AI-based anti-aliasing technique. DLAA uses the same Super Resolution
technology developed for DLSS, reconstructing a native resolution image to maximize image quality.
This is set by the variable: ``/rtx/post/dlss/execMode``.
""" """
enable_dlssg: bool | None = None enable_dlssg: bool | None = None
""""Enables the use of DLSS-G. """"Enables the use of DLSS-G. Default is False.
DLSS Frame Generation boosts performance by using AI to generate more frames.
DLSS analyzes sequential frames and motion data to create additional high quality frames. DLSS Frame Generation boosts performance by using AI to generate more frames. DLSS analyzes sequential frames
This feature requires an Ada Lovelace architecture GPU. and motion data to create additional high quality frames.
Enabling this feature also enables additional thread-related activities, which can hurt performance.
Default is False. .. note::
Set variable: /rtx-transient/dlssg/enabled This feature requires an Ada Lovelace architecture GPU. Enabling this feature also enables additional
thread-related activities, which can hurt performance.
This is set by the variable: ``/rtx-transient/dlssg/enabled``.
""" """
enable_dl_denoiser: bool | None = None enable_dl_denoiser: bool | None = None
"""Enables the use of a DL denoiser. """Enables the use of a DL denoiser.
The DL denoiser can help improve the quality of renders, but comes at a cost of performance. The DL denoiser can help improve the quality of renders, but comes at a cost of performance.
Set variable: /rtx-transient/dldenoiser/enabled This is set by the variable: ``/rtx-transient/dldenoiser/enabled``.
""" """
dlss_mode: Literal[0, 1, 2, 3] | None = None dlss_mode: Literal[0, 1, 2, 3] | None = None
"""For DLSS anti-aliasing, selects the performance/quality tradeoff mode. """For DLSS anti-aliasing, selects the performance/quality tradeoff mode. Default is 0.
Valid values are 0 (Performance), 1 (Balanced), 2 (Quality), or 3 (Auto). Default is 0.
Set variable: /rtx/post/dlss/execMode Valid values are:
* 0 (Performance)
* 1 (Balanced)
* 2 (Quality)
* 3 (Auto)
This is set by the variable: ``/rtx/post/dlss/execMode``.
""" """
enable_direct_lighting: bool | None = None enable_direct_lighting: bool | None = None
"""Enable direct light contributions from lights. """Enable direct light contributions from lights. Default is False.
Set variable: /rtx/directLighting/enabled This is set by the variable: ``/rtx/directLighting/enabled``.
""" """
samples_per_pixel: int | None = None samples_per_pixel: int | None = None
"""Defines the Direct Lighting samples per pixel. """Defines the Direct Lighting samples per pixel. Default is 1.
Higher values increase the direct lighting quality at the cost of performance. Default is 1.
Set variable: /rtx/directLighting/sampledLighting/samplesPerPixel""" A higher value increases the direct lighting quality at the cost of performance.
This is set by the variable: ``/rtx/directLighting/sampledLighting/samplesPerPixel``.
"""
enable_shadows: bool | None = None enable_shadows: bool | None = None
"""Enables shadows at the cost of performance. When disabled, lights will not cast shadows. Defaults to True. """Enables shadows at the cost of performance. Defaults to True.
When disabled, lights will not cast shadows.
Set variable: /rtx/shadows/enabled This is set by the variable: ``/rtx/shadows/enabled``.
""" """
enable_ambient_occlusion: bool | None = None enable_ambient_occlusion: bool | None = None
"""Enables ambient occlusion at the cost of some performance. Default is False. """Enables ambient occlusion at the cost of some performance. Default is False.
Set variable: /rtx/ambientOcclusion/enabled This is set by the variable: ``/rtx/ambientOcclusion/enabled``.
""" """
carb_settings: dict | None = None carb_settings: dict[str, Any] | None = None
"""Provides a general dictionary for users to supply all carb rendering settings with native names. """A general dictionary for users to supply all carb rendering settings with native names.
- Name strings can be formatted like a carb setting, .kit file setting, or python variable.
- For instance, a key value pair can be The keys of the dictionary can be formatted like a carb setting, .kit file setting, or python variable.
/rtx/translucency/enabled: False # carb For instance, a key value pair can be ``/rtx/translucency/enabled: False`` (carb), ``rtx.translucency.enabled: False`` (.kit),
rtx.translucency.enabled: False # .kit or ``rtx_translucency_enabled: False`` (python).
rtx_translucency_enabled: False # python""" """
rendering_mode: Literal["performance", "balanced", "quality"] | None = None rendering_mode: Literal["performance", "balanced", "quality"] | None = None
"""Sets the rendering mode. Behaves the same as the CLI arg '--rendering_mode'""" """The rendering mode.
This behaves the same as the passing the CLI arg ``--rendering_mode`` to an executable script.
"""
@configclass @configclass
......
...@@ -682,6 +682,7 @@ def quat_apply_yaw(quat: torch.Tensor, vec: torch.Tensor) -> torch.Tensor: ...@@ -682,6 +682,7 @@ def quat_apply_yaw(quat: torch.Tensor, vec: torch.Tensor) -> torch.Tensor:
def quat_rotate(q: torch.Tensor, v: torch.Tensor) -> torch.Tensor: def quat_rotate(q: torch.Tensor, v: torch.Tensor) -> torch.Tensor:
"""Rotate a vector by a quaternion along the last dimension of q and v. """Rotate a vector by a quaternion along the last dimension of q and v.
.. deprecated v2.1.0: .. deprecated v2.1.0:
This function will be removed in a future release in favor of the faster implementation :meth:`quat_apply`. This function will be removed in a future release in favor of the faster implementation :meth:`quat_apply`.
...@@ -705,6 +706,7 @@ def quat_rotate_inverse(q: torch.Tensor, v: torch.Tensor) -> torch.Tensor: ...@@ -705,6 +706,7 @@ def quat_rotate_inverse(q: torch.Tensor, v: torch.Tensor) -> torch.Tensor:
.. deprecated v2.1.0: .. deprecated v2.1.0:
This function will be removed in a future release in favor of the faster implementation :meth:`quat_apply_inverse`. This function will be removed in a future release in favor of the faster implementation :meth:`quat_apply_inverse`.
Args: Args:
q: The quaternion in (w, x, y, z). Shape is (..., 4). q: The quaternion in (w, x, y, z). Shape is (..., 4).
v: The vector in (x, y, z). Shape is (..., 3). v: The vector in (x, y, z). Shape is (..., 3).
......
...@@ -66,6 +66,7 @@ class RlGamesVecEnvWrapper(IVecEnv): ...@@ -66,6 +66,7 @@ class RlGamesVecEnvWrapper(IVecEnv):
The wrapper supports **either** concatenated tensors (default) **or** Dict inputs: The wrapper supports **either** concatenated tensors (default) **or** Dict inputs:
when wrapper is concate mode, rl-games sees {"obs": Tensor, (optional)"states": Tensor} when wrapper is concate mode, rl-games sees {"obs": Tensor, (optional)"states": Tensor}
when wrapper is not concate mode, rl-games sees {"obs": dict[str, Tensor], (optional)"states": dict[str, Tensor]} when wrapper is not concate mode, rl-games sees {"obs": dict[str, Tensor], (optional)"states": dict[str, Tensor]}
- Concatenated mode (``concate_obs_group=True``): ``observation_space``/``state_space`` are ``gym.spaces.Box``. - Concatenated mode (``concate_obs_group=True``): ``observation_space``/``state_space`` are ``gym.spaces.Box``.
- Dict mode (``concate_obs_group=False``): ``observation_space``/``state_space`` are ``gym.spaces.Dict`` keyed by - Dict mode (``concate_obs_group=False``): ``observation_space``/``state_space`` are ``gym.spaces.Dict`` keyed by
the requested groups. When no ``"states"`` groups are provided, the states Dict is omitted at runtime. the requested groups. When no ``"states"`` groups are provided, the states Dict is omitted at runtime.
......
...@@ -3,7 +3,15 @@ ...@@ -3,7 +3,15 @@
# #
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
"""Package containing task implementations for various robotic environments.""" """Package containing task implementations for various robotic environments.
The package is structured as follows:
- ``direct``: These include single-file implementations of tasks.
- ``manager_based``: These include task implementations that use the manager-based API.
- ``utils``: These include utility functions for the tasks.
"""
import os import os
import toml import toml
......
...@@ -41,6 +41,11 @@ def import_packages(package_name: str, blacklist_pkgs: list[str] | None = None): ...@@ -41,6 +41,11 @@ def import_packages(package_name: str, blacklist_pkgs: list[str] | None = None):
pass pass
"""
Internal helpers.
"""
def _walk_packages( def _walk_packages(
path: str | None = None, path: str | None = None,
prefix: str = "", prefix: str = "",
...@@ -51,8 +56,9 @@ def _walk_packages( ...@@ -51,8 +56,9 @@ def _walk_packages(
Note: Note:
This function is a modified version of the original ``pkgutil.walk_packages`` function. It adds This function is a modified version of the original ``pkgutil.walk_packages`` function. It adds
the `blacklist_pkgs` argument to skip blacklisted packages. Please refer to the original the ``blacklist_pkgs`` argument to skip blacklisted packages. Please refer to the original
``pkgutil.walk_packages`` function for more details. ``pkgutil.walk_packages`` function for more details.
""" """
if blacklist_pkgs is None: if blacklist_pkgs is None:
blacklist_pkgs = [] blacklist_pkgs = []
......
...@@ -32,6 +32,7 @@ def load_cfg_from_registry(task_name: str, entry_point_key: str) -> dict | objec ...@@ -32,6 +32,7 @@ def load_cfg_from_registry(task_name: str, entry_point_key: str) -> dict | objec
kwargs={"env_entry_point_cfg": "path.to.config:ConfigClass"}, kwargs={"env_entry_point_cfg": "path.to.config:ConfigClass"},
) )
The parsed configuration object for above example can be obtained as: The parsed configuration object for above example can be obtained as:
.. code-block:: python .. code-block:: python
...@@ -40,6 +41,7 @@ def load_cfg_from_registry(task_name: str, entry_point_key: str) -> dict | objec ...@@ -40,6 +41,7 @@ def load_cfg_from_registry(task_name: str, entry_point_key: str) -> dict | objec
cfg = load_cfg_from_registry("My-Awesome-Task-v0", "env_entry_point_cfg") cfg = load_cfg_from_registry("My-Awesome-Task-v0", "env_entry_point_cfg")
Args: Args:
task_name: The name of the environment. task_name: The name of the environment.
entry_point_key: The entry point key to resolve the configuration file. entry_point_key: The entry point key to resolve the configuration file.
......
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