Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 11 additions & 8 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,15 @@
# TODO: Enable this by default once we have fixed all the warnings
# 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)
autodoc_typehints = "signature"
# autodoc_typehints_format = "fully-qualified"
Expand All @@ -112,8 +121,9 @@
intersphinx_mapping = {
"python": ("https://docs.python.org/3", None),
"numpy": ("https://numpy.org/doc/stable/", None),
"trimesh": ("https://trimesh.org/", 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),
"warp": ("https://nvidia.github.io/warp/", None),
"dev-guide": ("https://docs.omniverse.nvidia.com/dev-guide/latest", None),
Expand Down Expand Up @@ -148,13 +158,6 @@
"pxr.PhysxSchema",
"pxr.PhysicsSchemaTools",
"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.core.api",
"isaacsim.core.cloner",
Expand Down
28 changes: 20 additions & 8 deletions docs/source/api/lab/isaaclab.controllers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
DifferentialIKControllerCfg
OperationalSpaceController
OperationalSpaceControllerCfg
PinkIKController
PinkIKControllerCfg
pink_ik.PinkIKController
pink_ik.PinkIKControllerCfg
pink_ik.NullSpacePostureTask

Differential Inverse Kinematics
Expand Down Expand Up @@ -43,12 +43,24 @@ Operational Space controllers
:show-inheritance:
: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::
:maxdepth: 1
.. automodule:: isaaclab.controllers.pink_ik

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
16 changes: 16 additions & 0 deletions docs/source/api/lab/isaaclab.sim.converters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
MeshConverterCfg
UrdfConverter
UrdfConverterCfg
MjcfConverter
MjcfConverterCfg

Asset Converter Base
--------------------
Expand Down Expand Up @@ -52,3 +54,17 @@ URDF Converter
:inherited-members:
:show-inheritance:
:exclude-members: __init__

MJCF Converter
--------------

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

.. autoclass:: MjcfConverterCfg
:members:
:inherited-members:
:show-inheritance:
:exclude-members: __init__
2 changes: 0 additions & 2 deletions docs/source/api/lab_tasks/isaaclab_tasks.utils.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,3 @@
.. automodule:: isaaclab_tasks.utils
:members:
:imported-members:

.. rubric:: Submodules
9 changes: 5 additions & 4 deletions docs/source/how-to/optimize_stage_creation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ What These Features Do
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**

Expand All @@ -34,7 +34,7 @@ Fabric cloning can be toggled by setting the ``clone_in_fabric`` flag in the ``I
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**

Expand All @@ -48,8 +48,9 @@ Stage in memory can be toggled by setting the ``create_stage_in_memory`` in the
env = ManagerBasedRLEnv(cfg=cfg)

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.
If the stage needs to be attached, the ``attach_stage_to_usd_context`` function should be called after the stage is created.
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 :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**

Expand Down
2 changes: 1 addition & 1 deletion docs/source/overview/environments.rst
Original file line number Diff line number Diff line change
Expand Up @@ -798,7 +798,7 @@ inferencing, including reading from an already trained checkpoint and disabling
-
- Direct
-
* - Isaac-Forge-GearMesh-Direct-v0
* - Isaac-Forge-GearMesh-Direct-v0
-
- Direct
- **rl_games** (PPO)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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``
`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.

.. note::
Expand Down Expand Up @@ -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
`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.

.. code:: bash
Expand Down Expand Up @@ -514,7 +514,7 @@ Demo 2: Visuomotor Policy for a Humanoid Robot
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
generated using Isaac Lab Mimic for the ``Isaac-NutPour-GR1T2-Pink-IK-Abs-Mimic-v0`` task.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
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.
- ``full_path``: The full path of the action term.
- ``description``: The description of the action term.
Expand All @@ -238,7 +238,7 @@ By default, the :meth:`ActionTerm.IO_descriptor` property returns the base descr
self._IO_descriptor.export = self.export_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.

.. code-block:: python
Expand Down
2 changes: 1 addition & 1 deletion docs/source/setup/walkthrough/api_env_design.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
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
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).

.. currentmodule:: isaaclab.scene
Expand Down
2 changes: 1 addition & 1 deletion docs/source/tutorials/05_controllers/run_diff_ik.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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,
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
index into these arrays to obtain the desired quantities.

Expand Down
16 changes: 8 additions & 8 deletions source/isaaclab/docs/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Added
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)
Expand All @@ -36,7 +36,7 @@ Added


0.45.10 (2025-09-02)
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~

Fixed
^^^^^
Expand Down Expand Up @@ -92,7 +92,7 @@ Added


0.45.6 (2025-08-22)
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~

Fixed
^^^^^
Expand All @@ -101,7 +101,7 @@ Fixed


0.45.5 (2025-08-21)
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~

Fixed
^^^^^
Expand All @@ -113,7 +113,7 @@ Fixed


0.45.4 (2025-08-21)
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~

Added
^^^^^
Expand Down Expand Up @@ -198,9 +198,9 @@ Fixed
Fixed
^^^^^

* Fixed the old termination manager in :class:`~isaaclab.managers.TerminationManager` term_done logging that logs the
instantaneous term done count at reset. This let to inaccurate aggregation of termination count, obscuring the what really
happeningduring the traing. Instead we log the episodic term done.
* Fixed the old termination manager in :class:`~isaaclab.managers.TerminationManager` term_done logging that
logs the instantaneous term done count at reset. This let to inaccurate aggregation of termination count,
obscuring the what really happening during the training. Instead we log the episodic term done.


0.44.9 (2025-07-30)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,7 @@ def set_external_force_and_torque(
all the external wrenches will be applied in the frame specified by the last call.

.. code-block:: python

# 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)
# example of setting external wrench in the link frame
Expand Down
6 changes: 3 additions & 3 deletions source/isaaclab/isaaclab/envs/mdp/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.

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
with the path "/World/envs/env_.*/Object/mesh", then the relative child path should be "mesh" or
"/mesh".
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
``/mesh``.

.. attention::
Since this function modifies USD properties that are parsed by the physics engine once the simulation
Expand Down
18 changes: 11 additions & 7 deletions source/isaaclab/isaaclab/scene/interactive_scene_cfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,16 +107,20 @@ class MySceneCfg(InteractiveSceneCfg):

.. note::
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
"""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
must be accessed through USDRT.
If False, cloning will happen through regular USD APIs.

Omniverse Fabric is a more optimized method for performing cloning in scene creation. This reduces the time
taken to create the scene. However, it limits flexibility in accessing the stage through USD APIs and instead,
the stage must be accessed through USDRT.

.. note::
Cloning in fabric can only be enabled if physics replication is also enabled.
If ``replicated_physics=False``, we will automatically default cloning in fabric to be False.
Cloning in fabric can only be enabled if :attr:`replicated_physics` is also enabled.
If :attr:`replicated_physics` is ``False``, cloning in Fabric will automatically
default to ``False``.

"""
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class ContactSensorData:

Note:
If the :attr:`ContactSensorCfg.track_pose` is False, then this quantity is None.

"""

contact_pos_w: torch.Tensor | None = None
Expand All @@ -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
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:
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.max_contact_data_per_prim` is not specified or less than 1, then this quantity
will not be calculated.

* 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.max_contact_data_per_prim` is not specified or less than 1, then this quantity
will not be calculated.

"""

quat_w: torch.Tensor | None = None
Expand Down
Loading