Skip to content

fix(models): remove FetchCamera, unshippable and unused in RVC3#545

Merged
petercorke merged 3 commits into
mainfrom
fix/remove-fetchcamera
Jul 5, 2026
Merged

fix(models): remove FetchCamera, unshippable and unused in RVC3#545
petercorke merged 3 commits into
mainfrom
fix/remove-fetchcamera

Conversation

@petercorke

Copy link
Copy Markdown
Owner

Summary

  • FetchCamera() always raised FileNotFoundError: it points at "fetch_description/robots/fetch_camera.urdf", which doesn't exist in the bundled rtb-data xacro tree (no fetch_description folder there at all) or in robot_descriptions' fetch_description package (only ships fetch.urdf, the file Fetch.py uses — confirmed via direct inspection of the cached clone).
  • Unlike Valkyrie/Fetch (upstream file exists but is malformed, patched in fix(models): patch broken upstream RD files for Valkyrie and Fetch #543), there's no file to patch here — the referenced asset was simply never shipped anywhere, by either source.
  • Not referenced in the RVC3 textbook, so removing rather than trying to source/bundle a replacement asset.
  • Note: examples/fetch_vision.py (tracked) uses both Fetch() and FetchCamera() 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 without FetchCamera. Left as-is — flagging here in case a follow-up wants to update/remove it.

Test plan

  • hasattr(rtb.models.URDF, 'FetchCamera')False
  • Full test suite: 652 passed, 13 skipped, no regressions (no existing test exercised FetchCamera)

🤖 Generated with Claude Code

…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>
@codecov

codecov Bot commented Jul 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 0.00%. Comparing base (a9ed8d4) to head (8bc9bdb).
⚠️ Report is 48 commits behind head on main.

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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@petercorke petercorke merged commit 17c67d2 into main Jul 5, 2026
18 checks passed
@petercorke petercorke deleted the fix/remove-fetchcamera branch July 5, 2026 08:33
@github-actions github-actions Bot mentioned this pull request Jul 5, 2026
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant