diff --git a/source/isaaclab/changelog.d/benchmark-scope-profiling.major.rst b/source/isaaclab/changelog.d/benchmark-scope-profiling.major.rst deleted file mode 100644 index f4c2ed705348..000000000000 --- a/source/isaaclab/changelog.d/benchmark-scope-profiling.major.rst +++ /dev/null @@ -1,33 +0,0 @@ -Added -^^^^^ - -* Added :func:`~isaaclab.benchmark.stepping.profile_physics_steps` and - :func:`~isaaclab.benchmark.stepping.profile_renderers` context managers for synchronized - runtime benchmark timings. Wrappers recorded complete calls after warmup and restored - the original methods when measurement ended, including on failure. - -Changed -^^^^^^^ - -* Restricted scope capture to tasks with a non-``None`` ``benchmark_mode``. To collect timings, - enable ``ISAACLAB_PHYSICS_PROFILE=1`` or ``ISAACLAB_RENDER_PROFILE=1`` for such a task. - Other tasks continued to produce standard runtime reports without scope profiling. - -* Included scalar physics and render profiling summaries in ``BenchmarkResult.bundle.extra`` - without changing schema version 1.4. Schema and OmniPerf output included each scope's mean, - standard deviation, maximum time per call [ms], and call count. Consumers should read - ``physics_mean_ms``, ``physics_std_ms``, ``physics_max_ms``, ``physics_calls``, and the - corresponding ``render_*`` keys for these summaries. Raw ordered samples remained in - ``/profile_timings.json`` as ``timings_ms`` pairs for local analysis instead - of parsing printed timer lines; use ``--output_path`` to select the output directory. - -* **Breaking:** Moved render profiling into the runtime benchmark through - :func:`~isaaclab.benchmark.stepping.profile_renderers`. To collect render timings with - ``ISAACLAB_RENDER_PROFILE=1``, use the runtime benchmark; normal simulation runs no longer - allocate render timers. Scene updates and output readback remained outside the timed scope. - -Deprecated -^^^^^^^^^^ - -* Deprecated ``isaaclab.renderers.render_context.RENDER_PROFILE_SCOPE``; use - :data:`~isaaclab.benchmark.stepping.RENDER_PROFILE_SCOPE` instead. diff --git a/source/isaaclab/changelog.d/camera-render-spec-paths.major.rst b/source/isaaclab/changelog.d/camera-render-spec-paths.major.rst deleted file mode 100644 index dd40abb0ae92..000000000000 --- a/source/isaaclab/changelog.d/camera-render-spec-paths.major.rst +++ /dev/null @@ -1,6 +0,0 @@ -Removed -^^^^^^^ - -* **Breaking:** Removed ``CameraRenderSpec.camera_path_relative_to_env_0``. Remove this argument - from render-spec constructors and use the absolute paths in ``camera_prim_paths`` instead. - OVRTX derived cloned camera paths from the authored source camera internally. diff --git a/source/isaaclab/changelog.d/core-cleanup-comments.skip b/source/isaaclab/changelog.d/core-cleanup-comments.skip deleted file mode 100644 index d77f90730482..000000000000 --- a/source/isaaclab/changelog.d/core-cleanup-comments.skip +++ /dev/null @@ -1 +0,0 @@ -Removed comments that restate the code and replaced empty dict()/list() calls with literals in the core package. diff --git a/source/isaaclab/changelog.d/core-cleanup-imports.skip b/source/isaaclab/changelog.d/core-cleanup-imports.skip deleted file mode 100644 index b34a285f66b4..000000000000 --- a/source/isaaclab/changelog.d/core-cleanup-imports.skip +++ /dev/null @@ -1 +0,0 @@ -Switched same-package imports in the core package to relative form up to three levels. diff --git a/source/isaaclab/changelog.d/core-cleanup-sim-terrain-fixes.minor.rst b/source/isaaclab/changelog.d/core-cleanup-sim-terrain-fixes.minor.rst deleted file mode 100644 index 116644636ab2..000000000000 --- a/source/isaaclab/changelog.d/core-cleanup-sim-terrain-fixes.minor.rst +++ /dev/null @@ -1,31 +0,0 @@ -Added -^^^^^ - -* Added :class:`~isaaclab.sim.MeshFileCfg` and :func:`~isaaclab.sim.spawn_from_mesh` to spawn a mesh from a - mesh file (e.g. ``.obj``, ``.stl``, ``.fbx``) or from in-memory triangle data - (:class:`~isaaclab.sim.MeshFileCfg.TriangleMeshCfg` or a :class:`trimesh.Trimesh` through - :class:`~isaaclab.sim.MeshFileCfg.TrimeshObjectCfg`), with optional collision, mesh collision - approximation, rigid body, mass, and material properties. - -Changed -^^^^^^^ - -* Changed :func:`~isaaclab.terrains.utils.create_prim_from_mesh` to spawn the terrain mesh with - :class:`~isaaclab.sim.MeshFileCfg`. The authored USD is unchanged, except that the ``translation`` and - ``orientation`` keyword arguments now apply to the root prim instead of its ``mesh`` child prim; the - resulting world pose is the same. - -Fixed -^^^^^ - -* Fixed the built-in :class:`~isaaclab.terrains.MeshRepeatedBoxesTerrainCfg`, - :class:`~isaaclab.terrains.MeshRepeatedCylindersTerrainCfg`, and - :class:`~isaaclab.terrains.MeshRepeatedPyramidsTerrainCfg` raising ``ValueError`` with their default - ``object_type``. The resolvable ``"module:function"`` default was looked up as ``make_`` - instead of being called. -* Fixed :func:`~isaaclab.sim.schemas.modify_articulation_root_properties` looking up the existing fixed - joint on the current stage instead of the ``stage`` argument when ``fix_root_link`` is set. -* Fixed :func:`~isaaclab.sim.utils.queries.find_global_fixed_joint_prim` raising ``AttributeError`` for an - :class:`pxr.Sdf.Path` argument. -* Fixed :class:`~isaaclab.sim.converters.MeshConverter` raising ``ValueError`` for mesh file names with - more than one dot. diff --git a/source/isaaclab/changelog.d/core-cleanup-utils-fixes.rst b/source/isaaclab/changelog.d/core-cleanup-utils-fixes.rst deleted file mode 100644 index bcb79400ea28..000000000000 --- a/source/isaaclab/changelog.d/core-cleanup-utils-fixes.rst +++ /dev/null @@ -1,15 +0,0 @@ -Fixed -^^^^^ - -* Fixed :func:`~isaaclab.utils.math.unproject_depth` building homogeneous pixel coordinates as - ``(1, u, v)`` instead of ``(u, v, 1)``, which returned wrong points and turned the first image row - into ``inf``/``nan``. This also affected :func:`~isaaclab.sensors.camera.utils.create_pointcloud_from_depth` - and :func:`~isaaclab.sensors.camera.utils.create_pointcloud_from_rgbd`. -* Fixed :func:`~isaaclab.sensors.camera.utils.create_pointcloud_from_rgbd` raising a ``TypeError`` when - ``rgb`` is a color tuple or ``None``. -* Fixed :func:`~isaaclab.utils.math.quat_slerp` negating the caller's ``q2`` tensor in place when - taking the shorter arc. -* Fixed :func:`~isaaclab.utils.sensors.convert_camera_intrinsics_to_usd` not warning about aperture - offsets when the principal point is left of or above the image center. -* Fixed :meth:`~isaaclab.utils.datasets.HDF5DatasetFileHandler.create` failing when ``file_path`` is a - bare file name without a directory. diff --git a/source/isaaclab/changelog.d/gate-checkout-only-cli-tests.skip b/source/isaaclab/changelog.d/gate-checkout-only-cli-tests.skip deleted file mode 100644 index 677b2d1bac01..000000000000 --- a/source/isaaclab/changelog.d/gate-checkout-only-cli-tests.skip +++ /dev/null @@ -1 +0,0 @@ -# Test-only change; no changelog entry or version bump. diff --git a/source/isaaclab/changelog.d/joint-wrench-frame-contract.skip b/source/isaaclab/changelog.d/joint-wrench-frame-contract.skip deleted file mode 100644 index 8c9505780d0f..000000000000 --- a/source/isaaclab/changelog.d/joint-wrench-frame-contract.skip +++ /dev/null @@ -1 +0,0 @@ -Added a shared Newton/PhysX integration check with independently calculated joint-frame forces and torques. diff --git a/source/isaaclab/changelog.d/multigpu-benchmark-check-success.rst b/source/isaaclab/changelog.d/multigpu-benchmark-check-success.rst deleted file mode 100644 index 6e1be8500275..000000000000 --- a/source/isaaclab/changelog.d/multigpu-benchmark-check-success.rst +++ /dev/null @@ -1,6 +0,0 @@ -Changed -^^^^^^^ - -* Changed ``isaaclab benchmark training_multigpu`` to accept ``--check_success`` for RSL-RL and RL-Games. - The success metric is now summed across ranks before each convergence check, so every rank stops at - the same iteration. diff --git a/source/isaaclab/changelog.d/opencv-fisheye-angular-domain.minor.rst b/source/isaaclab/changelog.d/opencv-fisheye-angular-domain.minor.rst new file mode 100644 index 000000000000..6da078b643eb --- /dev/null +++ b/source/isaaclab/changelog.d/opencv-fisheye-angular-domain.minor.rst @@ -0,0 +1,6 @@ +Added +^^^^^ + +* Added a configurable ``OpenCvFisheyeDistortionCfg.max_fov`` angular domain for Newton, + preserving the existing 180-degree default. Documented that RTX/OVRTX's native OpenCV + schema does not consume this setting and can clip rectangular sensor corners to its image circle. diff --git a/source/isaaclab/changelog.d/sdp-transform-publication.major.rst b/source/isaaclab/changelog.d/sdp-transform-publication.major.rst deleted file mode 100644 index 36c90c2c759b..000000000000 --- a/source/isaaclab/changelog.d/sdp-transform-publication.major.rst +++ /dev/null @@ -1,19 +0,0 @@ -Changed -^^^^^^^ - -* **Breaking:** Added ``transforms_version`` to scene-data backends. Custom backends must initialize - it to zero and increment it after native pose writes or buffer swaps. SDP reads the existing - ``transforms`` property through ``get_transforms(output_format)`` without resetting the version. Backends - publishing multiple native formats may override that method and ``native_transform_formats``. - ``SceneDataProvider.get_transforms`` bound shared, - read-only arrays by default: matching layouts aliased native data and other layouts converted - once per publication. Callers requiring their own writable or preallocated arrays must pass - ``allow_passthrough=False``; this wrote directly into the supplied arrays without a staging copy. -* Routed rigid Fabric conversion through SDP while the Kit rendering integration owned destination binding and - GPU hierarchy propagation, preserving native PhysX publication and authored scale. Converted rigid destinations - became Fabric-only reset-stack roots so nested bodies retained their absolute physics poses. - Transform freshness no longer depended on the physics-step counter; - ``RenderContext.reset_scene_state_cadence`` remained available for geometry updates. - ``SimulationContext.fabric_cfg`` declared the shared native Fabric stage/device without allocating bindings. -* Used native Warp structs for Fabric transform bindings, relying on the project-managed Warp - dependency selected by Isaac Lab's Kit launch configuration. diff --git a/source/isaaclab/changelog.d/shared-delay-buffer.minor.rst b/source/isaaclab/changelog.d/shared-delay-buffer.minor.rst deleted file mode 100644 index c370539ea8af..000000000000 --- a/source/isaaclab/changelog.d/shared-delay-buffer.minor.rst +++ /dev/null @@ -1,17 +0,0 @@ -Added -^^^^^ - -* Added ``delay_min_lag`` and ``delay_max_lag`` to ``ObservationTermCfg``. Lags were sampled per environment - at initialization and reset, then held for the episode by default, matching the delayed PD actuator's lag policy. -* Added ``delay_hold_prob`` for optional per-sample lag resampling. ``DelayBuffer`` owned the sampling; - retaining a lag kept latency constant as frames advanced. The default of 1.0 preserved the existing policy. -* Applied delay after observation modifiers, noise, clipping, and scaling, before history. Recorded samples - advanced only with ``update_history=True``; extra reads left delay history unchanged. -* Shared ``DelayBuffer`` between observations and existing delayed actuators, retaining the actuator API and - physics-step behavior. Added optional non-recording reads and replaced history shifting with device-indexed - ring storage, including CUDA graph replay and isolated partial resets. - -Fixed -^^^^^ - -* Fixed ``DelayBuffer.set_time_lag`` subset updates to accept both supported integer dtypes. diff --git a/source/isaaclab/changelog.d/vidurv-migrate-legacy-source-remaining.skip b/source/isaaclab/changelog.d/vidurv-migrate-legacy-source-remaining.skip deleted file mode 100644 index 8e368b384d8f..000000000000 --- a/source/isaaclab/changelog.d/vidurv-migrate-legacy-source-remaining.skip +++ /dev/null @@ -1 +0,0 @@ -Migrated test scene configurations off the deprecated legacy schema property configs; test-only change. diff --git a/source/isaaclab/changelog.d/visualizer-error-reason.rst b/source/isaaclab/changelog.d/visualizer-error-reason.rst deleted file mode 100644 index 827801a9c723..000000000000 --- a/source/isaaclab/changelog.d/visualizer-error-reason.rst +++ /dev/null @@ -1,8 +0,0 @@ -Fixed -^^^^^ - -* Fixed ``--visualizer newton`` (the deprecated alias for ``newton_gl``) always raising - ``RuntimeError: Explicitly requested visualizer(s) [...] could not be configured`` even though it - resolved successfully. :meth:`SimulationContext._resolve_visualizer_cfgs` compared the raw, - possibly-aliased CLI string against the resolved config's canonical ``visualizer_type``, which - never matched for an aliased request. diff --git a/source/isaaclab/changelog.d/wrench-fast-paths.minor.rst b/source/isaaclab/changelog.d/wrench-fast-paths.minor.rst deleted file mode 100644 index 7cfcbb3a3b46..000000000000 --- a/source/isaaclab/changelog.d/wrench-fast-paths.minor.rst +++ /dev/null @@ -1,9 +0,0 @@ -Added -^^^^^ - -* Added :meth:`~isaaclab.utils.wrench_composer.WrenchComposer.get_forces_and_torques`, which returns the - cheapest representation of the buffered external wrench a consumer can accept, along with an - ``is_global`` boolean matching the asset API. Consumers that can apply a world-frame wrench at the - center of mass opt in with the new ``supports_world_at_com`` - constructor argument. Wrenches that are already local-frame, or already global-frame at the center of - mass, are now submitted without composing them through the body poses. diff --git a/source/isaaclab/docs/CHANGELOG.rst b/source/isaaclab/docs/CHANGELOG.rst index 85bebf49e689..8accbe39bab5 100644 --- a/source/isaaclab/docs/CHANGELOG.rst +++ b/source/isaaclab/docs/CHANGELOG.rst @@ -1,6 +1,127 @@ Changelog --------- +28.0.0 (2026-09-24) +~~~~~~~~~~~~~~~~~~~ + +Added +^^^^^ + +* Added :func:`~isaaclab.benchmark.stepping.profile_physics_steps` and + :func:`~isaaclab.benchmark.stepping.profile_renderers` context managers for synchronized + runtime benchmark timings. Wrappers recorded complete calls after warmup and restored + the original methods when measurement ended, including on failure. +* Added :class:`~isaaclab.sim.MeshFileCfg` and :func:`~isaaclab.sim.spawn_from_mesh` to spawn a mesh from a + mesh file (e.g. ``.obj``, ``.stl``, ``.fbx``) or from in-memory triangle data + (:class:`~isaaclab.sim.MeshFileCfg.TriangleMeshCfg` or a :class:`trimesh.Trimesh` through + :class:`~isaaclab.sim.MeshFileCfg.TrimeshObjectCfg`), with optional collision, mesh collision + approximation, rigid body, mass, and material properties. +* Added :meth:`~isaaclab.utils.wrench_composer.WrenchComposer.get_forces_and_torques`, which returns the + cheapest representation of the buffered external wrench a consumer can accept, along with an + ``is_global`` boolean matching the asset API. Consumers that can apply a world-frame wrench at the + center of mass opt in with the new ``supports_world_at_com`` + constructor argument. Wrenches that are already local-frame, or already global-frame at the center of + mass, are now submitted without composing them through the body poses. +* Added ``delay_min_lag`` and ``delay_max_lag`` to ``ObservationTermCfg``. Lags were sampled per environment + at initialization and reset, then held for the episode by default, matching the delayed PD actuator's lag policy. +* Added ``delay_hold_prob`` for optional per-sample lag resampling. ``DelayBuffer`` owned the sampling; + retaining a lag kept latency constant as frames advanced. The default of 1.0 preserved the existing policy. +* Applied delay after observation modifiers, noise, clipping, and scaling, before history. Recorded samples + advanced only with ``update_history=True``; extra reads left delay history unchanged. +* Shared ``DelayBuffer`` between observations and existing delayed actuators, retaining the actuator API and + physics-step behavior. Added optional non-recording reads and replaced history shifting with device-indexed + ring storage, including CUDA graph replay and isolated partial resets. + +Changed +^^^^^^^ + +* Restricted scope capture to tasks with a non-``None`` ``benchmark_mode``. To collect timings, + enable ``ISAACLAB_PHYSICS_PROFILE=1`` or ``ISAACLAB_RENDER_PROFILE=1`` for such a task. + Other tasks continued to produce standard runtime reports without scope profiling. + +* Included scalar physics and render profiling summaries in ``BenchmarkResult.bundle.extra`` + without changing schema version 1.4. Schema and OmniPerf output included each scope's mean, + standard deviation, maximum time per call [ms], and call count. Consumers should read + ``physics_mean_ms``, ``physics_std_ms``, ``physics_max_ms``, ``physics_calls``, and the + corresponding ``render_*`` keys for these summaries. Raw ordered samples remained in + ``/profile_timings.json`` as ``timings_ms`` pairs for local analysis instead + of parsing printed timer lines; use ``--output_path`` to select the output directory. + +* **Breaking:** Moved render profiling into the runtime benchmark through + :func:`~isaaclab.benchmark.stepping.profile_renderers`. To collect render timings with + ``ISAACLAB_RENDER_PROFILE=1``, use the runtime benchmark; normal simulation runs no longer + allocate render timers. Scene updates and output readback remained outside the timed scope. +* Changed ``isaaclab benchmark training_multigpu`` to accept ``--check_success`` for RSL-RL and RL-Games. + The success metric is now summed across ranks before each convergence check, so every rank stops at + the same iteration. +* Changed :func:`~isaaclab.terrains.utils.create_prim_from_mesh` to spawn the terrain mesh with + :class:`~isaaclab.sim.MeshFileCfg`. The authored USD is unchanged, except that the ``translation`` and + ``orientation`` keyword arguments now apply to the root prim instead of its ``mesh`` child prim; the + resulting world pose is the same. +* **Breaking:** Added ``transforms_version`` to scene-data backends. Custom backends must initialize + it to zero and increment it after native pose writes or buffer swaps. SDP reads the existing + ``transforms`` property through ``get_transforms(output_format)`` without resetting the version. Backends + publishing multiple native formats may override that method and ``native_transform_formats``. + ``SceneDataProvider.get_transforms`` bound shared, + read-only arrays by default: matching layouts aliased native data and other layouts converted + once per publication. Callers requiring their own writable or preallocated arrays must pass + ``allow_passthrough=False``; this wrote directly into the supplied arrays without a staging copy. +* Routed rigid Fabric conversion through SDP while the Kit rendering integration owned destination binding and + GPU hierarchy propagation, preserving native PhysX publication and authored scale. Converted rigid destinations + became Fabric-only reset-stack roots so nested bodies retained their absolute physics poses. + Transform freshness no longer depended on the physics-step counter; + ``RenderContext.reset_scene_state_cadence`` remained available for geometry updates. + ``SimulationContext.fabric_cfg`` declared the shared native Fabric stage/device without allocating bindings. +* Used native Warp structs for Fabric transform bindings, relying on the project-managed Warp + dependency selected by Isaac Lab's Kit launch configuration. + +Deprecated +^^^^^^^^^^ + +* Deprecated ``isaaclab.renderers.render_context.RENDER_PROFILE_SCOPE``; use + :data:`~isaaclab.benchmark.stepping.RENDER_PROFILE_SCOPE` instead. + +Removed +^^^^^^^ + +* **Breaking:** Removed ``CameraRenderSpec.camera_path_relative_to_env_0``. Remove this argument + from render-spec constructors and use the absolute paths in ``camera_prim_paths`` instead. + OVRTX derived cloned camera paths from the authored source camera internally. + +Fixed +^^^^^ + +* Fixed ``--visualizer newton`` (the deprecated alias for ``newton_gl``) always raising + ``RuntimeError: Explicitly requested visualizer(s) [...] could not be configured`` even though it + resolved successfully. :meth:`SimulationContext._resolve_visualizer_cfgs` compared the raw, + possibly-aliased CLI string against the resolved config's canonical ``visualizer_type``, which + never matched for an aliased request. +* Fixed :func:`~isaaclab.utils.math.unproject_depth` building homogeneous pixel coordinates as + ``(1, u, v)`` instead of ``(u, v, 1)``, which returned wrong points and turned the first image row + into ``inf``/``nan``. This also affected :func:`~isaaclab.sensors.camera.utils.create_pointcloud_from_depth` + and :func:`~isaaclab.sensors.camera.utils.create_pointcloud_from_rgbd`. +* Fixed :func:`~isaaclab.sensors.camera.utils.create_pointcloud_from_rgbd` raising a ``TypeError`` when + ``rgb`` is a color tuple or ``None``. +* Fixed :func:`~isaaclab.utils.math.quat_slerp` negating the caller's ``q2`` tensor in place when + taking the shorter arc. +* Fixed :func:`~isaaclab.utils.sensors.convert_camera_intrinsics_to_usd` not warning about aperture + offsets when the principal point is left of or above the image center. +* Fixed :meth:`~isaaclab.utils.datasets.HDF5DatasetFileHandler.create` failing when ``file_path`` is a + bare file name without a directory. +* Fixed the built-in :class:`~isaaclab.terrains.MeshRepeatedBoxesTerrainCfg`, + :class:`~isaaclab.terrains.MeshRepeatedCylindersTerrainCfg`, and + :class:`~isaaclab.terrains.MeshRepeatedPyramidsTerrainCfg` raising ``ValueError`` with their default + ``object_type``. The resolvable ``"module:function"`` default was looked up as ``make_`` + instead of being called. +* Fixed :func:`~isaaclab.sim.schemas.modify_articulation_root_properties` looking up the existing fixed + joint on the current stage instead of the ``stage`` argument when ``fix_root_link`` is set. +* Fixed :func:`~isaaclab.sim.utils.queries.find_global_fixed_joint_prim` raising ``AttributeError`` for an + :class:`pxr.Sdf.Path` argument. +* Fixed :class:`~isaaclab.sim.converters.MeshConverter` raising ``ValueError`` for mesh file names with + more than one dot. +* Fixed ``DelayBuffer.set_time_lag`` subset updates to accept both supported integer dtypes. + + 27.0.1 (2026-09-23) ~~~~~~~~~~~~~~~~~~~ diff --git a/source/isaaclab/isaaclab/sim/spawners/sensors/sensors_cfg.py b/source/isaaclab/isaaclab/sim/spawners/sensors/sensors_cfg.py index b8e0afae402d..69b8c764dc73 100644 --- a/source/isaaclab/isaaclab/sim/spawners/sensors/sensors_cfg.py +++ b/source/isaaclab/isaaclab/sim/spawners/sensors/sensors_cfg.py @@ -5,6 +5,7 @@ from __future__ import annotations +import math from collections.abc import Callable from dataclasses import MISSING from typing import Literal @@ -132,6 +133,9 @@ class OpenCvFisheyeDistortionCfg(OpenCvDistortionCfg): k4: float = 0.0 """Fourth fisheye distortion coefficient. Defaults to 0.0.""" + max_fov: float = math.pi + """Full angular domain for Newton's inverse fisheye model [rad]. Defaults to pi (180 degrees).""" + @configclass class PinholeCameraCfg(SpawnerCfg): diff --git a/source/isaaclab/pyproject.toml b/source/isaaclab/pyproject.toml index dfd03db87faa..c127158b8eb4 100644 --- a/source/isaaclab/pyproject.toml +++ b/source/isaaclab/pyproject.toml @@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta" [project] name = "isaaclab" -version = "27.0.1" +version = "28.0.0" description = "Extension providing main framework interfaces and abstractions for robot learning." license = {text = "BSD-3-Clause"} authors = [{name = "Isaac Lab Project Developers"}] diff --git a/source/isaaclab_newton/changelog.d/fixed-joint-wrench.rst b/source/isaaclab_newton/changelog.d/fixed-joint-wrench.rst deleted file mode 100644 index 297d7cb0ef6b..000000000000 --- a/source/isaaclab_newton/changelog.d/fixed-joint-wrench.rst +++ /dev/null @@ -1,7 +0,0 @@ -Fixed -^^^^^ - -* Fixed Newton joint wrench sensors to report fixed connections within an articulation, including - welded wrist sensors and tool flanges. Free joints, world-fixed roots, and loop-closing constraints - remained excluded. Select entries by ``body_names`` or ``find_bodies`` because the reported body count - and ordering may change. diff --git a/source/isaaclab_newton/changelog.d/joint-wrench-frame-contract.skip b/source/isaaclab_newton/changelog.d/joint-wrench-frame-contract.skip deleted file mode 100644 index d6df16959500..000000000000 --- a/source/isaaclab_newton/changelog.d/joint-wrench-frame-contract.skip +++ /dev/null @@ -1 +0,0 @@ -Validated the joint-wrench sensor against the same physical fixture and analytic expectations as PhysX. diff --git a/source/isaaclab_newton/changelog.d/opencv-fisheye-angular-domain.rst b/source/isaaclab_newton/changelog.d/opencv-fisheye-angular-domain.rst new file mode 100644 index 000000000000..9e938e6a151b --- /dev/null +++ b/source/isaaclab_newton/changelog.d/opencv-fisheye-angular-domain.rst @@ -0,0 +1,6 @@ +Fixed +^^^^^ + +* Replaced the fixed 180-degree OpenCV fisheye ray limit with the camera's configured + ``max_fov``. Calibrated rays beyond the forward hemisphere can now be rendered without + changing the existing default or introducing per-frame ray generation. diff --git a/source/isaaclab_newton/changelog.d/sdp-transform-transport.rst b/source/isaaclab_newton/changelog.d/sdp-transform-transport.rst deleted file mode 100644 index a31eaeb5f264..000000000000 --- a/source/isaaclab_newton/changelog.d/sdp-transform-transport.rst +++ /dev/null @@ -1,11 +0,0 @@ -Changed -^^^^^^^ - -* Shared Newton rigid-body transforms through SceneDataProvider publications, including solver state-buffer - swaps, and moved Fabric bindings into the Kit rendering integration. Explicit Fabric synchronization - continued to work without a Kit viewer or RTX camera. Newton render-only states under foreign - physics now reference shared SDP transforms instead of copying them; consumers must treat their - ``body_q`` arrays as read-only. Particle and cable synchronization remained unchanged. -* Reconciled authored state writes only while pending, instead of re-running forward kinematics for - every new transform publication. Rendering requested rigid Fabric updates through SDP rather - than the physics pre-render hook. Captured external writes retained conservative reconciliation. diff --git a/source/isaaclab_newton/changelog.d/vidurv-migrate-legacy-source-remaining.skip b/source/isaaclab_newton/changelog.d/vidurv-migrate-legacy-source-remaining.skip deleted file mode 100644 index 8e368b384d8f..000000000000 --- a/source/isaaclab_newton/changelog.d/vidurv-migrate-legacy-source-remaining.skip +++ /dev/null @@ -1 +0,0 @@ -Migrated test scene configurations off the deprecated legacy schema property configs; test-only change. diff --git a/source/isaaclab_newton/changelog.d/wrench-fast-paths.rst b/source/isaaclab_newton/changelog.d/wrench-fast-paths.rst deleted file mode 100644 index 7e9948735597..000000000000 --- a/source/isaaclab_newton/changelog.d/wrench-fast-paths.rst +++ /dev/null @@ -1,6 +0,0 @@ -Changed -^^^^^^^ - -* Changed the external-wrench writers to submit through - :meth:`~isaaclab.utils.wrench_composer.WrenchComposer.get_forces_and_torques`, so an all-local-frame - wrench no longer reads the body transforms before being written to the solver. diff --git a/source/isaaclab_newton/docs/CHANGELOG.rst b/source/isaaclab_newton/docs/CHANGELOG.rst index a901aa04b650..deaee44471cc 100644 --- a/source/isaaclab_newton/docs/CHANGELOG.rst +++ b/source/isaaclab_newton/docs/CHANGELOG.rst @@ -1,6 +1,33 @@ Changelog --------- +7.0.1 (2026-09-24) +~~~~~~~~~~~~~~~~~~ + +Changed +^^^^^^^ + +* Changed the external-wrench writers to submit through + :meth:`~isaaclab.utils.wrench_composer.WrenchComposer.get_forces_and_torques`, so an all-local-frame + wrench no longer reads the body transforms before being written to the solver. +* Shared Newton rigid-body transforms through SceneDataProvider publications, including solver state-buffer + swaps, and moved Fabric bindings into the Kit rendering integration. Explicit Fabric synchronization + continued to work without a Kit viewer or RTX camera. Newton render-only states under foreign + physics now reference shared SDP transforms instead of copying them; consumers must treat their + ``body_q`` arrays as read-only. Particle and cable synchronization remained unchanged. +* Reconciled authored state writes only while pending, instead of re-running forward kinematics for + every new transform publication. Rendering requested rigid Fabric updates through SDP rather + than the physics pre-render hook. Captured external writes retained conservative reconciliation. + +Fixed +^^^^^ + +* Fixed Newton joint wrench sensors to report fixed connections within an articulation, including + welded wrist sensors and tool flanges. Free joints, world-fixed roots, and loop-closing constraints + remained excluded. Select entries by ``body_names`` or ``find_bodies`` because the reported body count + and ordering may change. + + 7.0.0 (2026-09-22) ~~~~~~~~~~~~~~~~~~ diff --git a/source/isaaclab_newton/isaaclab_newton/renderers/newton_warp_renderer.py b/source/isaaclab_newton/isaaclab_newton/renderers/newton_warp_renderer.py index 2b67a73b2175..f83e286e36a9 100644 --- a/source/isaaclab_newton/isaaclab_newton/renderers/newton_warp_renderer.py +++ b/source/isaaclab_newton/isaaclab_newton/renderers/newton_warp_renderer.py @@ -8,7 +8,6 @@ from __future__ import annotations import logging -import math from dataclasses import dataclass from typing import TYPE_CHECKING, Any, NoReturn @@ -425,8 +424,7 @@ def _coefficient(value: float) -> float: k2=_coefficient(cfg.k2), k3=_coefficient(cfg.k3), k4=_coefficient(cfg.k4), - # Limit fisheye rays to the forward hemisphere. - max_fov=math.pi, + max_fov=cfg.max_fov, ) return self.newton_sensor.utils.compute_camera_rays_pinhole_opencv( diff --git a/source/isaaclab_newton/pyproject.toml b/source/isaaclab_newton/pyproject.toml index 524fcdf040d0..995e6541380b 100644 --- a/source/isaaclab_newton/pyproject.toml +++ b/source/isaaclab_newton/pyproject.toml @@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta" [project] name = "isaaclab_newton" -version = "7.0.0" +version = "7.0.1" description = "Extension providing IsaacLab with Newton specific abstractions." license = {text = "BSD-3-Clause"} authors = [{name = "Isaac Lab Project Developers"}] diff --git a/source/isaaclab_ov/changelog.d/ovrtx-cache-frame-keys.rst b/source/isaaclab_ov/changelog.d/ovrtx-cache-frame-keys.rst deleted file mode 100644 index 07bd7e935ec6..000000000000 --- a/source/isaaclab_ov/changelog.d/ovrtx-cache-frame-keys.rst +++ /dev/null @@ -1,5 +0,0 @@ -Changed -^^^^^^^ - -* Cached OVRTX render-var frame keys during camera initialization, avoiding repeated version checks and - path construction during frame processing. Existing camera output behavior and APIs remained unchanged. diff --git a/source/isaaclab_ov/changelog.d/ovrtx-camera-source-path.rst b/source/isaaclab_ov/changelog.d/ovrtx-camera-source-path.rst deleted file mode 100644 index fe9f940d34b6..000000000000 --- a/source/isaaclab_ov/changelog.d/ovrtx-camera-source-path.rst +++ /dev/null @@ -1,7 +0,0 @@ -Changed -^^^^^^^ - -* Derived OVRTX cloned camera paths from the authored absolute source path in - ``CameraRenderSpec.camera_prim_paths``. Remove the ``camera_path_relative_to_env_0`` argument - when constructing render specs; OVRTX validated the source path under - ``/World/envs/env_0/`` and resolved the per-environment paths internally. diff --git a/source/isaaclab_ov/changelog.d/ovrtx-multi-camera-env-paths.rst b/source/isaaclab_ov/changelog.d/ovrtx-multi-camera-env-paths.rst deleted file mode 100644 index e60e6133be4c..000000000000 --- a/source/isaaclab_ov/changelog.d/ovrtx-multi-camera-env-paths.rst +++ /dev/null @@ -1,9 +0,0 @@ -Fixed -^^^^^ - -* Fixed OVRTX scenes with more than one camera failing at startup with - ``Layout-compatible non-array tensor shape[0] (N) must equal binding prim count (1)``. Cameras - registered after the first one bound the camera prims authored on the USD stage, which is one - prototype per spawn variant rather than one per environment whenever USD replication does not - run, as in kitless runs on OvPhysx and Newton. Every camera now binds one prim per environment, - for both its transform and its calibration columns. diff --git a/source/isaaclab_ov/changelog.d/pr7536-test-reset.skip b/source/isaaclab_ov/changelog.d/pr7536-test-reset.skip deleted file mode 100644 index 09ec8ebf8153..000000000000 --- a/source/isaaclab_ov/changelog.d/pr7536-test-reset.skip +++ /dev/null @@ -1 +0,0 @@ -Test-only fix: preserve environment origins when resetting the external-wrench test articulations. diff --git a/source/isaaclab_ov/changelog.d/sdp-transform-transport.rst b/source/isaaclab_ov/changelog.d/sdp-transform-transport.rst deleted file mode 100644 index 6a36d439a88a..000000000000 --- a/source/isaaclab_ov/changelog.d/sdp-transform-transport.rst +++ /dev/null @@ -1,10 +0,0 @@ -Changed -^^^^^^^ - -* Published OVPhysX rigid poses directly into shared scene-data storage and invalidated cached transforms after - physics steps and manual pose writes. Binding failures were surfaced instead of publishing incomplete poses. -* Routed OVRTX rigid transforms through cached SDP matrix requests, preserving authored scales without a Newton - rigid-state intermediary. Existing renderer configurations remained valid; Newton-backed deformable, particle, - and cable geometry transport remained unchanged. -* Captured OVRTX authored scales from clone-plan prototypes and shared roots, including bodies outside the - default environment namespace. diff --git a/source/isaaclab_ov/changelog.d/vidurv-migrate-legacy-source-remaining.skip b/source/isaaclab_ov/changelog.d/vidurv-migrate-legacy-source-remaining.skip deleted file mode 100644 index 8e368b384d8f..000000000000 --- a/source/isaaclab_ov/changelog.d/vidurv-migrate-legacy-source-remaining.skip +++ /dev/null @@ -1 +0,0 @@ -Migrated test scene configurations off the deprecated legacy schema property configs; test-only change. diff --git a/source/isaaclab_ov/changelog.d/wrench-fast-paths.rst b/source/isaaclab_ov/changelog.d/wrench-fast-paths.rst deleted file mode 100644 index a3e008ddf5dd..000000000000 --- a/source/isaaclab_ov/changelog.d/wrench-fast-paths.rst +++ /dev/null @@ -1,7 +0,0 @@ -Changed -^^^^^^^ - -* Changed the external-wrench writers to submit through - :meth:`~isaaclab.utils.wrench_composer.WrenchComposer.get_forces_and_torques`. A wrench that is already - global-frame at the center of mass is now packed without rotating it into the body frame and back, - and an all-local-frame wrench no longer reads the body transforms before packing. diff --git a/source/isaaclab_ov/docs/CHANGELOG.rst b/source/isaaclab_ov/docs/CHANGELOG.rst index 15d952e25b38..f7a1a1a217d8 100644 --- a/source/isaaclab_ov/docs/CHANGELOG.rst +++ b/source/isaaclab_ov/docs/CHANGELOG.rst @@ -1,6 +1,41 @@ Changelog --------- +3.3.2 (2026-09-24) +~~~~~~~~~~~~~~~~~~ + +Changed +^^^^^^^ + +* Cached OVRTX render-var frame keys during camera initialization, avoiding repeated version checks and + path construction during frame processing. Existing camera output behavior and APIs remained unchanged. +* Derived OVRTX cloned camera paths from the authored absolute source path in + ``CameraRenderSpec.camera_prim_paths``. Remove the ``camera_path_relative_to_env_0`` argument + when constructing render specs; OVRTX validated the source path under + ``/World/envs/env_0/`` and resolved the per-environment paths internally. +* Changed the external-wrench writers to submit through + :meth:`~isaaclab.utils.wrench_composer.WrenchComposer.get_forces_and_torques`. A wrench that is already + global-frame at the center of mass is now packed without rotating it into the body frame and back, + and an all-local-frame wrench no longer reads the body transforms before packing. +* Published OVPhysX rigid poses directly into shared scene-data storage and invalidated cached transforms after + physics steps and manual pose writes. Binding failures were surfaced instead of publishing incomplete poses. +* Routed OVRTX rigid transforms through cached SDP matrix requests, preserving authored scales without a Newton + rigid-state intermediary. Existing renderer configurations remained valid; Newton-backed deformable, particle, + and cable geometry transport remained unchanged. +* Captured OVRTX authored scales from clone-plan prototypes and shared roots, including bodies outside the + default environment namespace. + +Fixed +^^^^^ + +* Fixed OVRTX scenes with more than one camera failing at startup with + ``Layout-compatible non-array tensor shape[0] (N) must equal binding prim count (1)``. Cameras + registered after the first one bound the camera prims authored on the USD stage, which is one + prototype per spawn variant rather than one per environment whenever USD replication does not + run, as in kitless runs on OvPhysx and Newton. Every camera now binds one prim per environment, + for both its transform and its calibration columns. + + 3.3.1 (2026-09-23) ~~~~~~~~~~~~~~~~~~ diff --git a/source/isaaclab_ov/pyproject.toml b/source/isaaclab_ov/pyproject.toml index 835b1f579dd2..c4126844a93a 100644 --- a/source/isaaclab_ov/pyproject.toml +++ b/source/isaaclab_ov/pyproject.toml @@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta" [project] name = "isaaclab_ov" -version = "3.3.1" +version = "3.3.2" description = "Extension providing Omniverse rendering and OVPhysX simulation integrations." license = {text = "BSD-3-Clause"} authors = [{name = "Isaac Lab Project Developers"}] diff --git a/source/isaaclab_physx/changelog.d/fix-joint-wrench-frame.rst b/source/isaaclab_physx/changelog.d/fix-joint-wrench-frame.rst deleted file mode 100644 index 9f8d6eb12de2..000000000000 --- a/source/isaaclab_physx/changelog.d/fix-joint-wrench-frame.rst +++ /dev/null @@ -1,8 +0,0 @@ -Fixed -^^^^^ - -* Fixed joint-wrench sensors applying an extra frame transformation to PhysX readings, which already used - the child-side joint frame and anchor. Removed the redundant USD frame buffers. Force and torque values - changed for joints with non-identity child frames; the sensor's documented frame convention was preserved. -* Replaced circular frame-conversion checks with a shared Newton/PhysX integration test using a known mass, - gravity, and lever arm to calculate the expected nonzero wrench independently. diff --git a/source/isaaclab_physx/changelog.d/sdp-transform-publication.rst b/source/isaaclab_physx/changelog.d/sdp-transform-publication.rst deleted file mode 100644 index 9593f8b146cd..000000000000 --- a/source/isaaclab_physx/changelog.d/sdp-transform-publication.rst +++ /dev/null @@ -1,8 +0,0 @@ -Changed -^^^^^^^ - -* Published PhysX rigid transforms and their producer-owned version through SDP, and routed Isaac RTX - transform updates through one simulation-owned ``FabricBackend`` shared with Kit while preserving - native PhysX Fabric updates. Stage/device identified the resource; transforms remained binding state, - with SDP passed explicitly to updates. Fabric selection and hierarchy state moved out of core ``RenderContext``. - Kit app updates requested current SDP transforms without an additional physics ``forward()`` call. diff --git a/source/isaaclab_physx/changelog.d/wrench-fast-paths.rst b/source/isaaclab_physx/changelog.d/wrench-fast-paths.rst deleted file mode 100644 index 97d67a3b7f69..000000000000 --- a/source/isaaclab_physx/changelog.d/wrench-fast-paths.rst +++ /dev/null @@ -1,7 +0,0 @@ -Changed -^^^^^^^ - -* Changed the external-wrench writers to submit through - :meth:`~isaaclab.utils.wrench_composer.WrenchComposer.get_forces_and_torques`, so a wrench that is - already local-frame, or already global-frame at the center of mass, is sent to PhysX without - reading the body transforms. diff --git a/source/isaaclab_physx/docs/CHANGELOG.rst b/source/isaaclab_physx/docs/CHANGELOG.rst index 9bec22907f47..40da1b4dff2c 100644 --- a/source/isaaclab_physx/docs/CHANGELOG.rst +++ b/source/isaaclab_physx/docs/CHANGELOG.rst @@ -1,6 +1,32 @@ Changelog --------- +7.2.2 (2026-09-24) +~~~~~~~~~~~~~~~~~~ + +Changed +^^^^^^^ + +* Changed the external-wrench writers to submit through + :meth:`~isaaclab.utils.wrench_composer.WrenchComposer.get_forces_and_torques`, so a wrench that is + already local-frame, or already global-frame at the center of mass, is sent to PhysX without + reading the body transforms. +* Published PhysX rigid transforms and their producer-owned version through SDP, and routed Isaac RTX + transform updates through one simulation-owned ``FabricBackend`` shared with Kit while preserving + native PhysX Fabric updates. Stage/device identified the resource; transforms remained binding state, + with SDP passed explicitly to updates. Fabric selection and hierarchy state moved out of core ``RenderContext``. + Kit app updates requested current SDP transforms without an additional physics ``forward()`` call. + +Fixed +^^^^^ + +* Fixed joint-wrench sensors applying an extra frame transformation to PhysX readings, which already used + the child-side joint frame and anchor. Removed the redundant USD frame buffers. Force and torque values + changed for joints with non-identity child frames; the sensor's documented frame convention was preserved. +* Replaced circular frame-conversion checks with a shared Newton/PhysX integration test using a known mass, + gravity, and lever arm to calculate the expected nonzero wrench independently. + + 7.2.1 (2026-09-22) ~~~~~~~~~~~~~~~~~~ diff --git a/source/isaaclab_physx/pyproject.toml b/source/isaaclab_physx/pyproject.toml index a6c2b205c567..b8f93adfddef 100644 --- a/source/isaaclab_physx/pyproject.toml +++ b/source/isaaclab_physx/pyproject.toml @@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta" [project] name = "isaaclab_physx" -version = "7.2.1" +version = "7.2.2" description = "Extension providing IsaacLab with PhysX specific abstractions." license = {text = "BSD-3-Clause"} authors = [{name = "Isaac Lab Project Developers"}] diff --git a/source/isaaclab_tasks/changelog.d/fix-forge-ft-frame-transform.rst b/source/isaaclab_tasks/changelog.d/fix-forge-ft-frame-transform.rst deleted file mode 100644 index f66a54100585..000000000000 --- a/source/isaaclab_tasks/changelog.d/fix-forge-ft-frame-transform.rst +++ /dev/null @@ -1,6 +0,0 @@ -Fixed -^^^^^ - -* Fixed :func:`~isaaclab_tasks.contrib.forge.forge_utils.change_FT_frame` applying the inverse rotation and the - wrong lever-arm sign when re-expressing a force/torque reading in another frame. The FORGE force observation - is unchanged because the environment uses identity rotations and only consumes the force components. diff --git a/source/isaaclab_tasks/changelog.d/kuka-allegro-wrist-camera-pose.rst b/source/isaaclab_tasks/changelog.d/kuka-allegro-wrist-camera-pose.rst deleted file mode 100644 index 7948f5fa999b..000000000000 --- a/source/isaaclab_tasks/changelog.d/kuka-allegro-wrist-camera-pose.rst +++ /dev/null @@ -1,6 +0,0 @@ -Fixed -^^^^^ - -* Fixed the Kuka Allegro wrist camera rendering from its reset pose for the whole episode in the - ``duo_camera`` presets. The camera is mounted on the palm, so ``update_latest_camera_pose`` is now - enabled and its rendered view follows the arm. diff --git a/source/isaaclab_tasks/changelog.d/render-benchmark-physics-mode.minor.rst b/source/isaaclab_tasks/changelog.d/render-benchmark-physics-mode.minor.rst deleted file mode 100644 index 91a908815f8b..000000000000 --- a/source/isaaclab_tasks/changelog.d/render-benchmark-physics-mode.minor.rst +++ /dev/null @@ -1,10 +0,0 @@ -Added -^^^^^ - -* Added a ``benchmark_mode`` option to the ``Isaac-RenderBenchmark-Franka-Cabinet`` task, read from the - ``BENCHMARK_MODE`` environment variable. The default ``"render"`` mode wrote analytic joint poses after - physics and required ``scene.lazy_sensor_update=True`` so rendering followed the pose write. - Isaac RTX direct posing also rejected visualizers that pumped the Kit app; use ``--visualizer none``. - Set ``BENCHMARK_MODE=physics_render`` to preserve actuator-driven animation. Both modes still stepped physics. - The renderer sweep enabled physics and render timers and reported per-frame and combined timings - from the profiling JSON file. diff --git a/source/isaaclab_tasks/changelog.d/vidurv-migrate-legacy-source-remaining.rst b/source/isaaclab_tasks/changelog.d/vidurv-migrate-legacy-source-remaining.rst deleted file mode 100644 index d3813f345497..000000000000 --- a/source/isaaclab_tasks/changelog.d/vidurv-migrate-legacy-source-remaining.rst +++ /dev/null @@ -1,12 +0,0 @@ -Changed -^^^^^^^ - -* Changed the reach table collider, the UR10 particle-push colliders, and the NIST factory Newton - Franka rigid-body properties to author their physics schemas with schema fragments - (:class:`~isaaclab.sim.schemas.UsdPhysicsCollisionCfg`, - :class:`~isaaclab_newton.sim.schemas.NewtonCollisionCfg`, and - :class:`~isaaclab_newton.sim.schemas.MujocoRigidBodyCfg`) instead of the deprecated legacy - property configs, so loading these tasks no longer emits their ``DeprecationWarning``. The - authored USD is unchanged. Configurations that tune these spawner slots in place should select - the fragment that owns the field (e.g. the :class:`~isaaclab_newton.sim.schemas.NewtonCollisionCfg` - entry of the UR10 particle-push ``collision_props`` list for ``contact_margin``). diff --git a/source/isaaclab_tasks/docs/CHANGELOG.rst b/source/isaaclab_tasks/docs/CHANGELOG.rst index 20b7db90a527..02fc7c49e520 100644 --- a/source/isaaclab_tasks/docs/CHANGELOG.rst +++ b/source/isaaclab_tasks/docs/CHANGELOG.rst @@ -1,6 +1,44 @@ Changelog --------- +21.1.0 (2026-09-24) +~~~~~~~~~~~~~~~~~~~ + +Added +^^^^^ + +* Added a ``benchmark_mode`` option to the ``Isaac-RenderBenchmark-Franka-Cabinet`` task, read from the + ``BENCHMARK_MODE`` environment variable. The default ``"render"`` mode wrote analytic joint poses after + physics and required ``scene.lazy_sensor_update=True`` so rendering followed the pose write. + Isaac RTX direct posing also rejected visualizers that pumped the Kit app; use ``--visualizer none``. + Set ``BENCHMARK_MODE=physics_render`` to preserve actuator-driven animation. Both modes still stepped physics. + The renderer sweep enabled physics and render timers and reported per-frame and combined timings + from the profiling JSON file. + +Changed +^^^^^^^ + +* Changed the reach table collider, the UR10 particle-push colliders, and the NIST factory Newton + Franka rigid-body properties to author their physics schemas with schema fragments + (:class:`~isaaclab.sim.schemas.UsdPhysicsCollisionCfg`, + :class:`~isaaclab_newton.sim.schemas.NewtonCollisionCfg`, and + :class:`~isaaclab_newton.sim.schemas.MujocoRigidBodyCfg`) instead of the deprecated legacy + property configs, so loading these tasks no longer emits their ``DeprecationWarning``. The + authored USD is unchanged. Configurations that tune these spawner slots in place should select + the fragment that owns the field (e.g. the :class:`~isaaclab_newton.sim.schemas.NewtonCollisionCfg` + entry of the UR10 particle-push ``collision_props`` list for ``contact_margin``). + +Fixed +^^^^^ + +* Fixed the Kuka Allegro wrist camera rendering from its reset pose for the whole episode in the + ``duo_camera`` presets. The camera is mounted on the palm, so ``update_latest_camera_pose`` is now + enabled and its rendered view follows the arm. +* Fixed :func:`~isaaclab_tasks.contrib.forge.forge_utils.change_FT_frame` applying the inverse rotation and the + wrong lever-arm sign when re-expressing a force/torque reading in another frame. The FORGE force observation + is unchanged because the environment uses identity rotations and only consumes the force components. + + 21.0.3 (2026-09-23) ~~~~~~~~~~~~~~~~~~~ diff --git a/source/isaaclab_tasks/pyproject.toml b/source/isaaclab_tasks/pyproject.toml index 207419726938..c6eb23b00393 100644 --- a/source/isaaclab_tasks/pyproject.toml +++ b/source/isaaclab_tasks/pyproject.toml @@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta" [project] name = "isaaclab_tasks" -version = "21.0.3" +version = "21.1.0" description = "Extension containing suite of environments for robot learning." license = {text = "BSD-3-Clause"} authors = [{name = "Isaac Lab Project Developers"}] diff --git a/source/isaaclab_visualizers/changelog.d/sdp-transform-publication.rst b/source/isaaclab_visualizers/changelog.d/sdp-transform-publication.rst deleted file mode 100644 index 45b28bb33218..000000000000 --- a/source/isaaclab_visualizers/changelog.d/sdp-transform-publication.rst +++ /dev/null @@ -1,6 +0,0 @@ -Changed -^^^^^^^ - -* Routed Kit viewport transform updates through SDP, sharing a registry-owned Fabric binding with camera - renderers and preserving native PhysX Fabric updates. No visualizer configuration changes were required. - Headless viewport transforms and asset tracking refreshed only when a frame was requested. diff --git a/source/isaaclab_visualizers/docs/CHANGELOG.rst b/source/isaaclab_visualizers/docs/CHANGELOG.rst index 77b1b3c2c653..9e60e986ec3b 100644 --- a/source/isaaclab_visualizers/docs/CHANGELOG.rst +++ b/source/isaaclab_visualizers/docs/CHANGELOG.rst @@ -1,6 +1,17 @@ Changelog --------- +1.12.1 (2026-09-24) +~~~~~~~~~~~~~~~~~~~ + +Changed +^^^^^^^ + +* Routed Kit viewport transform updates through SDP, sharing a registry-owned Fabric binding with camera + renderers and preserving native PhysX Fabric updates. No visualizer configuration changes were required. + Headless viewport transforms and asset tracking refreshed only when a frame was requested. + + 1.12.0 (2026-09-22) ~~~~~~~~~~~~~~~~~~~ diff --git a/source/isaaclab_visualizers/pyproject.toml b/source/isaaclab_visualizers/pyproject.toml index fb5109dd4fc5..8c02bc67c99b 100644 --- a/source/isaaclab_visualizers/pyproject.toml +++ b/source/isaaclab_visualizers/pyproject.toml @@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta" [project] name = "isaaclab-visualizers" -version = "1.12.0" +version = "1.12.1" description = "Visualizer backends for Isaac Lab (Kit, Newton, Rerun, Viser)." license = {text = "BSD-3-Clause"} authors = [{name = "Isaac Lab Project Developers"}]