Using RTAB-Map for graph-based mapping

Posted by TACD on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Using-RTAB-Map-for-graph-based-mapping-tp8431.html

We're hoping to use RTAB-Map to allow our robot to autonomously navigate small indoor spaces. Broadly, as the robot identifies people and predefined objects of interest and moves to interact with them, we would like to use RTAB-Map to help us avoid or route around potential obstacles when necessary.

We are anticipating two main scenarios:

  1. The robot will be in a setting such as a hospital waiting room interacting with people; the setting will be different and novel each time, and obstacles to be avoided will mostly be things like chair and table legs. There will also be 'dynamic' obstacles (e.g. people's legs) that need to be avoided but not added to a static map.
  2. The robot will be in a controlled 'pen' with various objects designed for interaction with the robot. In this scenario the walls are likely to be marked to aid with localisation (e.g. with AprilTags) and there will be no obstacles other than the perimeter walls.

The robot is equipped with stereo cameras, forward-facing sonar, wheel odometry, and two IMU sensors (no laser rangefinder, sadly). We're planning to augment the visual system with Google Coral hardware to rapidly identify objects and people in the environment.

We have been planning to use a graph-based map, with points of interest marked as attractors and obstacles marked as repulsors / repellors, for several reasons:

Firstly: Is RTAB-Map an appropriate choice for these use cases? Is there a more lightweight or a more appropriate tool for either scenario?

Secondly: Is it possible to add points of interest and obstacles as attractors and repulsors in the graph as described (or is there a better way of achieving our goal)? I have seen that we should be able to pass semantically segmented images to RTAB-Map, but I'm not clear if it's possible to also pass the associated object categories and use this data to update the map graph? It looks as if it is possible to add AprilTags to the graph as landmarks so I'm hopeful a similar method exists for arbitrary objects?

Any advice or discussion is greatly appreciated — thanks!