-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Fixes collision synchronization in cuRobo planner #4212
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: main
Are you sure you want to change the base?
Conversation
Greptile OverviewGreptile SummaryAdds coordinate transformation from world frame to robot base frame when syncing object poses with cuRobo's world model, addressing collision detection issues when the robot is not at the origin. However, the fix is incomplete. The PR correctly transforms object poses for the world model update (lines 631-637), but fails to apply the same transformation in the collision checker update loop (lines 673-686). This means the collision checker still receives world-frame coordinates instead of robot base-frame coordinates, which will cause the same collision detection bugs the PR intended to fix.
Confidence Score: 1/5
Important Files ChangedFile Analysis
Sequence DiagramsequenceDiagram
participant IL as Isaac Lab
participant SP as _sync_object_poses
participant RO as Rigid Objects
participant WM as World Model
participant CC as Collision Checker
Note over SP: Collision Synchronization Flow
SP->>RO: Get object mappings
loop For each dynamic object
SP->>RO: Get world-frame pose (root_pos_w, root_quat_w)
SP->>SP: Subtract env_origin
SP->>SP: Transform to robot base frame (subtract_frame_transforms)
Note over SP: ✅ Lines 631-637: Added in this PR
SP->>SP: Convert to cuRobo device
SP->>WM: Update object pose in world model
end
alt If objects updated > 0
loop For each dynamic object
SP->>RO: Get world-frame pose (root_pos_w, root_quat_w)
SP->>SP: Subtract env_origin
Note over SP: ❌ Lines 673-680: Missing transformation!
SP->>SP: Convert to cuRobo device
SP->>CC: update_obstacle_pose() with world-frame coords
Note right of CC: Incorrect: expects robot base frame
end
end
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Additional Comments (1)
-
source/isaaclab_mimic/isaaclab_mimic/motion_planners/curobo/curobo_planner.py, line 673-680 (link)logic: Missing coordinate transformation from world frame to robot base frame. The world model update loop (lines 631-637) correctly transforms object poses, but this collision checker update loop still uses world-frame coordinates.
1 file reviewed, 1 comment
Description
This PR fixes a bug in the cuRobo motion planner where object poses were not correctly transformed from world frame to robot base frame during collision world synchronization.
The issue occurred in the
_sync_object_poses_with_isaaclabmethod, which was directly using world-frame object poses without accounting for the robot's base position and orientation. This caused incorrect collision detection when the robot was not located at the origin point of world coordinate, as cuRobo expects poses relative to the robot base frame.Fixes # (issue)
Type of change
Checklist
pre-commitchecks with./isaaclab.sh --formatconfig/extension.tomlfileCONTRIBUTORS.mdor my name already exists there