Unverified Commit 030d0bf5 authored by David Hoeller's avatar David Hoeller Committed by GitHub

Adds PIP dependencies to extension.toml file (#84)

Fixes Isaac Lab when run in extension mode. 

## Type of change

- Bug fix (non-breaking change which fixes an issue)

## Checklist

- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [ ] 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
- [x] I have run all the tests with `./isaaclab.sh --test` and they pass
- [ ] 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 9ab6b485
......@@ -4,7 +4,7 @@ Building your Own Project
Traditionally, building new projects that utilize Isaac Lab's features required creating your own
extensions within the Isaac Lab repository. However, this approach can obscure project visibility and
complicate updates from one version of Isaac Lab to another. To circumvent these challenges, we now
provide a pre-configured and customizable `extension template <https://github.com/isaac-sim/IsaacLab.ext_template>`_
provide a pre-configured and customizable `extension template <https://github.com/isaac-sim/IsaacLabExtensionTemplate>`_
for creating projects in an isolated environment.
This template serves three distinct use cases:
......@@ -22,4 +22,4 @@ This template serves three distinct use cases:
features and improvements in Isaac Lab.
To get started, please follow the instructions in the `extension template repository <https://github.com/isaac-sim/IsaacLab.ext_template>`_.
To get started, please follow the instructions in the `extension template repository <https://github.com/isaac-sim/IsaacLabExtensionTemplate>`_.
......@@ -13,7 +13,31 @@ keywords = ["kit", "robotics", "learning", "ai"]
[dependencies]
"omni.isaac.core" = {}
"omni.isaac.ml_archive" = {}
"omni.replicator.core" = {}
[python.pipapi]
requirements = [
"numpy",
"prettytable==3.3.0",
"tensordict",
"toml",
"hidapi",
"gymnasium==0.29.0",
"trimesh"
]
modules = [
"numpy",
"prettytable",
"tensordict",
"toml",
"hid",
"gymnasium",
"trimesh"
]
use_online_index=true
[[python.module]]
name = "omni.isaac.lab"
......@@ -594,14 +594,10 @@ class AppLauncher:
# set the nucleus directory manually to the latest published Nucleus
# note: this is done to ensure prior versions of Isaac Sim still use the latest assets
carb_settings_iface.set_string(
"/persistent/isaac/asset_root/default",
"http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0",
)
carb_settings_iface.set_string(
"/persistent/isaac/asset_root/nvidia",
"http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0",
)
assets_path = "http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/4.0"
carb_settings_iface.set_string("/persistent/isaac/asset_root/default", assets_path)
carb_settings_iface.set_string("/persistent/isaac/asset_root/cloud", assets_path)
carb_settings_iface.set_string("/persistent/isaac/asset_root/nvidia", assets_path)
# disable physics backwards compatibility check
carb_settings_iface.set_int(physx_impl.SETTING_BACKWARD_COMPATIBILITY, 0)
......
......@@ -21,31 +21,8 @@ from typing import Literal
import carb
import omni.client
try:
import omni.isaac.nucleus as nucleus_utils
except ModuleNotFoundError:
import omni.isaac.core.utils.nucleus as nucleus_utils
# note: we check only once at the start of the module to prevent multiple checks on the Nucleus Server
NUCLEUS_ASSET_ROOT_DIR = nucleus_utils.get_assets_root_path()
"""Path to the root directory on the Nucleus Server.
This is resolved using Isaac Sim's Nucleus API. If the Nucleus Server is not running, then this
will be set to None. The path is resolved using the following steps:
1. Based on simulation parameter: ``/persistent/isaac/asset_root/default``.
2. Iterating over all the connected Nucleus Servers and checking for the first server that has the the connected status.
3. Based on simulation parameter: ``/persistent/isaac/asset_root/cloud``.
"""
# check nucleus connection
if NUCLEUS_ASSET_ROOT_DIR is None:
msg = (
"Unable to perform Nucleus login on Omniverse. Assets root path is not set.\n"
"\tPlease check: https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/overview.html#omniverse-nucleus"
)
carb.log_error(msg)
raise RuntimeError(msg)
NUCLEUS_ASSET_ROOT_DIR = carb.settings.get_settings().get("/persistent/isaac/asset_root/cloud")
"""Path to the root directory on the Nucleus Server."""
NVIDIA_NUCLEUS_DIR = f"{NUCLEUS_ASSET_ROOT_DIR}/NVIDIA"
"""Path to the root directory on the NVIDIA Nucleus Server."""
......
......@@ -14,9 +14,27 @@ keywords = ["robotics", "rl", "il", "learning"]
[dependencies]
"omni.isaac.lab" = {}
"omni.isaac.lab_assets" = {}
"omni.isaac.core" = {}
"omni.isaac.gym" = {}
"omni.replicator.isaac" = {}
[python.pipapi]
requirements = [
"h5py",
"tensorboard",
"stable-baselines3>=2.1",
"rl-games==1.6.1",
"rsl-rl@git+https://github.com/leggedrobotics/rsl_rl.git",
"skrl>=1.1.0"
]
modules = [
"h5py",
"tensorboard",
"stable_baselines3",
"rl_games",
"rsl_rl",
"skrl"
]
use_online_index=true
[[python.module]]
name = "omni.isaac.lab_tasks"
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