-
Notifications
You must be signed in to change notification settings - Fork 805
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
Question: how are Aruco markers used? #377
Comments
It is quite a new feature, it is why there is no official documentation yet. Install:To have the built-in option in RTAB-Map standalone, OpenCV should be built with aruco module from opencv_contrib. To support apriltags2 dictionary, at least OpenCV 3.4.2 should be built. Usage:In RTAB-Map, go to Preferences (advanced) -> Marker Detection panel, then check the checkbox to enable marker detection. Assumptions:
Effects:
ROS:This built-in approach can be used with rtabmap_ros. There is also an example of integration with apriltags2_ros if we want to use the external package instead of the built-in option, which may be more convenient on some systems if we don't want to rebuild another OpenCV with minimum version above. With the external approach, we can also define mosaics of tags that can be interesting for some applications. cheers, |
Hi Mathieu, That sounds great, thanks! I've got the Windows version compiling, building and running now. I had to make a few small changes in a few CMakeLists, what would be the best way to communicate them? In a thread like this or as a pull request? By the way, I ran into a runtime issue, will start a new Issue for that one. Cheers, |
A pull request is better to compare changes. For the windows build, you may also check this file to see if the configuration used could have fixed your build errors: If your changes are related to newer versions of the dependencies used in that build file, I'll be happy to integrate them. cheers, |
Hi Mathieu, Great work integrating the apriltags to rtabmap, I have been taking a look at it but I don't know how to confirm if the tags are actually helping for loop closures or not, if you could give me some pointers on how to actually confirm that the tags are working I would be very grateful. I am attaching 3 databases for your convenience, 2 of those have the apriltags, and for the last one I covered the tags in order to test the differences. Best regards, |
In rtabmap-databaseViewer you can look at the graph view (menu view/Graph view). it will show the occupancy grid and the results graph. In the graph, loop closures are in red. If the tag helped my guess is that you would have more loop closure around the location of the tag. |
Hi Mathieu, Thank you very much for your response, I was able to confirm the presence of the tags as you suggested. Best regards, |
Hey guys, I have a question about using this feature. I was wondering what happens if the markers are present in the environment but the MarkerDetection parameter is set to false (I'm talking specifically about rtabmap_ros). I imagine the markers would still be used by the software as useful features, especially if they are placed on an otherwise plain wall? If so, what exactly is the difference between turning the feature on or off? |
rtabmap's visual loop closure detection extracts visual features everywhere on the image. As the markers have some contrast, visual features may be extracted indirectly from the markers and used for visual loop closure detection. When we enable If you disable Finally, if you have want a scenario where we disable visual loop closure detection and use only marker detection, cheers, |
Hi Mathieu, As always thank you very much for all your work. We are currently trying to test using the apriltags2 as an external package as your example, the issue we have at the moment is that when I visualize the mapping process the tf of the tag appears on the map but the TF is wrong making the tag appear on the Z axis of the robot rather than the on the front of it. Please see this 2 screenshots for an example: the database created is here Best regards, |
Hi @matlabbe , it seems the link of the example file is gone. Could you update the link? I'd like to try the marker detection function in my project. Thanks. |
@matlabbe Thanks for the link. Just a follow up question. Is it possible to pre-upload the marker positions? For example, we already have the ground truth poses of the markers or the marker poses are computed from a previous mapping using RTABMAP (and then we can extract and save it for future usage). |
See http://official-rtab-map-forum.206.s1.nabble.com/How-to-improve-mapping-accuracy-based-on-ArUco-identification-code-tp8393p8497.html, it is not actually implemented in rtabmap, but that post shows a way to implement it. |
Hello, I am new to rtabmap. and I have a .db file containing tag detection results. And I could use it to visualize the tag in the 3d graph view. Where is the tags' information stored? How can I get the tags location from this .db file (with their ID) |
See #1199 |
Does this mean that AR maker can only be used in creating a map? and not used for map matching? |
Well, it depends how you want to do map matching. We can combine two maps together with same tags detected in each other like this:
The two maps will be merged together using tag constraints. |
Sorry when I said "map matching", i mean visual localization. During the localzation phase, even If the tags are stored in the map (.db) and all the tags are still located in the same place in the environment, it would not help localization with AR marker capabilities ON? |
The tags are also used in localization mode to relocalize the robot/camera. |
Hi,
In the code I see some references to Aruco markers and April tags, but I can't seem to find information in the Wiki and website about how they are used. I can imagine a number of scenarios:
I'm planning to build the software from source myself, so that I can more easily follow the code-paths in Visual Studio. But if someone could answer this question in the meantime that would be very helpful.
The text was updated successfully, but these errors were encountered: