SLAM is a key technology to realize service robot with high intelligence.In an unknown environment,SLAM technology allows a robot to build a map and locate its position in the map,which uses one or more sensors to detect the surrounding environment.The Cartographer is an open source Google system in 2016 that can achieve low computational resource consumption and provide 2D and 3D SLAM algorithms,configured with multiple sensors.The sweeping robot is a major application of service robots.This paper uses the enhanced Cartographer to construct the SLAM system on the sweeping robot based on the Player platform.The main research contents include:(1)Addressing to the problem of inaccurate pose fusion and delay in the original Cartographer method,this paper designs a pose fusion method based on pose increment.After the pose optimization of the scanning data of the lidar sensor,this method can provide the pose estimation for the next moment faster and more accurately combined with the inertial measurement unit data and the odometer data.This method caches all sensor data and deletes the old data according to the timestamp of the new optimized pose.The method takes the locally optimized pose as the initial value,calculates the angle increment through the inertial measurement unit data and fuse the odometer data to obtain the required pose estimation.Only when lidar data can be achieved,the velocity is calculated from the previously optimized pose to maintain the pose stability.(2)The SLAM system with the enhanced Cartographer algorithm is implemented on the sweeping robot based on the Player platform.The system is divided into six modules.Firstly,the system configuration module completes the initial configuration.Secondly,the interface module interacts with other systems on the platform.Thirdly,the Player interaction module interacts with the Player platform.Fourthly,the algorithm interaction module interacts with algorithms.Fifthly,the data processing module processes data.Sixthly,the enhanced Cartographer algorithm module completes mapping.The function of the data processing module is mainly to deal with the characteristics of various sensor data.The point cloud data collected by the lidar sensor will cause the accuracy of the data to decrease due to the movement of the robot in extreme cases,which affects the accuracy of mapping.The lidar data needs to be corrected for the motion situation,the inertial measurement unit and the odometer data need to be adapted according to the requirements of the algorithm to assist the lidar data mapping.To verify the effectiveness of the Cartographer algorithm,two data sets containing different sensors are used for quantitative error analysis of the algorithm on PC.The experimental results show that the pose fusion method proposed in this paper reduces the positioning error by 53% on the dataset of Deutsches Museum with multiple sensors.In order to verify the performance of SLAM system on the sweeping robot,tests and analyses are carried out respectively in real scenes,including small complex environment and large simple environment.In these scenes,the influence of different combinations of sensors on the building map is evaluated and analyzed,and the results show that the final 2D raster map meet the accuracy requirements of actual use.Finally,we analyze the collision problem that the sweeping robot often encounters and we add the processing of the odometer data to solve the problem.At the same time,the robustness of SLAM system mapping quality after collision is verified by the comparative test. |