ROS 3D mapping techniques
Octomap vs RTAB map
Octomap and RTAB mapping are 2 popular 3D mapping techniques.
Octomap:
Octomap is a mapping technique based on an octa tree data structure,
in which each node is consist of children or branches.
So in an octomap, it is dividing the 3d space into 8 partitions recursively,
resulting in the 3D occupancy grids.
Octomap has the probabilistic approach to remove dynamic obstacles from the map,
as it will use probability to identify the dynamic obstacles through multiple
iterations and eventually will remove these dynamic obstacles from the map.
Octomap generates compact maps so it will consume only significantly less memory
space and only need low computational power,
because of this feature octomap is better preferred in aerial robotics.
Octomap is preferred over other mapping techniques as it can handle dynamic
changes in the environment and even dynamic objects.
Octomap provides a full 3D model and also probabilistic voxl grids do not make
any difficulties.
RTAB map :
RTAB map is built using the RGB depth graph-based slam approach.
The main feature of the RTAB map is the representation of
objects as it is in the map i.e in their real color, shape and other features are
preserved as much as possible.
RTAB map also supports incremental mapping and loop closure.
The loop closure detection determines whether the agent has visited a particular
area before or not,by comparing the probability of the images coming from the
same location and based on that it will update or improve the map.
Steps in RTAB map :
Differences between Octomap and RTAB-map:
-
Octomap
RTABMap
Full 3D model
Full 3D model
Depth sensitive maps
Full featured map
Colours of the maps have been used
to highlight depth variations
of the objects
Real world colors of the
objects have been mapped
Dynamic objects recognition
with probabilistic
Dynamic objects are
recognized as clashed static
objects
Discrete pixel level
visualization
Human-friendly map
visualization
Easy to set up and build map
Octamap requires little extra effort to set up and create map
Dynamic obstacle handling in map creation:
In octomap, every object is treated with the probability of existing in the particular space. As the object moves, the probability gets lower and it’s removed from the map
Dynamic obstacle handling in map creation:
RTABMap it is Using the loop closure detection methodology, dynamic objects are identified in the static background and the 3D map is updated by reducing the points that belonged to the particular object
Better odometry error handling (because of loop closure detection)
Lower odometry error Handling(during map creation)
In a multi-robot system, it is important to share the details with other agents. Hence, one more criterion should be considered - sharing of the built maps.
It is better to share information that is only relevant to autonomous navigation instead of sharing the 3D maps as a whole.
In this case, the octomap gives better mathematical support for detecting the edges of obstacles and sharing those spatial coordinates using the octree.
Conclusion:
Octomap framework is ideal in the scenario of detecting obstacles,collision-free
navigation, and sharing navigation information among other agents.
The octree data structure supports the application with a lightweight
mathematical solution.but when it comes to the purpose of building a descriptive
map of the terrain which can be used in further decision-making of intelligent
robots and humans, RTABMap serves a major advantage.
It can also be ideal for error correction of odometry data.
Considering the two scenarios, it can be deduced that using the advantages of both
mapping techniques might enhance the performance of a multi-robot system.
Starting with creating RTABMap straight from the Kinect camera,
the RTABMap feed can then be used to build an octomap.
When navigation and data sharing processes are being executed,
the secondly built octomap can be used and the real appearance-based
RTABMap is preserved as the default 3D map.
***