Next Article in Journal
Estimating Gravimetric Water Content of a Winter Wheat Field from L-Band Vegetation Optical Depth
Previous Article in Journal
Earthquake-Induced Landslide Mapping for the 2018 Hokkaido Eastern Iburi Earthquake Using PALSAR-2 Data
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

An Offline Coarse-To-Fine Precision Optimization Algorithm for 3D Laser SLAM Point Cloud

1
School of Geodesy and Geomatics, Wuhan University, Wuhan 430079, China
2
Faculty of Geomatics, East China University of Technology, Nanchang 330013, China
3
School of Geomatics and Urban Spatial Information, Beijing University of Civil Engineering and Architecture, Beijing 100044, China
*
Author to whom correspondence should be addressed.
Remote Sens. 2019, 11(20), 2352; https://doi.org/10.3390/rs11202352
Submission received: 4 September 2019 / Revised: 30 September 2019 / Accepted: 6 October 2019 / Published: 10 October 2019
(This article belongs to the Section Engineering Remote Sensing)

Abstract

:
3D laser simultaneous localization and mapping (SLAM) technology is one of the most efficient methods to capture spatial information. However, the low-precision of 3D laser SLAM point cloud limits its application in many fields. In order to improve the precision of 3D laser SLAM point cloud, we presented an offline coarse-to-fine precision optimization algorithm. The point clouds are first segmented and registered at the local level. Then, a pose graph of point cloud segments is constructed using feature similarity and global registration. At last, all segments are aligned and merged into the final optimized result. In addition, a cycle based error edge elimination method is utilized to guarantee the consistency of the pose graph. The experimental results demonstrated that our algorithm achieved good performance both in our test datasets and the Cartographer public dataset. Compared with the reference data obtained by terrestrial laser scanning (TLS), the average point-to-point distance root mean square errors (RMSE) of point clouds generated by Google’s Cartographer and LOAM laser SLAM algorithms are reduced by 47.3% and 53.4% respectively after optimization in our datasets. And the average plane-to-plane distances of them are reduced by 50.9% and 52.1% respectively.

Graphical Abstract

1. Introduction

Three-dimensional spatial information plays an important role in many applications such as indoor navigation [1], building information model (BIM) construction [2], and forest inventory [3]. Recently, light detection and ranging (LiDAR) technology has become one of the most important methods to efficiently capture 3D spatial information. Through integration with the global navigation satellite system (GNSS)/ inertial navigation system (INS), mobile laser scanning (MLS) has achieved great success in the field of 3D spatial information collection. However, it cannot work in a GNSS signal denied environment [4]. Meanwhile, the conventional 3D data collection means in this environment is terrestrial laser scanning (TLS) which is less efficient than dynamic laser scanning and requires artificial targets sometimes. Consequently, for the advantages of having no reliance on GNSS signal and efficiency, laser simultaneous localization and mapping (SLAM) technology has become an important development direction in indoor and underground environments mapping [5,6].
The concept of SLAM technology originated in the field of robotics [7,8]. The purpose of SLAM is to realize the navigation of mobile robots in unknown environments in the absence of external referencing systems. Thus, the early laser SLAM algorithms usually used 2D LiDAR as the main sensor, and the final mapping result was a 2D occupancy grid map [9,10,11]. With the development of multi-beam LiDAR and increasing demands for 3D spatial information, researchers proposed more and more 3D laser SLAM algorithms [12,13,14,15,16,17,18]. Lidar odometry and mapping (LOAM) is one of the most popular laser SLAM algorithms, which can use a rotation 2D LiDAR or multi-beam LiDAR to generate 3D point cloud [19]. It divides the SLAM algorithm into two modules: high-frequency LiDAR odometry and low-frequency LiDAR mapping. The odometry module extracts feature points on sharp edges and planar surface patches in the point cloud and then finds the corresponding points in the previous point cloud to estimate the motion of the sensor. The mapping module registers and adds the feature points accumulated by odometry module into a global point cloud map for the next iteration. Visual-LOAM combines visual odometry and LiDAR odometry to improve accuracy and robustness [20]. Another variant of LOAM, lightweight and ground optimized LOAM (LeGO-LOAM), leverages the presence of the ground plane to estimate the translation along elevation axis and roll, pitch angle [21]. Lidar inertial odometry (LIO) is the combination of LOAM and visual-inertial systems (VINS) [22] that introduces inertial measurement unit (IMU) pre-integration to address the problem under fast motion and insufficient features conditions [23]. Cartographer is another state-of-the-art laser SLAM proposed by Google [24]. It is a graph-based SLAM algorithm that consists of a front-end and back-end [25]. In the front-end, the new point cloud is aligned to gravity first and registered into a probability grid as a node. Then the probability grid will be saved as a submap periodically. The constraints between nodes and submaps are computed by the loop closure detection module. The back-end uses nonlinear optimization algorithms to estimate all poses of nodes and submaps simultaneously to optimize the global point cloud map.
Limited by the real-time requirement of navigation application, these SLAM algorithms have to put more emphasis on efficiency than accuracy. This means that the internal conformity of the point cloud obtained by laser SLAM cannot be ensured. The disadvantage in precision prevents the further application of the laser SLAM point cloud. Therefore, some algorithms are proposed to improve the precision of the laser SLAM point cloud. The fundamental idea of these algorithms is using the registration results of overlapped point clouds to reduce cumulative errors. In addition, the constraint relationship between point clouds is usually represented as a pose graph. For instance, to improve the mapping result of Cartographer, Nüchter et al. [26,27] first split the trajectory into sections and used a heuristic that measures the overlap of sections using the number of closest point pairs to estimate the constraints between sections. Then a pose graph was constructed by the registration results. Using the solution of pose graph as the initial value, a semi-rigid matching described in [28] was applied to optimize the global point cloud. This algorithm did not utilize the features of point cloud, which makes it able to work in a featureless environment. For example, in [29], Lauterbach et al. applied this continuous-time optimization algorithm to correct the result of Hector SLAM in lava tube [30] successfully. For the same reason, it cannot detect loop closure using features, which means it cannot correct the severely distorted trajectories. Kukko et al. [31] first extracted tree stem features, then used them to recognize the point clouds of the same trees and match point clouds to construct a pose graph. As the tree stem features can only be used in the forest environment, the application environment of the algorithm is limited. Zhu et al. [32] introduced visual information to detect loop closure. In that study, point clouds were segmented by the image keyframes and a bag-of-words model was used to decide loop candidates. Vlaminck et al. [33] presented a novel registration algorithm to determine loop candidates using a signature based on the projection of the point cloud on several 2D planes. Then, the candidates were verified by the residual of iterative closest point (ICP) and the positions of object clusters. All of the above algorithms can only reject error loop candidates in pairwise registration phase.
In this paper, we propose an offline coarse-to-fine optimization algorithm for laser SLAM point cloud based on feature registration and a novel pose graph validation method. First, the raw point cloud of laser SLAM is segmented by time and the point cloud in each segment is registered sequentially to reduce online registration errors inside the segment. Then, the features of each segment are computed and a pose graph is constructed by registering the point cloud segment pairs with high similarity. In next phase, we leveraged the cycle struct in the pose graph to eliminate error edges. This method can use the information of point clouds belongs to one cycle, instead of only the information of pairwise point clouds. After removing the error edges, we solved the pose graph and optimized the global point cloud.
The rest of the paper is organized as follows: Section 2 presents the proposed coarse-to-fine optimization algorithm. Section 3 introduces the experiment datasets and evaluates the algorithm performance qualitatively and quantitatively. Section 4 discusses the experimental results and future research directions. Finally, we conclude our works in Section 5.

