fix(models): remove FetchCamera, unshippable and unused in RVC3#545
Merged
Conversation
…hippable FetchCamera.py pointed at "fetch_description/robots/fetch_camera.urdf", which doesn't exist in either the bundled rtb-data xacro tree (no fetch_description folder at all) or robot_descriptions' fetch_description package (only ships fetch.urdf, the file Fetch.py uses) — always raised FileNotFoundError. Unlike Valkyrie/Fetch, there's no upstream file to patch here; the referenced asset was simply never shipped anywhere. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
3 tasks
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #545 +/- ##
======================================
Coverage 0.00% 0.00%
======================================
Files 137 136 -1
Lines 13690 13437 -253
======================================
+ Misses 13690 13437 -253 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
petercorke
added a commit
that referenced
this pull request
Jul 5, 2026
Valkyrie, Fetch, and KinovaGen3 are now fixed on main; FetchCamera is removed entirely (so its entry would be a harmless no-op, but delete it for hygiene). Only LBR remains genuinely broken.
petercorke
added a commit
that referenced
this pull request
Jul 5, 2026
…547) * test(models): add smoke test that every DH/URDF/ETS model constructs Existing tests are hand-written per model, so a model exported in __all__ can go completely untested -- Valkyrie, Fetch, KinovaGen3, FetchCamera, and LBR all had zero coverage this way, three of them silently broken with nothing to catch it (see tech-debt.md). Iterates each category's own __all__ directly (rather than scanning module __dict__/inspect.getmembers, which would also pick up re-exported base classes like Robot/URDFRobot) and asserts every listed class constructs with no arguments. Known-currently-broken models are tracked in an explicit EXPECTED_FAILURES set, which fails loudly in *both* directions: a newly-broken model fails the test, and a since-fixed "expected failure" that starts passing also fails the test, forcing its entry to be cleaned up rather than silently going stale. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * test(models): trim EXPECTED_FAILURES now that #543/#545/#546 are merged Valkyrie, Fetch, and KinovaGen3 are now fixed on main; FetchCamera is removed entirely (so its entry would be a harmless no-op, but delete it for hygiene). Only LBR remains genuinely broken. --------- 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
FetchCamera()always raisedFileNotFoundError: it points at"fetch_description/robots/fetch_camera.urdf", which doesn't exist in the bundledrtb-dataxacro tree (nofetch_descriptionfolder there at all) or inrobot_descriptions'fetch_descriptionpackage (only shipsfetch.urdf, the fileFetch.pyuses — confirmed via direct inspection of the cached clone).examples/fetch_vision.py(tracked) uses bothFetch()andFetchCamera()together for a vision-servoing demo. It already couldn't run (FetchCamera()always failed), so this doesn't introduce a new regression, but the example is now fully non-functional withoutFetchCamera. Left as-is — flagging here in case a follow-up wants to update/remove it.Test plan
hasattr(rtb.models.URDF, 'FetchCamera')→FalseFetchCamera)🤖 Generated with Claude Code