-
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
Automatic calibration controller (Der dessen name nicht genannt werden darf II) #798
Automatic calibration controller (Der dessen name nicht genannt werden darf II) #798
Conversation
31761f3
to
52633c0
Compare
This looks extremely wip, but resides in "Request for Review"... Do you expect of getting a review on your code in the current state? If not, please move to "In Progress" |
Hi,
Yes it is quite WIP and as written on Telegram when I opened it, this was
1.5 days work.
What I wanted by putting for request for review is to get first remarks and
feedback on the architecture and the implementation approach before
investing any more time.
If it is better, I can put this back to in development and discuss with you
and/or whoever else interested to decide if this is a good approach to
continue.
I simply wanted to avoid a repeat of HULKs/nao#2951
where the devised approach wasn't all that great. At the same time, trying
the implementation on this PR was much faster to answer the questions I had
about this approach regarding the framework.
…On Sun, 5 May 2024, 20:38 Maximilian Schmidt, ***@***.***> wrote:
This looks extremely wip, but resides in "Request for Review"... Do you
expect of getting a review on your code in the current state? If not,
please move to "In Progress"
—
Reply to this email directly, view it on GitHub
<#798 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABTOBX3WITSKJEM2I6KYDRDZAZ4EHAVCNFSM6AAAAABF3KK3OCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJUHEYDOMZTGU>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
d2cc79e
to
b42a0ec
Compare
c795dfe
to
da1c1f0
Compare
Fixed majority of the TODO/ WIP stuff. Works on Webots (Will test on a NAO today) It would be great if a review can be done on this status to confirm the design choices and finalize this PR. |
8f74ca0
to
3442d67
Compare
1abbc0f
to
b6b4a98
Compare
103e9bd
to
354cbdd
Compare
536db86
to
b9045e1
Compare
b9045e1
to
178155b
Compare
Apart from walking to positions on the field, this PR also seems to largely fix #127. |
* central_gamestate_timing * rebase * rebas * add last_filtered_game_controller_state_change to filtered_game_controller_state * rebase * formating * formating die 2te * rebase fixes * fix working now * Format * remove new lines * format --------- Co-authored-by: phillip kammradt <phillip.kammradt@tuhh>
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.
So, nu aber 😄
LGTM
…n darf II) (HULKs#798) * Initial work * All compiles *except* getting the measurements from vision * Make the controller to work * Make the behaviour simulator happy * Capture loop runs. Basic variety supports waiting for look-at. * Fake data format * Cleaner state handling * Got rid of calibration_control crate * Clippyfying * SerializeHierarchy for Measurement * Rename measurement provider * Use naming "CalibrationCommand" * Update last capture command time * WIP * Add missing fake data * Extend timestamp checking to work properly. * Start fake measurement * Switch to center circle candidates and trigger calibration * Additional output for debugging * fix rebase * All Woerks ;) * parametrize all * Change defaults * Remove center circle calibration dependency * Clean unused dependencies * Import cleanups * Fix serialisation mishaps and some other bits * Fix a few more errors * DOn't clone field_dimensions * Review fixes, pass 1 * Woerks * More cleaning * Simplify the vision cycler * Prettier fixes * Fix for re-enabling calibration after finish state * Reorder imports * fix more style issues * Clean up state tracking * destructure instead of match * Simplify calibration command: pass 1 * Simplify calibration command: pass 2 * Cleaned up * Replace From trait with a function that take &self * Reduce visibility * Fix malformed commet * Apply suggestions * Add copy trait * Simplified things * Make the big match smaller * Copy trait changed things * change headmotions for calibration * Central gamestate timeing (HULKs#1006) * central_gamestate_timing * rebase * rebas * add last_filtered_game_controller_state_change to filtered_game_controller_state * rebase * formating * formating die 2te * rebase fixes * fix working now * Format * remove new lines * format --------- Co-authored-by: phillip kammradt <phillip.kammradt@tuhh> * Change head motion cases * Use an inner struct to handle changing states * Simplify calibration command -> calibration capture command * Rename calibration command ;) --------- Co-authored-by: JackyBlox <[email protected]> Co-authored-by: phillip kammradt <phillip.kammradt@tuhh>
…n darf II) (#798) * Initial work * All compiles *except* getting the measurements from vision * Make the controller to work * Make the behaviour simulator happy * Capture loop runs. Basic variety supports waiting for look-at. * Fake data format * Cleaner state handling * Got rid of calibration_control crate * Clippyfying * SerializeHierarchy for Measurement * Rename measurement provider * Use naming "CalibrationCommand" * Update last capture command time * WIP * Add missing fake data * Extend timestamp checking to work properly. * Start fake measurement * Switch to center circle candidates and trigger calibration * Additional output for debugging * fix rebase * All Woerks ;) * parametrize all * Change defaults * Remove center circle calibration dependency * Clean unused dependencies * Import cleanups * Fix serialisation mishaps and some other bits * Fix a few more errors * DOn't clone field_dimensions * Review fixes, pass 1 * Woerks * More cleaning * Simplify the vision cycler * Prettier fixes * Fix for re-enabling calibration after finish state * Reorder imports * fix more style issues * Clean up state tracking * destructure instead of match * Simplify calibration command: pass 1 * Simplify calibration command: pass 2 * Cleaned up * Replace From trait with a function that take &self * Reduce visibility * Fix malformed commet * Apply suggestions * Add copy trait * Simplified things * Make the big match smaller * Copy trait changed things * change headmotions for calibration * Central gamestate timeing (#1006) * central_gamestate_timing * rebase * rebas * add last_filtered_game_controller_state_change to filtered_game_controller_state * rebase * formating * formating die 2te * rebase fixes * fix working now * Format * remove new lines * format --------- Co-authored-by: phillip kammradt <phillip.kammradt@tuhh> * Change head motion cases * Use an inner struct to handle changing states * Simplify calibration command -> calibration capture command * Rename calibration command ;) --------- Co-authored-by: JackyBlox <[email protected]> Co-authored-by: phillip kammradt <phillip.kammradt@tuhh>
Introduced Changes
The current work in #695 mainly provides the calibration line detection and extracting measurements (although the PR originally meant to implement the integration too).
Automatic Callibration (Der dessen name nicht genannt werden darf) #695 can be cleaned for calibration line detection and measurement extraction.-> Replaced by Center circle detection for camera calibration #1057Whichever PR gets merged last, will connect the final integration (writing calibration results, validation, etc) or as a 3rd PR.
Depends on #1076 (for datatypes & workflow testing) - It can be decoupled if nessesary.
Fixes #131
State changes:
Workflow
The controller node tracks the state of the primary state and issues the calibration commands when the primary state is set to Calibrate.
Commands & State
Calibrate
Calibrate
and also set the cycle time.{ started time }
initial_stabilization_delay
until the robot finishes movement and stabilizes.{ target, camera, dispatch_time }
look_at_dispatch_waiting
fromdispatch_time
to ensure the head movement is complete.{ dispatch_time }
ToDo / Known Issues
PerceptionInput
is correctRetriesExceeded
if it can't find any measurement.AdditionalOutputs
match
andif
blocks could be made more elegant/ flatterIdeas for Next Iterations (Not This PR)
Should consider adding camera to the(already done)capture
command.Initial
state after reachingFinish
state in calibration?How to Test
Webots or a NAO:
Control.main_outputs.calibration_command
to look at the calibration phaseControl.main_outputs.primary_state
to verify the transition frominitial
tocalibration
(useful for Webots)ctrl + shift + x
on webots for 1 second of "simulated time")pepsi run
will print the state changes and measurement collection on the terminal