Map Update

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

Map Update

motas
Hi everybody, I'm working on RTABMAP and updating the extraction of map. In my work, I will obtain map of the area using RTABMAP at the same time I will detect and recognize the traffic sign of the object. Besides these works, I must be update the map. For example, in the first version of the map let us say I found 8 traffic sign. I found these object, locations of the object on the map (with the help of Mr.Labbe) and extract the map with these sign locations. I will use these sign locations and map data extracted by RTABMAP in navigation. After amount of time passed, environment changed as 9 sign for example. One sign added from authorities. In the navigation mode, my robot realized this difference and it must be update the map.

My problem begins here. When I call rtabmap node in mapping mode and using teleop package, I can extract map with 8 sign object which is holding 130 mb database located at ~/.ros/rtabmap.db. Using this rtabmap.db, I call rtabmap node in localization mode and I control robot using teleop package to perform a task. In this mode, robot checking environment and when it realize added sign, automatically it called
rtabmap/set_mode_mapping
service. After these service called, database size increased 135 mb located at  ~/.ros/rtabmap.db. So far everything is normal. Problem is, when I called 135 mb map data which name is rtabmap.db in RVIZ or RTABMAPVIZ, these tools only show last 5 mb updated map. How can I show or obtain updated map data?


P.S: I'm working only on simulated environment and robot in GAZEBO.
Reply | Threaded
Open this post in threaded view
|

Re: Map Update

matlabbe
Administrator
Hi,

When switching to mapping mode, a new map is created. If no localization happens with the previous map, the new map will be disconnected from the other maps in the database. In database viewer under Graph view, you can choose the root node to optimize the graph. You can change the ID if you have maps not connected to each others to be able to show them. For example, I have one map with IDs 1 to 100, and another map with ids 101 to 200. If there are no loop closures found between the maps, setting root ID to 1 will show only the first map, and if set to 101, only the second map will be shown.

In RVIZ/rtabmapviz, they always show the latest map in the database.

cheers,
Mathieu