-
Notifications
You must be signed in to change notification settings - Fork 52
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
Several questions on extension to a ROS node for localization #8
Comments
The refined corners are fed into this pose estimation method because it is more robust against the ambiguity in pose from 4 planar points compared to solvePnP().
If I understand correctly, this is about ID#1 being 10cm x 10cm and ID#2 20cm x 20cm, etc. If so, this sounds too use case-specific for this project.
My co-author pointed this out to me recently, this is indeed a serious problem. This bug didn't exist in the experiments for the paper, but I introduced it in the refactoring after. Originally, the algorithm is supposed to stop searching for markers on an edge segment as soon as it has found one (and validated with decoding). Unfortunately, I'll only be able to fix this in a month. |
Thank you for getting back to me. I'll add in a little bit of logic to ignore markers which have already been decoded for now and will handle the size configuration from my end. |
Hi all. If you would like, we have recently been working on a STag ROS implementation as well. We allow for configurable tag sizes and bundles as well. If you would like to use it, you can find it here: https://github.com/usrl-uofsc/stag_ros/ |
And here is the one I eventually made that has these features as well :) https://github.com/dartmouthrobotics/stag_ros |
Trying to steal our thunder? :) |
Hey @slensgra , thanks for the contribution! I linked your repo in the README. Leaving the issue open for documentation purposes. |
I think we worked past each other on this! I started mine right after I made this issue but didn't set up the README for being searchable. We do a some work with the AFRL over at UofSC if you know them. When we finally publish, I'll cite your paper on the stability experiments |
First off, thank you for releasing this code base. I'm evaluating using STags for a mobile robot application where the stability of the reading from the tags is extremely important.
Pose estimation code?
I've got a simple ROS integration started here: https://github.com/dartmouthrobotics/stag. I'm starting out with finding the pose of the tag using opencv's
solvePnP
function with a hard coded camera and distortion configuration (used here https://github.com/dartmouthrobotics/stag/blob/master/src/Stag.cpp#L89). In your paper you mention using a more recent algorithm for finding the camera extrinsics with the refined homography matrix but as far as I can tell you don't provide your implementation of that algorithm. Do you have the implementation you used for your experiments handy? If so, I'd appreciate getting a copy!Support for configurable tag sizes?
Would you be open to adding configuration for a mapping of tag id to tag size? If so, I'd be happy to look into doing that. Insight into the places that need to be changed in the code would help that go faster.
Marker decoded many times in single frames
When the marker is successfully decoded, the array of decoded markers will usually contain four duplicate readings for the same tag which I'm sure has performance implications. For example, in this frame the marker is decoded four times (the array markers on the
Stag
object has four markers in it here https://github.com/dartmouthrobotics/stag/blob/master/src/Stag.cpp#L50). I would guess that this is coming from the quad detector and that adding a simple step which filters out duplicate quads based on the sum of the distances between their corners or something would fix this. Output from that frame:The text was updated successfully, but these errors were encountered: