Conversation
# Conflicts: # waldo_commander/components/skill_library.py
…served The skill passed the calibration's own backend into localize_board, so validate's 'robot backend changed; recalibrate' check compared the calibration against itself and could never fire. It passes the backend the client advertises now. A tool camera's localization brackets its capture with arm observations -- two status frames each way plus two transform reads -- and those ran on the image-acquisition budget. A documented-legal short timeout therefore failed every tool-camera localization with a message blaming the operator's arm for moving. They have their own budget. SKIP=ty: pre-existing DryRunRobotClient.skill_capabilities diagnostic. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ion-localization # Conflicts: # waldo_commander/components/skill_library.py
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N8zt66KjkzgZLtQuSfJd9r
isinstance against the DryRunClient protocol resolves members statically and never matches the preview wrapper or the skill guard; is_dry_run asks the way a call would. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N8zt66KjkzgZLtQuSfJd9r
This branch has not been deployed
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.
Programs can locate a printed ChArUco board from saved fixed or tool-camera calibration.
locate_boardreturns a WRF pose, host receipt time, quality metrics, and typed found/missing/rejected outcomes. The pure localization function accepts an explicit image, checks calibration bindings, and rejects poor or ambiguous planar solutions using OpenCV IPPE. It does not command motion.Launched Python programs use an explicit
CommanderCameraSourceto request fresh images from Commander's active camera through an authenticated loopback session. Each session ends with its process. Standalone programs can supply their ownFrameSource; preview requires an explicitImageFixtureand never opens the live source. Tool cameras require stationary observations with matching tool/TCP transforms. The Skills panel inserts fixed calibration/setup snapshots and the explicit source; the program log reports detection outcomes.Validation: image geometry/quality/preview and script-runner workflows passed (9 tests); the full camera-service, generated-program, isolated-fixture preview, and hardware-WebGL browser batch passed (6 tests, 1 platform skip). The PAR6 runtime workflow passed, including tool-camera localization and program-stop queue cancellation. Final populated-panel screenshot and all pre-commit checks passed. Tests use rendered board images, PAROL6 fake serial, and
par6d --sim; they do not establish physical localization accuracy.Stacked on #55. Requires waldoctl camera data #31. Matching
feat/vision-localizationdependency refs point at the existing camera-contract and backend heads; no additional backend changes are needed.Program execution also keeps preview pose updates out of running or stepped programs. Programmatic slider updates no longer issue simulator teleports, and completion barriers do not mistake a wait timeout for command completion. Both regressions failed before their fixes. The native PAR6 long-delay/Stop/subsequent-command workflow and 17 affected stepping checks pass; pre-commit checks pass.
CI follow-up: the skill-form browser wait now tolerates tooltip removal during visibility checks. A Windows 3.12 collision refusal remains under investigation; the complete local collision-world, control-lease, jogging, and capture/recorded-insertion sequence passes all 52 checks. Failed joint-limit motion now includes full controller error, collision pairs, world, tool, and joint context in the test report. CI for the updated head is pending.
Vision skill arguments share the compact setup selector, with optional per-argument overrides and concise camera guidance.
Screenshots — revised interface, PAROL6 and PAR6
Captured in Chromium on September 10 from the combined feature stack; shared panels may include later PRs. PAROL6 uses fake serial; PAR6 uses
par6d --sim.PAROL6 — Locate board form with a saved camera calibration fixture.
PAR6 — Locate board form with a saved camera calibration fixture.