-
Notifications
You must be signed in to change notification settings - Fork 3
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
Increase tolerance interval when leaving the interval for tangible/computer vision input #116
Comments
Specifically, Let's try increasing the tolerance interval for angleToleranceInterval, shapeAngleToleranceInterval, and lengthToleranceInterval (when the tangible is attached OR when using OpenCV) when within the tolerance. e.g., NOT A PARALLELOGRAM: IS A PARALLELOGRAM or UNEQUAL SIDE LENGTHS EQUAL SIDE LENGTHS Does this make sense? Or is there another way to implement "widening" the window when the particular state has been achieved? |
Yes, makes sense. We might have something to play with in #20, Ill try adding these once that is ready. |
This was done in RaP for MediaPipe in phetsims/ratio-and-proportion#465 |
… when connected to tangible, see #116
This was easy for We probably need to do something similar for the other tolerance intervals. |
… in ParallelSideChecker, see #116
I am getting the sense that we might go ahead and bias the approximate shapes a bit more for computervision (and probably this will apply to the tangible too). Let's go ahead and raise the minimum for each tolerance a bit too. Perhaps 0.02 for the minimum (entry), 0.04 for the maximum (break out)? Or perhaps we can make it adjustable at this stage? Query parameter? EDIT: I say this because I'm finding there a lot of balance between really level camera/marker placement that can skew these, but things do not need to be quite as precise in this space where we're really leaning on the feedback to tell us we're correct. I feel like the error in manipulating things in this environment is more forgiving when things aren't PERFECTLY 90 degrees or PERFECTLY equal. Would be good to know if others feel the same. |
@marlitas and I worked on this a bit and got it working where the tolerance interval widens when connected to a device. It works like this: If connected to a device and two sides are parallel, the We should be able to modify the initial or increased values as requested in #116 (comment) next. |
I wanted to point out that we are already doing something like this when moving more than one vertex at a time. else if ( numberOfVerticesPressed >= 2 ) {
// Two or more vertices pressed at once, increase the tolerance interval by a scale factor so that
// it is easier to find and remain a parallelogram with this input
toleranceInterval = QuadrilateralQueryParameters.angleToleranceInterval * QuadrilateralQueryParameters.angleToleranceIntervalScaleFactor;
} The default value for angleToleranceIntervalScaleFactor is 10. Can we use that value for this as well? |
OK this is ready for review @BLFiedler, here are the changes so far:
|
Having these options is great! I am not sure exactly what the best settings for each is yet, but I think we'll find them. Leaving this open and assigned to me to locate good default values. I had a set late last week that I neglected to write down, but as a note, JG used these most recently: https://phet-dev.colorado.edu/html/jg-tests/opencv-test/?showModelValues&deviceShapeAngleToleranceInterval=0.05&deviceShapeLengthToleranceInterval=0.03&toleranceIntervalScaleFactor=6 |
From Google Doc:
Can we 'stickify' the feedback points?
Bias user intention toward “important parts” - e.g., parallelogram, right angles, equal side lengths
When using the tangible, make it harder to break of a tolerance than it was to get into - assume user intent to achieve those states
Want a feeling that I am in a state, increasingly important that a learner does not pop in and out of a state, it seems to matter more when you are in a notable state.
The text was updated successfully, but these errors were encountered: