Fig 1.
SLAM system.
Fig 2.
Parrot Bebop drone during flight taken in Advanced Robotic Lab, University of Malaya, Malaysia.
Fig 3.
Keyframe BA (left) vs filter based (right): T is a pose in time, x is the feature/landmark—Reproduced from [7].
Fig 4.
ORBSLAMM running on KITTI sequences 00 and 07 simultaneously.
It took 494.2 seconds to get the final map which contains 1934 keyframes, with translation error of 1% of trajectory’s dimensions.
Fig 5.
ORB-SLAM getting stuck in wrong initialization freiburg2_large_with_loop from TUM RGB-D dataset [19].
Fig 6.
ORBSLAMM system overview.
Fig 7.
Scenarios of merging the matched maps in the multi-mapper.
In the upper row (a) we see the matching between map Mn and map Mi and how the multi-mapper transforms Mn to Mi’s coordinates to form a global map Mg. In the middle row (b) is the scenario where Mn continues to grow then it intersects with map Mj that is not attached to any other map, so the multi-mapper transforms Mj to Mn’s new global coordinates which are map Mi’s coordinates. In the lower row (c) is another scenario where map Mn intersects with map Mj which is already matched with another map Mk. Here the multi-mapper transforms Mj and all its attached maps (map Mk) to Mn’s new coordinates. They are now considered the global coordinates. The other option is to transform Mn and Mi to Mj’s world coordinates. The solid circles at the end of the line in Mn represent Keyframe Kc while the empty circles in Mi and Mj represent Keyframe Kj. The dots show the location where two maps are matched and merged. All transformations are SIM3 (have 7DoF). Notice how the size of the transformed map has changed along with its location and orientation. New maps always start with first Keyframe at (0, 0). These maps are hand drawn and inspired by sequence 00 of the KITTI dataset [17].
Fig 8.
Each robot has its own ORBSLAMM system running which provides a local map and a keyframe database to the multi-mapper. The multi-mapper tries to merge maps into a global map that can be used by a mission control center to control the position and distribution of the robots.
Fig 9.
Comparison between ORBSLAMM and ORB-SLAM on the sequence freiburg2_large_with_loop without alignment or scale correction.
The portion of trajectory shown in rectangle (Map M1) is completely missed in ORB-SLAM because of the relocalization approach. The portion in the circle is missing in the ground-truth due to a limited number of motion capture cameras. The straight line is where tracking is lost due to a low number of features (wall). The triangles mark the beginning of the wall and the tracking-loss. The square in ORB-SLAM marks the relocalization, and the one in ORBSLAMM marks the loop closure and similarity transformation from M1 to M0.
Fig 10.
Comparison between ORBSLAMM and ORB-SLAM on the freiburg2_360_kidnap sequence without alignment or scale correction.
The triangle marks the moment of the kidnap. The circle marks the first keyframe in the second map M1 of ORBSLAMM, transformed to map M0’s world coordinates after the loop closure. The square marks the relocalization keyframe of ORB-SLAM. Ground truth trajectory is shown for reference on the accuracy and data preservation of ORBSLAMM.
Table 1.
Comparison between ORBSLAMM and ORB-SLAM in a single robot scenario in TUM RGB-D benchmark [19].
Fig 11.
Comparison of absolute translation error’s mean and standard deviation.
Comparing the mean and standard deviation of the absolute translation error between our approach and ORB-SLAM using TUM-RGBD benchmark [19]. fr1_floor and fr3_nostr_tex_far sequences are not reported because ORB-SLAM fails to initialize. RMSE and other comparison information are reported in Table 1.
Table 2.
Comparison of RMSE of the absolute translation error in a single robot scenario among state-of-the-art systems using TUM RGB-D benchmark [19].
Table 3.
Comparison between ORB-SLAM and ORBSLAMM in a multi-robot scenario.
Fig 12.
ORBSLAMM in multi-robot scenario while running on fr2_large_with_loop sequence.
Two robots (threads) were run simultaneously with no prior knowledge of their relative poses. The thin-blue is the trajectory of Robot-1 (M0) and the thick-blue is the trajectory of Robot-2 (M1) after closing the loop and performing similarity transformation to M0 world-coordinates. The green square is the current keyframe Kc in M1. Note that all the features from M0 are now visible to Kc (in red color). The line between M0 and M1 with no features is where the wall is located. The green lines link keyframes in the co-visibility graph.
Table 4.
The modified KITTI dataset.
Table 5.
Comparison between ORB-SLAM and ORBSLAMM Results on the different sequences of the Modified KITTI dataset.
Fig 13.
The circle marks the first loop closure. The triangle marks the second and the square marks the third loop closure. The unique red arrow marks the beginning of the sequence. The black arrows show the direction of movement.
Fig 14.
ORBSLAMM running on KITTI sequences 00 and 07 simultaneously.
The ground truth of sequence 07 was translated to the correct location relative to sequence 00. ORBSLAMM successfully merged both sequences in one map and in real-time. It took 494.2 seconds to get the final map which contains 1934 keyframes, with translation error of 1% of trajectory’s dimensions.