Ask Your Question

Revision history [back]

gmapping maps can hardly store properly that kind of information. In our case we use a separated semantic map that contains different kinds of interesting elements and its coordinates relative the gmapping-generated map reference frame.

gmapping maps can hardly store properly that kind of information. In our case we use a separated semantic map that contains different kinds of interesting elements and its coordinates relative the gmapping-generated map reference frame.

UPDATE In our case a semantic map is something terribly simple: typically a yaml file containing a global pose (/map frame referenced) and some extra data. Here for example we store tables with their radius for a waiter robot:

-  
  name: table1
  frame_id: map
  radius: 0.483
  pose:
      position:
          x: 3.067
          y: 3.107
          z: 0
      orientation:
          x: 0
          y: 0
          z: 0
          w: 1
-
  name: table2
  frame_id: map
  radius: 0.5
  ...

We also store the semantic data in a mongo database. In this repo we have scripts that maybe can give you some ideas. For example, scripts / table_publisher_from_file.py reads a yaml file like the above listed and publish table poses used by the robot and markers that RViz can visualize. If you also show a geometric map in RViz, both maps gently superimpose, as both share the same reference frame.

https://github.com/robotics-in-concert/rocon_database