Rtab map in different floors

Posted by alex_mk on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Rtab-map-in-different-floors-tp6947.html

I would like to use rtabmap to localize a robot in different floors. For example, I want to build a map of the 1st floor and then take the elevator/stairs, go to the 2nd floor and build the map. Then, use rtabmap in localization mode. I wonder which would be the best way to use rtabmap in this case:

1) Make one single db with information of both floors.
2) Make one db for each floor

My questions:
a) In 1), if we take the elevator, for example, odometry would not detect the height change so we need an external source with height information to “shift” the current position to the second floor and continue mapping. Is it possible to add such external source to rtabmap when building the map? Does this “shift” cause any problem during localization?

b) In 1), some environments have very similar areas in different floors so I assume that rtabmap would not be able to differentiate the 1st floor from the 2nd one in some areas, so wrong loop closings would happen. Is there anyway we can set the close looping parameters to avoid such wrong matchings (using height information, for example)?

c) In 2), I assume that wrong loop closings would be avoided. However, how can I dynamically change the dbs for each floor without restarting rtabmap? Is there anything similar to “parameters update” which can simply receive the floor information and ask rtabmap to load the correct db?

I would appreciate any advice regarding this topic. Thanks!