Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion source/isaaclab/config/extension.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]

# Note: Semantic Versioning is used: https://semver.org/
version = "0.50.5"
version = "0.50.6"

# Description
title = "Isaac Lab framework for Robot Learning"
Expand Down
11 changes: 11 additions & 0 deletions source/isaaclab/docs/CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
Changelog
---------

0.50.6 (2025-12-18)
~~~~~~~~~~~~~~~~~~~

Fixed
^^^^^

* Fixed issue where :meth:~isaaclab.envs.mdp.observations.body_pose_w` was modifying the original body pose data
when using slice or int for body_ids in the observation config. A clone of the data is now created to avoid modifying
the original data.


0.50.5 (2025-12-15)
~~~~~~~~~~~~~~~~~~~

Expand Down
2 changes: 2 additions & 0 deletions source/isaaclab/isaaclab/envs/mdp/observations.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,8 @@ def body_pose_w(

# access the body poses in world frame
pose = asset.data.body_pose_w[:, asset_cfg.body_ids, :7]
if isinstance(asset_cfg.body_ids, (slice, int)):
pose = pose.clone() # if slice or int, make a copy to avoid modifying original data
Comment on lines 156 to +158
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or we always clone? I don't think it's that expensive?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you check if this issue arises some place else by accident

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked this should be the only place

pose[..., :3] = pose[..., :3] - env.scene.env_origins.unsqueeze(1)
return pose.reshape(env.num_envs, -1)

Expand Down
Loading