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 = {
# 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"
......@@ -112,8 +121,9 @@ autodoc_default_options = {
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),
......@@ -148,13 +158,6 @@ autodoc_mock_imports = [
"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",
......
......@@ -11,8 +11,8 @@
DifferentialIKControllerCfg
OperationalSpaceController
OperationalSpaceControllerCfg
PinkIKController
PinkIKControllerCfg
pink_ik.PinkIKController
pink_ik.PinkIKControllerCfg
pink_ik.NullSpacePostureTask
Differential Inverse Kinematics
......@@ -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
......@@ -13,6 +13,8 @@
MeshConverterCfg
UrdfConverter
UrdfConverterCfg
MjcfConverter
MjcfConverterCfg
Asset Converter Base
--------------------
......@@ -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__
......@@ -4,5 +4,3 @@
.. automodule:: isaaclab_tasks.utils
:members:
:imported-members:
.. rubric:: Submodules
......@@ -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**
......@@ -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**
......@@ -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**
......
......@@ -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)
......
......@@ -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::
......@@ -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
......@@ -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.
......
......@@ -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.
......@@ -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
......
......@@ -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
......
......@@ -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.
......
......@@ -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)
......@@ -36,7 +36,7 @@ Added
0.45.10 (2025-09-02)
~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
Fixed
^^^^^
......@@ -92,7 +92,7 @@ Added
0.45.6 (2025-08-22)
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~
Fixed
^^^^^
......@@ -101,7 +101,7 @@ Fixed
0.45.5 (2025-08-21)
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~
Fixed
^^^^^
......@@ -113,7 +113,7 @@ Fixed
0.45.4 (2025-08-21)
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~
Added
^^^^^
......@@ -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)
......
......@@ -505,6 +505,7 @@ class RigidObjectCollection(AssetBase):
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
......
......@@ -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
......
......@@ -107,16 +107,20 @@ class 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``.
"""
......@@ -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
......@@ -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
......
......@@ -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.
"""
from typing import Literal
from typing import Any, Literal
from isaaclab.utils import configclass
......@@ -165,9 +165,14 @@ class PhysxCfg:
class RenderCfg:
"""Configuration for Omniverse RTX Renderer.
These parameters are used to configure the Omniverse RTX Renderer. The defaults for IsaacLab are set in the
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.
These parameters are used to configure the Omniverse RTX Renderer.
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`_.
......@@ -177,88 +182,109 @@ class RenderCfg:
enable_translucency: bool | None = None
"""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
"""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
"""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
"""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
""""Enables the use of DLSS-G.
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.
This feature requires an Ada Lovelace architecture GPU.
Enabling this feature also enables additional thread-related activities, which can hurt performance.
Default is False.
Set variable: /rtx-transient/dlssg/enabled
""""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.
.. note::
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
"""Enables the use of a DL denoiser.
The DL denoiser can help improve the quality of renders, but comes at a cost of performance.
Set variable: /rtx-transient/dldenoiser/enabled
The DL denoiser can help improve the quality of renders, but comes at a cost of performance.
This is set by the variable: ``/rtx-transient/dldenoiser/enabled``.
"""
dlss_mode: Literal[0, 1, 2, 3] | None = None
"""For DLSS anti-aliasing, selects the performance/quality tradeoff mode.
Valid values are 0 (Performance), 1 (Balanced), 2 (Quality), or 3 (Auto). Default is 0.
"""For DLSS anti-aliasing, selects the performance/quality tradeoff mode. 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 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
"""Defines the Direct Lighting samples per pixel.
Higher values increase the direct lighting quality at the cost of performance. Default is 1.
"""Defines the Direct Lighting samples per pixel. 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
"""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
"""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
"""Provides 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
/rtx/translucency/enabled: False # carb
rtx.translucency.enabled: False # .kit
rtx_translucency_enabled: False # python"""
carb_settings: dict[str, Any] | None = None
"""A general dictionary for users to supply all carb rendering settings with native names.
The keys of the dictionary can be formatted like a carb setting, .kit file setting, or python variable.
For instance, a key value pair can be ``/rtx/translucency/enabled: False`` (carb), ``rtx.translucency.enabled: False`` (.kit),
or ``rtx_translucency_enabled: False`` (python).
"""
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
......
......@@ -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:
"""Rotate a vector by a quaternion along the last dimension of q and v.
.. deprecated v2.1.0:
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:
.. deprecated v2.1.0:
This function will be removed in a future release in favor of the faster implementation :meth:`quat_apply_inverse`.
Args:
q: The quaternion in (w, x, y, z). Shape is (..., 4).
v: The vector in (x, y, z). Shape is (..., 3).
......
......@@ -66,6 +66,7 @@ class RlGamesVecEnvWrapper(IVecEnv):
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 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``.
- 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.
......
......@@ -3,7 +3,15 @@
#
# 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 toml
......
......@@ -41,6 +41,11 @@ def import_packages(package_name: str, blacklist_pkgs: list[str] | None = None):
pass
"""
Internal helpers.
"""
def _walk_packages(
path: str | None = None,
prefix: str = "",
......@@ -51,8 +56,9 @@ def _walk_packages(
Note:
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.
"""
if blacklist_pkgs is None:
blacklist_pkgs = []
......
......@@ -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"},
)
The parsed configuration object for above example can be obtained as:
.. code-block:: python
......@@ -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")
Args:
task_name: The name of the environment.
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