Using Apriltags to optimize the graph

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Using Apriltags to optimize the graph

nikitha
This post was updated on .
I am trying to optimise the graph and the point cloud so produced by placing standalone apriltags at fixed locations. However the results produced without using the tags appear to be better on comparison. I am using apriltags_ros package and the /tag_detections message produced by it.
Cameras used : D435 and T265 (Odometry fused with the help of robot localisation package with ukf template)
Rqt_graph : tag.png
Transform tree :  frames.pdf
Launch File : Final_Merged_file.launch, problem_test.launch , continuous_detection.launch

Results produced without using apriltags_ros package :

Results produced using apriltag_ros package :

RGBD/MarkerDetection is set to true in both cases.

It would be helpful if you could let me know what changes are required to obtain better results when tags are used.
Thank you


EDIT
When one of the tags is revisited, the map realigns and appears like this.

In order to improvise it further i have tried to fuse the pose and orientation information coming from apriltags_ros using robot_localisation package. I have changed the type of the message to nav_msg/Odometry by using a separate node that captures the data and republishes it. The problem still persists. How is the information received via /tag_detections topic being used in RTAB-Map? Should a transform be applied to the data before using it?
As a part of another experiment i have placed the tags on floor and walked in the same path. The  path is perfect and here is it's graph view.
Reply | Threaded
Open this post in threaded view
|

Re: Using Apriltags to optimize the graph

matlabbe
Administrator
Hi, is the tag size accurate in the config file? In the screenshots, the tags appear behind the walls, is it normal?

You may try to debug the scale parameter of the tags using rviz, show up the cloud of D435 and make sure the TF published by apriltag match exactly the location in the cloud. If it appears behind the tag, it means the size of the tag in the apriltag parameters is to large.

RGBD/MarkerDetection should set to false if apriltag_ros is used. RGBD/MarkerDetection assumes that all tags have exactly the same size.

If you have a database to share, it could be easier to look more in details.

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: Using Apriltags to optimize the graph

nikitha
This post was updated on .
In reply to this post by nikitha
Thank you for the reply. The tags have an edge length of 11cm. Hence i have set the size to 0.11 in tags.yaml file.
This is the view in RVIZ with size=0.11
The arrow on top represents the information from detected tag whereas the one below(passing through the frame) represents the filtered odometry coming from robot_localisation package.
When i reduced the size to 0.012, the view is as shown.


Here is a sample database  - https://drive.google.com/open?id=1zEDZR-hU7L3ST2sVJhlDdVn6ViByZAaf
Reply | Threaded
Open this post in threaded view
|

Re: Using Apriltags to optimize the graph

matlabbe
Administrator

Hi,

Show TF display in RVIZ, it will be a lot easier to see the frames. It seems a scale issue, the tags are detected behind the walls. Note that if you didn't calibrate the camera, the apriltag size set in the config file may not match the same size the camera is actually seeing.


What kind of apriltag are you using? With RTAB-Map's built-in apriltag marker detection parameter, only DICT_APRILTAG_16h5, DICT_APRILTAG_25h9, DICT_APRILTAG_36h10, DICT_APRILTAG_36h11 are available, so I cannot debug it with only the database. Can you share the apriltag config file? or can you use 36h11 tags to make it easier to debug?

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: Using Apriltags to optimize the graph

nikitha
In reply to this post by nikitha
The issue was resolved after using 36h11 tags. Previously i was using tag family - tagStandard41h12. The tags are now detected on the walls as expected.
Thank You