fix(deps): pin robot_descriptions<3.0, UR5 broke on the unpinned major bump#554
Merged
Conversation
…r bump robot_descriptions 3.0.0 (uploaded 2026-07-11) resolves "ur5" to a different upstream repo (Universal_Robots_ROS2_Description) with a different link count/ordering than 2.0.0. UR5.__init__'s gripper_link_index=7 is a raw positional index into the parsed link list - calibrated against the old vendored/local URDF from before this model switched to live robot_descriptions resolution - so it now lands on wrist_2_link (a real arm joint) instead of the intended tool attachment link, silently dropping 2 of 6 joints from self.n and breaking addconfiguration_attr's vector-length check. pyproject.toml never had an upper bound on robot_descriptions, so every fresh install picks up whatever's latest on PyPI at install time - this was going to break CI (and any user's fresh install) regardless of what branch or commit was checked out. Pinned >=2.0,<3.0, same floor+ceiling pattern already used for rtb-data. Not a full fix: compared the raw link lists between both robot_descriptions versions and confirmed all 6 real arm joint names/ isjoint status match exactly across both, and a shared "tool0" link exists in both too (just at a different index) - so a name/structure -based gripper-link lookup would survive this exact upstream change, unlike the hardcoded index. Recorded as its own tech-debt entry rather than bundling a rushed redesign into this pin. Verified: full suite green (620 passed, 72 skipped) with robot_descriptions pinned to 2.0.0. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #554 +/- ##
======================================
Coverage 0.00% 0.00%
======================================
Files 136 141 +5
Lines 13438 13659 +221
======================================
- Misses 13438 13659 +221 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…ackage Sphinx's docs-build job never caught this on PR #553 (the ET/ETS package split) because it's gated behind tests passing, and tests were failing there for the unrelated UR5/robot_descriptions reason - so docs-build never actually ran until this PR fixed that gate. arm_ets.rst and ik.rst still referenced the pre-split roboticstoolbox.robot.ETS.ETS(2) module path; ETS now lives at roboticstoolbox.ets.ETS.ETS and ETS2 at roboticstoolbox.ets.ETS2.ETS2 (separate files). Left autosummary to regenerate docs/source/IK/stubs/ (gitignored) against the corrected path. Verified: sphinx-build succeeds locally (previously a hard failure, ImportExceptionGroup: could not import roboticstoolbox.robot.ETS.ETS); remaining 4 warnings (KinematicCache, SensorBase, a guarded matplotlib Color import) are unrelated and pre-existing. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.
Summary
robot_descriptions3.0.0 (uploaded 2026-07-11) resolves"ur5"to a different upstream repo (Universal_Robots_ROS2_Description) with a different link count/ordering than 2.0.0.UR5.__init__'sgripper_link_index=7is a raw positional index into the parsed link list, calibrated against the old vendored/local URDF from before this model switched to liverobot_descriptionsresolution. Under 3.0.0's structure it lands onwrist_2_link(a real arm joint) instead of the intended tool-attachment link, silently dropping 2 of 6 joints fromself.nand breakingaddconfiguration_attr's vector-length check.pyproject.tomlhad no upper bound onrobot_descriptions, so this would break on any fresh install regardless of branch/commit. Pinned>=2.0,<3.0, matching the existing floor+ceiling pattern already used forrtb-data.robot_descriptionsversions and confirmed all 6 real arm joint names/isjointstatus match exactly across both, and a shared"tool0"link exists in both (just at a different index), so a name/structure-based gripper-link lookup would survive this exact upstream change, unlike the hardcoded index.Test plan
robot_descriptions==3.0.0directly.<3.0pin (test_UR5,test_all_models_construct,test_IK_GN3all pass).