LiDAR SLAM point cloud processing

Lidar slam w/ open source MATLAB framework. Research on line features recognition and extraction. Project is now available on my Github! github

In the beginning, I noted that the line features of the indoor environment are apparent, e.g.: the outlines of walls or tables. Therefore, I decided to utilize clustering and linear fitting to extract features in a single-scan point cloud.

Single scan feature extraction

The clusters were initially determined by the distance between points. This led to the incorrect classification of points around corners due to the narrow spacing. After I developed and applied a Corner Detection algorithm, an explicit linear characteristic was demonstrated for each cluster. Next, I implemented Principal Component Analysis to obtain the line segments’ slopes and endpoints.

single_scan

Figure 1. Single scan point cloud before/after processing

Multi scan feature merge

In the last stage, density-based clustering was performed to fuse the features in multi-scan data. Specifically, I combined DBSCAN and Mean Shift clustering to process the data (the slope and two endpoints), enabling the potentially coincident lines to be labeled the same and merged.

mult_origmult_dbmult_ms

Figure 2. Origin data after line fitting

Figure 3. Data after DBSCAN

Figure 4. Data after Meanshift

Result

The result showed that a 5522 by 1052 dataset could be reduced to 700 line segments, while the processing time was within 5 minutes.

resultresult

Figure 5. Original data w/ number of lines

Figure 6. Data after feature merging w/ num of lines