Zero the Newton shape margin for ANYmal-D physX-Newton sim2sim - #6828
Zero the Newton shape margin for ANYmal-D physX-Newton sim2sim#6828Double7sBurger wants to merge 3 commits into
Conversation
The shared 1 cm shape margin inflates ANYmal-D's base capsule into its own thigh colliders, which trips the base_contact termination while the robot is upright and walking. Zeroing the margin for this task raises success under Newton MJWarp from 28.9% to 93.1%. Scoped to AnymalDRoughEnvCfg; other robots keep the shared default.
Greptile SummaryThis PR scopes Newton’s zero shape margin to ANYmal-D locomotion configurations.
Confidence Score: 5/5The PR appears safe to merge, with no actionable correctness or security issues identified. The override reaches the Newton MJWarp configuration selected for ANYmal-D, preserves the inherited shape configuration defaults other than margin, and does not alter other robot configurations. Important Files Changed
Reviews (1): Last reviewed commit: "Zero the Newton shape margin for ANYmal-..." | Re-trigger Greptile |
There was a problem hiding this comment.
Isaac Lab Review Bot
The PR scopes the Newton MJWarp shape-margin override to AnymalDRoughEnvCfg and adds the required isaaclab_tasks changelog fragment. The task-local configuration path and post-initialization ordering are consistent with the intended fix.
- Design and architecture: The shared Newton default remains unchanged for other robots, while ANYmal-D receives the zero-margin override after its inherited simulation configuration is initialized. The direct Newton import introduces backend coupling, but the supplied context does not establish that
isaaclab_newtonis optional or unavailable in supported task installations, so the reported import failure is not directly evidenced. - API: No public symbols or signatures change. The behavioral change is limited to the Newton MJWarp configuration for the ANYmal-D rough task and its derived configurations. The changelog fragment is correctly located and describes the fix in the appropriate category.
- Implementation: The override executes after
super().__post_init__(), ensuring it replaces the inherited shape configuration whennewton_mjwarpis present. Constructing a freshNewtonShapeCfgalso restores any other shape fields to that class's defaults; this is a non-blocking tradeoff with the current code but should be kept in mind if additional per-task shape settings are introduced later.
No blocking issues. No inline issue met the actionable-evidence threshold; the assessment above records the review feedback.
Automated review; human maintainers own approval decisions.
Copy the inherited NewtonShapeCfg and change only the margin, instead of constructing a fresh one that would reset gap, ke, kd and mu to class defaults if the shared preset ever customises them. This also drops the direct isaaclab_newton import.
AntoineRichard
left a comment
There was a problem hiding this comment.
I'm not sure this should be merged if the better fix is to update the asset. We can update the asset so I would favor that option over changing this setting. If you need help on how to update the asset let us know!
AntoineRichard
left a comment
There was a problem hiding this comment.
Blocking for now.
|
Hi! I think change on both assets or repo code would work, could you please send me some tutorials about how to modify the asset?
Thank you!
…---- 回复的原邮件 ----
| 发件人 | Antoine ***@***.***> |
| 发送日期 | 2026年08月01日 00:16 |
| 收件人 | isaac-sim/IsaacLab ***@***.***> |
| 抄送人 | Henry ***@***.***>,
Author ***@***.***> |
| 主题 | Re: [isaac-sim/IsaacLab] Zero the Newton shape margin for ANYmal-D physX-Newton sim2sim (PR #6828) |
@AntoineRichard requested changes on this pull request.
Blocking for now.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Description
ANYmal-D fails on rough terrain under the Newton MJWarp backend: the robot is
terminated by the 1 N
base_contactcheck while it is still upright and walkingnormally.
The cause is a collision-geometry interaction. ANYmal-D's base collider is a
rotationally-symmetric capsule of radius 0.12 m, which leaves only a few millimetres
of clearance to the thigh colliders during normal gait. Newton's shape margin extends
the collision surface outward and the margins of both shapes are summed, so the shared
1 cm default turns that clearance into near-constant base↔thigh overlap.
Measured under Newton MJWarp with a PhysX-trained checkpoint (4096 envs, 3000 steps,
~12k episodes):
PhysX reference on the same checkpoint: 96.2%.
The override is scoped to
AnymalDRoughEnvCfg. Other robots keep the shared 1 cmdefault, which they need for stable contact on triangle-mesh terrain. Verified at
runtime that ANYmal-D resolves to margin 0.0 while Go2, H1 and Cassie still resolve to
0.01, including when several tasks are constructed in the same process.
The root cause is really the asset — a rotationally-symmetric capsule is a poor
approximation of a flat chassis. Shrinking the capsule to r = 0.10 m recovers the same
policy to 95.6%, and margin 0.005 on top of that reaches 96.1%. That is the better
long-term fix, but it changes a shipped asset and would affect existing checkpoints, so
this PR takes the minimal config-only mitigation.
Type of change
Checklist
./isaaclab.sh --formatsource/<pkg>/changelog.d/for every touched package (do not edit CHANGELOG.rstor bump extension.toml — CI handles that)