[pull] develop from isaac-sim:develop - #67
Merged
Merged
Conversation
# Description `isaaclab_ovphysx` was merged into `isaaclab_ov` in #6992, but `source/isaaclab_ovphysx/` still exists. It holds a single empty changelog fragment, `changelog.d/vidurv-regex-fragment-targeting.skip`, added afterwards by #6640 under the old path. The directory has no `config/extension.toml`, so the changelog compiler never treats it as a package and never consumes the fragment. It would stay forever and keep the old package name visible in the source tree. This PR deletes that fragment, which removes the directory: - **No code or config changes.** Nothing in the workspace, CI or tooling refers to the directory. - **References kept on purpose.** The remaining mentions of `isaaclab_ovphysx` are historical changelog entries and a note in the issue-audit skill that the package was merged, and they stay. ## Type of change - Repository cleanup (no user-facing change) ## Checklist - [x] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` - [x] My changes generate no new warnings - [x] I have added a changelog fragment under `source/<pkg>/changelog.d/` for every touched package (do **not** edit `CHANGELOG.rst` or bump `extension.toml` — CI handles that) - [x] I have added my name to the `CONTRIBUTORS.md` or my name already exists there ## Release backport - [x] <!-- backport-active-release --> Backport this pull request to the active release branch after it merges into `develop`
# Description Part 1 of the camera performance series (see the series list below). This part fixes a bug that also blocked the fast image path. `sensor.data.output[...]` returns a `ProxyArray`, whose `.dtype` is the Warp dtype. `mdp.image` and the Cartpole camera observations passed it straight into `normalize_camera_image`, so every `images.dtype == torch.uint8` check failed: - colorized semantic segmentation was only cast to float and reached policies as values in `[0, 255]` instead of `[0, 1]`; - the fused uint8 normalization kernel never ran. The image terms now read `.torch`. The other camera tasks that relied on the deprecated implicit `ProxyArray`-as-tensor conversion (Cartpole showcase, stack blueprint, drone ARL) do the same. ## Series 1. #8036: Read camera outputs through `ProxyArray.torch` (bug fix) (base: develop) 2. #8037: Fused normalization for strided camera images (base: #8036) 3. #8038: Skip redundant observation copies (base: #8037) 4. #8039: Remove per-step host synchronizations (base: develop) 5. #8040: Newton `render_batch` in one sensor-graph launch (base: develop) 6. #8041: RSL-RL cuDNN benchmark, mixed precision and compile settings (base: develop) 7. #8042: Kuka Allegro camera tasks on the shared image observation (base: #8038) The series is split from #7440, which remains the combined reference branch. ## Type of change - Bug fix (non-breaking change which fixes an issue) ## Validation - New `test_colorized_segmentation_is_scaled` (`mdp.image`) fails on `develop` and passes here. - The Cartpole camera observation test's fake sensor now returns a real `ProxyArray`, like actual sensors. With it, 4 of 8 cases fail on `develop` (the same segmentation bug) and all pass here. - `test_stacked_image_mdp.py`, `test_cartpole_camera_observations.py` and `test_images.py` pass. ## Series results Measured on `Isaac-Lift-KukaAllegro-Camera`, 4096 envs, Newton physics and Newton renderer, RTX PRO 6000 Blackwell, with all 7 parts applied (reference branch: #7440). | Metric | Before | After | |---|---|---| | Env step, RGB 128, one camera | 44.4 ms | 37.3 ms (+19% throughput) | | Env step, RGB 128, two cameras | 77.3 ms | 64.9 ms (+19%) | | Env step, RGB 64 | 26.8 ms | 23.6 ms (+14%) | | Env step, depth 128 | 37.3 ms | 33.7 ms (+10%) | | RSL-RL iteration, RGB 128, one camera | 3.19 s | 2.88 s (+11%), peak memory −40% | | RSL-RL iteration, RGB 128, two cameras | 6.23 s | 5.63 s (+11%), peak memory −47% | ## Release backport - [x] <!-- backport-active-release --> Backport this pull request to the active release branch after it merges into `develop`
…4470) # Description Height-field terrain origins are now chosen by their generators and returned with the discretized height field. `height_field_to_mesh` places that origin in the padded mesh. The inverted pyramid slope origin therefore lies on its center platform for any platform width, including widths below 1 m. The duplicate `height_field_to_mesh_v2` decorator and its fixed sampling-width parameter have been removed. The built-in random and wave terrains retain their center-area maximum behavior. Other terrains with a flat center platform return its actual height. Custom height-field generators using the decorator must now return `(height_field, origin)`, where `origin` is a three-element position in meters relative to the generated height field. ## Validation - Regression test failed on `develop` for both tested inverted pyramid configurations and passes with this change. - `uv run --frozen python -m pytest source/isaaclab/test/terrains/test_terrain_generator.py -q` — 10 passed. - `uv run python tools/changelog/cli.py check develop` — passed. - `uv run isaaclab -f` — passed. - `uv run --isolated --extra dev -- make -C docs current-docs` — passed without warnings. ## Type of change - Bug fix with a height-field generator return-contract change (migration described above and in the changelog fragment). ## Screenshots | Before | After | | ------ | ----- | |  |  | ## Release backport - [x] <!-- backport-active-release --> Backport this pull request to the active release branch after it merges into `develop` --------- Co-authored-by: xuxin <747302550@qq.com> Co-authored-by: Mustafa Haiderbhai <mhaiderbhai@nvidia.com>
# Description Seventh PR in the series that splits the core cleanup in #7949 into small, reviewable pieces. The test-only consolidation originally planned next is dropped, since #8022 already pruned the core tests with the test-audit skill. The series continues with source refactors, starting with `isaaclab.utils.string`. There is no behavior change. - `resolve_matching_names_values` duplicated the matching loop of `resolve_matching_names`, including its one-to-one bookkeeping, ordering, and error messages. Both now use the cached `_resolve_matching_names_impl`, which also returns the key index of each match (to pick the values) and whether every key matched (so `strict=False` still returns the partial matches). As a side effect, `resolve_matching_names_values` is now cached too; its output lists are rebuilt per call, as before. - The `preserve_order` reordering (two nested loops building a permutation) is a stable sort by key index. - `find_unique_string_name` no longer checks the `_1` candidate twice; `find_root_prim_path_from_regex` returns early. Their docstrings drop types that duplicate the annotations. - The "Not all regular expressions are matched!" message now always lists the available strings as a list (it printed a tuple for `resolve_matching_names`). ## Verification - A randomized comparison of the `develop` and PR implementations (4,000 random target/pattern sets through both resolvers with every `preserve_order` / `strict` combination, plus `find_unique_string_name` and `find_root_prim_path_from_regex`; 8,506 cases) gives identical results and exception messages, apart from the list-vs-tuple formatting above. - `test/utils/test_string.py`, `test/utils/test_dict.py`, `test/actuators`, and `test/assets/test_articulation_iface.py` pass. - The dict-subclass value-pairing regression failed before the fix and passed after it; `test/utils/test_string.py` passes (18 tests), and `uv run isaaclab -f` passes. ## Type of change - Code cleanup (non-breaking, no functional change) ## Checklist - [x] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [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 added a changelog fragment under `source/<pkg>/changelog.d/` for every touched package (`.skip`) - [x] I have added my name to the `CONTRIBUTORS.md` or my name already exists there ## Release backport - [x] <!-- backport-active-release --> Backport this pull request to the active release branch after it merges into `develop`
# Split contrib smoke tests by runtime and sample one task per family The original contrib job ran 83 environments serially in one camera-enabled Isaac Sim process. This change separates runtime requirements and intentionally runs **one representative per task package, robot directory, and runtime**. Adding variants within a family does not add smoke tests. - **Runtime routing:** `sim_launcher.scan()` selects kitless, Kit without cameras, or Kit with cameras. Kit and kitless each use two pytest workers; cameras use one process. The job has five slots and restores the RTX shader cache. - **Family grouping:** preserve the complete robot subdirectory, including OpenArm's separate unimanual and bimanual configurations. - **Representative selection:** prefer runnable rough-terrain variants to include height-scanner coverage, then the shortest task ID. Keep one visible skip for all-skipped families. There is no list of additional same-family cases. The selection contains **47 runnable environments and 4 skips**, versus 83 runnable environments and 12 skips originally. Rough-terrain representatives replace flat-terrain runs without increasing the number of tests per family. ## Validation - Registry-wide collection check confirms exactly one representative for every family/runtime, with no duplicate task IDs: 34 Kit entries (4 skipped), 11 kitless, and 6 camera entries. - The three changed representatives—bimanual OpenArm, AnymalC Direct Rough, and Digit Rough—passed local simulation smoke tests. - Formatting, lint, changelog checks, and `git diff --check` passed. No production code changed. The initial 46-case version completed CI in **6:43**, versus **24:19** on develop on the same runner type (RTX PRO 4500 Blackwell). Those timings precede the nested-robot and representative-selection changes; the final 47-case job needs a fresh CI measurement. ## Type of change - CI / test infrastructure (no user-facing change) ## Checklist - [x] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` - [x] My changes generate no new warnings - [x] I have added a changelog fragment under `source/<pkg>/changelog.d/` for every touched package (do **not** edit `CHANGELOG.rst` or bump `extension.toml` — CI handles that) - [x] I have added my name to the `CONTRIBUTORS.md` or my name already exists there ## Release backport - [x] <!-- backport-active-release --> Backport this pull request to the active release branch after it merges into `develop` --------- Co-authored-by: Octi Zhang <zhengyuz@nvidia.com>
# Description Supersedes #6029 by @PKonMagos. This carries Haptikostech's Haptikos exoskeleton documentation onto current `develop` and updates the setup instructions for the Isaac Teleop and CloudXR workflow now used by Isaac Lab. The guide now covers the matching Isaac Teleop release branch, the separately obtained Haptikos C++ API required to build the plugin, CloudXR push-device configuration, and the correct launch order. No Isaac Lab runtime code changes are included. ## Type of change - Documentation update ## Release backport - [x] <!-- backport-active-release --> Backport this pull request to the active release branch after it merges into `develop` ## Validation - [x] `uv run isaaclab -f` - [x] `uv run --isolated --extra dev -- make -C docs current-docs` (warning-free) - [x] On-demand Docker CI (`run-ci`): workflow passed; GPU jobs skipped for docs-only changes Hardware-specific Haptikos operation was not exercised locally. --------- Signed-off-by: PKontrazis <pkontrazis@themagos.com> Co-authored-by: PKontrazis <pkontrazis@themagos.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )