-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Center circle detection for camera calibration #1057
base: main
Are you sure you want to change the base?
Center circle detection for camera calibration #1057
Conversation
4d47a7e
to
dba2eff
Compare
dba2eff
to
83d1ebe
Compare
83d1ebe
to
d617886
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
I'm cleaning up this branch to remove the testing stuff, hopefully can get it ready today. |
d617886
to
0b37ea7
Compare
Is this still on track for RC24? If we cannot manage for RC24, I'd suggest to remove the label 👍 |
0b37ea7
to
9d1f987
Compare
Sorry, I didn't see this. I'm afraid there won't be enough time to properly review and merge it to main. But it is ready for "beta" testing now ;) I'll update the how-to later today. I tested the workflow and detection seperately and with initial integration a week ago, it worked but needed cleaning up. |
d93d5ac
to
54f6409
Compare
54f6409
to
df71f00
Compare
b2c4c90
to
9f244b6
Compare
Minimum distance between three points of circle ransac is enforced WIP filtering Remove unused components and have a more "functional" interface. Additional outputs are ready Add cycle instance to the additional outputs Initial work to get line detection debug images into twix Can visualise the intermediate stages of line detection via twix. Get some crude timing Resize image for easier debug Fixed the resizing Parameters for fast debugging Faster processing setup View filtered calibration lines Filter points by horizon
Make the cycler to work WIP tuning
Cleaning up & clippifying Refactored the cycler Render edge points Use image segments as an alternative source of edge points updated score calculation scheme and random generator change to ChaCha Sub-sampling for faster search (= more iterations per search can be done)
Edge detection crate
Downgrade stuff & fix transitive dependency issue
Rename parameters and struct members. Update the twix panel to work properly Clippy fixes
9f244b6
to
afcf572
Compare
@tuxbotix what's the state with this pr |
Currently being tested under #1508 . The scope of this PR works as advertised and any refinement steps should be in a separate PR IMHO I discussed with @oleflb last week and while it is easier to test calibration with an all in one branch, reviewing and merging would be annoying 😬. This branch could be revised to match the scope of the title and merged. Then #1508 will have the integration part to the calibration pipeline and possible refinements. I'll finish cleaning this up today. |
Why? What?
Provides 3 features, could be splitted but makes it harder to test all together.
tuning_mode
triggers detection on every circle regardless ofCalibrationCommand
.This was originally developed on top of work on branches/ PRs (#695)
How it works: from RC2023 Bordeaux

Differences from the line-RANSAC:
Testing via #1508
Fixes #
ToDo / Known Issues
[ ] Alternatively, construct the circle from a minimum-sized arc (i.e. 100 degree continuous arc with radius R)Ideas for Next Iterations (Not This PR)
How to Test
You can subscribe to:
calibration_command
to see the state changescalibration_inner.measurements
additional from calibration controller to see the measurements collectedlast_calibration_corrections
Tuning mode (vision parameters)
The parameters are tuned to a decent state already, but if needed it can be tuned further.
Parameters
tuning_mode
- keeps running the cycler even when no calibration command is recieving from the calibration controller.ransac_circle_minimum_circumference_percentage
helps to reduce false positive.hits on T junctions, etc with very few points.get_edges_from_segments
- uses segments instead of Canny to generate points for RANSAC Overall speed is quite decent but not as good as Canny based approachgaussian_sigma
controlls the Gaussian blur strength. Best left untouched.canny_*
- controlls canny edge detection. Can be tuned for lighting conditions, but these values should work already.How-to
Twix:
calibration_center_circles
of the given cycler to see raw.outputcalibration_center_circle_detection.circles_points_pixel_scores
additional to see the score for each circle.calibration_center_circle_detection
tuning_mode
for top or bottom (not both as this would slow things down.ransac_circle_minimum_circumference_percentage
to 0.1 or something, it should