2. Methods

We used pose graph-based global point cloud registration method to improve the precision of laser SLAM point cloud. Figure 1 illustrates an overview of the proposed optimization algorithm framework. The inputs of our algorithm are raw point cloud and trajectory generated by laser SLAM algorithm. The main phases of the algorithm are as follows:
  • Local optimization: the raw point cloud is first segmented by time and processed to remove noise. The normal vector of each point is estimated. Then, in each segment, setting the first frame point cloud as reference, all point clouds are registered sequentially by point-to-plane ICP [34] and merged.
  • Pose graph construction: we use the features of each point cloud segment to calculate the similarity between different segments. The point cloud segments with high similarity are registered based on features matching and ICP. Lastly, a pose graph is constructed according to the obtained registration result.
  • Global optimization: a cycle based error edge elimination method is performed to ensure the consistency of the pose graph. Then, the poses of each point cloud segment are computed by solving the pose graph. Finally, all segments are registered using the estimated pose.
The following sections will provide a detailed description of each phase.

2.1. Local Optimization

Due to the huge number of frames in laser SLAM point cloud and the complicated overlapping relationship between them, it is hard to register all point cloud frames at the same time like multi-view registration of TLS point clouds. We adopted a coarse-to-fine optimization strategy to register these point clouds. Thus, we divided these point clouds into different segments according to time interval T s to register them in local level firstly.
In pre-processing, the points whose distance to scan center exceeds the threshold D m a x were removed for the reason that the measurement accuracy of LiDAR and point density decrease as the scanning distance increases. Then, the noise in point cloud was removed by statistical outlier removal filter [35]. The filter trims the points whose mean distances with neighborhood points are outside an interval defined by the global distances mean and standard deviation. The normal vectors of the remaining points were calculated by performing principal component analysis (PCA) on the covariance matrix of their k-nearest neighbors [36].
In the sequential registration, all point clouds are aligned with the first frame point cloud in the segment. However, if only using the previous frame point cloud as the reference, the registration error will accumulate rapidly, which means the point cloud segment after registration still cannot be treated as a rigid body. Using all registered point cloud frames as the reference point cloud will slow down the speed of registration, while the point clouds that have no overlapping with current point cloud have no contribution to registration. Therefore, to strike a balance between accuracy and efficiency, we used point clouds in sliding window as the reference. The new registered point cloud was added to the sliding window continuously, and when the size of point cloud in it exceeded the threshold W s i z e , the oldest point cloud was removed to prevent the reference point cloud from being too large. In addition, to accelerate the registration, the point clouds were resampled with voxel size V s i z e previously.
We chose the point-to-plane ICP as the registration algorithm, for it achieved the best performance in comparison with standard ICP and generalized ICP [37] in our datasets. Figure 2 shows the registration result of point-to-plane ICP, and it can be seen that the error inside the segment is obviously reduced, for example, the thickness of the wall decreases. Different to the standard ICP which uses the point to point metric, it minimizes a point to plane metric based objective function as following equation:
E = i = 1 n ( R P i + T Q i ) · N i 2 ,
where P i and Q i are the correspondence point in source and reference point cloud respectively; N i is the normal vector of point Q i ; n is the number of correspondence points; R 3 × 3 is an orthonormal matrix representing the rotation part of transformation; T 3 × 1 is a vector representing the translation part of transformation.

2.2. Pose Graph Construction

There are two types sources of overlapping relationship in the laser SLAM point cloud: (1) consecutive point cloud; (2) revisit of the same place. As the point cloud with large deviation cannot be corrected only using the first type of adjacent relationship, it is important to find the second type of overlapping relationship. Performing the exhaustive pairwise registration between point cloud segments to retrieve the underlying overlapping relationship is extraordinarily time-consuming, and will produce a large number of false overlapping relationships. Therefore, based on the hypothesis that overlapping point cloud segments have higher similarity, we used the feature similarity as criteria to find the candidates of overlapping segments.

2.2.1. Feature Similarity Computation

The feature similarity between point cloud segments was computed using the vector of locally aggregated descriptors (VLAD) [38]. It is a feature encoding method that aggregates local descriptors into a vector as global descriptor. In this section, the VLAD descriptor of each point cloud segment is computed by following steps:
  • Extracting the keypoints in each point cloud segment by intrinsic shape signatures (ISS) keypoint detector [39];
  • Computing the fast point feature histograms (FPFH) [40] local descriptors of each keypoint extracted in the last step;
  • Aggregating the FPFH descriptor to compute the global descriptor of each segment using following equation:
    { V i = f     N N ( f )   =   c i   f   c i D v l a d = [ V 1 ,     V 2 ,   , V k ] [ V 1 ,     V 2 ,   , V k ] 2   ,
    where c i belongs to the set of visual word C = { c 1 ,     c 2 ,   , c k } ; the visual words are the k-means clustering centers of all FPFH descriptors; k is the number of cluster centers; N N ( f ) is a function that finds the nearest visual word of the local descriptor f ; [ V 1 ,     V 2 ,   , V k ] represents the concatenation of vectors.
After the computation of VLAD descriptors is finished, the similarity between two point cloud segments can be calculated by the method in [41] as
s ( D v l a d i ,   D v l a d j ) =   1 K k = 1 ,     2     ,   K w k 1 D v l a d i ( k )   D v l a d j ( k ) ,
where D v l a d i and D v l a d j are the VLAD descriptors of different segments; D v l a d ( k ) is the k th component of descriptor; w k = 1   k K is the weight of k th component, and the component pairs are sorted in descending order with respect to their similarity. The function of this weight is amplifying the influence of the more similar component pairs, for the overlapping part of two segments is more important than the other parts.

2.2.2. Point Cloud Segments Global Registration

After obtaining the similarity between different segments, we only used the most similar n pairs and consecutive pairs for global registration to avoid redundant computation. As there is only small drift between two consecutive segment pairs, it is feasible to perform the point-to-plane ICP directly to register them. However, this method does not work for the inconsecutive segment pairs. Thus, performing the fast global registration [42] algorithm first to provide the initial value for ICP is necessary. It is a high computational efficiency coarse registration algorithm for it only establishes correspondences once during the optimization. The objective function of fast global registration algorithm is
E ( R , T ) =   ( p , q ) C ρ ( ( R p + T q ) ) ,
ρ ( x ) =   μ x 2 μ + x 2 ,
where p and q are the correspondence point in source and reference point cloud respectively; ρ ( x ) is a robust penalty function; μ controls the range within which residuals have a significant effect on the objective function.
The initial correspondences were established by reciprocity search using the FPFH feature point obtained in Section 2.2.1. Only the correspondence pair that both points are the nearest point each other was used. Then a tuple test was used to improve the quality of the correspondences. Three correspondence pairs were randomly picked to test their compatibility using following condition:
  i j ,   τ < p i p j q i q j < 1   τ ,
where τ = 0.9, the tuples that do not pass the test were removed from initial correspondences.

2.2.3. Pose Graph Model

In this section, we constructed a pose graph for registering all point cloud segments using the results in the previous section. As shown in Figure 3, a pose graph consists of nodes and edges: the nodes represent the poses of point cloud segments, and the edges represent the constraints between the point cloud segments. We used the relative pose of two point cloud segments after registration as constraints and minimize the sum of residuals in the pose graph to get the optimal pose of each segment.
The node x i =   [ t i T , q i T ] T , where t i =   [ x i ,   y i , z i ] T is the translation component of pose, q i =   [ q w i ,   q x i , q y i , q z i ] T is a quaternion that represents the rotation component of pose. The edge e i j = [ t e i j , q e i j ] connecting node x i and x j is formed as
e i j = [ q i 1 ( q i , j t j + t i , j t i ) q i 1 q i , j q j ] ,
where t i and q i represent the pose of the reference segment; t j and q j represent the pose of the source segment; t i , j and q i , j are the registration result of these two segments. Besides, the residual r ( x i ,   x j , e i j ) of the edge e i j is
r ( x i ,   x j , e i j ) = [ q i 1 ( t j t i )   t e i j 2 · vec ( q e i j 1 ( q i 1 q j ) ) ] ,
where vec ( q ) = [ q x i , q y i , q z i ] , 2 · vec ( q ) is the approximate conversion from quaternion to Euler angle when rotation angle is close to zero.
The objective function for calculating the optimal pose variables X ^   =   { x ^ 1 , x ^ 2 x ^ n } is
X ^ =   argmin X [ ( x 0 x 0 ) Ω 0 ( x 0 x 0 ) +   e i j E r ( x i ,   x j , e i j ) Ω i j r ( x i ,   x j , e i j ) ] ,
where x 0 is the initial value of x 0 ; Ω 0 is a diagonal matrix and its diagonal element is positive infinity;   Ω i j is the covariance matrix derived by point-to-plane ICP [43]; E is the set of registration results in previous section.

2.3. Global Optimization

Since it is crucial to eliminate the error edges in a pose graph to guarantee the consistency of pose graph, we performed our cycle based error edge elimination method before optimization. Unlike most existing methods that verify the validity of the registration result by just leveraging the information of pairwise point cloud, our method validates the edges belonging to one cycle simultaneously. The basic idea of our method is that the correct registration results should be compatible with each other. In this section, all cycles in the pose graph are enumerated first; then a consistency validation is conducted for these cycles to detect the error edge; finally, the pose graph is solved to optimize the global point cloud.

2.3.1. Enumerating Cycles in the Pose Graph

A pose graph is a kind of undirected graph, and all cycles in an undirected graph can be found by the permutation and combination of fundamental cycles [44]. As shown in Figure 4, adding a missing edge to minimal spanning tree can construct a fundamental cycle. For minimal spanning the tree of a graph is not unique, the fundamental cycle set is also not unique, but the number of fundamental cycles N f c is same and can be calculated using
N f c = E V + 1 ,
where E is the number of edges in graph; V is the number of nodes in graph. In addition, all fundamental cycle sets are equivalent. In this section, we use the fundamental cycle set constructed by depth-first search minimal spanning tree.
Having established the fundamental cycle set, Algorithm 1 describes how to enumerate all remaining cycles. The operator X o r in line 11 removes the edges which are present in both input sub-graphs and then merges the rest of sub-graphs as shown in Figure 5. The function isCycle() in line 13 judges whether the input graph is a cycle. It is implemented by counting the number of edges during a deep-first traversal. If the result is equal to the total number of edges, the input graph can be confirmed as a cycle.
Algorithm 1: Enumerating cycles in pose graph
Remotesensing 11 02352 i001

2.3.2. Consistency Validation

Algorithm 2: Cycle based error edge elimination
Remotesensing 11 02352 i002
The cycle struct can be used to validate the edges in pose graph, for its optimal solution should satisfy all constraints when all edges are correct, and conversely, there must be at least one edge formed by spurious registration result inside. We used the residual of corresponding points in ICP registration as the criteria whether the constraint of the edge is satisfied. If it increases sharply after the corresponding points are transformed by the optimal solution of cycle, it can be inferred that this cycle contains an error edge. The calculation process is detailed in Algorithm 2. The residual consistency threshold α in line 8 determines whether the constraint of edge is satisfied, and this parameter should be set to close to 1 at the beginning and increased gradually if there are edges that remain unvalidated after consistency validation. However, according to our experience, this value should not exceed 1.6, otherwise, some error edges will pass the test.
After the consistency validation, the objective function (9) of the pose graph was minimized using the Levenberg–Marquardt algorithm, and all point segments were transformed and merged into one using the optimized pose.

3. Results

3.1. Experimental Platform and Data Information

To validate the effectiveness of the proposed laser SLAM point cloud precision improvement algorithm, we tested our algorithm with a variety of datasets collected by a customer hand-held laser SLAM device. As shown in Figure 6, this device consists of a laser scanner and an IMU. Both of them are mounted horizontally, and the relative position of the laser scanner and IMU was calibrated manually. We chose two state-of-the-art laser SLAM algorithms, Cartographer and LOAM, to produce the raw SLAM result and used the point cloud and trajectory as the input of our optimization algorithm.
The experimental datasets contain three different environments shown in Figure 7 to test the robustness of the algorithm. Dataset 1 is an indoor office contains a long corridor. Dataset 2 is an underground garage. Dataset 3 is the road around an office building. Figure 8 illustrates the SLAM device trajectory of each dataset, and the basic information of trajectories are listed in Table 1.
The experiments were performed using a computer with Intel Core i7-3770K CPU @ 3.4 GHz and 8.0 GB of RAM. We implemented the proposed algorithm in C++ language with the use of VLFeat library and PCL (Point Cloud Library).

3.2. Parameter Setting

The default values of parameters were used for Cartographer, LOAM, and fast global registration algorithms. Table 2 lists the remaining main parameters used by the proposed algorithm. The value of time interval for dividing point cloud into segments was 10 s, and the value of sliding window size for local ICP registration was 10. Before registered by the point-to-plane ICP, the point cloud was downsampled using the voxel filter with 0.1 m resolution, and the number of neighbors for normal vector computing was set to 20. After the local optimization phase finished, the parameters for ISS keypoint detecting that salient radius and non maxima radius were set to 0.3 m and 0.2 m. The value of sphere radius for FPFH feature computing was 0.5 m. These parameters were tuned for the best performance. More details about these parameters can be found in [39,40]. We tried to register the top three similar segment pairs to construct the edges in the pose graph. During the global optimization phase, the consistency threshold was set to 1.2. At last, the max iteration times for L-M algorithm was set to 500 to ensure convergence.

3.3. Optimization Results

Figure 9, Figure 10 and Figure 11 illustrate the qualitative comparison results of the point clouds before and after optimization. In these figures, the point clouds are rendered based on time, and the earlier a point is obtained, the closer its color to red, on the contrary, the closer its color to blue. It can be seen that although there remain minor inconsistencies in some datasets as shown in Figure 9e after optimization, our optimization algorithm successfully corrects the point clouds generated by both Cartographer and LOAM in all three datasets. More details of comparing results are shown in Figure 12 and Figure 13. In these figures, the point clouds are rendered based on height, and we highlight where the improvement is obvious after optimization using the ellipses. For example, it is shown that the object contours in point cloud are clearer after optimization in Figure 12b,f, and the internal consistency of point cloud is improved significantly in Figure 13f.
In order to make a quantitative analysis of the precision improvement of point cloud after optimization, we used the TLS point cloud as reference data. These data were captured by a Rigel VZ400 laser scanner and registered manually as shown in Figure 14. The evaluation metrics are as follows:
1. Point-to-point Distance RMSE. For each dataset, we selected 10 pairs of corresponding points and show the distribution of them in Figure 15. The RMSE of their distance are calculated by
σ = 1 n i = 1 n ( p i s p i t 2 ) 2 ,
where p i s is the point in SLAM point cloud; p i t is the point in TLS point cloud; n is the number of corresponding point pairs.
2. Plane-to-plane Distance. We randomly selected 50 1 m × 1 m planes from point clouds in each dataset and calculate the distances of corresponding plane pairs. And we limit the minimum distance between the planes to make them are uniformly distributed and do not overlap with each other.
Table 3 and Table 4 list the precision estimation results. The results show a vast overall improvement in the precision of the point clouds in all datasets. It also can be seen that the higher the precision of the initial result, the more probable a satisfactory optimized point cloud can be obtained. The distorted results of LOAM in dataset 1 and 3 lead to the most residuals remaining off. The most significant improvement happens in Cartographer’s result in dataset 2 where the RMSE and plane-to-plane distance of it are reduced 63% and 59% respectively, since the drift in the initial result is corrected as shown in Figure 10b,c. The average RMSE of Cartographer’s results is 0.144 m, and it reduces to 0.076 m after optimization. The average RMSE of LOAM’s results is 0.206 m, and it reduces to 0.096 m after optimization. They are reduced by 47.3% and 53.4% respectively. The average plane-to-plane distance of Cartographer’s results is 0.114 m, and it reduces to 0.056 m after optimization. The average plane-to-plane distance of LOAM’s results is 0.119 m, and it reduces to 0.057 m after optimization. They are reduced by 50.9% and 52.1% respectively.

4. Discussion

For time performance analysis, we recorded the computing time of each phase and list the results in Table 5. It shows that the mean ratio of optimization time and data acquisition time is approximately 8:1. In addition, the local optimization phase occupies more than 85% of the total time cost for the ICP registration is time-consuming. It is noted that the time spent in the proposed cycle based error edge elimination method is almost negligible. Considering it is essential to ensure the consistency of pose graph, the application of it is very cost-effective.
Table 6 shows the characterization of the pose graph constructed from all datasets. There are 246 edges constructed and 27 error edges detected in the pose graphs of all datasets, and we inspected all these edges manually. The result is that all of the detected edges are error edges indeed and no false-negative occurs, which indicates our consistency validation method is necessary and effective. For further analysis, we visualized the pose graph and show the results in Figure 16. Since the difference between the pose graphs constructed from two algorithms is slight, we only show the results of LOAM. It is found that there are two types of these error edges:
  • Edges are formed by unconverged ICP registration results;
  • Edges are formed by wrong feature similarity match results.
The formation of first type error edges illustrated in Figure 17a,b is caused by the fact that ICP algorithm cannot converge to the optimal solution. We inspected the related point cloud and found the reason is that the accuracy of feature registration is not high enough, which leads to the initial value of the ICP algorithm is inaccurate when refining the coarse registration result. The formation of second type error edges illustrated in Figure 17c,d is caused by the unrelated locations having high feature similarities for the repeated similar structures in the environment. In particular, the second type error edges, as long as there is one in the pose graph, will bring about a serious wrong result in the final optimization, so the elimination of these edges is essential. The underground garage is a typical scene with a lot of similar structures, which explains why the proportion of the error edges in dataset 2 is higher than the other two datasets. This also leads to the error in loop closure detection in the Cartographer algorithm, resulting in the inconsistency in Figure 10b.
Except for validated edge and error edge, there are edges that cannot be validated in theory. This will happen when an edge does not belong to any cycles or there is more than one error edge in all cycles this edge belongs to. A pose graph structure that consists of enough small cycles can help avoid these situations. Moreover, it is more robust and beneficial to obtain higher precision point cloud. For instance, comparing the optimized point cloud in three datasets, it is evident that the best precision in dataset 3 is lower than in datasets 1 and 2. This is because the center office build limits the route to form more closed loops and obscures the view in different locations. Additionally, the statistical result shows that the average number of edges in each cycle is 19.6 in dataset 3, while it is 12.2 in dataset 1 and 14.5 in dataset 2. In addition, it can be seen that the constructed pose graph is highly correlated with the data acquisition trajectory, which means designing a suitable acquisition route is important for obtaining a high precision SLAM point cloud.
The residual consistency threshold α is the most important parameter in our algorithm and it determines the result of consistency validation. To analyze its influence on the performance of the algorithm, we chose different α values at interval 0.1. Figure 18 illustrates the edge validation accuracy with different values of parameter α. It can be seen that the edge validation accuracy increases first and then decreases as the α increases, as the correct edges will be detected as error edges with a small α and the error edges cannot be detected with a large α. Therefore, we recommend setting α to a small value at first and then increasing it gradually. The minimum appropriate value of α is 1.2 in dataset 3, while it is 1.1 in datasets 1 and 2, because the average number of edges in each cycle in dataset 3 is larger than datasets 1 and 2 which means more cumulative error in a cycle.
In order to test the versatility of our algorithm, we applied it on the public dataset of Cartographer [45]. This dataset is collected by a SLAM backpack with two Velodyne VLP-16 laser scanner at the Deutsches Museum. Figure 19 illustrates the overview and the backpack trajectory of the selected dataset. This dataset lasts 317.6 s and the trajectory length of it is 419.1 m.
We maintained the values of all parameters the same as in Table 2, except that α became 1.3. The total computing time was 3080.7 s. Figure 20 shows the qualitative comparison result of the point cloud before and after optimization. It is evident that the consistency of the point cloud was improved after optimization. Additionally, Figure 21 presents more details of comparison results.
For the lack of ground truth, we used the mean map entropy (MME) and mean plane variance (MPV) as the metrics of point cloud precision [46] and the evaluation results are shown in Table 7. According to the table, both the MME and MPV are reduced after optimization, which indicates that our algorithm improved the point cloud precision successfully. In addition, comparing to the work of Nüchter et al. in [26], our algorithm achieved the similar performance with higher efficiency, for we used the feature similarity to guide the pose graph construction and did not need to construct edges in the pose graph iteratively.
The result in Table 3 and Table 4 show that the optimization algorithm proposed in this paper achieved good performance on original point clouds generated by both LOAM and Cartographer SLAM algorithms. As mentioned above, the LOAM algorithm uses only laser data as input, while the Cartographer algorithm uses IMU data as an auxiliary input. Additionally, the most important difference between the two algorithms is that the Cartographer algorithm has a loop closure detection module. It is the essential difference between the graph-based SLAM and the filter-based SLAM. Thus, LOAM and Cartographer can be seen as the typical representations of two different SLAM algorithm paradigms, which means that our optimization algorithm has the potential to be applied on results of different laser SLAM algorithms.
Several improvements can be considered for our algorithm. Firstly, ICP registration is the bottleneck of the computational efficiency of this algorithm. A more efficient algorithm, for example, the work in [47], can significantly improve the efficiency of the algorithm. Then, for the similarity matching problem in the repeated structure area, image data can be joined as auxiliary information. At the same time, considering the rapid development in deep learning of point cloud, the deep learning-based point cloud features like [48,49] are also worth experimenting with. Finally, we plan to integrate control points into the optimization algorithm in the next stage.

5. Conclusions

Using 3D laser SLAM technology to acquire the point cloud has the advantages of high efficiency and not relying on GNSS. This makes it one of the best choices for mapping the indoor or underground environment. However, the precision of 3D laser SLAM point cloud is not enough for some fields, which hinders its further application. In this paper, we presented a coarse-to-fine precision optimization algorithm to improve the precision of the 3D laser slam point cloud. The point clouds were first segmented and registered at the local level. Then, a pose graph of point cloud segments was constructed using feature similarity and global registration. At last, all segments were aligned and merged into the final optimization result. Moreover, in order to guarantee the consistency of pose graph, a cycle based error edge elimination method was performed in global optimization. The experimental results demonstrated that the proposed optimization algorithm obtained good performances both in our test datasets and the Cartographer public dataset. In our test datasets, it successfully improved the precision of the point clouds generated by the Cartographer and LOAM laser SLAM algorithm even when there is serious distortion in raw input point clouds. The RMSE of point clouds was reduced by approximately 40%–50% and up to 63% after optimization in different datasets. In the Cartographer public dataset, our algorithm was more efficient compared to a similar algorithm.

Author Contributions

Conceptualization, J.D.; Methodology, J.D.; Writing—original draft preparation, J.D.; Writing—review and editing, J.D. and H.L.; Funding acquisition, L.Y.; Supervision, L.Y., C.C. and L.H.

Funding

This research is supported by the National Natural Science Foundation of China (Grant No. 41771486).

Acknowledgments

The authors would like to thank Junxiang Tan for his help in algorithm implementation.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Li, F.; Zlatanova, S.; Koopman, M.; Bai, X.; Diakité, A. Universal path planning for an indoor drone. Autom. Constr. 2018, 95, 275–283. [Google Scholar] [CrossRef]
  2. Bassier, M.; Vergauwen, M. Clustering of Wall Geometry from Unstructured Point Clouds Using Conditional Random Fields. Remote Sens. 2019, 11, 1586. [Google Scholar] [CrossRef]
  3. Liang, X.; Kukko, A.; Hyyppä, J.; Lehtomaki, M.; Pyörälä, J.; Yu, X.; Kaartinen, H.; Jaakkola, A.; Wang, Y. In-situ measurements from mobile platforms: An emerging approach to address the old challenges associated with forest inventories. ISPRS J. Photogramm. Remote Sens. 2018, 143, 97–107. [Google Scholar] [CrossRef]
  4. Jende, P.; Nex, F.; Gerke, M.; Vosselman, G. A fully automatic approach to register mobile mapping and airborne imagery to support the correction of platform trajectories in GNSS-denied urban areas. ISPRS J. Photogramm. Remote Sens. 2018, 141, 86–99. [Google Scholar] [CrossRef]
  5. Lehtola, V.; Kaartinen, H.; Nüchter, A.; Kaijaluoto, R.; Kukko, A.; Litkey, P.; Honkavaara, E.; Rosnell, T.; Vaaja, M.; Virtanen, J.; et al. Comparison of the Selected State-Of-The-Art 3D Indoor Scanning and Point Cloud Generation Methods. Remote Sens. 2017, 9, 796. [Google Scholar] [CrossRef]
  6. Zlot, R.; Bosse, M. Efficient Large-scale Three-dimensional Mobile Mapping for Underground Mines. J. Field Robot. 2014, 31, 758–779. [Google Scholar] [CrossRef]
  7. Smith, R.C.; Cheeseman, P. On the Representation and Estimation of Spatial Uncertainty. Int. J. Robot. Res. 1986, 5, 56–68. [Google Scholar] [CrossRef]
  8. Smith, R.; Self, M.; Cheeseman, P. Estimating Uncertain Spatial Relationships in Robotics. In Autonomous Robot Vehicles; Springer Science and Business Media LLC: Berlin, Germany, 1990; pp. 167–193. [Google Scholar] [Green Version]
  9. Montemerlo, M.; Thrun, S.; Koller, D.; Wegbreit, B. FastSLAM: A factored solution to the simultaneous localization and mapping problem. Aaai/iaai 2002, 593598. Available online: https://www.aaai.org/Papers/AAAI/2002/AAAI02-089.pdf (accessed on 4 September 2019).
  10. Grisetti, G.; Stachniss, C.; Burgard, W. Improved Techniques for Grid Mapping With Rao-Blackwellized Particle Filters. IEEE Trans. Robot. 2007, 23, 34–46. [Google Scholar] [CrossRef] [Green Version]
  11. Konolige, K.; Grisetti, G.; Kümmerle, R.; Burgard, W.; Limketkai, B.; Vincent, R. Efficient Sparse Pose Adjustment for 2D mapping. In Proceedings of the 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems, Taipei, Taiwan, 18–22 October 2010; pp. 22–29. [Google Scholar]
  12. Bosse, M.; Zlot, R.; Flick, P. Zebedee: Design of a Spring-Mounted 3-D Range Sensor with Application to Mobile Mapping. IEEE Trans. Robot. 2012, 28, 1104–1119. [Google Scholar] [CrossRef]
  13. Einhorn, E.; Gross, H. Generic 2D/3D SLAM with NDT maps for lifelong application. In Proceedings of the 2013 European Conference on Mobile Robots, Barcelona, Spain, 25–27 September 2013; pp. 240–247. [Google Scholar]
  14. Jung, J.; Yoon, S.; Ju, S.; Heo, J. Development of Kinematic 3D Laser Scanning System for Indoor Mapping and As-Built BIM Using Constrained SLAM. Sensors 2015, 15, 26430–26456. [Google Scholar] [CrossRef]
  15. Díaz-Vilariño, L.; Khoshelham, K.; Martínez-Sánchez, J.; Arias, P. 3D Modeling of Building Indoor Spaces and Closed Doors from Imagery and Point Clouds. Sensors 2015, 15, 3491–3512. [Google Scholar] [CrossRef] [PubMed] [Green Version]
  16. Liang, X.; Chen, H.; Li, Y.; Liu, Y. Visual laser-SLAM in large-scale indoor environments. In Proceedings of the 2016 IEEE International Conference on Robotics and Biomimetics (ROBIO), Qingdao, China, 3–7 December 2016; pp. 19–24. [Google Scholar]
  17. Behley, J.; Stachniss, C. Efficient Surfel-Based SLAM using 3D Laser Range Data in Urban Environments. Rob. Sci. Syst. 2018. Available online: http://roboticsproceedings.org/rss14/p16.pdf (accessed on 4 September 2019).
  18. Deschaud, J. IMLS-SLAM: Scan-to-model matching based on 3D data. In Proceedings of the 2018 IEEE International Conference on Robotics and Automation (ICRA), Brisbane, QLD, Australia, 21–25 May 2018; pp. 2480–2485. [Google Scholar]
  19. Zhang, J.; Singh, S. LOAM: Lidar Odometry and Mapping in Real-time. Rob. Sci. Syst. 2014, 9. Available online: https://www.ri.cmu.edu/pub_files/2014/7/Ji_LidarMapping_RSS2014_v8.pdf (accessed on 4 September 2019).
  20. Zhang, J.; Singh, S. Visual-lidar odometry and mapping: Low-drift, robust, and fast. In Proceedings of the 2015 IEEE International Conference on Robotics and Automation (ICRA), Seattle, WA, USA, 26–30 May 2015; pp. 2174–2181. [Google Scholar]
  21. Shan, T.; Englot, B. LeGO-LOAM: Lightweight and ground-optimized lidar odometry and mapping on variable terrain. In Proceedings of the 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Madrid, Spain, 1–5 October 2018; pp. 4758–4765. [Google Scholar]
  22. Qin, T.; Li, P.; Shen, S. VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator. IEEE Trans. Robot. 2018, 34, 1004–1020. [Google Scholar] [CrossRef] [Green Version]
  23. Ye, H.; Chen, Y.; Liu, M. Tightly Coupled 3D Lidar Inertial Odometry and Mapping. In Proceedings of the 2019 International Conference on Robotics and Automation (ICRA), Montreal, QC, Canada, 20–24 May 2019. [Google Scholar]
  24. Hess, W.; Kohler, D.; Rapp, H.; Andor, D. Real-time loop closure in 2D LIDAR SLAM. In Proceedings of the 2016 IEEE International Conference on Robotics and Automation (ICRA), Stockholm, Sweden, 16–21 May 2016. [Google Scholar]
  25. Cadena, C.; Carlone, L.; Carrillo, H.; Latif, Y.; Scaramuzza, D.; Neira, J.; Reid, I.; Leonard, J.J. Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age. IEEE Trans. Robot. 2016, 32, 1309–1332. [Google Scholar] [CrossRef]
  26. Koch, B.; Leblebici, R.; Martell, A.; Rissen, S.J.; Schilling, K.; Nüchter, A. Evaluating continuous-time slam using a predefined trajectory provided by a robotic arm. In Proceedings of the ISPRS Geospatial Week 2017, Wuhan, China, 8–22 September 2017; pp. 91–98. Available online: https://www.isprs-ann-photogramm-remote-sens-spatial-inf-sci.net/IV-2-W4/91/2017/isprs-annals-IV-2-W4-91-2017.pdf (accessed on 4 September 2019).
  27. Nüchter, A.; Bleier, M.; Schauer, J.; Janotta, P. IMPROVING GOOGLE’S CARTOGRAPHER 3D MAPPING BY CONTINUOUS-TIMESLAM. ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences 2017, XLII-2/W3, 543–549. Available online: https://www.int-arch-photogramm-remote-sens-spatial-inf-sci.net/XLII-2-W3/543/2017/isprs-archives-XLII-2-W3-543-2017.pdf (accessed on 4 September 2019).
  28. Elseberg, J.; Borrmann, D.; Nüchter, A. Algorithmic Solutions for Computing Precise Maximum Likelihood 3D Point Clouds from Mobile Laser Scanning Platforms. Remote Sens. 2013, 5, 5871–5906. [Google Scholar] [CrossRef] [Green Version]
  29. Lauterbach, H.A.; Borrmann, D.; Nüchter, A.; Rossi, A.P.; Unnithan, V.; Torrese, P.; Pozzobon, R. MOBILE MAPPING OF THE LA CORONA LAVATUBE ON LANZAROTE. ISPRS Annals of Photogrammetry, Remote Sensing and Spatial Information Sciences 2019, IV-2/W5, 381–387. Available online: https://www.isprs-ann-photogramm-remote-sens-spatial-inf-sci.net/IV-2-W5/381/2019/isprs-annals-IV-2-W5-381-2019.pdf (accessed on 4 September 2019). [CrossRef] [Green Version]
  30. Kohlbrecher, S.; Von Stryk, O.; Meyer, J.; Klingauf, U. A flexible and scalable slam system with full 3d motion estimation. In Proceedings of the 2011 IEEE International Symposium, 2011; pp. 155–160. Available online: http://www.gkmm.informatik.tu-darmstadt.de/publications/files/slam2011.pdf (accessed on 4 September 2019).
  31. Kukko, A.; Kaijaluoto, R.; Kaartinen, H.; Lehtola, V.V.; Jaakkola, A.; Hyyppä, J. Graph SLAM correction for single scanner MLS forest data under boreal forest canopy. ISPRS J. Photogramm. Remote Sens. 2017, 132, 199–209. [Google Scholar] [CrossRef]
  32. Zhu, Z.; Yang, S.; Dai, H.; Li, F. In Loop detection and correction of 3d laser-based slam with visual information. In Proceedings of the 31st International Conference on Computer Animation and Social Agents, Beijing, China, 21–23 May 2018; pp. 53–58. [Google Scholar]
  33. Vlaminck, M.; Luong, H.; Philips, W. Have I Seen This Place Before? A Fast and Robust Loop Detection and Correction Method for 3D Lidar SLAM. Sensors 2019, 19, 23. [Google Scholar] [CrossRef] [PubMed]
  34. Chen, Y.; Medioni, G. Object modelling by registration of multiple range images. Image Vis. Comput. 1992, 10, 145–155. [Google Scholar] [CrossRef]
  35. Rusu, R.B.; Marton, Z.C.; Blodow, N.; Dolha, M.; Beetz, M. Towards 3D Point cloud based object maps for household environments. Robot. Aut. Syst. 2008, 56, 927–941. [Google Scholar] [CrossRef]
  36. Pauly, M.; Gross, M.; Kobbelt, L.P. Efficient simplification of point-sampled surfaces. In Proceedings of the conference on Visualization’02, Boston, MA, USA, 27 October–1 November 2002; pp. 163–170. [Google Scholar]
  37. Segal, A.; Haehnel, D.; Thrun, S. Generalized-ICP. Robot. Sci. Syst. 2009. Available online: http://www.robots.ox.ac.uk/~avsegal/resources/papers/Generalized_ICP.pdf (accessed on 4 September 2019).
  38. Jégou, H.; Douze, M.; Schmid, C.; Pérez, P. Aggregating local descriptors into a compact image representation. In Proceedings of the CVPR 2010–23rd IEEE Conference on Computer Vision & Pattern Recognition, San Francisco, CA, USA, June 2010; pp. 3304–3311. [Google Scholar]
  39. Chen, D.Y.; Tian, X.P.; Shen, Y.T.; Ouhyoung, M. On visual similarity based 3D model retrieval. Comput. Graph. Forum 2003, 22, 223–232. [Google Scholar] [CrossRef]
  40. Rusu, R.B.; Blodow, N.; Beetz, M. Fast Point Feature Histograms (FPFH) for 3D registration. In Proceedings of the 2009 IEEE International Conference on Robotics and Automation, Kobe, Japan, 12–17 May 2009; pp. 3212–3217. [Google Scholar]
  41. Dong, Z.; Yang, B.; Liang, F.; Huang, R.; Scherer, S. Hierarchical registration of unordered TLS point clouds based on binary shape context descriptor. ISPRS J. Photogramm. Remote Sens. 2018, 144, 61–79. [Google Scholar] [CrossRef]
  42. Zhou, Q.; Park, J.; Koltun, V. Fast Global Registration. In Lecture Notes in Computer Science; Leibe, B., Matas, J., Sebe, N., Welling, M., Eds.; Springer International Publishing: Cham, Switzerland, 2016; pp. 766–782. [Google Scholar]
  43. Prakhya, S.M.; Bingbing, L.; Rui, Y.; Lin, W. A closed-form estimate of 3D ICP covariance. In Proceedings of the 2015 14th IAPR International Conference on Machine Vision Applications (MVA), Tokyo, Japan, 18–22 May 2015; pp. 526–529. [Google Scholar]
  44. Paton, K. An algorithm for finding a fundamental set of cycles of a graph. Commun. Acm. 1969, 12, 514–518. [Google Scholar] [CrossRef]
  45. Cartographer Public Data. Available online: https://google-cartographer-ros.readthedocs.io/en/latest/data.html (accessed on 23 September 2019).
  46. Razlaw, J.; Droeschel, D.; Holz, D.; Behnke, S. Evaluation of registration methods for sparse 3D laser scans. In Proceedings of the 2015 European Conference on Mobile Robots (ECMR), Lincoln, UK, 2–4 September 2015; pp. 1–7. [Google Scholar]
  47. Eckart, B.; Kim, K.; Kautz, J. Hgmr: Hierarchical gaussian mixtures for adaptive 3d registration. In Proceedings of the European Conference on Computer Vision (ECCV), Munich, Germany, 8–14 September 2018; pp. 705–721. [Google Scholar]
  48. Khoury, M.; Zhou, Q.; Koltun, V. Learning compact geometric features. In Proceedings of the IEEE International Conference on Computer Vision; 2017; pp. 153–161. Available online: http://openaccess.thecvf.com/content_ICCV_2017/papers/Khoury_Learning_Compact_Geometric_ICCV_2017_paper.pdf (accessed on 4 September 2019).
  49. Yew, Z.J.; Lee, G.H. 3DFeat-Net: Weakly Supervised Local 3D Features for Point Cloud Registration. Agreem. Technol. 2018, 630–646. [Google Scholar] [Green Version]
Figure 1. Overview of the proposed laser simultaneous localization and mapping (SLAM) point cloud optimization algorithm.
Figure 1. Overview of the proposed laser simultaneous localization and mapping (SLAM) point cloud optimization algorithm.
Remotesensing 11 02352 g001
Figure 2. An example of point-to-plane iterative closest point (ICP) sequential registration result. (a) The raw point cloud generated by the Cartographer algorithm. (b) The local optimized point cloud after sequential registration. This scene is one of five scenes selected from datasets in the test that decides the algorithm and the values of parameters used for sequential registration.
Figure 2. An example of point-to-plane iterative closest point (ICP) sequential registration result. (a) The raw point cloud generated by the Cartographer algorithm. (b) The local optimized point cloud after sequential registration. This scene is one of five scenes selected from datasets in the test that decides the algorithm and the values of parameters used for sequential registration.
Remotesensing 11 02352 g002
Figure 3. An example of a pose graph.
Figure 3. An example of a pose graph.
Remotesensing 11 02352 g003
Figure 4. Fundamental cycle set of an undirected graph. (a) Fundamental cycle set constructed using depth-first search minimal spanning tree; (b) fundamental cycle set constructed using breadth-first search minimal spanning tree. In this figure, black solid lines denote the minimal spanning tree, and the red dotted lines denote missing edges.
Figure 4. Fundamental cycle set of an undirected graph. (a) Fundamental cycle set constructed using depth-first search minimal spanning tree; (b) fundamental cycle set constructed using breadth-first search minimal spanning tree. In this figure, black solid lines denote the minimal spanning tree, and the red dotted lines denote missing edges.
Remotesensing 11 02352 g004
Figure 5. The illustration of operator X o r . The blue dotted lines denote the edges which are present in both inputs that are removed first, and then the remaining edges and nodes are merged into one.
Figure 5. The illustration of operator X o r . The blue dotted lines denote the edges which are present in both inputs that are removed first, and then the remaining edges and nodes are merged into one.
Remotesensing 11 02352 g005
Figure 6. The hand-held SLAM device description: The laser scanner is Velodyne VLP-16 and the IMU is STIM300. The sensors data are processed by an Intel NUC with Intel Core i7-8559U CPU and 16 GB memory.
Figure 6. The hand-held SLAM device description: The laser scanner is Velodyne VLP-16 and the IMU is STIM300. The sensors data are processed by an Intel NUC with Intel Core i7-8559U CPU and 16 GB memory.
Remotesensing 11 02352 g006
Figure 7. Experimental environments. (a) Dataset 1; (b) dataset 2; (c) dataset 3.
Figure 7. Experimental environments. (a) Dataset 1; (b) dataset 2; (c) dataset 3.
Remotesensing 11 02352 g007
Figure 8. The SLAM device trajectory. The blue line in (ac) are the trajectories in datasets 1–3 respectively. The red dot and black dot in the figure represent the start and end of trajectory respectively.
Figure 8. The SLAM device trajectory. The blue line in (ac) are the trajectories in datasets 1–3 respectively. The red dot and black dot in the figure represent the start and end of trajectory respectively.
Remotesensing 11 02352 g008
Figure 9. Comparison between the point clouds before and after optimization in dataset 1. (a) The top view of the point cloud after optimization; (b) enlarged view of the raw output point cloud of Cartographer; (c) enlarged view of the optimized point cloud of Cartographer; (d) enlarged view of the raw output point cloud of lidar odometry and mapping (LOAM); (e) enlarged view of the optimized point cloud of LOAM.
Figure 9. Comparison between the point clouds before and after optimization in dataset 1. (a) The top view of the point cloud after optimization; (b) enlarged view of the raw output point cloud of Cartographer; (c) enlarged view of the optimized point cloud of Cartographer; (d) enlarged view of the raw output point cloud of lidar odometry and mapping (LOAM); (e) enlarged view of the optimized point cloud of LOAM.
Remotesensing 11 02352 g009aRemotesensing 11 02352 g009b
Figure 10. Comparison between the point clouds before and after optimization in dataset 2. (a) The top view of the point cloud after optimization; (b) enlarged view of the raw output point cloud of Cartographer; (c) enlarged view of the optimized point cloud of Cartographer; (d) enlarged view of the raw output point cloud of LOAM; (e) enlarged view of the optimized point cloud of LOAM.
Figure 10. Comparison between the point clouds before and after optimization in dataset 2. (a) The top view of the point cloud after optimization; (b) enlarged view of the raw output point cloud of Cartographer; (c) enlarged view of the optimized point cloud of Cartographer; (d) enlarged view of the raw output point cloud of LOAM; (e) enlarged view of the optimized point cloud of LOAM.
Remotesensing 11 02352 g010
Figure 11. Comparison between the point clouds before and after optimization in dataset 3. (a) The top view of the point cloud after optimization; (b) enlarged view of the raw output point cloud of Cartographer; (c) enlarged view of the optimized point cloud of Cartographer; (d) enlarged view of the raw output point cloud of LOAM; (e) enlarged view of the optimized point cloud of LOAM.
Figure 11. Comparison between the point clouds before and after optimization in dataset 3. (a) The top view of the point cloud after optimization; (b) enlarged view of the raw output point cloud of Cartographer; (c) enlarged view of the optimized point cloud of Cartographer; (d) enlarged view of the raw output point cloud of LOAM; (e) enlarged view of the optimized point cloud of LOAM.
Remotesensing 11 02352 g011
Figure 12. Snapshots of the point cloud produced by Cartographer before (left) and after optimization (right). (a,b) A scene in dataset 1; (c,d) a scene in dataset 2; (e,f) a scene in dataset 3.
Figure 12. Snapshots of the point cloud produced by Cartographer before (left) and after optimization (right). (a,b) A scene in dataset 1; (c,d) a scene in dataset 2; (e,f) a scene in dataset 3.
Remotesensing 11 02352 g012aRemotesensing 11 02352 g012b
Figure 13. Snapshots of the point cloud produced by LOAM before (left) and after optimization (right). (a,b) A scene in dataset 1; (c,d) a scene in dataset 2; (e,f) a scene in dataset 3.
Figure 13. Snapshots of the point cloud produced by LOAM before (left) and after optimization (right). (a,b) A scene in dataset 1; (c,d) a scene in dataset 2; (e,f) a scene in dataset 3.
Remotesensing 11 02352 g013
Figure 14. Overview of the reference data. All scans are rendered by different colors. (a) Dataset 1; (b) dataset 2; (c) dataset 3.
Figure 14. Overview of the reference data. All scans are rendered by different colors. (a) Dataset 1; (b) dataset 2; (c) dataset 3.
Remotesensing 11 02352 g014
Figure 15. The distribution of corresponding point pairs in each dataset. The color of the terrestrial laser scanning (TLS) point is red, and the color of the SLAM point is green in the figure. (a) Dataset 1; (b) dataset 2; (c) dataset 3.
Figure 15. The distribution of corresponding point pairs in each dataset. The color of the terrestrial laser scanning (TLS) point is red, and the color of the SLAM point is green in the figure. (a) Dataset 1; (b) dataset 2; (c) dataset 3.
Remotesensing 11 02352 g015aRemotesensing 11 02352 g015b
Figure 16. Pose graph visualization result. (a) Pose graph of LOAM result in dataset 1; (b) pose graph of LOAM result in dataset 2; (c) pose graph of LOAM result in dataset 3.
Figure 16. Pose graph visualization result. (a) Pose graph of LOAM result in dataset 1; (b) pose graph of LOAM result in dataset 2; (c) pose graph of LOAM result in dataset 3.
Remotesensing 11 02352 g016
Figure 17. Examples of registration results corresponding to error edges in the pose graph. (a) Registration result corresponds to edge 1 in Figure 16; (b) registration result corresponds to edge 2 in Figure 16; (c) registration result corresponds to edge 3 in Figure 16; (d) registration result corresponds to edge 4 in Figure 16.
Figure 17. Examples of registration results corresponding to error edges in the pose graph. (a) Registration result corresponds to edge 1 in Figure 16; (b) registration result corresponds to edge 2 in Figure 16; (c) registration result corresponds to edge 3 in Figure 16; (d) registration result corresponds to edge 4 in Figure 16.
Remotesensing 11 02352 g017
Figure 18. The edge validation results with different values of parameter α. (a) the results of datasets with the Cartographer algorithm; (b) the results of datasets with the LOAM algorithm.
Figure 18. The edge validation results with different values of parameter α. (a) the results of datasets with the Cartographer algorithm; (b) the results of datasets with the LOAM algorithm.
Remotesensing 11 02352 g018
Figure 19. The data acquisition trajectory. The blue line is the trajectory. The red dot and black dot in the figure represent the start and end of trajectory respectively.
Figure 19. The data acquisition trajectory. The blue line is the trajectory. The red dot and black dot in the figure represent the start and end of trajectory respectively.
Remotesensing 11 02352 g019
Figure 20. Comparison between the point clouds before and after optimization in the Cartographer dataset. (a) The top view of the point cloud after optimization; (b) section view of the raw output point cloud; (c) section view of the optimized point cloud. The color render mode is same as Figure 13.
Figure 20. Comparison between the point clouds before and after optimization in the Cartographer dataset. (a) The top view of the point cloud after optimization; (b) section view of the raw output point cloud; (c) section view of the optimized point cloud. The color render mode is same as Figure 13.
Remotesensing 11 02352 g020
Figure 21. Snapshots of the point cloud of Cartographer dataset before (left) and after optimization (right). (a,c) the point clouds before optimization; (b,d) the point clouds after optimization.
Figure 21. Snapshots of the point cloud of Cartographer dataset before (left) and after optimization (right). (a,c) the point clouds before optimization; (b,d) the point clouds after optimization.
Remotesensing 11 02352 g021
Table 1. Experimental data collection time and trajectory length.
Table 1. Experimental data collection time and trajectory length.
DatasetTime (s)Trajectory Length (m)
Dataset 1184.4130.9
Dataset 2278.1245.5
Dataset 3283.6286.8
Table 2. Overview of the parameters applied in optimization.
Table 2. Overview of the parameters applied in optimization.
ParametersValue
Local optimizationTime interval T s 10 s
Maximum distance D m a x 30 m
Sliding window size W s i z e 10
Number of neighbors20
Voxel resolution V s i z e 0.1 m
Pose graph constructionSalient radius0.3 m
Non maxima radius0.2 m
Sphere radius0.5 m
Top n similar segment pairs3
Global optimizationResidual consistency threshold α 1.2
Maximum iteration500
Table 3. The RMSE estimation result of datasets. For the raw output point cloud of LOAM is distorted severely in dataset 1, the initial RMSE values are empty.
Table 3. The RMSE estimation result of datasets. For the raw output point cloud of LOAM is distorted severely in dataset 1, the initial RMSE values are empty.
DatasetMin Distance (m) Max Distance (m) RMSE (m)
InitialOptimized InitialOptimized InitialOptimized
Dataset 1Cartographer0.0340.024 0.1800.1000.1090.064
LOAM/0.052 /0.227/0.151
Dataset 2Cartographer0.0430.021 0.3480.0970.1580.059
LOAM0.0350.023 0.1340.0940.0950.062
Dataset 3Cartographer0.0710.057 0.2100.1240.1540.102
LOAM0.0950.068 0.4220.1850.2770.125
Table 4. The plane-to-plane distance estimation result of datasets. For the raw output point cloud of LOAM is distorted severely in dataset 1, the initial values are empty.
Table 4. The plane-to-plane distance estimation result of datasets. For the raw output point cloud of LOAM is distorted severely in dataset 1, the initial values are empty.
DatasetMin Distance (m) Max Distance (m) Mean Distance (m)
InitialOptimized InitialOptimized InitialOptimized
Dataset 1Cartographer0.0370.012 0.1560.1380.1030.056
LOAM/0.028 /0.171/0.074
Dataset 2Cartographer0.0210.016 0.5080.0910.1330.054
LOAM0.0190.014 0.1700.1030.0840.050
Dataset 3Cartographer0.0280.022 0.1690. 1190.1050.059
LOAM0.0340.024 0.2100.1020.1220.066
Table 5. The time cost of the proposed algorithm.
Table 5. The time cost of the proposed algorithm.
DatasetLocal Optimization (s)Pose Graph Construction (s)Global Optimization (s)Total (s)
Dataset 1Cartographer1033.856.312.61102.7
LOAM1167.963.912.11243.9
Dataset 2Cartographer1704.3166.536.21907.0
LOAM1840.2189.440.92070.5
Dataset 3Cartographer1768.4225.354.52048.2
LOAM1892.2231.156.72180
Table 6. Pose graph consistency validation results.
Table 6. Pose graph consistency validation results.
DatasetNodesConstructed EdgesValidated EdgesError Edges
Dataset 1Cartographer1627252
LOAM1625241
Dataset 2Cartographer2446406
LOAM2449418
Dataset 3Cartographer2649454
LOAM2650446
Table 7. The precision evaluation result of the Cartographer dataset.
Table 7. The precision evaluation result of the Cartographer dataset.
InitialOptimized
Mean map entropy−2.86−3.04
Mean plane variance (m)0.0670.039

Share and Cite

MDPI and ACS Style

Dai, J.; Yan, L.; Liu, H.; Chen, C.; Huo, L. An Offline Coarse-To-Fine Precision Optimization Algorithm for 3D Laser SLAM Point Cloud. Remote Sens. 2019, 11, 2352. https://doi.org/10.3390/rs11202352

AMA Style

Dai J, Yan L, Liu H, Chen C, Huo L. An Offline Coarse-To-Fine Precision Optimization Algorithm for 3D Laser SLAM Point Cloud. Remote Sensing. 2019; 11(20):2352. https://doi.org/10.3390/rs11202352

Chicago/Turabian Style

Dai, Jicheng, Li Yan, Hua Liu, Changjun Chen, and Liang Huo. 2019. "An Offline Coarse-To-Fine Precision Optimization Algorithm for 3D Laser SLAM Point Cloud" Remote Sensing 11, no. 20: 2352. https://doi.org/10.3390/rs11202352

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop