Global map optimisation using map_optimizer node?

classic Classic list List threaded Threaded
3 messages Options
Y.C
Reply | Threaded
Open this post in threaded view
|

Global map optimisation using map_optimizer node?

Y.C
Hi,

I have some questions regarding the use of this node:

1. How is the global map optimised at all? Is it using the same technique called "Moving Least Squares" in the "export cloud" dialogue window ? I have tried"MLS" to optimise the map(it smoothes the map quite well) but I'd like to try out this optimization node too.

2. What does it mean by "using graph optimization outside the rtabmap node"? Why do I have to set parameters RGBD/ToroIterations to 0 and publish_tf to false for the rtabmap node if I use this node "outside the rtabmap node"?

3. How do I visualise it properly?

My effort so far is: I have remapped its "subscribed topic" to /rtabmap/mapData, but when I try to visualise it in rviz(adding topic->/rtabmap/mapData_optimized", the map I get does not make a difference from original map in rtabmap_viz node.

I don't know what went wrong.
 
Any help is appreciated!

Y.C
Reply | Threaded
Open this post in threaded view
|

Re: Global map optimisation using map_optimizer node?

matlabbe
Administrator
Hi,

1. MLS is for post-processing only and it is not a graph optimization approach. It is used to smooth the point cloud as in this PCL tutorial: http://pointclouds.org/documentation/tutorials/resampling.php. Graph optimization approaches are TORO, g2o or GTSAM.

2. I've updated the introduction text for the map_optimizer node. "RGBD/ToroIterations" (now "RGBD/OptimizeIterations") set to 0 deactivates graph optimization inside rtabmap node to save computation power as the graph is optimized in map_optimizer instead. Setting "publish_tf" to false is to avoid rtabmap and map_optimizer publishing both /map->/odom TF (only one node should publish this TF).

3. If there are no loop closures, there will be no difference. Well, rtabmapviz can subscribe to "/rtabmap/mapData_optimized" instead of "/rtabmap/mapData" too.

However, I don't really recommend the usage of map_optimizer node as its computation is not bounded:the more nodes added to graph, the more time will be required to optimize. Keeping optimization done inside rtabmap node is preferred (default) to keep online processing.

cheers
Y.C
Reply | Threaded
Open this post in threaded view
|

Re: Global map optimisation using map_optimizer node?

Y.C
Thank you for your kind explanation!