Fix ABB/RFL inertias and preserve PyBullet base-link placement - #488
Open
gonzalocasas wants to merge 1 commit into
Open
Fix ABB/RFL inertias and preserve PyBullet base-link placement#488gonzalocasas wants to merge 1 commit into
gonzalocasas wants to merge 1 commit into
Conversation
Apply the mesh-derived inertias contributed in issue #486, document their approximation, and validate physical realizability across the robot library. Correct the PyBullet inertial-to-link frame conversion exposed by the new ABB base centre of mass. Co-authored-by: OmniLink <234818255+omnilink-tech@users.noreply.github.com>
gonzalocasas
marked this pull request as ready for review
September 8, 2026 10:30
Member
Author
|
@yijiangh @yck011522 hey guys, this bug report surfaced something unexpected in the pybullet client. It looks rather decent to me, but maybe you can take a deeper look at it? Thanks!!! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The bundled ABB IRB4600-40/2.55 and RFL URDFs contain 45 physically invalid inertia tensors, which prevent MuJoCo from loading either model. Apply the two patches contributed by @omnilink-tech, correcting the tensors and centres of mass for all 7 ABB and 38 RFL inertial links.
Applying the URDF changes also exposed a PyBullet integration bug: setting the ABB base to the world origin displaced its tool by about 14 cm because the backend passed a base-link pose to an API that expects the base's inertial pose. Convert between those frames when reading or setting a base pose, including object placement. Regression tests cover translated and rotated inertial frames at two base poses and check the child-link pose as well as the base, so matching setter/getter errors cannot hide a displacement.
The replacement values are uniform-density approximations of the collision meshes at the existing declared masses, not manufacturer dynamic parameters. The masses remain unvalidated: their implied densities range from about 1.08 kg/m³ for the RFL gantry to 14,171 kg/m³ for the ABB wrist. Both URDFs now carry this caveat. The numerical patch values are unchanged; only explanatory XML comments were added.
Closes #486.
Independent validation
4.19e-8 m; maximum relative tensor error (Frobenius norm):3.54e-9. Checked the integration library against the analytic inertia of a rotated and translated box.main.inertiafromgeom="false",balanceinertia="false": both originals fail with non-positive inertia eigenvalues; both corrected models load and run with finite positions, velocities and accelerations, no warnings, and no simulation resets. ABB: 7 bodies, 415 kg, 500 steps. RFL: 35 bodies, 3340 kg, 5000 steps. These are smoke checks, not validation of real-machine dynamics.pytest -q: 195 passed, 21 skipped (opt-in live ROS integration tests).invoke lint, Ruff formatting checks for changed Python files, andgit diff --check: passed.What type of change is this?
Checklist
Unreleased.AUTHORS.md.