Skip to content

Commit eac029d

Browse files
Mayankm96kellyguo11ooctipus
authored
Fixes interval event resets and deprecation of attach_yaw_only flag (#2958)
# Description Just a friendly cleanup. Noticed some issues that crept up in some previous MR. Still digging through some of the other MRs and understanding why certain things changed. ## 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 --------- Signed-off-by: Mayank Mittal <[email protected]> Co-authored-by: Kelly Guo <[email protected]> Co-authored-by: Kelly Guo <[email protected]> Co-authored-by: ooctipus <[email protected]>
1 parent fca3c9e commit eac029d

File tree

12 files changed

+337
-189
lines changed

12 files changed

+337
-189
lines changed

docs/source/tutorials/04_sensors/add_sensors_on_robot.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ For this tutorial, the ray-cast based height scanner is attached to the base fra
101101
The pattern of rays is specified using the :attr:`~sensors.RayCasterCfg.pattern` attribute. For
102102
a uniform grid pattern, we specify the pattern using :class:`~sensors.patterns.GridPatternCfg`.
103103
Since we only care about the height information, we do not need to consider the roll and pitch
104-
of the robot. Hence, we set the :attr:`~sensors.RayCasterCfg.attach_yaw_only` to true.
104+
of the robot. Hence, we set the :attr:`~sensors.RayCasterCfg.ray_alignment` to "yaw".
105105

106106
For the height-scanner, you can visualize the points where the rays hit the mesh. This is done
107107
by setting the :attr:`~sensors.SensorBaseCfg.debug_vis` attribute to true.

scripts/demos/sensors/raycaster_sensor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class RaycasterSensorSceneCfg(InteractiveSceneCfg):
6363
update_period=1 / 60,
6464
offset=RayCasterCfg.OffsetCfg(pos=(0, 0, 0.5)),
6565
mesh_prim_paths=["/World/Ground"],
66-
attach_yaw_only=True,
66+
ray_alignment="yaw",
6767
pattern_cfg=patterns.LidarPatternCfg(
6868
channels=100, vertical_fov_range=[-90, 90], horizontal_fov_range=[-90, 90], horizontal_res=1.0
6969
),

source/isaaclab/config/extension.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22

33
# Note: Semantic Versioning is used: https://semver.org/
4-
version = "0.41.2"
4+
version = "0.41.3"
55

66
# Description
77
title = "Isaac Lab framework for Robot Learning"

source/isaaclab/docs/CHANGELOG.rst

Lines changed: 85 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
11
Changelog
22
---------
33

4+
0.41.4 (2025-07-30)
5+
~~~~~~~~~~~~~~~~~~~~
6+
7+
Fixed
8+
^^^^^
9+
10+
* Improved handling of deprecated flag :attr:`~isaaclab.sensors.RayCasterCfg.attach_yaw_only`.
11+
Previously, the flag was only handled if it was set to True. This led to a bug where the yaw was not accounted for
12+
when the flag was set to False.
13+
* Fixed the handling of interval-based events inside :class:`~isaaclab.managers.EventManager` to properly handle
14+
their resets. Previously, only class-based events were properly handled.
15+
16+
417
0.41.3 (2025-07-30)
518
~~~~~~~~~~~~~~~~~~~~
619

@@ -74,7 +87,8 @@ Added
7487
Added
7588
^^^^^
7689

77-
* Added :attr:`~isaaclab.sensors.ContactSensorData.force_matrix_w_history` that tracks the history of the filtered contact forces in the world frame.
90+
* Added :attr:`~isaaclab.sensors.ContactSensorData.force_matrix_w_history` that tracks the history of the filtered
91+
contact forces in the world frame.
7892

7993

8094
0.40.21 (2025-06-25)
@@ -235,8 +249,9 @@ Fixed
235249
Added
236250
^^^^^
237251

238-
* Added ``sample_bias_per_component`` flag to :class:`~isaaclab.utils.noise.noise_model.NoiseModelWithAdditiveBias` to enable independent per-component bias
239-
sampling, which is now the default behavior. If set to False, the previous behavior of sharing the same bias value across all components is retained.
252+
* Added ``sample_bias_per_component`` flag to :class:`~isaaclab.utils.noise.noise_model.NoiseModelWithAdditiveBias`
253+
to enable independent per-component bias sampling, which is now the default behavior. If set to False, the previous
254+
behavior of sharing the same bias value across all components is retained.
240255

241256

242257
0.40.8 (2025-06-18)
@@ -272,7 +287,8 @@ Changed
272287
Fixed
273288
^^^^^
274289

275-
* Fixed potential issues in :func:`~isaaclab.envs.mdp.events.randomize_visual_texture_material` related to handling visual prims during texture randomization.
290+
* Fixed potential issues in :func:`~isaaclab.envs.mdp.events.randomize_visual_texture_material` related to handling
291+
visual prims during texture randomization.
276292

277293

278294
0.40.5 (2025-05-22)
@@ -282,7 +298,8 @@ Fixed
282298
^^^^^
283299

284300
* Fixed collision filtering logic for CPU simulation. The automatic collision filtering feature
285-
currently has limitations for CPU simulation. Collision filtering needs to be manually enabled when using CPU simulation.
301+
currently has limitations for CPU simulation. Collision filtering needs to be manually enabled when using
302+
CPU simulation.
286303

287304

288305
0.40.4 (2025-06-03)
@@ -333,8 +350,8 @@ Added
333350
Changed
334351
^^^^^^^
335352

336-
* Moved initialization of ``episode_length_buf`` outside of :meth:`load_managers()` of :class:`~isaaclab.envs.ManagerBasedRLEnv`
337-
to make it available for mdp functions.
353+
* Moved initialization of ``episode_length_buf`` outside of :meth:`load_managers()` of
354+
:class:`~isaaclab.envs.ManagerBasedRLEnv` to make it available for mdp functions.
338355

339356

340357
0.40.0 (2025-05-16)
@@ -379,7 +396,8 @@ Added
379396
Added
380397
^^^^^
381398

382-
* Added support for concatenation of observations along different dimensions in :class:`~isaaclab.managers.observation_manager.ObservationManager`.
399+
* Added support for concatenation of observations along different dimensions in
400+
:class:`~isaaclab.managers.observation_manager.ObservationManager`.
383401

384402
Changed
385403
^^^^^^^
@@ -1156,7 +1174,12 @@ Changed
11561174
Changed
11571175
^^^^^^^
11581176

1159-
* Previously, physx returns the rigid bodies and articulations velocities in the com of bodies rather than the link frame, while poses are in link frames. We now explicitly provide :attr:`body_link_state` and :attr:`body_com_state` APIs replacing the previous :attr:`body_state` API. Previous APIs are now marked as deprecated. Please update any code using the previous pose and velocity APIs to use the new ``*_link_*`` or ``*_com_*`` APIs in :attr:`isaaclab.assets.RigidBody`, :attr:`isaaclab.assets.RigidBodyCollection`, and :attr:`isaaclab.assets.Articulation`.
1177+
* Previously, physx returns the rigid bodies and articulations velocities in the com of bodies rather than the
1178+
link frame, while poses are in link frames. We now explicitly provide :attr:`body_link_state` and
1179+
:attr:`body_com_state` APIs replacing the previous :attr:`body_state` API. Previous APIs are now marked as
1180+
deprecated. Please update any code using the previous pose and velocity APIs to use the new
1181+
``*_link_*`` or ``*_com_*`` APIs in :attr:`isaaclab.assets.RigidBody`,
1182+
:attr:`isaaclab.assets.RigidBodyCollection`, and :attr:`isaaclab.assets.Articulation`.
11601183

11611184

11621185
0.31.0 (2024-12-16)
@@ -1174,8 +1197,9 @@ Added
11741197
Fixed
11751198
^^^^^
11761199

1177-
* Fixed ordering of logging and resamping in the command manager, where we were logging the metrics after resampling the commands.
1178-
This leads to incorrect logging of metrics when inside the resample call, the metrics tensors get reset.
1200+
* Fixed ordering of logging and resamping in the command manager, where we were logging the metrics
1201+
after resampling the commands. This leads to incorrect logging of metrics when inside the resample call,
1202+
the metrics tensors get reset.
11791203

11801204

11811205
0.30.2 (2024-12-16)
@@ -1201,8 +1225,9 @@ Added
12011225
Changed
12021226
^^^^^^^
12031227

1204-
* Added call to update articulation kinematics after reset to ensure states are updated for non-rendering sensors. Previously, some changes
1205-
in reset such as modifying joint states would not be reflected in the rigid body states immediately after reset.
1228+
* Added call to update articulation kinematics after reset to ensure states are updated for non-rendering sensors.
1229+
Previously, some changes in reset such as modifying joint states would not be reflected in the rigid body
1230+
states immediately after reset.
12061231

12071232

12081233
0.30.0 (2024-12-15)
@@ -1213,13 +1238,15 @@ Added
12131238

12141239
* Added UI interface to the Managers in the ManagerBasedEnv and MangerBasedRLEnv classes.
12151240
* Added UI widgets for :class:`LiveLinePlot` and :class:`ImagePlot`.
1216-
* Added ``ManagerLiveVisualizer/Cfg``: Given a ManagerBase (i.e. action_manager, observation_manager, etc) and a config file this class creates
1217-
the the interface between managers and the UI.
1218-
* Added :class:`EnvLiveVisualizer`: A 'manager' of ManagerLiveVisualizer. This is added to the ManagerBasedEnv but is only called during
1219-
the initialization of the managers in load_managers
1220-
* Added ``get_active_iterable_terms`` implementation methods to ActionManager, ObservationManager, CommandsManager, CurriculumManager,
1221-
RewardManager, and TerminationManager. This method exports the active term data and labels for each manager and is called by ManagerLiveVisualizer.
1222-
* Additions to :class:`BaseEnvWindow` and :class:`RLEnvWindow` to register ManagerLiveVisualizer UI interfaces for the chosen managers.
1241+
* Added ``ManagerLiveVisualizer/Cfg``: Given a ManagerBase (i.e. action_manager, observation_manager, etc) and a
1242+
config file this class creates the the interface between managers and the UI.
1243+
* Added :class:`EnvLiveVisualizer`: A 'manager' of ManagerLiveVisualizer. This is added to the ManagerBasedEnv
1244+
but is only called during the initialization of the managers in load_managers
1245+
* Added ``get_active_iterable_terms`` implementation methods to ActionManager, ObservationManager, CommandsManager,
1246+
CurriculumManager, RewardManager, and TerminationManager. This method exports the active term data and labels
1247+
for each manager and is called by ManagerLiveVisualizer.
1248+
* Additions to :class:`BaseEnvWindow` and :class:`RLEnvWindow` to register ManagerLiveVisualizer UI interfaces
1249+
for the chosen managers.
12231250

12241251

12251252
0.29.0 (2024-12-15)
@@ -1259,8 +1286,8 @@ Fixed
12591286
^^^^^
12601287

12611288
* Fixed the shape of ``quat_w`` in the ``apply_actions`` method of :attr:`~isaaclab.env.mdp.NonHolonomicAction`
1262-
(previously (N,B,4), now (N,4) since the number of root bodies B is required to be 1). Previously ``apply_actions`` errored
1263-
because ``euler_xyz_from_quat`` requires inputs of shape (N,4).
1289+
(previously (N,B,4), now (N,4) since the number of root bodies B is required to be 1). Previously ``apply_actions``
1290+
errored because ``euler_xyz_from_quat`` requires inputs of shape (N,4).
12641291

12651292

12661293
0.28.1 (2024-12-13)
@@ -1269,7 +1296,8 @@ Fixed
12691296
Fixed
12701297
^^^^^
12711298

1272-
* Fixed the internal buffers for ``set_external_force_and_torque`` where the buffer values would be stale if zero values are sent to the APIs.
1299+
* Fixed the internal buffers for ``set_external_force_and_torque`` where the buffer values would be stale if zero
1300+
values are sent to the APIs.
12731301

12741302

12751303
0.28.0 (2024-12-12)
@@ -1278,8 +1306,8 @@ Fixed
12781306
Changed
12791307
^^^^^^^
12801308

1281-
* Adapted the :class:`~isaaclab.sim.converters.UrdfConverter` to use the latest URDF converter API from Isaac Sim 4.5. The
1282-
physics articulation root can now be set separately, and the joint drive gains can be set on a per joint basis.
1309+
* Adapted the :class:`~isaaclab.sim.converters.UrdfConverter` to use the latest URDF converter API from Isaac Sim 4.5.
1310+
The physics articulation root can now be set separately, and the joint drive gains can be set on a per joint basis.
12831311

12841312

12851313
0.27.33 (2024-12-11)
@@ -1288,9 +1316,11 @@ Changed
12881316
Added
12891317
^^^^^
12901318

1291-
* Introduced an optional ``sensor_cfg`` parameter to the :meth:`~isaaclab.envs.mdp.rewards.base_height_l2` function, enabling the use of
1292-
:class:`~isaaclab.sensors.RayCaster` for height adjustments. For flat terrains, the function retains its previous behavior.
1293-
* Improved documentation to clarify the usage of the :meth:`~isaaclab.envs.mdp.rewards.base_height_l2` function in both flat and rough terrain settings.
1319+
* Introduced an optional ``sensor_cfg`` parameter to the :meth:`~isaaclab.envs.mdp.rewards.base_height_l2` function,
1320+
enabling the use of :class:`~isaaclab.sensors.RayCaster` for height adjustments. For flat terrains, the function
1321+
retains its previous behavior.
1322+
* Improved documentation to clarify the usage of the :meth:`~isaaclab.envs.mdp.rewards.base_height_l2` function in
1323+
both flat and rough terrain settings.
12941324

12951325

12961326
0.27.32 (2024-12-11)
@@ -1310,11 +1340,13 @@ Changed
13101340
^^^^^^^
13111341

13121342
* Introduced configuration options in :class:`Se3HandTracking` to:
1343+
13131344
- Zero out rotation around the x/y axes
13141345
- Apply smoothing and thresholding to position and rotation deltas for reduced jitter
13151346
- Use wrist-based rotation reference as an alternative to fingertip-based rotation
13161347

1317-
* Switched the default position reference in :class:`Se3HandTracking` to the wrist joint pose, providing more stable relative-based positioning.
1348+
* Switched the default position reference in :class:`Se3HandTracking` to the wrist joint pose, providing more stable
1349+
relative-based positioning.
13181350

13191351

13201352
0.27.30 (2024-12-09)
@@ -1402,8 +1434,10 @@ Fixed
14021434
Fixed
14031435
^^^^^
14041436

1405-
* Added the attributes :attr:`~isaaclab.envs.DirectRLEnvCfg.wait_for_textures` and :attr:`~isaaclab.envs.ManagerBasedEnvCfg.wait_for_textures`
1406-
to enable assets loading check during :class:`~isaaclab.DirectRLEnv` and :class:`~isaaclab.ManagerBasedEnv` reset method when rtx sensors are added to the scene.
1437+
* Added the attributes :attr:`~isaaclab.envs.DirectRLEnvCfg.wait_for_textures` and
1438+
:attr:`~isaaclab.envs.ManagerBasedEnvCfg.wait_for_textures` to enable assets loading check
1439+
during :class:`~isaaclab.DirectRLEnv` and :class:`~isaaclab.ManagerBasedEnv` reset method when
1440+
rtx sensors are added to the scene.
14071441

14081442

14091443
0.27.22 (2024-12-04)
@@ -1412,7 +1446,8 @@ Fixed
14121446
Fixed
14131447
^^^^^
14141448

1415-
* Fixed the order of the incoming parameters in :class:`isaaclab.envs.DirectMARLEnv` to correctly use ``NoiseModel`` in marl-envs.
1449+
* Fixed the order of the incoming parameters in :class:`isaaclab.envs.DirectMARLEnv` to correctly use
1450+
``NoiseModel`` in marl-envs.
14161451

14171452

14181453
0.27.21 (2024-12-04)
@@ -1436,7 +1471,8 @@ Added
14361471
Changed
14371472
^^^^^^^
14381473

1439-
* Changed :class:`isaaclab.envs.DirectMARLEnv` to inherit from ``Gymnasium.Env`` due to requirement from Gymnasium v1.0.0 requiring all environments to be a subclass of ``Gymnasium.Env`` when using the ``make`` interface.
1474+
* Changed :class:`isaaclab.envs.DirectMARLEnv` to inherit from ``Gymnasium.Env`` due to requirement from Gymnasium
1475+
v1.0.0 requiring all environments to be a subclass of ``Gymnasium.Env`` when using the ``make`` interface.
14401476

14411477

14421478
0.27.19 (2024-12-02)
@@ -1464,7 +1500,8 @@ Changed
14641500
Added
14651501
^^^^^
14661502

1467-
* Added ``create_new_stage`` setting in :class:`~isaaclab.app.AppLauncher` to avoid creating a default new stage on startup in Isaac Sim. This helps reduce the startup time when launching Isaac Lab.
1503+
* Added ``create_new_stage`` setting in :class:`~isaaclab.app.AppLauncher` to avoid creating a default new
1504+
stage on startup in Isaac Sim. This helps reduce the startup time when launching Isaac Lab.
14681505

14691506

14701507
0.27.16 (2024-11-15)
@@ -1482,7 +1519,8 @@ Added
14821519
Fixed
14831520
^^^^^
14841521

1485-
* Fixed indexing in :meth:`isaaclab.assets.Articulation.write_joint_limits_to_sim` to correctly process non-None ``env_ids`` and ``joint_ids``.
1522+
* Fixed indexing in :meth:`isaaclab.assets.Articulation.write_joint_limits_to_sim` to correctly process
1523+
non-None ``env_ids`` and ``joint_ids``.
14861524

14871525

14881526
0.27.14 (2024-10-23)
@@ -1571,8 +1609,10 @@ Added
15711609
Fixed
15721610
^^^^^
15731611

1574-
* Fixed usage of ``meshes`` property in :class:`isaaclab.sensors.RayCasterCamera` to use ``self.meshes`` instead of the undefined ``RayCaster.meshes``.
1575-
* Fixed issue in :class:`isaaclab.envs.ui.BaseEnvWindow` where undefined configs were being accessed when creating debug visualization elements in UI.
1612+
* Fixed usage of ``meshes`` property in :class:`isaaclab.sensors.RayCasterCamera` to use ``self.meshes``
1613+
instead of the undefined ``RayCaster.meshes``.
1614+
* Fixed issue in :class:`isaaclab.envs.ui.BaseEnvWindow` where undefined configs were being accessed when
1615+
creating debug visualization elements in UI.
15761616

15771617

15781618
0.27.5 (2024-10-25)
@@ -1590,7 +1630,8 @@ Added
15901630
Fixed
15911631
^^^^^
15921632

1593-
* Updated installation path instructions for Windows in the Isaac Lab documentation to remove redundancy in the use of %USERPROFILE% for path definitions.
1633+
* Updated installation path instructions for Windows in the Isaac Lab documentation to remove redundancy in the
1634+
use of %USERPROFILE% for path definitions.
15941635

15951636

15961637
0.27.3 (2024-10-22)
@@ -1609,7 +1650,8 @@ Fixed
16091650
Added
16101651
^^^^^
16111652

1612-
* Added ``--kit_args`` to :class:`~isaaclab.app.AppLauncher` to allow passing command line arguments directly to Omniverse Kit SDK.
1653+
* Added ``--kit_args`` to :class:`~isaaclab.app.AppLauncher` to allow passing command line arguments directly to
1654+
Omniverse Kit SDK.
16131655

16141656

16151657
0.27.1 (2024-10-20)
@@ -1648,8 +1690,10 @@ Added
16481690
* Added Imu sensor implementation that directly accesses the physx view :class:`isaaclab.sensors.Imu`. The
16491691
sensor comes with a configuration class :class:`isaaclab.sensors.ImuCfg` and data class
16501692
:class:`isaaclab.sensors.ImuData`.
1651-
* Moved and renamed :meth:`isaaclab.sensors.camera.utils.convert_orientation_convention` to :meth:`isaaclab.utils.math.convert_camera_frame_orientation_convention`
1652-
* Moved :meth:`isaaclab.sensors.camera.utils.create_rotation_matrix_from_view` to :meth:`isaaclab.utils.math.create_rotation_matrix_from_view`
1693+
* Moved and renamed :meth:`isaaclab.sensors.camera.utils.convert_orientation_convention` to
1694+
:meth:`isaaclab.utils.math.convert_camera_frame_orientation_convention`
1695+
* Moved :meth:`isaaclab.sensors.camera.utils.create_rotation_matrix_from_view` to
1696+
:meth:`isaaclab.utils.math.create_rotation_matrix_from_view`
16531697

16541698

16551699
0.25.2 (2024-10-16)

source/isaaclab/isaaclab/assets/articulation/articulation_cfg.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,15 @@ class InitialStateCfg(AssetBaseCfg.InitialStateCfg):
3939
class_type: type = Articulation
4040

4141
articulation_root_prim_path: str | None = None
42-
"""Path to the articulation root prim in the USD file.
42+
"""Path to the articulation root prim under the :attr:`prim_path`. Defaults to None, in which case the class
43+
will search for a prim with the USD ArticulationRootAPI on it.
4344
44-
If not provided will search for a prim with the ArticulationRootAPI. Should start with a slash.
45+
This path should be relative to the :attr:`prim_path` of the asset. If the asset is loaded from a USD file,
46+
this path should be relative to the root of the USD stage. For instance, if the loaded USD file at :attr:`prim_path`
47+
contains two articulations, one at `/robot1` and another at `/robot2`, and you want to use `robot2`,
48+
then you should set this to `/robot2`.
49+
50+
The path must start with a slash (`/`).
4551
"""
4652

4753
init_state: InitialStateCfg = InitialStateCfg()

0 commit comments

Comments
 (0)