| Unmanned vehicles have become the current trend of development,and positioning technology is one of the core technologies of unmanned vehicles.SLAM(simultaneous positioning and map construction)technology enables unmanned vehicles to realize their own positioning and map construction in an unknown environment.3D lidar has the characteristics of high measurement accuracy,wide range,unaffected by light and quick response in dynamic and static conditions,etc.It is widely used in unmanned vehicles.The SLAM technology of unmanned vehicles based on 3D lidar has gradually become unmanned vehicle navigation Positioning research hotspots.However,the laser point cloud data returned by the 3D lidar is huge,the data density is unevenly distributed,and there are problems such as noise,which brings great challenges to the accuracy and speed of the unmanned vehicle SLAM algorithm.In order to improve the accuracy and efficiency of the simultaneous positioning and map construction of unmanned vehicles,an algorithm for simultaneous positioning and map construction based on 3D lidar is proposed and studied.The specific research content is as follows:(1)Preprocessing of lidar point cloud data: Since the point cloud data is very large and has a lot of noise,the point cloud data is preprocessed to improve the accuracy and speed of positioning and map construction.The voxel grid filter is given as The main,radius filtering and denoising are supplemented,and the point cloud data preprocessing scheme is sampled at equal intervals.Effectively reduce the number of data frames while maintaining the point cloud characteristics to reduce the amount of data,eliminate outliers,and reduce noise points.(2)Use an improved point cloud registration scheme based on the combination of PCA point cloud coarse registration algorithm and ICP point cloud registration algorithm.Aiming at the shortcomings of traditional laser odometer based on ICP registration algorithm,an improved laser odometer registration method is proposed.The traditional ICP algorithm has many advantages,but there are problems that require high initial values,slow registration speed,and easily fall into local extreme values.First,PCA(principal component analysis)is used for rough registration of the reference point cloud and the point cloud to be registered to give the initial value,and then the ICP algorithm is used for fine registration.(3)Use the search method of KD tree to accelerate the search of ICP corresponding points and improve the search efficiency.Use key frame technology to reduce the number of matching frames and improve the matching speed.Use a threshold-based method to stop the iteration when it reaches the number of iterations.(4)An improved algorithm for loop detection based on the matching between the frame and the map and the distance threshold is proposed.The point cloud data used in the point cloud registration in the closed-loop detection uses the original data,and the original data is reconstructed again.The grid filtering makes the point cloud more dense,so as to obtain more accurate closed-loop constraints.In the process of finding the key frame closest to the current key frame in the historical frame,technologies such as minimum time difference,waiting time,and minimum distance are set to solve the problem of inefficient and time-consuming classic loop detection algorithms.(5)Using the back-end optimization based on the pose map,combined with the closed-loop constraint of the loop detection,the map is optimized and updated to obtain a globally consistent map estimate.For unmanned driving based on high-precision map positioning,the NDT registration algorithm is used for matching positioning.Finally,the KITTI data set of the urban environment and the experimental data collected in the campus environment are used to evaluate the proposed SLAM algorithm.The results show that this algorithm improves the results of unmanned vehicle positioning mapping in the point cloud environment,and improves the accuracy of positioning mapping.The correctness and efficiency of the algorithm are verified. |