Repository navigation
dotbot/calibration: fix a spin calibration to the floor with anchor robots - #325
Merged
Merged
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #325 +/- ##
==========================================
+ Coverage 88.43% 88.46% +0.02%
==========================================
Files 230 230
Lines 37022 37135 +113
Branches 2323 2323
==========================================
+ Hits 32739 32850 +111
- Misses 4279 4281 +2
Partials 4 4
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
geonnave
force-pushed
the
lh2-multi-anchors
branch
from
October 2, 2026 12:54
24fef77 to
1be28fd
Compare
geonnave
force-pushed
the
lh2-multi-anchors
branch
from
October 4, 2026 02:23
1be28fd to
74a26b1
Compare
geonnave
force-pushed
the
lh2-multi-anchors
branch
from
October 14, 2026 18:22
74a26b1 to
d105997
Compare
This was referenced Oct 14, 2026
geonnave
force-pushed
the
lh2-multi-anchors
branch
from
October 15, 2026 11:26
d105997 to
2f2eb7e
Compare
geonnave
force-pushed
the
lh2-multi-anchors
branch
2 times, most recently
from
October 16, 2026 12:59
5d7565f to
cd716c7
Compare
…obots AI-assisted: Claude Opus 5.5
AI-assisted: Claude Opus 5.5
…s zero AI-assisted: Claude Opus 5.5
AI-assisted: Claude Opus 5.5
geonnave
force-pushed
the
lh2-multi-anchors
branch
from
October 16, 2026 13:23
cd716c7 to
6f940e5
Compare
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.
Based on
main(#324 merged): this PR is its four commits.A spin calibration is free mode by default: metric through the spin radius, but placed by the rectangle around the robots. When a true site frame is wanted, robots spinning with their pivot on known points can fix it for every station at once.
dotbot swarm calibrate-lh2 collect --spin --anchor ADDRESS=X,Y(repeatable, two or more) marks those robots. The joint solve runs exactly as without anchors, then the whole solution is moved by the one rigid motion that best puts the anchors' spin centres on their known points. The fit is rigid only: the spin radius keeps setting scale, and a consistent disagreement (radius wrong, slip bias, floor not flat) shows up as the reported anchor scale ratio instead of being absorbed. Each anchor's residual is reported, rectangles and the error map are recomputed in the site frame, stations are saved asconics-anchoredwith the site's own anchor (sosite init --from-calibrationand--append, which are for free mode, refuse them).An anchor address that is not among the robots ready to spin is refused before anything spins, rather than after the 90 s capture; anchor points that would put a station's rectangle below the site's zero are refused by name, since positions are unsigned on the robot.
Anchors bunched together fix position but hold yaw over a short baseline, so a warning fires when they span less than half the fence's diagonal.
Validation, host only: four anchors at the far corners of a two-station synthetic floor (two under each station) put both stations within 2 mm rms of the true floor at 1 mm noise, with no alignment at all; four clustered anchors raise the warning; marks 1 % further apart than the circles report scale ratio 1.01; fewer than two anchors, or one no station kept, are refused; an anchor robot that would not spin is refused before the spin; anchors that put a station below zero are refused;
collect --spin --anchorruns end to end over a faked swarm. Full suite: 1752 passed;pre-commitclean.dotbot/calibration/multi_station.pydotbot/cli/swarm_lh2.pydotbot/tests/test_calibration_multi_station.pydotbot/tests/test_calibration_spin.pydotbot/calibration/conics.py