You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on May 3, 2021. It is now read-only.
I've noticed that the Z-estimate from either the circle or ellipse fit becomes very unstable when only part of the 'bulb' is visible. This can happen when you tip the controller away from the camera by as little as 30 degrees.
I tested out using cvMinEnclosingCircle to fit the circle and this works much much better. It yields a more accurate and stable solution than the current methods for even more extreme sight lines than was previously possible. This method also seems to be faster.
I added the following to "psmove_tracker_update_controller_position_from_contour" where it would usually estimate a circle from the contour:
And then I ignore the contour quality check in "psmove_tracker_update_controller" where it looks at the aspect ratio of a bounding box. This may not be the 'correct' thing to do, but it let me check functionality.
Try it out and see what you think. This may be worth incorporating unless you've already found some other reason to kill this.
The text was updated successfully, but these errors were encountered:
You're definitely right that the current method is sub-optimal. You're modification seems reasonable.
The the new PSMoveService that we are working on, we are thinking about implementing something like what's described here. My understanding is that it fits a cone to the data points then from the cone parameters it can get the 3D position of the sphere. I don't yet know how he does it, but I haven't begun to try.
I've noticed that the Z-estimate from either the circle or ellipse fit becomes very unstable when only part of the 'bulb' is visible. This can happen when you tip the controller away from the camera by as little as 30 degrees.
I tested out using cvMinEnclosingCircle to fit the circle and this works much much better. It yields a more accurate and stable solution than the current methods for even more extreme sight lines than was previously possible. This method also seems to be faster.
I added the following to "psmove_tracker_update_controller_position_from_contour" where it would usually estimate a circle from the contour:
CvPoint2D32f Center;
CvPoint Center2;
float Radii = 0;
cvMinEnclosingCircle(contourBest, &Center, &Radii);
tc->x = Center.x;
tc->y = Center.y;
tc->r = Radii;
And then I ignore the contour quality check in "psmove_tracker_update_controller" where it looks at the aspect ratio of a bounding box. This may not be the 'correct' thing to do, but it let me check functionality.
Try it out and see what you think. This may be worth incorporating unless you've already found some other reason to kill this.
The text was updated successfully, but these errors were encountered: