Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Question] Spawn different asset in different environment #186

Closed
taochenshh opened this issue Jan 5, 2024 · 8 comments · Fixed by #1164
Closed

[Question] Spawn different asset in different environment #186

taochenshh opened this issue Jan 5, 2024 · 8 comments · Fixed by #1164
Assignees
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@taochenshh
Copy link

How can I spawn different assets (for example, objects with different shapes) in different environment using the current version of Orbit?

@Mayankm96
Copy link
Contributor

Mayankm96 commented Jan 8, 2024

Hi,

This is not readily supported. However, it should not be that difficult to make it work.

Currently, all spawners are decorated with clone decorator. This handles cloning a single object into multiple environments. If you do not want to do this, then you can simply remove the decorator and make a custom function that handles spawning over multiple environments.

An example of the pseudo-code:

from omni.isaac.orbit.sim.spawners.from_files import _spawn_from_usd_file

def spawn_from_multiple_usd(
    prim_path: str,
    my_asset_list: list[from_files_cfg.UsdFileCfg],
    translation: tuple[float, float, float] | None = None,
    orientation: tuple[float, float, float, float] | None = None,
) -> Usd.Prim:
        # resolve: {SPAWN_NS}/AssetName
        # note: this assumes that the spawn namespace already exists in the stage
        root_path, asset_path = prim_path.rsplit("/", 1)
        # check if input is a regex expression
        # note: a valid prim path can only contain alphanumeric characters, underscores, and forward slashes
        is_regex_expression = re.match(r"^[a-zA-Z0-9/_]+$", root_path) is None

        # resolve matching prims for source prim path expression
        if is_regex_expression and root_path != "":
            source_prim_paths = find_matching_prim_paths(root_path)
            # if no matching prims are found, raise an error
            if len(source_prim_paths) == 0:
                raise RuntimeError(
                    f"Unable to find source prim path: '{root_path}'. Please create the prim before spawning."
                )
        else:
            source_prim_paths = [root_path]

        # resolve prim paths for spawning
        prim_paths = [f"{source_prim_path}/{asset_path}" for source_prim_path in source_prim_paths]
        # spawn asset from the given usd file
        for prim_path in prim_paths:
            # sample the asset config to load
            cfg = random.choice(my_asset_list)
            # load the asset
            prim = _spawn_from_usd_file(prim_path, cfg.usd_path, cfg, translation, orientation)
        
        return prim

@Mayankm96 Mayankm96 added the enhancement New feature or request label Jan 9, 2024
@Mayankm96
Copy link
Contributor

Mayankm96 commented Feb 14, 2024

Hi guys,

This is still in the works, but we made a minimal example of doing this operation nicely and efficiently. I wanted to share this progress here since it may be blocking some of you.

The attached script has two functions, spawn_multi_object_randomly and spawn_multi_object_randomly_sdf. The former is akin to the pseudo-code I posted above (based on USD APIs), while the latter uses Sdf APIs. With USD APIs, we saw that it takes 45 seconds to create 2048 objects. However, with Sdf APIs, it takes 2.15 seconds for the same number of objects.

The script demonstrates the following:

  1. Spawn different objects in different environments
  2. Randomize the material color of the object in each environment

This is what the output looks like:

random

You can place the script from this zip file inside the directory source/standalone/demos/multi_object.py and execute it as:

./orbit.sh -p source/standalone/demos/multi_object.py --num_envs 2048

You can do all kind of variations of this spawning based on the code here. Hope this helps getting started with it!

EDIT (14.05.2024): Please make sure to set the flag replicate_physics as False in the interactive scene.

@melecmat
Copy link

Mass properties randomization

Hi, first of all thanks for the code above, I am relying on this piece of code heavily at the moment.

I wanted to try out randomization of mass distribution through setting center of mass. My code runs in the with Sdf.ChangeBlock(): section of the script above.

def set_random_mass(env_spec, prim_path, box_dimensions, mass_range=(2, 25), sigma_percent=2):
    """
    Sets the mass values as well as the center of mass.
    """
    length_dir = random.gauss(0., box_dimensions[0] * sigma_percent)
    width_dir =  random.gauss(0., box_dimensions[1] * sigma_percent)

    center_of_mass = env_spec.GetAttributeAtPath(prim_path + ".physics:centerOfMass")
    if center_of_mass is None:
        center_of_mass = Sdf.AttributeSpec(env_spec, "physics:centerOfMass", Sdf.ValueTypeNames.Double3)
    center_of_mass.default = Gf.Vec3d(length_dir, width_dir, 0.)
    mass = env_spec.GetAttributeAtPath(prim_path + ".physics:mass")
    if mass is None:
        mass = Sdf.AttributeSpec(env_spec, "physics:mass", Sdf.ValueTypeNames.Double)
    mass.default = random.uniform(*mass_range)

However it does not work. If I run the script without Fabric, I see the values set correctly in the GUI and even the mass debug view. If I then edit any of the values a little bit through GUI, everything starts working. I feel like I must be missing some physics update step after setting the values. Does anyone know what to do here?

@Mayankm96 Mayankm96 pinned this issue Jul 9, 2024
@Mayankm96
Copy link
Contributor

@melecmat Do you call the above method at the spawn time (i.e. before sim.reset() gets called)?

@luigiberducci
Copy link

Hi, I am trying the randomization of the center of mass of an articulation through sdf API. However, I am struggling in finding a way to access the mass property of the robot base.

Do you have any suggestions or examples to help me understand how to implement it?

Thanks a lot!

@masoudmoghani masoudmoghani unpinned this issue Jul 11, 2024
@masoudmoghani masoudmoghani pinned this issue Jul 11, 2024
@Ashutosh781
Copy link

@Mayankm96
Hi, I am using the above code to spawn different USD files in different environments for legged robots. I am facing an issue wherein if my USD files have different structure: for example different dof robots, or even just different number of Xforms; the articulation is not initialized properly. I noticed that the InteractiveScene keeps just one object of the articulation class type.

Is there some way to work with the current code to spawn different USD files with different articulations in the environments? Any help or suggestion on this would be really helpful, thanks.

@animesh-garg animesh-garg unpinned this issue Jul 19, 2024
@animesh-garg animesh-garg pinned this issue Jul 19, 2024
@daichi-3110
Copy link

Hi, I am trying to get position and orientation of these different objects.
Can I obtain these object poses like "pos = self.object.data.root_pos_w" ?

Thank you very much

@Abdullah-AIST
Copy link

Abdullah-AIST commented Aug 26, 2024

Collision Not working as expected

Solved by setting "replicate_physics" to False in interactive scene cfg

Thank you for the great utility.
Unfortunately, collision doesn't seem working properly with some objects floating or penetrating each others.
The colliders looks fine. So I wonder where the problem originates?

image
image

for reproducing the error:
multi_object.zip

@isaac-sim isaac-sim locked and limited conversation to collaborators Oct 2, 2024
@Dhoeller19 Dhoeller19 converted this issue into discussion #1096 Oct 2, 2024
Mayankm96 added a commit that referenced this issue Oct 9, 2024
#1164)

# Description

This MR adds configuration classes that allow spawning different assets
at the resolved prim paths. For instance, for the prim path expression
"/World/envs/env_.*/Object", these configuration instances allow
spawning a different type of prim at individual path locations.

Fixes #186

## 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
`./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
- [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

---------

Signed-off-by: Mayank Mittal <12863862+Mayankm96@users.noreply.github.com>
Co-authored-by: David Hoeller <dhoeller@nvidia.com>
@Mayankm96 Mayankm96 unpinned this issue Oct 9, 2024
gonzalesMK pushed a commit to EESC-LabRoM/IsaacLab that referenced this issue Oct 14, 2024
* Updates pre-merge and post-merge CI (isaac-sim#1118)

# Description

- Improving CI code formatting and readability
- Updated AMI: nvidia-container-toolkit vulnerability fix
- Making Isaac SIM base image an argument in Dockerfile

---------

Co-authored-by: Alexander Poddubny <apoddubny@apoddubny-mlt.client.nvidia.com>
Co-authored-by: David Hoeller <dhoeller@nvidia.com>

* Adds buildspec for mirroring job (isaac-sim#1177)

# Description

Adding a buildspec for repo mirroring job:
- Mirrors a branch
- Uses personal github token
- Target repo and branch names are coming from env variables
- Pushing code with force

* Fix Cartpole Manager-based Vision-Based Environment Task Name in Docs (isaac-sim#1176)

# Description

Name of Cartpole Manager-based Vision-Based was incorrect in docs,
changed to match the exact argument that should be passed as task to
workflows

## Type of change
- Bug fix (non-breaking change which fixes an issue)
- 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
- [x] 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

* Fixes Isaac Sim executable on pip installation (isaac-sim#1172)

# Description

This PR fix isaac-sim#831 by taking
into account the Isaac Sim installation using PIP

- 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
- [ ] 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

* Fixes the event for randomizing rigid body material (isaac-sim#1140)

# Description

The current friction randomization event only selects a single random
number in the given range and does not vary them. With the given PR,
this is getting fixed, and there is a sampling of the entire given
range.

## Type of change

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

## Screenshots

| Before | After |
| ------ | ----- |
| ![Screenshot from 2024-10-03
22-26-49](https://github.com/user-attachments/assets/d13f86ee-c776-4046-af2e-46be8f271a00)
| ![Screenshot from 2024-10-03
22-27-15](https://github.com/user-attachments/assets/cf0a536d-20d0-47f1-b580-25241049cdd4)
|


## 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
- [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: Mayank Mittal <mittalma@leggedrobotics.com>

* Adds configuration classes for spawning different assets at prim paths (isaac-sim#1164)

# Description

This MR adds configuration classes that allow spawning different assets
at the resolved prim paths. For instance, for the prim path expression
"/World/envs/env_.*/Object", these configuration instances allow
spawning a different type of prim at individual path locations.

Fixes isaac-sim#186

## 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
`./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
- [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

---------

Signed-off-by: Mayank Mittal <12863862+Mayankm96@users.noreply.github.com>
Co-authored-by: David Hoeller <dhoeller@nvidia.com>

* Moves codebuild pipeline files to `.aws` directory (isaac-sim#1196)

# Description

Moving codebuild pipelines out of github folder to avoid github actions
being triggered on them.

* Fixes the ray_caster_camera tutorial script when saving the data (isaac-sim#1198)

There was a minor error in the `run_ray_caster_camera.py` tutorial
script that prevented it from saving images.

- [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
- [X] 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

* Fixes running the docker container when the DISPLAY env variable is not defined (isaac-sim#1163)

# Description

This PR attempts to fix isaac-sim#1162 by adding the possibility to do not pass
the `DISPLAY` env to the docker exec command if the variable is not
defined

Fixes isaac-sim#1162

## 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
- [ ] 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

* Fixes default joint pos when setting joint limits (isaac-sim#1040)

# Description

When setting joint limits, the existing default joint positions can fall
outside of the bounds of the new joint limits. This change clips the
default joint positions to ensure they are within the bounds of the new
limits.

## 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
- [x] 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
- [ ] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there

* Adds benchmark script to measure robot loading (isaac-sim#1195)

# Description

This MR makes a minimal script to measure how long it takes to load
different robots.

## Type of change

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

## Screenshots

For loading 2048 robots headless:

| **Metric** | **H1** | **G1** | **Anymal_D** |

|-------------------|-------------------|-------------------|-------------------|
| App start time | 3791.73 ms | 3660.98 ms | 3597.30 ms |
| Imports time | 1116.61 ms | 1132.87 ms | 1142.27 ms |
| Scene creation time | 1584.14 ms | 1674.18 ms | 2000.40 ms |
| Sim start time | 1451.94 ms | 2647.43 ms | 1778.49 ms |
| Per step time | 2.31 ms | 4.71 ms | 3.67 ms |

Computer specs:

* OS: Ubuntu 20.04.6 LTS x86_64 
* CPU: 12th Gen Intel i9-12900K (24) @ 5.100GHz 
* GPU: NVIDIA 4090 RTX

## 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

* Fixes formatting issues in the robot loading benchmark script

* Fixes device propogation for noise and adds noise tests (isaac-sim#1175)

# Description

This PR adds in logic to fix errors when noise config parameters are
tensor based and do not have the correct device setting. This adds a
check at the beginning of each noise function to correct the config
parameters device if they are torch.tensors. In addition this PR adds
tests for noise models.

## 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`
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] 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

* Removes extension startup messages from the Simulation App (isaac-sim#1217)

# Description

This MR disables terminal spamming when launching the app. With the flag
`/app/enableStdoutOutput` disabled, we no longer have the app output
when the kit extensions are startup.

Fixes isaac-sim#1097, isaac-sim#196

## Type of change

- Breaking change (fix or feature that would cause existing
functionality to not work as expected)

## Screenshots

```
./isaaclab.sh -p source/standalone/environments/zero_agent.py --task Isaac-Velocity-Rough-Anymal-C-v0 --num_envs 32
```

Output:

```
[INFO] Using python from: /home/mayank/mambaforge/envs/isaaclab-rsl/bin/python                                                   
[INFO][AppLauncher]: Loading experience file: /home/mayank/git_nv/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/app/../../../../../../apps/isaaclab.python.kit
Loading user config located at: '/media/vulcan/packman-repo/chk/kit-kernel/106.1.0+release.140981.10a4b5c0.gl.linux-x86_64.release/data/Kit/Isaac-Sim/4.2/user.config.json'
[Info] [carb] Logging to file: /media/vulcan/packman-repo/chk/kit-kernel/106.1.0+release.140981.10a4b5c0.gl.linux-x86_64.release/logs/Kit/Isaac-Sim/4.2/kit_20241011_180901.log
2024-10-11 16:09:01 [0ms] [Warning] [omni.kit.app.plugin] No crash reporter present, dumps uploading isn't available.

|---------------------------------------------------------------------------------------------|
| Driver Version: 535.183.01    | Graphics API: Vulkan
|=============================================================================================|
| GPU | Name                             | Active | LDA | GPU Memory | Vendor-ID | LUID       |
|     |                                  |        |     |            | Device-ID | UUID       |
|     |                                  |        |     |            | Bus-ID    |            |
|---------------------------------------------------------------------------------------------|
| 0   | NVIDIA RTX A6000                 | Yes: 0 |     | 49386   MB | 10de      | 0          |
|     |                                  |        |     |            | 2230      | bffafd0e.. |
|     |                                  |        |     |            | 68        |            |
|=============================================================================================|
| OS: 20.04.6 LTS (Focal Fossa) ubuntu, Version: 20.04.6, Kernel: 5.15.0-122-generic
| XServer Vendor: The X.Org Foundation, XServer Version: 12013000 (1.20.13.0)
| Processor: Intel(R) Core(TM) i9-9820X CPU @ 3.30GHz | Cores: 10 | Logical: 20
|---------------------------------------------------------------------------------------------|
| Total Memory (MB): 63970 | Free Memory: 41524
| Total Page/Swap (MB): 2047 | Free Page/Swap: 2047
|---------------------------------------------------------------------------------------------|
2024-10-11 16:09:07 [6,565ms] [Warning] [omni.replicator.core.scripts.annotators] Annotator PostProcessDispatch is already registered, overwriting annotator template
2024-10-11 16:09:08 [7,613ms] [Warning] [omni.kit.widget.cache_indicator.cache_state_menu] Unable to detect Omniverse Cache Server. Consider installing it for better IO performance.
[INFO]: Parsing configuration from: <class 'omni.isaac.lab_tasks.manager_based.locomotion.velocity.config.anymal_c.rough_env_cfg.AnymalCRoughEnvCfg'>
2024-10-11 16:09:17 [16,685ms] [Warning] [omni.isaac.lab.envs.manager_based_env] Seed not set for the environment. The environment creation may not be deterministic.
[INFO]: Base environment:
    Environment device    : cuda:0
    Environment seed      : None
    Physics step-size     : 0.005
    Rendering step-size   : 0.02
    Environment step-size : 0.02
[INFO] Generating terrains based on curriculum took : 1.881988 seconds
[INFO]: Time taken for scene creation : 4.564743 seconds
[INFO]: Scene manager:  <class InteractiveScene>
    Number of environments: 32
    Environment spacing   : 2.5
    Source prim name      : /World/envs/env_0
    Global prim paths     : ['/World/ground']
    Replicate physics     : True
[INFO]: Starting the simulation. This may take a few seconds. Please wait...
2024-10-11 16:09:29 [27,861ms] [Warning] [omni.hydra.scene_delegate.plugin] Calling getBypassRenderSkelMeshProcessing for prim /World/envs/env_0/Robot/LF_THIGH/visuals.proto_mesh_1_id1 that has not been populated
2024-10-11 16:09:29 [27,880ms] [Warning] [omni.hydra] Mesh '/World/envs/env_0/Robot/base/visuals.proto_mesh_0_id0' has corrupted data in primvar 'st': buffer size 702 doesn't match expected size 12828 in faceVarying primvars
[INFO]: Time taken for simulation start : 7.193578 seconds
[INFO] Command Manager:  <CommandManager> contains 1 active terms.
+------------------------------------------------+
|              Active Command Terms              |
+-------+---------------+------------------------+
| Index | Name          |          Type          |
+-------+---------------+------------------------+
|   0   | base_velocity | UniformVelocityCommand |
+-------+---------------+------------------------+

[INFO] Action Manager:  <ActionManager> contains 1 active terms.
+------------------------------------+
|  Active Action Terms (shape: 12)   |
+--------+-------------+-------------+
| Index  | Name        |   Dimension |
+--------+-------------+-------------+
|   0    | joint_pos   |          12 |
+--------+-------------+-------------+

Module omni.isaac.lab.utils.warp.kernels 6cb40f6 load on device 'cuda:0' took 0.44 ms
[INFO] Observation Manager: <ObservationManager> contains 1 groups.
+----------------------------------------------------------+
| Active Observation Terms in Group: 'policy' (shape: (235,)) |
+-----------+--------------------------------+-------------+
|   Index   | Name                           |    Shape    |
+-----------+--------------------------------+-------------+
|     0     | base_lin_vel                   |     (3,)    |
|     1     | base_ang_vel                   |     (3,)    |
|     2     | projected_gravity              |     (3,)    |
|     3     | velocity_commands              |     (3,)    |
|     4     | joint_pos                      |    (12,)    |
|     5     | joint_vel                      |    (12,)    |
|     6     | actions                        |    (12,)    |
|     7     | height_scan                    |    (187,)   |
+-----------+--------------------------------+-------------+

[INFO] Event Manager:  <EventManager> contains 3 active terms.
+--------------------------------------+
| Active Event Terms in Mode: 'startup' |
+----------+---------------------------+
|  Index   | Name                      |
+----------+---------------------------+
|    0     | physics_material          |
|    1     | add_base_mass             |
+----------+---------------------------+
+---------------------------------------+
|  Active Event Terms in Mode: 'reset'  |
+--------+------------------------------+
| Index  | Name                         |
+--------+------------------------------+
|   0    | base_external_force_torque   |
|   1    | reset_base                   |
|   2    | reset_robot_joints           |
+--------+------------------------------+
+----------------------------------------------+
|    Active Event Terms in Mode: 'interval'    |
+-------+------------+-------------------------+
| Index | Name       | Interval time range (s) |
+-------+------------+-------------------------+
|   0   | push_robot |       (10.0, 15.0)      |
+-------+------------+-------------------------+

[INFO] Termination Manager:  <TerminationManager> contains 2 active terms.
+---------------------------------+
|     Active Termination Terms    |
+-------+--------------+----------+
| Index | Name         | Time Out |
+-------+--------------+----------+
|   0   | time_out     |   True   |
|   1   | base_contact |  False   |
+-------+--------------+----------+

[INFO] Reward Manager:  <RewardManager> contains 11 active terms.
+-----------------------------------------+
|           Active Reward Terms           |
+-------+----------------------+----------+
| Index | Name                 |   Weight |
+-------+----------------------+----------+
|   0   | track_lin_vel_xy_exp |      1.0 |
|   1   | track_ang_vel_z_exp  |      0.5 |
|   2   | lin_vel_z_l2         |     -2.0 |
|   3   | ang_vel_xy_l2        |    -0.05 |
|   4   | dof_torques_l2       |   -1e-05 |
|   5   | dof_acc_l2           | -2.5e-07 |
|   6   | action_rate_l2       |    -0.01 |
|   7   | feet_air_time        |    0.125 |
|   8   | undesired_contacts   |     -1.0 |
|   9   | flat_orientation_l2  |      0.0 |
|   10  | dof_pos_limits       |      0.0 |
+-------+----------------------+----------+

[INFO] Curriculum Manager:  <CurriculumManager> contains 1 active terms.
+---------------------------+
|  Active Curriculum Terms  |
+--------+------------------+
| Index  | Name             |
+--------+------------------+
|   0    | terrain_levels   |
+--------+------------------+

Creating window for environment.
[INFO]: Completed setting up the environment...
[INFO]: Gym observation space: Dict('policy': Box(-inf, inf, (32, 235), float32))
[INFO]: Gym action space: Box(-inf, inf, (32, 12), float32)
```

## 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

* Removes additional sbatch and fixes default profile in cluster deployment (isaac-sim#1229)

# Description

In the slum workflow, currently, there was an unnecessary `sbatch`
command; this PR removes it. In addition, the profile argument was
marked as optional, but when a job was submitted, and job arguments were
passed, it became necessary. This PR fixes this behavior.

## 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
- [ ] 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

* Fixes the checkpoint loading error in RSL-RL training script (isaac-sim#1210)

# Description

An error of `No checkpoints in the directory` will throw when resume
from a previous training with `--video` set. This is because a new log
folder will be created before the check.

This MR fixes this issue by loading the checkpoint before.

Fixes isaac-sim#1209 

## 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
- [ ] 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

* Makes pre and post merge pipelines more flexible on the Isaac SIM base image version (isaac-sim#1211)

# Description

Making the base image version a parameter so the pipelines can use
different versions without the need to hardcode that.

* Disables backward pass compilation of warp kernels (isaac-sim#1222)

# Description

Many of the warp kernels don't need backward pass compilation. This MR
disables the computation of the backward passes within the kernels. This
should reduce the kernel compile times.

Reference:
https://nvidia.github.io/warp/configuration.html#kernel-settings

## 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`
- [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

* Switches from `carb` to `omni.log` for logging (isaac-sim#1215)

# Description

Earlier, we used [`Carbonite
SDK`](https://docs.omniverse.nvidia.com/kit/docs/carbonite/latest/api/dir_carb_logging.html)
to log directly. However, this has limited functionalities compared to
[`omni.log`](https://docs.omniverse.nvidia.com/kit/docs/carbonite/latest/api/namespace_omni__log.html)
in Omniverse. Using `omni.log`, you can fine-grain the channels and
print levels better.

Link to omni.log documentation:
https://docs.omniverse.nvidia.com/kit/docs/carbonite/latest/docs/omni.log/Logging.html

This MR migrates all `carb` references to the new API.

## Type of change

- Bug fix (non-breaking change which fixes an issue)
- Breaking change (fix or feature that would cause existing
functionality to not work as expected)

## Screenshot

Checking the performance:
```
./isaaclab.sh -p source/standalone/benchmarks/benchmark_load_robot.py --num_envs 2048 --robot g1 --headless
```

**Before (carb logging)**
[INFO]: App start time: 4676.57 ms
[INFO]: Imports time: 2008.77 ms
[INFO]: Scene creation time: 2966.36 ms
[INFO]: Sim start time: 5782.76 ms
[INFO]: Per step time: 15.80 ms

**After (omni.log logging)**
[INFO]: App start time: 4833.56 ms
[INFO]: Imports time: 1983.67 ms
[INFO]: Scene creation time: 2792.97 ms
[INFO]: Sim start time: 5805.97 ms
[INFO]: Per step time: 15.86 ms


## 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

* Excludes cache files from vscode explorer (isaac-sim#1131)

Small quality of life change that excludes cache files from VSCode File
Explorer when attached to sim container.

---------

Signed-off-by: Mayank Mittal <12863862+Mayankm96@users.noreply.github.com>
Co-authored-by: Alexander Poddubny <143108850+nv-apoddubny@users.noreply.github.com>
Co-authored-by: Alexander Poddubny <apoddubny@apoddubny-mlt.client.nvidia.com>
Co-authored-by: David Hoeller <dhoeller@nvidia.com>
Co-authored-by: glvov-bdai <glvov@theaiinstitute.com>
Co-authored-by: Toni-SM <aserranomuno@nvidia.com>
Co-authored-by: Pascal Roth <57946385+pascal-roth@users.noreply.github.com>
Co-authored-by: Mayank Mittal <mittalma@leggedrobotics.com>
Co-authored-by: Mayank Mittal <12863862+Mayankm96@users.noreply.github.com>
Co-authored-by: Michael Gussert <michael@gussert.com>
Co-authored-by: Giulio Romualdi <giulio.romualdi@gmail.com>
Co-authored-by: Kelly Guo <kellyg@nvidia.com>
Co-authored-by: jtigue-bdai <166445701+jtigue-bdai@users.noreply.github.com>
Co-authored-by: Wei Yang <weiy@nvidia.com>
Co-authored-by: Sergei Sergienko <divelix1@gmail.com>

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants