| To navigate in an unknown environment, a mobile robot needs to build a map of the environment and localize itself in the map at the same time. The process addressing this dual problem is called Simultaneously Localization And Mapping(SLAM). The SLAM based on RGB-D sensor is called RGB-D SLAM, and it is now an important issue in the research of mobile robotics.RGB-D SLAM algorithm is divided into a front-end and a back-end, whereas the front-end detects keypoints and extracts descriptors in RGB-D images, matches the descriptors to previous ones, then estimates the transformations and optimizes transformations, the back-end builds a pose graph, detects loop closures, optimize the pose graph, and then builds a 3D map of environment according to the optimized camera poses.Current RGB-D SLAM algorithm includes problems as below: first, it has such a low efficiency that it cannot meet the real-time requirement; second, it has a low accuracy and a large error, the resulting robot pose and trajectory will generally drift with respect to the real ones and the drift amount grows over time.Aiming at solving the problems mentioned above, this paper proposed the following improvement methods:(1) Use ORB based method in the feature detection and descriptor extractor stage, that is, use ORB algorithm to detect feature and extract descriptor, then filtered the features with invalid depth information away.(2) Use the enhanced feature matching method based on FLANN in the feature matching stage, that is, use duplex KNN feature matching based on FLANN library instead of just Brute Force method to match the descriptors and then using homography transformation to optimize the matching results.(3) Using an improved RANSAC method instead of original one to estimate transformations and get a more accurate inliers of matching points.(4) Using a transformation optimization method with automatic degradation based on GICP instead of original one to optimize the transformation, that is, use GICP algorithm instead of ICP to improve the accuracy of point cloud registration, treat the RANSAC failure with a degradation process, and use inliers matching points with a degradation process instead of the original 3D matching points to do the point cloud registration.This paper uses a benchmark and a corresponding dataset proposed by Freiburg and some RGB-D images sequences of different environments recorded by ourselves and the real environment based on Dr Robot X80 robot to evaluate the original algorithm and the improved algorithm, of which the result show that the improvement methods of the algorithm proposed in this paper can not only meet the real-time requirement, but also greatly reduce the errors and improve the accuracy. This proves the correctness of the improvement method proposed in this paper. |