I have been reading some slam papers recently and many of the papers mention building and performing scan matching on submaps instead of individual poses. Does it mean that a submap is just a single vertex (pose) with its associated uncertainty or is it a combination of several poses. How do we maintain such sub maps with respect to g2o gtsam etc ? As far as I know we can build a pose graph with vertices and edges describing robot pose and perform incremental scan matching. Would be highly thankful for any explanation.
The word is exactly as it sounds. It is a submap of a larger map. Essentially a large map is broken up into smaller submaps in order to improve the computational complexity.
In the reference you give the map is the accumulated pointcloud. This giant pointcloud is then broken up into smaller pointclouds(the submaps*). These submaps are then used to facilitate loop closure. So rather than checking the current scan against the whole map, it will only check against the submaps.
At least in this case it looks like the submaps have nothing to do with the pose graph optimization. It is only used to identify loop closure candidates. However, in other papers like this it uses pose graph submaps. Again it is a larger pose graph broken up into smaller submap graphs in order to make the problem easier to solve.
So just to be clear:
Does it mean that a submap is just a single vertex (pose) with its associated uncertainty or is it a combination of several poses.
No. In this case a submap is just a smaller pointcloud.
How do we maintain such sub maps with respect to g2o gtsam etc
In this case the submap is solely there for identifying loop closure. This information is stored separate from your Pose graph.