-
Notifications
You must be signed in to change notification settings - Fork 3k
Changes Quaternion convention from WXYZ to XYZW #4437
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
base: develop
Are you sure you want to change the base?
Conversation
|
Skipped: This PR changes more files than the configured file change limit: ( |
source/isaaclab/isaaclab/assets/deformable_object/deformable_object_data.py
Outdated
Show resolved
Hide resolved
… partially failing. Something is off.
…s in wxyz format. Probably a lot more left.
…ng. I'll restart the docker
3ce9a3e to
43375fc
Compare
|
@njawale42 @peterd-NV @michaellin6 fyi - we'll likely need to update the curobo, mimic, and IK tests with these changes. |
|
@ooctipus could you check the fabric stuff? I think I may have used the wrong ordering, but it still passes the tests somehow? |
|
@kellyguo11 Looks like the regular test suites are passing. Do you know if we could run the whole set of tests on this PR? |
|
I think fabric looks right! |
Description
Changes the quaternion convention in IsaacLab to match that of:
Fixes https://github.com/isaac-sim/IsaacLab-Internal/issues/744
This PR brings massive changes throughout the code base. Almost all users should expect their code to be impacted by these changes. We provide a tool that should help users navigate these changes.
./scripts/tools/find_quaternions.pyprovides users with an automated script to search throughout the code base some quaternions that do not differ between the current code and a given commit. This can be used to track if your code has changed the order of its hard-coded quaternions.For instance running the following will show all the quaternions that might need to be updated inside your extension. The dry-run flag will make it so that the script does not attempt to modify the quaternions.
If you want to modify the quaternions the script comes with an interactive mode where it prompts you with changes to be made, to do so remove the
--dry-runflag:The
--contextflag provides more or less context before and after the line where a quaternion was found.Here is a sample of the interactive mode:
Searching 968 Python, 11 JSON, and 6 RST files... Comparing against: main Found 178 files changed from main Found 69 potential quaternions to review: ==================================================================================================== ──────────────────────────────────────────────────────────────────────────────── 📍 source/isaaclab_assets/isaaclab_assets/robots/anymal.py:173 [AMBIGUOUS] ──────────────────────────────────────────────────────────────────────────────── 169 | # Configuration - Sensors. 170 | ## 171 | 172 | ANYMAL_LIDAR_CFG = VELODYNE_VLP_16_RAYCASTER_CFG.replace( >>> 173 | offset=RayCasterCfg.OffsetCfg(pos=(-0.310, 0.000, 0.159), rot=(0.0, 0.0, 0.0, 1.0)) 174 | ) 175 | """Configuration for the Velodyne VLP-16 sensor mounted on the ANYmal robot's base.""" ──────────────────────────────────────────────────────────────────────────────── Change: [0.0, 0.0, 0.0, 1.0] → [0.0, 0.0, 1.0, 0.0] Result: offset=RayCasterCfg.OffsetCfg(pos=(-0.310, 0.000, 0.159), rot=(0.0, 0.0, 1.0, 0.0)) Apply this fix? [Y/n/a/q]: Y ✅ Fixed! ──────────────────────────────────────────────────────────────────────────────── 📍 source/isaaclab_mimic/test/test_curobo_planner_franka.py:42 [AMBIGUOUS] ──────────────────────────────────────────────────────────────────────────────── 38 | 39 | # Predefined EE goals for the test 40 | # Each entry is a tuple of: (goal specification, goal ID) 41 | predefined_ee_goals_and_ids = [ >>> 42 | ({"pos": [0.70, -0.25, 0.25], "quat": [0.0, 0.707, 0.0, 0.707]}, "Behind wall, left"), 43 | ({"pos": [0.70, 0.25, 0.25], "quat": [0.0, 0.707, 0.0, 0.707]}, "Behind wall, right"), 44 | ({"pos": [0.65, 0.0, 0.45], "quat": [1.0, 0.0, 0.0, 0.0]}, "Behind wall, center, high"), 45 | ({"pos": [0.80, -0.15, 0.35], "quat": [0.0, 0.5, 0.0, 0.866]}, "Behind wall, far left"), 46 | ({"pos": [0.80, 0.15, 0.35], "quat": [0.0, 0.5, 0.0, 0.866]}, "Behind wall, far right"), ──────────────────────────────────────────────────────────────────────────────── Change: [0.0, 0.707, 0.0, 0.707] → [0.707, 0.0, 0.707, 0.0] Result: ({"pos": [0.70, -0.25, 0.25], "quat": [0.707, 0.0, 0.707, 0.0]}, "Behind wall, left"), Apply this fix? [Y/n/a/q]: Y ✅ Fixed! ──────────────────────────────────────────────────────────────────────────────── 📍 source/isaaclab_mimic/test/test_curobo_planner_franka.py:43 [AMBIGUOUS] ──────────────────────────────────────────────────────────────────────────────── 39 | # Predefined EE goals for the test 40 | # Each entry is a tuple of: (goal specification, goal ID) 41 | predefined_ee_goals_and_ids = [ 42 | ({"pos": [0.70, -0.25, 0.25], "quat": [0.707, 0.0, 0.707, 0.0]}, "Behind wall, left"), >>> 43 | ({"pos": [0.70, 0.25, 0.25], "quat": [0.0, 0.707, 0.0, 0.707]}, "Behind wall, right"), 44 | ({"pos": [0.65, 0.0, 0.45], "quat": [1.0, 0.0, 0.0, 0.0]}, "Behind wall, center, high"), 45 | ({"pos": [0.80, -0.15, 0.35], "quat": [0.0, 0.5, 0.0, 0.866]}, "Behind wall, far left"), 46 | ({"pos": [0.80, 0.15, 0.35], "quat": [0.0, 0.5, 0.0, 0.866]}, "Behind wall, far right"), 47 | ] ──────────────────────────────────────────────────────────────────────────────── Change: [0.0, 0.707, 0.0, 0.707] → [0.707, 0.0, 0.707, 0.0] Result: ({"pos": [0.70, 0.25, 0.25], "quat": [0.707, 0.0, 0.707, 0.0]}, "Behind wall, right"), Apply this fix? [Y/n/a/q]: Y ✅ Fixed!Type of change
Checklist
pre-commitchecks with./isaaclab.sh --formatconfig/extension.tomlfileCONTRIBUTORS.mdor my name already exists there