Unverified Commit 7ec1536d authored by David Hoeller's avatar David Hoeller Committed by GitHub

Moves the robot configs to orbit_assets extension (#305)

# Description

Moves the robot configs from orbit core to orbit assets.

## Type of change

- New feature (non-breaking change which adds functionality)

## Checklist

- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./orbit.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
- [x] 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

---------
Co-authored-by: 's avatarMayank Mittal <mittalma@leggedrobotics.com>
parent 9a2a877b
*.usd filter=lfs diff=lfs merge=lfs -text
*.dae filter=lfs diff=lfs merge=lfs -text
*.mtl filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.usda filter=lfs diff=lfs merge=lfs -text
*.hdr filter=lfs diff=lfs merge=lfs -text
*.pt filter=lfs diff=lfs merge=lfs -text
*.jit filter=lfs diff=lfs merge=lfs -text
...@@ -51,11 +51,6 @@ _repo ...@@ -51,11 +51,6 @@ _repo
_build _build
.lastformat .lastformat
# Internal
# TODO: Remove this once we have a better way to handle internal files.
source/extensions/omni.isaac.assets
source/extensions/omni.isaac.orbit_assets
# RL-Games # RL-Games
**/runs/* **/runs/*
**/logs/* **/logs/*
...@@ -22,7 +22,7 @@ is free to move along a rail, and the pole is free to rotate about the cart. ...@@ -22,7 +22,7 @@ is free to move along a rail, and the pole is free to rotate about the cart.
.. dropdown:: Code for Cartpole configuration .. dropdown:: Code for Cartpole configuration
:icon: code :icon: code
.. literalinclude:: ../../../source/extensions/omni.isaac.orbit/omni/isaac/orbit/assets/config/cartpole.py .. literalinclude:: ../../../source/extensions/omni.isaac.orbit_assets/omni/isaac/orbit_assets/cartpole.py
:language: python :language: python
:linenos: :linenos:
...@@ -44,7 +44,7 @@ This configuration object takes in the following parameters: ...@@ -44,7 +44,7 @@ This configuration object takes in the following parameters:
The last two parameters are optional. If not specified, they are kept at their default values in the USD file. The last two parameters are optional. If not specified, they are kept at their default values in the USD file.
.. literalinclude:: ../../../source/extensions/omni.isaac.orbit/omni/isaac/orbit/assets/config/cartpole.py .. literalinclude:: ../../../source/extensions/omni.isaac.orbit_assets/omni/isaac/orbit_assets/cartpole.py
:language: python :language: python
:lines: 17-33 :lines: 17-33
:dedent: :dedent:
...@@ -72,7 +72,7 @@ initial state of the root of the articulation and the initial state of all its j ...@@ -72,7 +72,7 @@ initial state of the root of the articulation and the initial state of all its j
example, we will spawn the Cartpole at the origin of the XY plane at a Z height of 2.0 meters. example, we will spawn the Cartpole at the origin of the XY plane at a Z height of 2.0 meters.
Meanwhile, the joint positions and velocities are set to 0.0. Meanwhile, the joint positions and velocities are set to 0.0.
.. literalinclude:: ../../../source/extensions/omni.isaac.orbit/omni/isaac/orbit/assets/config/cartpole.py .. literalinclude:: ../../../source/extensions/omni.isaac.orbit_assets/omni/isaac/orbit_assets/cartpole.py
:language: python :language: python
:lines: 34-36 :lines: 34-36
:dedent: :dedent:
...@@ -94,7 +94,7 @@ to combine them into a single actuator model. ...@@ -94,7 +94,7 @@ to combine them into a single actuator model.
.. dropdown:: Actuator model configuration with separate actuator models .. dropdown:: Actuator model configuration with separate actuator models
:icon: code :icon: code
.. literalinclude:: ../../../source/extensions/omni.isaac.orbit/omni/isaac/orbit/assets/config/cartpole.py .. literalinclude:: ../../../source/extensions/omni.isaac.orbit_assets/omni/isaac/orbit_assets/cartpole.py
:language: python :language: python
:lines: 37-47 :lines: 37-47
:dedent: :dedent:
......
...@@ -15,6 +15,15 @@ Extension containing the core framework of Orbit. ...@@ -15,6 +15,15 @@ Extension containing the core framework of Orbit.
:start-line: 3 :start-line: 3
omni.isaac.orbit_assets
------------------------
Extension for configurations of various assets and sensors for Orbit.
.. include:: ../../../source/extensions/omni.isaac.orbit_assets/docs/CHANGELOG.rst
:start-line: 3
omni.isaac.orbit_tasks omni.isaac.orbit_tasks
---------------------- ----------------------
......
# Copyright (c) 2022-2023, The ORBIT Project Developers.
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
"""Configuration instances for different assets.
This sub-module contains the configuration instances for different assets. The configuration
instances are used to spawn and configure the assets in the simulation. They are passed to
their corresponding asset classes during construction.
"""
from .anymal import *
from .cartpole import *
from .franka import *
from .ridgeback_franka import *
from .unitree import *
from .universal_robots import *
...@@ -36,10 +36,11 @@ class InteractiveScene: ...@@ -36,10 +36,11 @@ class InteractiveScene:
.. code-block:: python .. code-block:: python
from omni.isaac.orbit.assets.config.anymal import ANYMAL_C_CFG
from omni.isaac.orbit.scene import InteractiveSceneCfg from omni.isaac.orbit.scene import InteractiveSceneCfg
from omni.isaac.orbit.utils import configclass from omni.isaac.orbit.utils import configclass
from omni.isaac.orbit_assets.anymal import ANYMAL_C_CFG
@configclass @configclass
class MySceneCfg(InteractiveSceneCfg): class MySceneCfg(InteractiveSceneCfg):
......
...@@ -29,11 +29,11 @@ class InteractiveSceneCfg: ...@@ -29,11 +29,11 @@ class InteractiveSceneCfg:
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import AssetBaseCfg from omni.isaac.orbit.assets import AssetBaseCfg
from omni.isaac.orbit.assets.config.anymal import ANYMAL_C_CFG
from omni.isaac.orbit.scene import InteractiveSceneCfg from omni.isaac.orbit.scene import InteractiveSceneCfg
from omni.isaac.orbit.sensors.ray_caster import GridPatternCfg, RayCasterCfg from omni.isaac.orbit.sensors.ray_caster import GridPatternCfg, RayCasterCfg
from omni.isaac.orbit.utils import configclass from omni.isaac.orbit.utils import configclass
from omni.isaac.orbit_assets.anymal import ANYMAL_C_CFG
@configclass @configclass
class MySceneCfg(InteractiveSceneCfg): class MySceneCfg(InteractiveSceneCfg):
......
...@@ -45,9 +45,13 @@ import carb ...@@ -45,9 +45,13 @@ import carb
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import Articulation from omni.isaac.orbit.assets import Articulation
from omni.isaac.orbit.assets.config.anymal import ANYMAL_C_CFG
from omni.isaac.orbit.sim import SimulationContext from omni.isaac.orbit.sim import SimulationContext
##
# Pre-defined configs
##
from omni.isaac.orbit_assets.anymal import ANYMAL_C_CFG # isort:skip
def main(): def main():
"""Main function.""" """Main function."""
......
...@@ -45,7 +45,11 @@ import carb ...@@ -45,7 +45,11 @@ import carb
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import Articulation from omni.isaac.orbit.assets import Articulation
from omni.isaac.orbit.assets.config.ridgeback_franka import RIDGEBACK_FRANKA_PANDA_CFG
##
# Pre-defined configs
##
from omni.isaac.orbit_assets.ridgeback_franka import RIDGEBACK_FRANKA_PANDA_CFG # isort:skip
def design_scene(): def design_scene():
......
...@@ -30,9 +30,13 @@ import omni.isaac.orbit.sim as sim_utils ...@@ -30,9 +30,13 @@ import omni.isaac.orbit.sim as sim_utils
import omni.isaac.orbit.utils.string as string_utils import omni.isaac.orbit.utils.string as string_utils
from omni.isaac.orbit.actuators import ImplicitActuatorCfg from omni.isaac.orbit.actuators import ImplicitActuatorCfg
from omni.isaac.orbit.assets import Articulation, ArticulationCfg from omni.isaac.orbit.assets import Articulation, ArticulationCfg
from omni.isaac.orbit.assets.config import ANYMAL_C_CFG, FRANKA_PANDA_CFG
from omni.isaac.orbit.utils.assets import ISAAC_NUCLEUS_DIR from omni.isaac.orbit.utils.assets import ISAAC_NUCLEUS_DIR
##
# Pre-defined configs
##
from omni.isaac.orbit_assets import ANYMAL_C_CFG, FRANKA_PANDA_CFG # isort:skip
class TestArticulation(unittest.TestCase): class TestArticulation(unittest.TestCase):
"""Test for articulation class.""" """Test for articulation class."""
......
...@@ -25,10 +25,14 @@ from omni.isaac.cloner import GridCloner ...@@ -25,10 +25,14 @@ from omni.isaac.cloner import GridCloner
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import Articulation from omni.isaac.orbit.assets import Articulation
from omni.isaac.orbit.assets.config import FRANKA_PANDA_HIGH_PD_CFG, UR10_CFG
from omni.isaac.orbit.controllers import DifferentialIKController, DifferentialIKControllerCfg from omni.isaac.orbit.controllers import DifferentialIKController, DifferentialIKControllerCfg
from omni.isaac.orbit.utils.math import compute_pose_error, subtract_frame_transforms from omni.isaac.orbit.utils.math import compute_pose_error, subtract_frame_transforms
##
# Pre-defined configs
##
from omni.isaac.orbit_assets import FRANKA_PANDA_HIGH_PD_CFG, UR10_CFG # isort:skip
class TestDifferentialIKController(unittest.TestCase): class TestDifferentialIKController(unittest.TestCase):
"""Test fixture for checking that differential IK controller tracks commands properly.""" """Test fixture for checking that differential IK controller tracks commands properly."""
......
...@@ -43,7 +43,6 @@ import carb ...@@ -43,7 +43,6 @@ import carb
import omni.isaac.orbit.envs.mdp as mdp import omni.isaac.orbit.envs.mdp as mdp
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import ArticulationCfg, AssetBaseCfg from omni.isaac.orbit.assets import ArticulationCfg, AssetBaseCfg
from omni.isaac.orbit.assets.config.anymal import ANYMAL_C_CFG
from omni.isaac.orbit.envs import BaseEnv, BaseEnvCfg from omni.isaac.orbit.envs import BaseEnv, BaseEnvCfg
from omni.isaac.orbit.managers import ObservationGroupCfg as ObsGroup from omni.isaac.orbit.managers import ObservationGroupCfg as ObsGroup
from omni.isaac.orbit.managers import ObservationTermCfg as ObsTerm from omni.isaac.orbit.managers import ObservationTermCfg as ObsTerm
...@@ -60,6 +59,7 @@ from omni.isaac.orbit.utils.noise import AdditiveUniformNoiseCfg as Unoise ...@@ -60,6 +59,7 @@ from omni.isaac.orbit.utils.noise import AdditiveUniformNoiseCfg as Unoise
# Pre-defined configs # Pre-defined configs
## ##
from omni.isaac.orbit.terrains.config.rough import ROUGH_TERRAINS_CFG # isort: skip from omni.isaac.orbit.terrains.config.rough import ROUGH_TERRAINS_CFG # isort: skip
from omni.isaac.orbit_assets.anymal import ANYMAL_C_CFG # isort: skip
## ##
......
...@@ -46,11 +46,15 @@ import carb ...@@ -46,11 +46,15 @@ import carb
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import ArticulationCfg, AssetBaseCfg from omni.isaac.orbit.assets import ArticulationCfg, AssetBaseCfg
from omni.isaac.orbit.assets.config.anymal import ANYMAL_C_CFG
from omni.isaac.orbit.scene import InteractiveScene, InteractiveSceneCfg from omni.isaac.orbit.scene import InteractiveScene, InteractiveSceneCfg
from omni.isaac.orbit.sensors import RayCasterCfg, patterns from omni.isaac.orbit.sensors import RayCasterCfg, patterns
from omni.isaac.orbit.utils import configclass from omni.isaac.orbit.utils import configclass
##
# Pre-defined configs
##
from omni.isaac.orbit_assets.anymal import ANYMAL_C_CFG # isort:skip
@configclass @configclass
class SensorsSceneCfg(InteractiveSceneCfg): class SensorsSceneCfg(InteractiveSceneCfg):
......
...@@ -35,7 +35,6 @@ import carb ...@@ -35,7 +35,6 @@ import carb
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import AssetBaseCfg from omni.isaac.orbit.assets import AssetBaseCfg
from omni.isaac.orbit.assets.config.anymal import ANYMAL_C_CFG
from omni.isaac.orbit.scene import InteractiveScene, InteractiveSceneCfg from omni.isaac.orbit.scene import InteractiveScene, InteractiveSceneCfg
from omni.isaac.orbit.sensors.ray_caster import RayCasterCfg, patterns from omni.isaac.orbit.sensors.ray_caster import RayCasterCfg, patterns
from omni.isaac.orbit.sim import SimulationContext from omni.isaac.orbit.sim import SimulationContext
...@@ -43,6 +42,11 @@ from omni.isaac.orbit.terrains import TerrainImporterCfg ...@@ -43,6 +42,11 @@ from omni.isaac.orbit.terrains import TerrainImporterCfg
from omni.isaac.orbit.utils import configclass from omni.isaac.orbit.utils import configclass
from omni.isaac.orbit.utils.timer import Timer from omni.isaac.orbit.utils.timer import Timer
##
# Pre-defined configs
##
from omni.isaac.orbit_assets.anymal import ANYMAL_C_CFG # isort: skip
@configclass @configclass
class MySceneCfg(InteractiveSceneCfg): class MySceneCfg(InteractiveSceneCfg):
......
...@@ -46,9 +46,14 @@ from omni.isaac.core.utils.viewports import set_camera_view ...@@ -46,9 +46,14 @@ from omni.isaac.core.utils.viewports import set_camera_view
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import Articulation from omni.isaac.orbit.assets import Articulation
from omni.isaac.orbit.assets.config.anymal import ANYMAL_C_CFG
from omni.isaac.orbit.sensors.contact_sensor import ContactSensor, ContactSensorCfg from omni.isaac.orbit.sensors.contact_sensor import ContactSensor, ContactSensorCfg
##
# Pre-defined configs
##
from omni.isaac.orbit_assets.anymal import ANYMAL_C_CFG # isort:skip
""" """
Helpers Helpers
""" """
......
...@@ -47,9 +47,9 @@ simulation_app = app_launcher.app ...@@ -47,9 +47,9 @@ simulation_app = app_launcher.app
"""Rest everything follows.""" """Rest everything follows."""
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import AssetBaseCfg from omni.isaac.orbit.assets import AssetBaseCfg
from omni.isaac.orbit.assets.config.anymal import ANYMAL_C_CFG
from omni.isaac.orbit.markers import VisualizationMarkers from omni.isaac.orbit.markers import VisualizationMarkers
from omni.isaac.orbit.markers.config import FRAME_MARKER_CFG from omni.isaac.orbit.markers.config import FRAME_MARKER_CFG
from omni.isaac.orbit.scene import InteractiveScene, InteractiveSceneCfg from omni.isaac.orbit.scene import InteractiveScene, InteractiveSceneCfg
...@@ -59,6 +59,11 @@ from omni.isaac.orbit.terrains import TerrainImporterCfg ...@@ -59,6 +59,11 @@ from omni.isaac.orbit.terrains import TerrainImporterCfg
from omni.isaac.orbit.utils import configclass from omni.isaac.orbit.utils import configclass
from omni.isaac.orbit.utils.timer import Timer from omni.isaac.orbit.utils.timer import Timer
##
# Pre-defined configs
##
from omni.isaac.orbit_assets.anymal import ANYMAL_C_CFG # isort:skip
def quat_from_euler_rpy(roll, pitch, yaw, degrees=False): def quat_from_euler_rpy(roll, pitch, yaw, degrees=False):
"""Converts Euler XYZ to Quaternion (w, x, y, z).""" """Converts Euler XYZ to Quaternion (w, x, y, z)."""
......
[package]
# Semantic Versioning is used: https://semver.org/
version = "0.1.0"
# Description
title = "ORBIT Assets"
description="Extension containing configuration instances of different assets and sensors"
readme = "docs/README.md"
repository = "https://github.com/NVIDIA-Omniverse/Orbit"
category = "robotics"
keywords = ["kit", "robotics", "assets", "orbit"]
[dependencies]
"omni.isaac.orbit" = {}
# Main python module this extension provides.
[[python.module]]
name = "omni.isaac.orbit_assets"
For Orbit, we primarily store assets on the Omniverse Nucleus server. However, at times, it may be
needed to store the assets locally (for debugging purposes). In such cases, this directory can be
used for temporary hosting of assets.
Inside the `data` directory, we recommend following the same structure as our Nucleus directory
`Isaac/Samples/Orbit`. Please check the extension's README for further details.
Changelog
---------
0.1.0 (2023-12-20)
~~~~~~~~~~~~~~~~~~
Added
^^^^^
* Moved all assets' configuration from ``omni.isaac.orbit`` to ``omni.isaac.orbit_assets`` extension.
# Orbit: Assets for Robots and Objects
This extension contains configurations for various assets and sensors. The configuration instances are
used to spawn and configure the instances in the simulation. They are passed to their corresponding
classes during construction.
## Organizing custom assets
For Orbit, we primarily store assets on the Omniverse Nucleus server. However, at times, it may be
needed to store the assets locally (for debugging purposes). In such cases, the extension's `data`
directory can be used for temporary hosting of assets.
Inside the `data` directory, we recommend following the same structure as our Nucleus directory
`Isaac/Samples/Orbit`. This helps us later to move these assets to the Nucleus server seamlessly.
The recommended directory structure inside `data` is as follows:
* **`Robots/<Company-Name>/<Robot-Name>`**: The USD files should be inside `<Robot-Name>` directory with
the name of the robot.
* **`Props/<Prop-Type>/<Prop-Name>`**: The USD files should be inside `<Prop-Name>` directory with the name
of the prop. This includes mounts, objects and markers.
* **`ActuatorNets/<Company-Name>`**: The actuator networks should inside `<Company-Name` directory with the
name of the actuator that it models.
* **`Policies/<Task-Name>`**: The policy should be JIT/ONNX compiled with the name `policy.pt`. It should also
contain the parameters used for training the checkpoint. This is to ensure reproducibility.
* **`Test/<Test-Name>`**: The asset used for unit testing purposes.
## Referring to the assets in your code
You can use the following snippet to refer to the assets:
```python
from omni.isaac.orbit_assets import ORBIT_ASSETS_DATA_DIR
# ANYmal-C
ANYMAL_C_USD_PATH = f"{ORBIT_ASSETS_DATA_DIR}/Robots/ANYbotics/ANYmal-C/anymal_c.usd"
# ANYmal-D
ANYMAL_D_USD_PATH = f"{ORBIT_ASSETS_DATA_DIR}/Robots/ANYbotics/ANYmal-D/anymal_d.usd"
```
# Copyright (c) 2022-2023, The ORBIT Project Developers.
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES, ETH Zurich, and University of Toronto
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
"""Package containing asset and sensor configurations."""
import os
import toml
# Conveniences to other module directories via relative paths
ORBIT_ASSETS_EXT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../../"))
"""Path to the extension source directory."""
ORBIT_ASSETS_DATA_DIR = os.path.join(ORBIT_ASSETS_EXT_DIR, "data")
"""Path to the extension data directory."""
ORBIT_ASSETS_METADATA = toml.load(os.path.join(ORBIT_ASSETS_EXT_DIR, "config", "extension.toml"))
"""Extension metadata dictionary parsed from the extension.toml file."""
# Configure the module-level variables
__version__ = ORBIT_ASSETS_METADATA["package"]["version"]
##
# Configuration for different assets.
##
from .anymal import *
from .cartpole import *
from .franka import *
from .ridgeback_franka import *
from .unitree import *
from .universal_robots import *
...@@ -21,10 +21,9 @@ Reference: ...@@ -21,10 +21,9 @@ Reference:
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.actuators import ActuatorNetLSTMCfg, DCMotorCfg from omni.isaac.orbit.actuators import ActuatorNetLSTMCfg, DCMotorCfg
from omni.isaac.orbit.assets.articulation import ArticulationCfg
from omni.isaac.orbit.utils.assets import ISAAC_ORBIT_NUCLEUS_DIR from omni.isaac.orbit.utils.assets import ISAAC_ORBIT_NUCLEUS_DIR
from ..articulation import ArticulationCfg
## ##
# Configuration - Actuators. # Configuration - Actuators.
## ##
......
# Copyright (c) 2022-2023, The ORBIT Project Developers.
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
"""Configuration for Agility robots.
The following configurations are available:
* :obj:`CASSIE_CFG`: Agility Cassie robot with simple PD controller for the legs
Reference: https://github.com/UMich-BipedLab/Cassie_Model/blob/master/urdf/cassie.urdf
"""
from __future__ import annotations
import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.actuators import ImplicitActuatorCfg
from omni.isaac.orbit.assets.articulation import ArticulationCfg
from omni.isaac.orbit.utils.assets import ISAAC_ORBIT_NUCLEUS_DIR
##
# Configuration
##
CASSIE_CFG = ArticulationCfg(
spawn=sim_utils.UsdFileCfg(
usd_path=f"{ISAAC_ORBIT_NUCLEUS_DIR}/Robots/Agility/Cassie/cassie.usd",
activate_contact_sensors=True,
rigid_props=sim_utils.RigidBodyPropertiesCfg(
disable_gravity=False,
retain_accelerations=False,
linear_damping=0.0,
angular_damping=0.0,
max_linear_velocity=1000.0,
max_angular_velocity=1000.0,
max_depenetration_velocity=1.0,
),
articulation_props=sim_utils.ArticulationRootPropertiesCfg(
enabled_self_collisions=True, solver_position_iteration_count=4, solver_velocity_iteration_count=0
),
),
init_state=ArticulationCfg.InitialStateCfg(
pos=(0.0, 0.0, 0.9),
joint_pos={
"hip_abduction_left": 0.1,
"hip_rotation_left": 0.0,
"hip_flexion_left": 1.0,
"thigh_joint_left": -1.8,
"ankle_joint_left": 1.57,
"toe_joint_left": -1.57,
"hip_abduction_right": -0.1,
"hip_rotation_right": 0.0,
"hip_flexion_right": 1.0,
"thigh_joint_right": -1.8,
"ankle_joint_right": 1.57,
"toe_joint_right": -1.57,
},
joint_vel={".*": 0.0},
),
soft_joint_pos_limit_factor=0.9,
actuators={
"legs": ImplicitActuatorCfg(
joint_names_expr=["hip_.*", "thigh_.*", "ankle_.*"],
effort_limit=200.0,
velocity_limit=10.0,
stiffness={
"hip_abduction.*": 100.0,
"hip_rotation.*": 100.0,
"hip_flexion.*": 200.0,
"thigh_joint.*": 200.0,
"ankle_joint.*": 200.0,
},
damping={
"hip_abduction.*": 3.0,
"hip_rotation.*": 3.0,
"hip_flexion.*": 6.0,
"thigh_joint.*": 6.0,
"ankle_joint.*": 6.0,
},
),
"toes": ImplicitActuatorCfg(
joint_names_expr=["toe_.*"],
effort_limit=20.0,
velocity_limit=10.0,
stiffness={
"toe_joint.*": 20.0,
},
damping={
"toe_joint.*": 1.0,
},
),
},
)
...@@ -15,10 +15,9 @@ Reference: https://github.com/frankaemika/franka_ros ...@@ -15,10 +15,9 @@ Reference: https://github.com/frankaemika/franka_ros
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.actuators import ImplicitActuatorCfg from omni.isaac.orbit.actuators import ImplicitActuatorCfg
from omni.isaac.orbit.assets.articulation import ArticulationCfg
from omni.isaac.orbit.utils.assets import ISAAC_ORBIT_NUCLEUS_DIR from omni.isaac.orbit.utils.assets import ISAAC_ORBIT_NUCLEUS_DIR
from ..articulation import ArticulationCfg
## ##
# Configuration # Configuration
## ##
......
...@@ -14,10 +14,9 @@ Reference: https://github.com/ridgeback/ridgeback_manipulation ...@@ -14,10 +14,9 @@ Reference: https://github.com/ridgeback/ridgeback_manipulation
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.actuators import ImplicitActuatorCfg from omni.isaac.orbit.actuators import ImplicitActuatorCfg
from omni.isaac.orbit.assets.articulation import ArticulationCfg
from omni.isaac.orbit.utils.assets import ISAAC_NUCLEUS_DIR from omni.isaac.orbit.utils.assets import ISAAC_NUCLEUS_DIR
from ..articulation import ArticulationCfg
RIDGEBACK_FRANKA_PANDA_CFG = ArticulationCfg( RIDGEBACK_FRANKA_PANDA_CFG = ArticulationCfg(
spawn=sim_utils.UsdFileCfg( spawn=sim_utils.UsdFileCfg(
usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/Clearpath/RidgebackFranka/ridgeback_franka.usd", usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/Clearpath/RidgebackFranka/ridgeback_franka.usd",
......
...@@ -16,10 +16,9 @@ Reference: https://github.com/unitreerobotics/unitree_ros ...@@ -16,10 +16,9 @@ Reference: https://github.com/unitreerobotics/unitree_ros
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.actuators import ActuatorNetMLPCfg, DCMotorCfg from omni.isaac.orbit.actuators import ActuatorNetMLPCfg, DCMotorCfg
from omni.isaac.orbit.assets.articulation import ArticulationCfg
from omni.isaac.orbit.utils.assets import ISAAC_ORBIT_NUCLEUS_DIR from omni.isaac.orbit.utils.assets import ISAAC_ORBIT_NUCLEUS_DIR
from ..articulation import ArticulationCfg
## ##
# Configuration - Actuators. # Configuration - Actuators.
## ##
......
...@@ -14,10 +14,9 @@ Reference: https://github.com/ros-industrial/universal_robot ...@@ -14,10 +14,9 @@ Reference: https://github.com/ros-industrial/universal_robot
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.actuators import ImplicitActuatorCfg from omni.isaac.orbit.actuators import ImplicitActuatorCfg
from omni.isaac.orbit.assets.articulation import ArticulationCfg
from omni.isaac.orbit.utils.assets import ISAAC_ORBIT_NUCLEUS_DIR from omni.isaac.orbit.utils.assets import ISAAC_ORBIT_NUCLEUS_DIR
from ..articulation import ArticulationCfg
## ##
# Configuration # Configuration
## ##
......
# Copyright (c) 2022-2023, The ORBIT Project Developers.
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
"""Installation script for the 'omni.isaac.orbit_assets' python package."""
import os
import toml
from setuptools import setup
# Obtain the extension data from the extension.toml file
EXTENSION_PATH = os.path.dirname(os.path.realpath(__file__))
# Read the extension.toml file
EXTENSION_TOML_DATA = toml.load(os.path.join(EXTENSION_PATH, "config", "extension.toml"))
# Installation operation
setup(
name="omni-isaac-orbit_assets",
author="ORBIT Project Developers",
maintainer="Mayank Mittal",
maintainer_email="mittalma@ethz.ch",
url=EXTENSION_TOML_DATA["package"]["repository"],
version=EXTENSION_TOML_DATA["package"]["version"],
description=EXTENSION_TOML_DATA["package"]["description"],
keywords=EXTENSION_TOML_DATA["package"]["keywords"],
include_package_data=True,
python_requires=">=3.7",
packages=["omni.isaac.orbit_assets"],
classifiers=["Natural Language :: English", "Programming Language :: Python :: 3.7"],
zip_safe=False,
)
...@@ -13,6 +13,7 @@ keywords = ["robotics", "rl", "il", "learning"] ...@@ -13,6 +13,7 @@ keywords = ["robotics", "rl", "il", "learning"]
[dependencies] [dependencies]
"omni.isaac.orbit" = {} "omni.isaac.orbit" = {}
"omni.isaac.orbit_assets" = {}
"omni.isaac.core" = {} "omni.isaac.core" = {}
"omni.isaac.gym" = {} "omni.isaac.gym" = {}
"omni.replicator.isaac" = {} "omni.replicator.isaac" = {}
......
...@@ -22,7 +22,7 @@ import omni.isaac.orbit_tasks.classic.cartpole.mdp as mdp ...@@ -22,7 +22,7 @@ import omni.isaac.orbit_tasks.classic.cartpole.mdp as mdp
## ##
# Pre-defined configs # Pre-defined configs
## ##
from omni.isaac.orbit.assets.config.cartpole import CARTPOLE_CFG # isort:skip from omni.isaac.orbit_assets.cartpole import CARTPOLE_CFG # isort:skip
## ##
......
...@@ -10,7 +10,7 @@ from omni.isaac.orbit_tasks.locomotion.velocity.velocity_env_cfg import Locomoti ...@@ -10,7 +10,7 @@ from omni.isaac.orbit_tasks.locomotion.velocity.velocity_env_cfg import Locomoti
## ##
# Pre-defined configs # Pre-defined configs
## ##
from omni.isaac.orbit.assets.config.anymal import ANYMAL_B_CFG # isort: skip from omni.isaac.orbit_assets import ANYMAL_B_CFG # isort: skip
@configclass @configclass
......
...@@ -10,7 +10,7 @@ from omni.isaac.orbit_tasks.locomotion.velocity.velocity_env_cfg import Locomoti ...@@ -10,7 +10,7 @@ from omni.isaac.orbit_tasks.locomotion.velocity.velocity_env_cfg import Locomoti
## ##
# Pre-defined configs # Pre-defined configs
## ##
from omni.isaac.orbit.assets.config.anymal import ANYMAL_C_CFG # isort: skip from omni.isaac.orbit_assets.anymal import ANYMAL_C_CFG # isort: skip
@configclass @configclass
......
...@@ -10,7 +10,7 @@ from omni.isaac.orbit_tasks.locomotion.velocity.velocity_env_cfg import Locomoti ...@@ -10,7 +10,7 @@ from omni.isaac.orbit_tasks.locomotion.velocity.velocity_env_cfg import Locomoti
## ##
# Pre-defined configs # Pre-defined configs
## ##
from omni.isaac.orbit.assets.config.anymal import ANYMAL_D_CFG # isort: skip from omni.isaac.orbit_assets.anymal import ANYMAL_D_CFG # isort: skip
@configclass @configclass
......
...@@ -13,7 +13,7 @@ from omni.isaac.orbit_tasks.locomotion.velocity.velocity_env_cfg import Locomoti ...@@ -13,7 +13,7 @@ from omni.isaac.orbit_tasks.locomotion.velocity.velocity_env_cfg import Locomoti
## ##
# Pre-defined configs # Pre-defined configs
## ##
from omni.isaac.orbit.assets.config.cassie import CASSIE_CFG # isort: skip from omni.isaac.orbit_assets.cassie import CASSIE_CFG # isort: skip
@configclass @configclass
......
...@@ -10,7 +10,7 @@ from omni.isaac.orbit_tasks.locomotion.velocity.velocity_env_cfg import Locomoti ...@@ -10,7 +10,7 @@ from omni.isaac.orbit_tasks.locomotion.velocity.velocity_env_cfg import Locomoti
## ##
# Pre-defined configs # Pre-defined configs
## ##
from omni.isaac.orbit.assets.config.unitree import UNITREE_A1_CFG # isort: skip from omni.isaac.orbit_assets.unitree import UNITREE_A1_CFG # isort: skip
@configclass @configclass
......
...@@ -10,7 +10,7 @@ from omni.isaac.orbit_tasks.locomotion.velocity.velocity_env_cfg import Locomoti ...@@ -10,7 +10,7 @@ from omni.isaac.orbit_tasks.locomotion.velocity.velocity_env_cfg import Locomoti
## ##
# Pre-defined configs # Pre-defined configs
## ##
from omni.isaac.orbit.assets.config.unitree import UNITREE_GO1_CFG # isort: skip from omni.isaac.orbit_assets.unitree import UNITREE_GO1_CFG # isort: skip
@configclass @configclass
......
...@@ -10,7 +10,7 @@ from omni.isaac.orbit_tasks.locomotion.velocity.velocity_env_cfg import Locomoti ...@@ -10,7 +10,7 @@ from omni.isaac.orbit_tasks.locomotion.velocity.velocity_env_cfg import Locomoti
## ##
# Pre-defined configs # Pre-defined configs
## ##
from omni.isaac.orbit.assets.config.unitree import UNITREE_GO2_CFG # isort: skip from omni.isaac.orbit_assets.unitree import UNITREE_GO2_CFG # isort: skip
@configclass @configclass
......
...@@ -12,8 +12,7 @@ from . import joint_pos_env_cfg ...@@ -12,8 +12,7 @@ from . import joint_pos_env_cfg
## ##
# Pre-defined configs # Pre-defined configs
## ##
# isort: off from omni.isaac.orbit_assets.franka import FRANKA_PANDA_HIGH_PD_CFG # isort: skip
from omni.isaac.orbit.assets.config.franka import FRANKA_PANDA_HIGH_PD_CFG
@configclass @configclass
......
...@@ -12,8 +12,7 @@ from . import joint_pos_env_cfg ...@@ -12,8 +12,7 @@ from . import joint_pos_env_cfg
## ##
# Pre-defined configs # Pre-defined configs
## ##
# isort: off from omni.isaac.orbit_assets.franka import FRANKA_PANDA_HIGH_PD_CFG # isort: skip
from omni.isaac.orbit.assets.config.franka import FRANKA_PANDA_HIGH_PD_CFG
@configclass @configclass
......
...@@ -17,9 +17,8 @@ from omni.isaac.orbit_tasks.manipulation.lift.lift_env_cfg import LiftEnvCfg ...@@ -17,9 +17,8 @@ from omni.isaac.orbit_tasks.manipulation.lift.lift_env_cfg import LiftEnvCfg
## ##
# Pre-defined configs # Pre-defined configs
## ##
# isort: off from omni.isaac.orbit.markers.config import FRAME_MARKER_CFG # isort: skip
from omni.isaac.orbit.assets.config.franka import FRANKA_PANDA_CFG from omni.isaac.orbit_assets.franka import FRANKA_PANDA_CFG # isort: skip
from omni.isaac.orbit.markers.config import FRAME_MARKER_CFG
@configclass @configclass
......
...@@ -15,8 +15,7 @@ from omni.isaac.orbit_tasks.manipulation.reach.reach_env_cfg import ReachEnvCfg ...@@ -15,8 +15,7 @@ from omni.isaac.orbit_tasks.manipulation.reach.reach_env_cfg import ReachEnvCfg
## ##
# Pre-defined configs # Pre-defined configs
## ##
# isort: off from omni.isaac.orbit_assets import FRANKA_PANDA_CFG # isort: skip
from omni.isaac.orbit.assets.config import FRANKA_PANDA_CFG
## ##
......
...@@ -15,8 +15,7 @@ from omni.isaac.orbit_tasks.manipulation.reach.reach_env_cfg import ReachEnvCfg ...@@ -15,8 +15,7 @@ from omni.isaac.orbit_tasks.manipulation.reach.reach_env_cfg import ReachEnvCfg
## ##
# Pre-defined configs # Pre-defined configs
## ##
# isort: off from omni.isaac.orbit_assets import UR10_CFG # isort: skip
from omni.isaac.orbit.assets.config import UR10_CFG
## ##
......
...@@ -41,9 +41,13 @@ import omni.isaac.core.utils.prims as prim_utils ...@@ -41,9 +41,13 @@ import omni.isaac.core.utils.prims as prim_utils
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import Articulation from omni.isaac.orbit.assets import Articulation
from omni.isaac.orbit.assets.config import FRANKA_PANDA_CFG, UR10_CFG
from omni.isaac.orbit.utils.assets import ISAAC_NUCLEUS_DIR from omni.isaac.orbit.utils.assets import ISAAC_NUCLEUS_DIR
##
# Pre-defined configs
##
from omni.isaac.orbit_assets import FRANKA_PANDA_CFG, UR10_CFG # isort:skip
def design_scene() -> tuple[dict, list[list[float]]]: def design_scene() -> tuple[dict, list[list[float]]]:
"""Designs the scene.""" """Designs the scene."""
......
...@@ -36,9 +36,13 @@ import carb ...@@ -36,9 +36,13 @@ import carb
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import Articulation from omni.isaac.orbit.assets import Articulation
from omni.isaac.orbit.assets.config.cassie import CASSIE_CFG
from omni.isaac.orbit.sim import SimulationContext from omni.isaac.orbit.sim import SimulationContext
##
# Pre-defined configs
##
from omni.isaac.orbit_assets.cassie import CASSIE_CFG # isort:skip
def main(): def main():
"""Main function.""" """Main function."""
......
...@@ -44,8 +44,12 @@ import omni.isaac.core.utils.prims as prim_utils ...@@ -44,8 +44,12 @@ import omni.isaac.core.utils.prims as prim_utils
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import Articulation from omni.isaac.orbit.assets import Articulation
from omni.isaac.orbit.assets.config.anymal import ANYMAL_B_CFG, ANYMAL_C_CFG, ANYMAL_D_CFG
from omni.isaac.orbit.assets.config.unitree import UNITREE_A1_CFG, UNITREE_GO1_CFG, UNITREE_GO2_CFG ##
# Pre-defined configs
##
from omni.isaac.orbit_assets.anymal import ANYMAL_B_CFG, ANYMAL_C_CFG, ANYMAL_D_CFG # isort:skip
from omni.isaac.orbit_assets.unitree import UNITREE_A1_CFG, UNITREE_GO1_CFG, UNITREE_GO2_CFG # isort:skip
def define_origins(num_origins: int, spacing: float) -> list[list[float]]: def define_origins(num_origins: int, spacing: float) -> list[list[float]]:
......
...@@ -42,9 +42,13 @@ import omni.isaac.core.utils.prims as prim_utils ...@@ -42,9 +42,13 @@ import omni.isaac.core.utils.prims as prim_utils
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import Articulation from omni.isaac.orbit.assets import Articulation
from omni.isaac.orbit.assets.config import CARTPOLE_CFG
from omni.isaac.orbit.sim import SimulationContext from omni.isaac.orbit.sim import SimulationContext
##
# Pre-defined configs
##
from omni.isaac.orbit_assets import CARTPOLE_CFG # isort:skip
def design_scene() -> tuple[dict, list[list[float]]]: def design_scene() -> tuple[dict, list[list[float]]]:
"""Designs the scene.""" """Designs the scene."""
......
...@@ -42,11 +42,15 @@ import carb ...@@ -42,11 +42,15 @@ import carb
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import ArticulationCfg, AssetBaseCfg from omni.isaac.orbit.assets import ArticulationCfg, AssetBaseCfg
from omni.isaac.orbit.assets.config import CARTPOLE_CFG
from omni.isaac.orbit.scene import InteractiveScene, InteractiveSceneCfg from omni.isaac.orbit.scene import InteractiveScene, InteractiveSceneCfg
from omni.isaac.orbit.sim import SimulationContext from omni.isaac.orbit.sim import SimulationContext
from omni.isaac.orbit.utils import configclass from omni.isaac.orbit.utils import configclass
##
# Pre-defined configs
##
from omni.isaac.orbit_assets import CARTPOLE_CFG # isort:skip
@configclass @configclass
class CartpoleSceneCfg(InteractiveSceneCfg): class CartpoleSceneCfg(InteractiveSceneCfg):
......
...@@ -50,7 +50,6 @@ import carb ...@@ -50,7 +50,6 @@ import carb
import omni.isaac.orbit.envs.mdp as mdp import omni.isaac.orbit.envs.mdp as mdp
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import ArticulationCfg, AssetBaseCfg from omni.isaac.orbit.assets import ArticulationCfg, AssetBaseCfg
from omni.isaac.orbit.assets.config.anymal import ANYMAL_C_CFG
from omni.isaac.orbit.envs import BaseEnv, BaseEnvCfg from omni.isaac.orbit.envs import BaseEnv, BaseEnvCfg
from omni.isaac.orbit.managers import ObservationGroupCfg as ObsGroup from omni.isaac.orbit.managers import ObservationGroupCfg as ObsGroup
from omni.isaac.orbit.managers import ObservationTermCfg as ObsTerm from omni.isaac.orbit.managers import ObservationTermCfg as ObsTerm
...@@ -67,6 +66,7 @@ from omni.isaac.orbit.utils.noise import AdditiveUniformNoiseCfg as Unoise ...@@ -67,6 +66,7 @@ from omni.isaac.orbit.utils.noise import AdditiveUniformNoiseCfg as Unoise
# Pre-defined configs # Pre-defined configs
## ##
from omni.isaac.orbit.terrains.config.rough import ROUGH_TERRAINS_CFG # isort: skip from omni.isaac.orbit.terrains.config.rough import ROUGH_TERRAINS_CFG # isort: skip
from omni.isaac.orbit_assets.anymal import ANYMAL_C_CFG # isort: skip
## ##
......
...@@ -49,11 +49,15 @@ import carb ...@@ -49,11 +49,15 @@ import carb
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import ArticulationCfg, AssetBaseCfg from omni.isaac.orbit.assets import ArticulationCfg, AssetBaseCfg
from omni.isaac.orbit.assets.config.anymal import ANYMAL_C_CFG
from omni.isaac.orbit.scene import InteractiveScene, InteractiveSceneCfg from omni.isaac.orbit.scene import InteractiveScene, InteractiveSceneCfg
from omni.isaac.orbit.sensors import CameraCfg, ContactSensorCfg, RayCasterCfg, patterns from omni.isaac.orbit.sensors import CameraCfg, ContactSensorCfg, RayCasterCfg, patterns
from omni.isaac.orbit.utils import configclass from omni.isaac.orbit.utils import configclass
##
# Pre-defined configs
##
from omni.isaac.orbit_assets.anymal import ANYMAL_C_CFG # isort: skip
@configclass @configclass
class SensorsSceneCfg(InteractiveSceneCfg): class SensorsSceneCfg(InteractiveSceneCfg):
......
...@@ -41,12 +41,16 @@ import torch ...@@ -41,12 +41,16 @@ import torch
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
import omni.isaac.orbit.utils.math as math_utils import omni.isaac.orbit.utils.math as math_utils
from omni.isaac.orbit.assets import Articulation from omni.isaac.orbit.assets import Articulation
from omni.isaac.orbit.assets.config.anymal import ANYMAL_C_CFG
from omni.isaac.orbit.markers import VisualizationMarkers from omni.isaac.orbit.markers import VisualizationMarkers
from omni.isaac.orbit.markers.config import FRAME_MARKER_CFG from omni.isaac.orbit.markers.config import FRAME_MARKER_CFG
from omni.isaac.orbit.sensors import FrameTransformer, FrameTransformerCfg, OffsetCfg from omni.isaac.orbit.sensors import FrameTransformer, FrameTransformerCfg, OffsetCfg
from omni.isaac.orbit.sim import SimulationContext from omni.isaac.orbit.sim import SimulationContext
##
# Pre-defined configs
##
from omni.isaac.orbit_assets.anymal import ANYMAL_C_CFG # isort:skip
def define_sensor() -> FrameTransformer: def define_sensor() -> FrameTransformer:
"""Defines the FrameTransformer sensor to add to the scene.""" """Defines the FrameTransformer sensor to add to the scene."""
......
...@@ -46,7 +46,6 @@ import carb ...@@ -46,7 +46,6 @@ import carb
import omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.sim as sim_utils
from omni.isaac.orbit.assets import AssetBaseCfg from omni.isaac.orbit.assets import AssetBaseCfg
from omni.isaac.orbit.assets.config import FRANKA_PANDA_HIGH_PD_CFG, UR10_CFG
from omni.isaac.orbit.controllers import DifferentialIKController, DifferentialIKControllerCfg from omni.isaac.orbit.controllers import DifferentialIKController, DifferentialIKControllerCfg
from omni.isaac.orbit.managers import SceneEntityCfg from omni.isaac.orbit.managers import SceneEntityCfg
from omni.isaac.orbit.markers import VisualizationMarkers from omni.isaac.orbit.markers import VisualizationMarkers
...@@ -56,6 +55,11 @@ from omni.isaac.orbit.utils import configclass ...@@ -56,6 +55,11 @@ from omni.isaac.orbit.utils import configclass
from omni.isaac.orbit.utils.assets import ISAAC_NUCLEUS_DIR from omni.isaac.orbit.utils.assets import ISAAC_NUCLEUS_DIR
from omni.isaac.orbit.utils.math import subtract_frame_transforms from omni.isaac.orbit.utils.math import subtract_frame_transforms
##
# Pre-defined configs
##
from omni.isaac.orbit_assets import FRANKA_PANDA_HIGH_PD_CFG, UR10_CFG # isort:skip
@configclass @configclass
class TableTopSceneCfg(InteractiveSceneCfg): class TableTopSceneCfg(InteractiveSceneCfg):
......
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