{"id":10513,"date":"2025-08-30T12:15:46","date_gmt":"2025-08-30T04:15:46","guid":{"rendered":"https:\/\/yanjingang.com\/blog\/?p=10513"},"modified":"2025-09-10T11:11:22","modified_gmt":"2025-09-10T03:11:22","slug":"lio-sam-%e9%80%9a%e8%bf%87%e5%b9%b3%e6%bb%91%e5%92%8c%e6%98%a0%e5%b0%84%e5%ae%9e%e7%8e%b0%e7%b4%a7%e8%80%a6%e5%90%88%e6%bf%80%e5%85%89%e9%9b%b7%e8%be%be%e6%83%af%e6%80%a7%e9%87%8c%e7%a8%8b","status":"publish","type":"post","link":"https:\/\/yanjingang.com\/blog\/?p=10513","title":{"rendered":"LIO-SAM\u2014\u901a\u8fc7\u5e73\u6ed1\u548c\u6620\u5c04\u5b9e\u73b0\u7d27\u8026\u5408\u6fc0\u5149\u96f7\u8fbe\u60ef\u6027\u91cc\u7a0b\u8ba1"},"content":{"rendered":"<p>\u672c\u6587\u5bf9LIO-SAM:Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping\u8bba\u6587\u8fdb\u884c\u7814\u8bfb\u3002<\/p>\n<p>\u8bba\u6587\uff1a<a class=\" external\" href=\"https:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/TixiaoShan\/LIO-SAM\/blob\/master\/config\/doc\/paper.pdf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" data-za-detail-view-id=\"1043\"><span class=\"invisible\">https:\/\/<\/span><span class=\"visible\">github.com\/TixiaoShan\/L<\/span><span class=\"invisible\">IO-SAM\/blob\/master\/config\/doc\/paper.pdf<\/span><\/a><\/p>\n<p data-pid=\"aQ_4LQGQ\">\u4ee3\u7801\uff1a<a class=\" wrap external\" href=\"https:\/\/link.zhihu.com\/?target=https%3A\/\/github.com\/TixiaoShan\/LIO-SAM\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" data-za-detail-view-id=\"1043\">TixiaoShan\/LIO-SAM<\/a><\/p>\n<p data-pid=\"aQ_4LQGQ\"><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-scaled.jpg\"><img loading=\"lazy\" class=\"alignnone wp-image-10506 size-full\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-scaled.jpg\" alt=\"\" width=\"2560\" height=\"841\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-scaled.jpg 2560w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-300x99.jpg 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-1024x336.jpg 1024w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-768x252.jpg 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-1536x505.jpg 1536w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-2048x673.jpg 2048w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-624x205.jpg 624w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/a><\/p>\n<h1>\u4e00\u3001\u6458\u8981 Abstract<\/h1>\n<p>We propose a framework for tightly-coupled lidar inertial odometry via smoothing and mapping, LIO-SAM, that achieves highly accurate, real-time mobile robot trajectory es- timation and map-building. LIO-SAM formulates lidar-inertial odometry atop a factor graph, allowing a multitude of relative and absolute measurements, including loop closures, to be incorporated from different sources as factors into the system. The estimated motion from inertial measurement unit (IMU) pre-integration de-skews point clouds and produces an initial guess for lidar odometry optimization. The obtained lidar odometry solution is used to estimate the bias of the IMU. To ensure high performance in real-time, we marginalize old lidar scans for pose optimization, rather than matching lidar scans to a global map. Scan-matching at a local scale instead of a global scale significantly improves the real-time performance of the system, as does the selective introduction of keyframes, and an efficient sliding window approach that registers a new keyframe to a fixed-size set of prior \u201csub-keyframes.\u201d The proposed method is extensively evaluated on datasets gathered from three platforms over various scales and environments.<\/p>\n<p data-pid=\"XX5jfxEF\">\u672c\u8bba\u6587\u63d0\u51fa\u4e00\u79cd<span style=\"color: #ff0000;\">\u7d27\u8026\u5408<span style=\"color: #333333;\">\u7684<\/span>\u5e73\u6ed1<span style=\"color: #333333;\">\u5efa\u56fe\u6fc0\u5149\u60ef\u5bfc\u91cc\u7a0b\u8ba1\u6846\u67b6<\/span><\/span>\uff0cLIO-SAM\uff0c\u5b8c\u6210\u9ad8\u51c6\u786e\u5ea6\u3001\u5b9e\u65f6\u7684\u79fb\u52a8\u673a\u5668\u4eba\u8f68\u8ff9\u4f30\u8ba1\u548c\u5730\u56fe\u6784\u5efa\u3002LIO-SAM\u5728\u56e0\u5b50\u56fe\u4e0a\u5236\u5b9a\u4e86\u4e00\u4e2a\u6fc0\u5149\u60ef\u5bfc\u91cc\u7a0b\u8ba1\uff0c\u5141\u8bb8\u8bb8\u591a\u76f8\u5bf9\u548c\u7edd\u5bf9\u6d4b\u91cf\uff0c\u5305\u62ec\u95ed\u73af\uff0c\u4ece\u4e0d\u540c\u7684\u6765\u6e90\u4f5c\u4e3a\u56e0\u5b50\u56fe\u7684\u8f93\u5165\u7eb3\u5165\u7cfb\u7edf\u4e2d\u3002<span style=\"color: #ff0000;\"><span style=\"color: #333333;\"><span style=\"color: #ff0000;\">IMU\u9884\u79ef\u5206<\/span>\u7684\u8fd0\u52a8\u4f30\u8ba1\u5bf9<span style=\"color: #ff0000;\">\u70b9\u4e91<\/span>\u8fdb\u884c<span style=\"color: #ff0000;\">\u53bb\u7578\u53d8<\/span>\u5e76\u4ea7\u751f\u6fc0\u5149\u91cc\u7a0b\u8ba1\u4f18\u5316\u7684\u521d\u59cb\u4f30\u8ba1\u3002<span style=\"color: #ff0000;\">\u6fc0\u5149\u96f7\u8fbe\u91cc\u7a0b\u8ba1<\/span>\u65b9\u6848\u7528\u4e8e<span style=\"color: #ff0000;\">\u4f30\u8ba1IMU\u7684\u96f6\u504f<\/span>\u3002\u4e3a\u4e86\u786e\u4fdd\u5728\u5b9e\u65f6\u73af\u5883\u4e0b\u5f97\u5230\u8f83\u597d\u7684\u6027\u80fd\uff0c\u5728\u59ff\u6001\u4f18\u5316\u7684\u65f6\u5019\u8fb9\u7f18\u5316\u6389\u65e7\u7684\u6fc0\u5149\u96f7\u8fbe\u5e27<\/span><\/span>\uff0c\u800c\u4e0d\u662f\u5c06\u6fc0\u5149\u96f7\u8fbe\u70b9\u4e91\u5e27\u5339\u914d\u5230\u5168\u5c40\u5730\u56fe\u4e2d\u3002<span style=\"color: #ff0000;\">\u5c40\u90e8<span style=\"color: #333333;\">\u5c3a\u5ea6<\/span><\/span>\u800c\u4e0d\u662f\u5168\u5c40\u5c3a\u5ea6\u4e0a\u7684<span style=\"color: #ff0000;\">\u626b\u63cf\u5339\u914d<\/span>\u53ef\u4ee5\u663e\u8457\u9ad8\u7cfb\u7edf\u7684\u5b9e\u65f6<span style=\"color: #ff0000;\">\u6027\u80fd<\/span>\uff0c<span style=\"color: #000000;\">\u9009\u62e9\u6027\u5f15\u5165<span style=\"color: #ff0000;\">\u5173\u952e\u5e27<\/span>\u4ee5\u53ca\u6709\u6548\u7684<span style=\"color: #ff0000;\">\u6ed1\u52a8\u7a97\u53e3<\/span>\u65b9\u6cd5\uff0c\u5c06\u65b0\u7684\u5173\u952e\u5e27\u6ce8\u518c\u5230\u56fa\u5b9a\u5927\u5c0f\u7684\u201c\u5b50\u5173\u952e\u5e27\u201d\u4e2d<\/span>\u3002\u63d0\u51fa\u7684\u65b9\u6cd5\uff0c\u5728\u4e0d\u540c\u5c3a\u5ea6\u548c\u73af\u5883\u4e0b\uff0c\u4ece\u4e09\u4e2a\u5e73\u53f0\u641c\u96c6\u7684\u6570\u636e\u96c6\u4e0a\uff0c\u8fdb\u884c\u4e86\u5e7f\u6cdb\u7684\u8bc4\u4f30\u3002<\/p>\n<h1>\u4e8c\u3001\u5f15\u8a00 Introduction<\/h1>\n<p>State estimation, localization and mapping are fundamental prerequisites for a successful intelligent mobile robot, required for feedback control, obstacle avoidance, and planning, among many other capabilities. Using vision-based and lidar-based sensing, great efforts have been devoted to achieving high-performance real-time simultaneous lo- calization and mapping (SLAM) that can support a mobile robot\u2019s six degree-of-freedom state estimation. Vision-based methods typically use a monocular or stereo camera and triangulate features across successive images to determine the camera motion. Although vision-based methods are especially suitable for place recognition, their sensitivity to initialization, illumination, and range make them unreliable when they alone are used to support an autonomous navigation system. On the other hand, lidar-based methods are largely invariant to illumination change. Especially with the recent availability of long-range, high-resolution 3D lidar, such as the Velodyne VLS-128 and Ouster OS1-128, lidar becomes more suitable to directly capture the fine details of an environment in 3D space. Therefore, this paper focuses on lidar-based state estimation and mapping methods.<\/p>\n<p data-pid=\"Ao4HgPiY\">\u72b6\u6001\u4f30\u8ba1\u3001\u5b9a\u4f4d\u4e0e\u5efa\u56fe\u662f\u4e00\u4e2a\u6210\u529f\u7684\u667a\u80fd\u79fb\u52a8\u673a\u5668\u4eba\u7684\u57fa\u7840\u524d\u63d0\uff0c\u8fd9\u662f\u53cd\u9988\u63a7\u5236\u3001\u907f\u969c\u548c\u89c4\u5212\u7b49\u8bb8\u591a\u5176\u4ed6\u529f\u80fd\u6240\u5fc5\u9700\u7684\u3002\u5229\u7528\u57fa\u4e8e\u89c6\u89c9\u548c\u57fa\u4e8e\u6fc0\u5149\u96f7\u8fbe\u7684\u611f\u77e5\uff0c\u4eba\u4eec\u5df2\u7ecf\u4ed8\u51fa\u4e86\u5de8\u5927\u7684\u52aa\u529b\u81f4\u529b\u4e8e\u5b9e\u73b0\u79fb\u52a8\u673a\u5668\u4eba\u7684\u9ad8\u6027\u80fd\u5b9e\u65f6\u540c\u6b65\u5b9a\u4f4d\u4e0e\u5efa\u56fe\uff0c\u5b83\u53ef\u4ee5\u652f\u6301\u79fb\u52a8\u7684\u516d\u81ea\u7531\u5ea6\u7684\u72b6\u6001\u4f30\u8ba1\u3002\u57fa\u4e8e\u89c6\u89c9\u7684\u65b9\u6cd5\u901a\u5e38\u91c7\u7528\u5355\u76ee\u6216\u8005\u6df1\u5ea6\u76f8\u673a\uff0c\u5e76\u901a\u8fc7\u8fde\u7eed\u56fe\u50cf\u7684\u4e09\u89d2\u5316\u7279\u5f81\u6765\u786e\u5b9a\u76f8\u673a\u8fd0\u52a8\u3002\u5c3d\u7ba1\u57fa\u4e8e\u89c6\u89c9\u7684\u65b9\u6cd5\u7279\u522b\u9002\u5408\u4f4d\u7f6e\u8bc6\u522b\uff0c\u4f46\u662f\u89c6\u89c9\u65b9\u6cd5\u5bf9\u521d\u59cb\u5316\u3001\u5149\u7167\u3001\u8ddd\u79bb\u7684\u654f\u611f\u6027\uff0c\u4f7f\u5f97\u5b83\u4eec\u5728\u5355\u72ec\u7528\u4e8e\u652f\u6301\u81ea\u52a8\u5bfc\u822a\u7cfb\u7edf\u65f6\u4e0d\u662f\u5f88\u53ef\u9760\u3002\u53e6\u4e00\u65b9\u9762\uff0c\u57fa\u4e8e\u6fc0\u5149\u96f7\u8fbe\u7684\u65b9\u6cd5\u5728\u5f88\u5927\u7a0b\u5ea6\u4e0a\u4e0d\u53d7\u5149\u7167\u53d8\u5316\u7684\u5f71\u54cd\u3002\u7279\u522b\u662f\u968f\u7740\u6700\u8fd1\u63d0\u51fa\u7684\u8fdc\u8ddd\u79bb\u3001\u9ad8\u5206\u8fa8\u7387\u4e09\u7ef4\u6fc0\u5149\u96f7\u8fbe\uff0c\u6bd4\u5982Velodyne128\u7ebf\u4ee5\u53caOuster128\u7ebf\uff0c\u6fc0\u5149\u96f7\u8fbe\u53d8\u5f97\u66f4\u9002\u5408\u76f4\u63a5\u6355\u6349\u4e09\u7ef4\u7a7a\u95f4\u73af\u5883\u4e2d\u7684\u7ec6\u8282\u3002\u56e0\u6b64\uff0c\u672c\u6587\u7740\u91cd\u7814\u7a76\u57fa\u4e8e\u6fc0\u5149\u96f7\u8fbe\u7684\u72b6\u6001\u4f30\u8ba1\u548c\u5efa\u56fe\u65b9\u6cd5\u3002<\/p>\n<p data-pid=\"Ao4HgPiY\">Many lidar-based state estimation and mapping methods have been proposed in the last two decades. Among them, the lidar odometry and mapping (LOAM) method proposed in [1] for low-drift and real-time state estimation and mapping is among the most widely used. LOAM, which uses a lidar and an inertial measurement unit (IMU), achieves state-of- the-art performance and has been ranked as the top lidar- based method since its release on the KITTI odometry benchmark site [2]. Despite its success, LOAM presents some limitations &#8211; by saving its data in a global voxel map, it is often difficult to perform loop closure detection and incorporate other absolute measurements, e.g., GPS, for pose correction. Its online optimization process becomes less efficient when this voxel map becomes dense in a feature-rich environment. LOAM also suffers from drift in large-scale tests, as it is a scan-matching based method at its core.<\/p>\n<p data-pid=\"TVSdaGyG\">\u6700\u8fd1\u4e8c\u5341\u5e74\uff0c\u51fa\u73b0\u4e86\u8bb8\u591a\u57fa\u4e8e\u6fc0\u5149\u96f7\u8fbe\u7684\u72b6\u6001\u4f30\u8ba1\u548c\u5efa\u56fe\u65b9\u6cd5\u3002\u5176\u4e2d\uff0cLOAM\u65b9\u6cd5\uff0c\u5728\u4f4e\u504f\u79fb\u548c\u5b9e\u65f6\u72b6\u6001\u4f30\u8ba1\u548c\u5efa\u56fe\u4e2d\uff0c\u662f\u5e94\u7528\u6700\u5e7f\u6cdb\u7684\u3002LOAM\u91c7\u7528\u6fc0\u5149\u96f7\u8fbe\u548cIMU\u8fbe\u5230\u4e86\u6700\u597d\u7684\u6027\u80fd\uff0c\u5e76\u81ea\u4eceKITTI\u91cc\u7a0b\u8ba1Benchmark\u699c\u5355\u53d1\u5e03\u4ee5\u6765\u4e00\u76f4\u88ab\u5217\u4e3a\u6700\u597d\u7684\u6fc0\u5149\u96f7\u8fbe\u65b9\u6cd5\u3002\u5c3d\u7ba1LOAM\u53d6\u5f97\u4e86\u6210\u529f\uff0c\u4f46\u8fd8\u662f\u5b58\u5728\u4e00\u4e9b\u9650\u5236\uff1a\u901a\u8fc7\u5c06\u6570\u636e\u4fdd\u5b58\u5728\u5168\u5c40\u4f53\u7d20\u5730\u56fe\u4e2d\uff0c\u901a\u5e38\u5f88\u96be\u6267\u884c\u56de\u73af\u68c0\u6d4b\u4ee5\u53ca\u7ed3\u5408\u5176\u4ed6\uff0c\u6bd4\u5982GPS\uff0c\u7edd\u5bf9\u6d4b\u91cf\u503c\u7528\u4e8e\u59ff\u6001\u6821\u6b63\u3002\u5f53\u4f53\u7d20\u5730\u56fe\u5728\u7279\u5f81\u4e30\u5bcc\u7684\u73af\u5883\u4e2d\u53d8\u5f97<span style=\"color: #ff0000;\">\u7a20\u5bc6<\/span>\u65f6\uff0cLOAM\u7684\u5728\u7ebf\u4f18\u5316\u8fc7\u7a0b\u5c31\u4f1a\u53d8\u5f97<span style=\"color: #ff0000;\">\u6548\u7387<span style=\"color: #333333;\">\u5f88<\/span>\u4f4e<\/span>\u3002LOAM\u5728\u5927\u89c4\u6a21\u6d4b\u8bd5\u4e2d\u4e5f\u5b58\u5728<span style=\"color: #ff0000;\">\u6f02\u79fb<\/span>\u95ee\u9898\uff0c\u56e0\u4e3a\u5b83\u7684\u6838\u5fc3\u662f\u4e00\u79cd\u57fa\u4e8e<span style=\"color: #ff0000;\">scan-match<\/span>\u626b\u63cf\u5339\u914d\u7684\u65b9\u6cd5\u3002<\/p>\n<p data-pid=\"TVSdaGyG\">In this paper, we propose a framework for tightly-coupled lidar inertial odometry via smoothing and mapping, LIO- SAM, to address the aforementioned problems. We assume a nonlinear motion model for point cloud de-skew, estimating the sensor motion during a lidar scan using raw IMU measurements. In addition to de-skewing point clouds, the estimated motion serves as an initial guess for lidar odometry optimization. The obtained lidar odometry solution is then used to estimate the bias of the IMU in the factor graph. By introducing a global factor graph for robot trajectory estimation, we can efficiently perform sensor fusion using lidar and IMU measurements, incorporate place recognition among robot poses, and introduce absolute measurements, such as GPS positioning and compass heading, when they are available. This collection of factors from various sources is used for joint optimization of the graph. Additionally, we marginalize old lidar scans for pose optimization, rather than matching scans to a global map like LOAM. Scan-matching at a local scale instead of a global scale significantly im- proves the real-time performance of the system, as does the selective introduction of keyframes, and an efficient sliding window approach that registers a new keyframe to a fixed- size set of prior \u201csub-keyframes.\u201d<\/p>\n<p data-pid=\"jAKxc03a\">\u672c\u6587\u4e2d\uff0c\u63d0\u51fa\u4e00\u4e2a\u901a\u8fc7\u5e73\u6ed1\u548c\u5efa\u56fe\u7684\u7d27\u8026\u5408\u6fc0\u5149\u60ef\u5bfc\u91cc\u7a0b\u8ba1\u6846\u67b6\uff0cLIO-SAM\uff0c\u7528\u6765\u89e3\u51b3\u4e0a\u9762\u63d0\u5230\u7684\u95ee\u9898\u3002\u6211\u4eec\u5047\u8bbe\u4e00\u4e2a\u70b9\u4e91\u53bb\u7578\u53d8\u540e\u7684\u975e\u7ebf\u6027\u8fd0\u52a8\u6a21\u578b\uff0c<strong>\u4f7f\u7528\u539f\u59cbIMU\u6d4b\u91cf\u6570\u636e\u4f30\u8ba1\u6fc0\u5149\u96f7\u8fbe\u626b\u63cf\u8fc7\u7a0b\u4e2d\u7684\u4f20\u611f\u5668\u8fd0\u52a8\u3002\u9664\u4e86\u70b9\u4e91\u53bb\u7578\u53d8\uff0c\u8fd0\u52a8\u4f30\u8ba1\u4f5c\u4e3a\u6fc0\u5149\u96f7\u8fbe\u91cc\u7a0b\u8ba1\u4f18\u5316\u7684\u521d\u59cb\u4f30\u8ba1\u3002\u5f97\u5230\u7684\u6fc0\u5149\u96f7\u8fbe\u91cc\u7a0b\u8ba1\u89e3\u51b3\u65b9\u6848\u7528\u4e8e\u4f30\u8ba1\u56e0\u5b50\u56fe\u4e2dIMU\u96f6\u504f<\/strong>\u3002\u901a\u8fc7\u5f15\u5165\u673a\u5668\u4eba\u8f68\u8ff9\u4f30\u8ba1\u7684\u5168\u5c40\u56e0\u5b50\u56fe\uff0c\u6211\u4eec\u5229\u7528\u6fc0\u5149\u96f7\u8fbe\u548cIMU\u6d4b\u91cf\u6709\u6548\u5730\u8fdb\u884c\u4f20\u611f\u5668\u878d\u5408\uff0c\u7ed3\u5408\u673a\u5668\u4eba\u59ff\u6001\u4e4b\u95f4\u7684\u4f4d\u7f6e\u8bc6\u522b\uff0c\u5e76<span style=\"color: #ff0000;\">\u5728\u53ef\u7528\u7684\u65f6\u5019<\/span>\uff0c<span style=\"color: #ff0000;\">\u5f15\u5165GPS<\/span>\u5b9a\u4f4d\u6216\u8005\u6307\u5357\u9488<span style=\"color: #ff0000;\">\u822a\u5411<\/span>\u7b49\u7edd\u5bf9\u6d4b\u91cf\u3002\u4e0d\u540c\u6765\u6e90\u56e0\u5b50\u7684\u96c6\u5408\u7528\u4e8e<span style=\"color: #ff0000;\">\u56e0\u5b50\u56fe<\/span>\u7684\u8054\u5408\u4f18\u5316\u3002\u6b64\u5916\uff0c\u6211\u4eec\u8fb9\u7f18\u5316\u65e7\u7684\u6fc0\u5149\u96f7\u8fbe\u626b\u63cf\u6765\u4f18\u5316\u59ff\u6001\uff0c\u800c\u4e0d\u662f\u7c7b\u4f3cLOAM\u90a3\u6837\u5c06\u626b\u63cf\u5339\u914d\u5230\u5168\u5c40\u5730\u56fe\u4e2d\u3002\u5c40\u90e8\u5c3a\u5ea6\u800c\u4e0d\u662f\u5168\u5c40\u5c3a\u5ea6\u4e0a\u7684\u626b\u63cf\u5339\u914dscan-match\u53ef\u4ee5\u663e\u8457\u63d0\u9ad8\u7cfb\u7edf\u7684\u5b9e\u65f6\u6027\u80fd\uff0c\u4ee5\u53ca\u9009\u62e9\u6027\u5730\u5f15\u5165\u5173\u952e\u5e27\u548c\u4e00\u79cd\u6709\u6548\u7684\u6ed1\u52a8\u7a97\u53e3\u65b9\u6cd5\uff0c\u5c06\u65b0\u7684\u5173\u952e\u5e27\u6ce8\u518c\u5230\u4e4b\u524d\u7684\u201c\u5b50\u5173\u952e\u5e27\u201d\u96c6\u5408\u4e2d\u3002<\/p>\n<p data-pid=\"jAKxc03a\">The main contributions of our work can be summarized as follows:<\/p>\n<ul>\n<li data-pid=\"jAKxc03a\">A tightly-coupled lidar inertial odometry framework built atop a factor graph, that is suitable for multi-sensor fusion and global optimization.<\/li>\n<li data-pid=\"jAKxc03a\">An efficient, local sliding window-based scan-matching approach that enables real-time performance by regis- tering selectively chosen new keyframes to a fixed-size set of prior sub-keyframes.<\/li>\n<li data-pid=\"jAKxc03a\">The proposed framework is extensively validated with tests across various scales, vehicles, and environments.<\/li>\n<\/ul>\n<p data-pid=\"iSLhqPLZ\">\u672c\u6587\u5de5\u4f5c\u7684\u4e3b\u8981\u8d21\u732e\u603b\u7ed3\u5982\u4e0b\uff1a<\/p>\n<ul>\n<li data-pid=\"3UtFniWS\">\u5728\u56e0\u5b50\u56fe\u4e0a\u5efa\u7acb\u4e00\u4e2a\u7d27\u8026\u5408\u7684\u6fc0\u5149\u60ef\u5bfc\u91cc\u7a0b\u8ba1\u6846\u67b6\uff0c\u9002\u7528\u4e8e\u591a\u4f20\u611f\u5668\u878d\u5408\u548c\u5168\u5c40\u4f18\u5316\u3002<\/li>\n<li data-pid=\"vYgOIzFH\">\u63d0\u51fa\u4e00\u79cd\u9ad8\u6548\u7684\uff0c\u57fa\u4e8e\u5c40\u90e8\u6ed1\u52a8\u7a97\u53e3\u7684\u626b\u63cf\u5339\u914d\u65b9\u6cd5\uff0c\u901a\u8fc7\u6709\u9009\u62e9\u6027\u5730\u6311\u9009\u65b0\u5173\u952e\u5e27\u6ce8\u518c\u5230\u56fa\u5b9a\u5927\u5c0f\u7684\u5148\u524d\u7684\u5b50\u5173\u952e\u5e27\u96c6\u5408\u4e0a\uff0c\u6765\u8fbe\u5230\u5b9e\u65f6\u7684\u6027\u80fd\u3002<\/li>\n<li data-pid=\"7ex2FUEj\">\u63d0\u51fa\u7684\u6846\u67b6\u5728\u4e0d\u540c\u5c3a\u5ea6\u3001\u8f66\u8f86\u4ee5\u53ca\u73af\u5883\u4e2d\u7684\u6d4b\u8bd5\u5f97\u5230\u4e86\u5e7f\u6cdb\u7684\u9a8c\u8bc1\u3002<\/li>\n<\/ul>\n<h1>\u4e09\u3001\u76f8\u5173\u5de5\u4f5c Related Work<\/h1>\n<p>Lidar odometry is typically performed by finding the relative transformation between two consecutive frames us- ing scan-matching methods such as ICP [3] and GICP [4]. Instead of matching a full point cloud, feature-based matching methods have become a popular alternative due to their computational efficiency. For example, in [5], a plane- based registration approach is proposed for real-time lidar odometry. Assuming operations in a structured environment, it extracts planes from the point clouds and matches them by solving a least-squares problem. A collar line-based method is proposed in [6] for odometry estimation. In this method, line segments are randomly generated from the original point cloud and used later for registration. However, a scan\u2019s point cloud is often skewed because of the rotation mechanism of modern 3D lidar, and sensor motion. Solely using lidar for pose estimation is not ideal since registration using skewed point clouds or features will eventually cause large drift.<\/p>\n<p data-pid=\"N_Go_jIY\">\u6fc0\u5149\u96f7\u8fbe\u91cc\u7a0b\u8ba1\u901a\u5e38\u662f\u901a\u8fc7ICP\u30103\u3011\u6216\u8005GICP\u30104\u3011\u7b49scan-match\u626b\u63cf\u5339\u914d\u7b97\u6cd5\u67e5\u627e\u4e24\u4e2a\u8fde\u7eed\u5e27\u4e4b\u95f4\u7684\u76f8\u5bf9\u8f6c\u6362\u6765\u8fdb\u884c\u7684\u3002\u9664\u4e86\u5339\u914d\u4e00\u6574\u7247\u70b9\u4e91\uff0c<span style=\"color: #ff0000;\">\u57fa\u4e8e\u7279\u5f81\u7684\u5339\u914d<\/span>\u65b9\u6cd5\u5df2\u7ecf\u6210\u4e3a\u4e00\u79cd\u6d41\u884c\u7684\u66ff\u4ee3\u65b9\u6cd5\u3002\u4f8b\u5982\uff0c\u6587\u732e\u30105\u3011\u4e2d\u63d0\u51fa\u7684\u57fa\u4e8e\u5e73\u9762\u7684\u5b9e\u65f6\u6fc0\u5149\u96f7\u8fbe\u5339\u914d\u65b9\u6cd5\u3002\u5047\u8bbe\u5728\u7ed3\u6784\u5316\u73af\u5883\u4e2d\u8fdb\u884c\u64cd\u4f5c\uff0c\u5b83\u4ece\u70b9\u4e91\u4e2d<span style=\"color: #ff0000;\">\u63d0\u53d6\u5e73\u9762<\/span>\uff0c\u5e76\u901a\u8fc7\u89e3\u51b3\u6700\u5c0f\u4e8c\u4e58\u95ee\u9898\u5bf9\u5b83\u4eec\u8fdb\u884c<span style=\"color: #ff0000;\">\u5339\u914d<\/span>\u3002\u6587\u732e\u30106\u3011\u4e2d\u63d0\u51fa\u4e00\u79cd\u57fa\u4e8e\u9879\u5708\u7ebf\u7684\u91cc\u7a0b\u8ba1\u4f30\u8ba1\u65b9\u6cd5\u3002\u5728\u8be5\u65b9\u6cd5\u4e2d\uff0c\u4ece\u539f\u59cb\u70b9\u4e91\u4e2d\u968f\u673a\u751f\u6210\u7ebf\u6bb5\uff0c\u5e76\u7528\u4e8e\u4e4b\u540e\u7684\u70b9\u4e91\u914d\u51c6\u3002\u7136\u800c\uff0c\u7531\u4e8e\u73b0\u4ee3\u4e09\u7ef4\u6fc0\u5149\u96f7\u8fbe\u7684\u65cb\u8f6c\u673a\u5236\u548c\u4f20\u611f\u5668\u7684\u8fd0\u52a8\uff0c\u626b\u63cf\u7684\u70b9\u4e91\u901a\u5e38\u90fd\u662f\u503e\u659c\u7684\u3002\u4ec5\u4ec5\u4f7f\u7528\u6fc0\u5149\u96f7\u8fbe\u8fdb\u884c\u59ff\u6001\u4f30\u8ba1\u5e76\u4e0d\u662f\u7406\u60f3\u7684\uff0c\u56e0\u4e3a\u4f7f\u7528\u70b9\u4e91\u6216\u7279\u5f81\u8fdb\u884c\u914d\u51c6\u6700\u7ec8\u4f1a\u5bfc\u81f4\u5927\u7684\u6f02\u79fb\u3002<\/p>\n<p data-pid=\"N_Go_jIY\">Therefore, lidar is typically used in conjunction with other sensors, such as IMU and GPS, for state estimation and mapping. Such a design scheme, utilizing sensor fusion, can typically be grouped into two categories: loosely-coupled fusion and tightly-coupled fusion. In LOAM [1], IMU is introduced to de-skew the lidar scan and give a motion prior for scan-matching. However, the IMU is not involved in the optimization process of the algorithm. Thus LOAM can be classified as a loosely-coupled method. A lightweight and ground-optimized lidar odometry and mapping (LeGO-LOAM) method is proposed in [7] for ground vehicle map- ping tasks [8]. Its fusion of IMU measurements is the same as LOAM. A more popular approach for loosely-coupled fusion is using extended Kalman filters (EKF). For example, [9]- [13] integrate measurements from lidar, IMU, and optionally GPS using an EKF in the optimization stage for robot state estimation.<\/p>\n<p data-pid=\"jdZ_pHfm\">\u56e0\u6b64\uff0c\u6fc0\u5149\u96f7\u8fbe\u901a\u5e38\u4e0e\u5176\u4ed6\u4f20\u611f\u5668\u8054\u5408\u4f7f\u7528\uff0c\u6bd4\u5982IMU\u6216\u8005GPS\uff0c\u7528\u4e8e<span style=\"color: #ff0000;\">\u59ff\u6001\u4f30\u8ba1<\/span>\u4ee5\u53ca\u5efa\u56fe\u3002\u8fd9\u79cd\u5229\u7528\u4f20\u611f\u5668\u878d\u5408\u7684\u8bbe\u8ba1\u65b9\u6848\uff0c\u901a\u5e38\u53ef\u4ee5\u5206\u4e3a\u4e24\u7c7b\uff1a\u677e\u8026\u5408\u878d\u5408\u4ee5\u53ca\u7d27\u8026\u5408\u878d\u5408\u3002\u5728LOAM\u4e2d\uff0c\u5f15\u5165IMU\u7528\u6765\u6fc0\u5149\u96f7\u8fbe\u626b\u63cf\u6570\u636e\u7684<span style=\"color: #ff0000;\">\u53bb\u7578\u53d8<\/span>\uff0c\u5e76\u7ed9\u51fa\u626b\u63cf\u5339\u914d\u7684\u8fd0\u52a8\u5148\u9a8c\u4fe1\u606f\u3002\u7136\u800c\uff0cIMU\u5e76\u6ca1\u6709\u6d89\u53ca\u5230\u7b97\u6cd5\u7684\u4f18\u5316\u8fc7\u7a0b\u3002\u56e0\u6b64LOAM\u53ef\u4ee5\u5f52\u7c7b\u4e3a<span style=\"color: #ff0000;\">\u677e\u8026\u5408<\/span>\u65b9\u6cd5\u3002\u6587\u732e\u30107\u3011\u4e2d\u63d0\u51fa\u4e00\u79cd\u7528\u4e8e\u5730\u9762\u8f66\u8f86\u5efa\u56fe\u4efb\u52a1\u7684\u8f7b\u91cf\u7ea7\u5730\u9762\u4f18\u5316\u6fc0\u5149\u96f7\u8fbe\u91cc\u7a0b\u8ba1\u4e0e\u5efa\u56fe\u7b97\u6cd5LeGO-LOAM\u3002\u5176\u5bf9IMU\u6570\u636e\u7684\u878d\u5408\u8fc7\u7a0b\u4e0eLOAM\u4e2d\u4e00\u81f4\u3002EKF\u6269\u5c55\u5361\u5c14\u66fc\u6ee4\u6ce2\u662f\u53e6\u4e00\u79cd\u66f4\u52a0\u6d41\u884c\u7684\u677e\u8026\u5408\u878d\u5408\u65b9\u6cd5\u3002\u4f8b\u5982\uff0c\u6587\u732e\u30109\u3011\u5230\u6587\u732e\u301013\u3011\u5728\u4f18\u5316\u9636\u6bb5\u4f7f\u7528EKF\u7ed3\u5408\u6fc0\u5149\u96f7\u8fbe\u548cIMU\/GPS\u89c2\u6d4b\uff0c\u6765\u7528\u4e8e\u673a\u5668\u4eba\u72b6\u6001\u4f30\u8ba1\u3002<\/p>\n<p data-pid=\"jdZ_pHfm\">Tightly-coupled systems usually offer improved accuracy and are presently a major focus of ongoing research [14]. In [15], preintegrated IMU measurements are exploited for de-skewing point clouds. A robocentric lidar-inertial state estimator, R-LINS, is presented in [16]. R-LINS uses an error-state Kalman filter to correct a robot\u2019s state estimate recursively in a tightly-coupled manner. Due to the lack of other available sensors for state estimation, it suffers from drift during long-during navigation. A tightly-coupled lidar inertial odometry and mapping framework, LIOM, is introduced in [17]. LIOM, which is the abbreviation for LIO-mapping, jointly optimizes measurements from lidar and IMU and achieves similar or better accuracy when compared with LOAM. Since LIOM is designed to process all the sensor measurements, real-time performance is not achieved &#8211; it runs at about 0.6\u00d7real-time in our tests.<\/p>\n<p data-pid=\"qCiFfjyA\"><span style=\"color: #ff0000;\">\u7d27\u8026\u5408<\/span>\u7cfb\u7edf\u901a\u5e38\u63d0\u4f9b\u66f4\u9ad8\u7684\u7cbe\u5ea6\uff0c\u5e76\u4e14\u662f\u76ee\u524d\u6b63\u5728\u7814\u7a76\u7684\u4e3b\u8981\u70ed\u70b9\u3002\u6587\u732e\u301015\u3011\u4e2d\uff0c<span style=\"color: #ff0000;\">IMU\u9884\u79ef\u5206<\/span>\u88ab\u7528\u5230\u70b9\u4e91\u53bb\u7578\u53d8\u4e2d\u3002\u5728\u6587\u732e\u301016\u3011\u4e2d\u63d0\u51fa\u4e00\u79cd\u673a\u5668\u4eba\u6fc0\u5149\u60ef\u5bfc\u72b6\u6001\u4f30\u8ba1\u5668RLINS\u3002\u5b83\u4ee5\u4e00\u79cd\u7d27\u8026\u5408\u7684\u65b9\u5f0f\u9012\u5f52\u5730\u91c7\u7528\u9519\u8bef\u72b6\u6001<span style=\"color: #ff0000;\">\u5361\u5c14\u66fc\u6ee4\u6ce2\u5668<\/span>\u53bb\u77eb\u6b63\u673a\u5668\u4eba\u7684\u72b6\u6001\u4f30\u8ba1\u3002\u7531\u4e8e\u7f3a\u4e4f\u5176\u4ed6\u7528\u4e8e\u72b6\u6001\u4f30\u8ba1\u7684\u4f20\u611f\u5668\uff0c\u5b83\u5728<span style=\"color: #ff0000;\">\u957f\u8ddd\u79bb<\/span>\u5bfc\u822a\u8fc7\u7a0b\u4e2d\u5bb9\u6613\u51fa\u73b0<span style=\"color: #ff0000;\">\u6f02\u79fb<\/span>\u3002\u6587\u732e\u301017\u3011\u4e2d\u5f15\u5165\u4e00\u79cd\u7d27\u8026\u5408\u7684\u6fc0\u5149\u60ef\u5bfc\u91cc\u7a0b\u8ba1\u4e0e\u5efa\u56fe\u6846\u67b6\uff0cLIOM\u3002\u5176\u662fLIO-Mapping\u7684\u7f29\u5199\uff0c\u8054\u5408\u4f18\u5316\u4e86\u6fc0\u5149\u96f7\u8fbe\u548cIMU\u7684\u6d4b\u91cf\u7ed3\u679c\uff0c\u4e0eLOAM\u76f8\u6bd4\u83b7\u5f97\u4e86\u5dee\u4e0d\u591a\u751a\u81f3\u66f4\u597d\u7684\u7cbe\u5ea6\u3002\u56e0\u4e3aLIOM\u65b9\u6cd5\u88ab\u8bbe\u8ba1\u7528\u6765\u5904\u7406\u6240\u6709\u7684\u4f20\u611f\u5668\u6d4b\u91cf\u503c\uff0c\u56e0\u6b64\u4e0d\u80fd\u8fbe\u5230\u5b9e\u65f6\u6027&#8211;\u5728\u6211\u4eec\u7684\u6d4b\u8bd5\u4e2d\u5927\u7ea6\u8dd1\u4e86\u516d\u6210\u7684\u5b9e\u65f6\u901f\u5ea6\u3002<\/p>\n<h1>\u56db\u3001\u57fa\u4e8e\u5e73\u6ed1\u548c\u5efa\u56fe\u7684\u6fc0\u5149\u60ef\u5bfc\u91cc\u7a0b\u8ba1 Lidar Inertial Odometry Via Smoothing and Mapping<\/h1>\n<h3>1. \u7cfb\u7edf\u603b\u89c8 System Overview<\/h3>\n<p>We first define frames and notation that we use throughout the paper. We denote the world frame as W and the robot body frame as B. We also assume the IMU frame coincides with the robot body frame for convenience. The robot state x can be written as:<\/p>\n<p data-pid=\"wARuw1L5\">\u9996\u5148\u6211\u4eec\u5b9a\u4e49\u6574\u4e2a\u8bba\u6587\u4e2d\u4f7f\u7528\u7684\u5750\u6807\u7cfb\u4e0e\u53d8\u91cf\u7b26\u53f7\u3002\u6211\u4eec\u5c06<span style=\"color: #ff0000;\">\u4e16\u754c\u5750\u6807\u7cfb<\/span>\u5b9a\u4e49\u4e3a<span style=\"color: #ff0000;\">W<\/span>\uff0c<span style=\"color: #ff0000;\">\u673a\u5668\u4eba\u5750\u6807\u7cfb<\/span>\u4e3a<span style=\"color: #ff0000;\">B<\/span>\u3002\u4e3a\u4e86\u65b9\u4fbf\u8d77\u89c1\uff0c\u6211\u4eec\u8fd8\u5047\u8bbe\u201cIMU\u5750\u6807\u7cfb\u4e0e\u673a\u5668\u4eba\u672c\u4f53\u5750\u6807\u7cfb\u91cd\u5408\u201d\u3002\u673a\u5668\u4eba\u7684\u72b6\u6001x\u53ef\u4ee5\u5199\u4e3a\uff1a<\/p>\n<p data-pid=\"wARuw1L5\"><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/robot-satte-x.png\"><img loading=\"lazy\" class=\"alignnone wp-image-10531 size-medium\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/robot-satte-x-300x52.png\" alt=\"\" width=\"300\" height=\"52\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/robot-satte-x-300x52.png 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/robot-satte-x-624x108.png 624w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/robot-satte-x.png 680w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p class=\"p1\">where R \u2208SO(3) is the rotation matrix, p \u2208R<span class=\"s1\">3 <\/span>is the position vector, v is the speed, and b is the IMU bias. The transformation T \u2208SE(3) from B to W is represented as T = [R |p].<\/p>\n<p data-pid=\"p5ihAILu\">\u5176\u4e2d R \u2208SO(3)<span id=\"MathJax-Element-3-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;R&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mo&gt;&amp;#x2208;&lt;\/mo&gt;&lt;mi&gt;S&lt;\/mi&gt;&lt;mi&gt;O&lt;\/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;\/mo&gt;&lt;mn&gt;3&lt;\/mn&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;\/mo&gt;&lt;\/math&gt;\"><\/span>\u00a0\u662f\u5b9a\u4e49\u5728\u7279\u6b8a\u6b63\u4ea4\u7fa4\u4e0a\u7684\u65cb\u8f6c\u77e9\u9635\uff0cp \u2208R<span class=\"s1\">3<\/span>\u00a0<span id=\"MathJax-Element-2-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;p&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mo&gt;&amp;#x2208;&lt;\/mo&gt;&lt;msup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;double-struck&quot;&gt;R&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mn&gt;3&lt;\/mn&gt;&lt;\/msup&gt;&lt;\/math&gt;\"><\/span> \u662f\u5e73\u79fb\u5411\u91cf\uff0cv \u662f\u901f\u5ea6\uff0cb\u662fIMU\u7684\u96f6\u504f\u3002\u53d8\u6362\u77e9\u9635 T \u2208SE(3)\u00a0<span id=\"MathJax-Element-5-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;T&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mo&gt;&amp;#x2208;&lt;\/mo&gt;&lt;mi&gt;S&lt;\/mi&gt;&lt;mi&gt;E&lt;\/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;(&lt;\/mo&gt;&lt;mn&gt;3&lt;\/mn&gt;&lt;mo stretchy=&quot;false&quot;&gt;)&lt;\/mo&gt;&lt;\/math&gt;\"><\/span> \u8868\u793a\u4ece\u673a\u5668\u4eba\u673a\u5750\u6807\u7cfb\u00a0<span id=\"MathJax-Element-7-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;B&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/math&gt;\"><\/span> \u5230\u4e16\u754c\u5750\u6807\u7cfb\u7684\u7279\u6b8a\u6b27\u5f0f\u7fa4\uff0c\u8868\u793a\u4e3a T = [R |p]\u3002<\/p>\n<p data-pid=\"p5ihAILu\"><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-scaled.jpg\"><img loading=\"lazy\" class=\"alignnone wp-image-10506 size-full\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-scaled.jpg\" alt=\"\" width=\"2560\" height=\"841\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-scaled.jpg 2560w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-300x99.jpg 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-1024x336.jpg 1024w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-768x252.jpg 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-1536x505.jpg 1536w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-2048x673.jpg 2048w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/lio-sam-graph-624x205.jpg 624w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/a><\/p>\n<p style=\"text-align: center;\" data-pid=\"p5ihAILu\">\u56fe1. LIO-SAM\u7684\u7cfb\u7edf\u7ed3\u6784\u3002\u63a5\u65363D\u6fc0\u5149\u96f7\u8fbe\u3001IMU\u4ee5\u53caGPS\u4f5c\u4e3a\u8f93\u5165\u3002\u5f15\u5165\u56db\u79cd\u56e0\u5b50\u53bb\u6784\u5efa\u56e0\u5b50\u56fe\u3002a)IMU\u9884\u79ef\u5206\u56e0\u5b50\uff0cb) \u6fc0\u5149\u91cc\u7a0b\u8ba1\u56e0\u5b50\uff0cc) GPS\u56e0\u5b50\uff0cd) \u95ed\u73af\u56e0\u5b50\u3002\u8fd9\u4e9b\u56e0\u5b50\u5982\u4f55\u4ea7\u751f\u63cf\u8ff0\u5728\u7b2c3\u8282\u4e2d\u3002<\/p>\n<p data-pid=\"KyM_lzo4\">An overview of the proposed system is shown in Figure 1. The system receives sensor data from a 3D lidar, an IMU and optionally a GPS. We seek to estimate the state of the robot and its trajectory using the observations of these sensors. This state estimation problem can be formulated as a maximum a posteriori (MAP) problem. We use a factor graph to model this problem, as it is better suited to perform inference when compared with Bayes nets. With the assumption of a Gaussian noise model, the MAP inference for our problem is equivalent to solving a nonlinear least-squares problem [18]. Note that without loss of generality, the proposed system can also incorporate measurements from other sensors, such as elevation from an altimeter or heading from a compass.<\/p>\n<p data-pid=\"KyM_lzo4\">\u56fe 1 \u663e\u793a\u4e86\u6240\u63d0\u51fa\u7684\u7cfb\u7edf\u7684\u6982\u89c8\u3002\u8be5\u7cfb\u7edf\u4ece\u6fc0\u5149\u96f7\u8fbe\u3001IMU\u4ee5\u53ca<span style=\"color: #ff0000;\">\u53ef\u9009\u7684GPS<\/span>\u4e2d\u63a5\u6536\u4f20\u611f\u5668\u6570\u636e\u3002\u6211\u4eec\u8bd5\u56fe\u5229\u7528\u8fd9\u4e9b\u4f20\u611f\u5668\u7684\u89c2\u6d4b\u6765\u4f30\u8ba1\u673a\u5668\u4eba\u7684\u72b6\u6001\u53ca\u5176\u8f68\u8ff9\u3002<span style=\"color: #ff0000;\">\u72b6\u6001\u4f30\u8ba1\u95ee\u9898<\/span>\u53ef\u4ee5\u8868\u793a\u4e3a\u4e00\u4e2a<span style=\"color: #ff0000;\">\u6700\u5927\u540e\u9a8cMAP\u95ee\u9898<\/span>\u3002\u6211\u4eec\u4f7f\u7528<span style=\"color: #ff0000;\">\u56e0\u5b50\u56fe<\/span>\u53bb\u5efa\u6a21\u8fd9\u4e2a\u95ee\u9898\uff0c\u56e0\u4e3a\u4e0e\u8d1d\u53f6\u65af\u7f51\u7edc\u76f8\u6bd4\uff0c\u56e0\u5b50\u56fe\u66f4\u9002\u5408\u6267\u884c<span style=\"color: #ff0000;\">\u63a8\u7406<\/span>\u4efb\u52a1\u3002\u5728\u9ad8\u65af\u566a\u58f0\u6a21\u578b\u7684\u5047\u8bbe\u4e0b\uff0c\u6211\u4eec\u95ee\u9898\u7684\u6700\u5927\u540e\u9a8c\u4f30\u8ba1\u7b49\u4ef7\u4e8e\u6c42\u89e3\u4e00\u4e2a<span style=\"color: #ff0000;\">\u975e\u7ebf\u6027\u6700\u5c0f\u4e8c\u4e58<\/span>\u95ee\u9898\u3002\u6ce8\u610f\uff0c\u5982\u679c\u4e0d\u5931\u4e00\u822c\u6027\uff0c\u6211\u4eec\u63d0\u51fa\u7684\u7cfb\u7edf\u8fd8\u53ef\u4ee5\u5305\u542b\u6765\u81ea\u5176\u4ed6\u4f20\u611f\u5668\u7684\u6d4b\u91cf\uff0c\u6bd4\u5982\u9ad8\u5ea6\u8ba1\u7684\u6d77\u62d4\u9ad8\u5ea6\u4ee5\u53ca\u6307\u5357\u9488\u7684\u822a\u5411\u7b49\u3002<\/p>\n<p data-pid=\"KyM_lzo4\">We introduce four types of f actors along with one variable type for factor graph construction. This variable, representing the robot\u2019s state at a specific time, is attributed to the nodes of the graph. The four types of factors are:<\/p>\n<ul>\n<li data-pid=\"KyM_lzo4\">(a) IMU preintegration factors,<\/li>\n<li data-pid=\"KyM_lzo4\">(b) lidar odometry factors,<\/li>\n<li data-pid=\"KyM_lzo4\">(c) GPS factors,<\/li>\n<li data-pid=\"KyM_lzo4\">(d) loop closure factors.<\/li>\n<\/ul>\n<p data-pid=\"KyM_lzo4\">A new robot state node x is added to the graph when the change in robot pose exceeds a user-defined threshold. The factor graph is optimized upon the insertion of a new node using incremental smoothing and mapping with the Bayes tree (iSAM2) [19]. The process for genera<\/p>\n<p data-pid=\"KyM_lzo4\">\u6211\u4eec\u4ecb\u7ecd<span style=\"color: #ff0000;\">\u56db\u79cd<\/span>\u7c7b\u578b\u7684<span style=\"color: #ff0000;\">\u56e0\u5b50<\/span>factors\uff0c\u4ee5\u53ca\u4e00\u79cd\u56e0\u5b50\u56fe\u6784\u9020\u7684\u53d8\u91cf\u7c7b\u578bvariable\u3002\u8be5\u53d8\u91cf\u8868\u793a\u673a\u5668\u4eba\u72b6\u6001\u5728\u7279\u5b9a\u65f6\u95f4\u7684\u72b6\u6001\u5f52\u5c5e\u4e8e\u56e0\u5b50\u56fe\u4e2d\u7684\u8282\u70b9nodes\u3002\u8fd9\u56db\u79cd\u56e0\u5b50\u5206\u522b\u662f\uff1a<\/p>\n<ul>\n<li data-pid=\"OveX7ODU\">(a) <span style=\"color: #ff0000;\">IMU\u9884\u79ef\u5206<\/span>\u56e0\u5b50<\/li>\n<li data-pid=\"H1yP2W6V\">(b) <span style=\"color: #ff0000;\">\u6fc0\u5149\u96f7\u8fbe\u91cc\u7a0b\u8ba1<\/span>\u56e0\u5b50<\/li>\n<li data-pid=\"cx4k3C2K\">(c) <span style=\"color: #ff0000;\">GPS<\/span>\u56e0\u5b50<\/li>\n<li data-pid=\"vng9tMp5\">(d) <span style=\"color: #ff0000;\">\u95ed\u73af<\/span>\u56e0\u5b50<\/li>\n<\/ul>\n<p data-pid=\"ZTWrhPTL\">\u5f53\u673a\u5668\u4eba\u59ff\u6001\u7684\u53d8\u5316\u8d85\u8fc7\u7528\u6237\u5b9a\u4e49\u7684\u9608\u503c\u65f6\uff0c\u56fe\u4e2d\u4f1a\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684\u673a\u5668\u4eba\u72b6\u6001\u8282\u70b9\u00a0<span id=\"MathJax-Element-9-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;x&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/math&gt;\"><\/span>\u00a0\u3002\u5728\u4f7f\u7528\u8d1d\u53f6\u65af\u6811\uff08iSAM2\uff09\u589e\u91cf\u5f0f\u5e73\u6ed1\u548c\u5efa\u56fe\u8fc7\u7a0b\u63d2\u5165\u4e00\u4e2a\u65b0\u7684\u8282\u70b9\u65f6\uff0c\u56e0\u5b50\u56fe\u4f1a\u968f\u4e4b\u8fdb\u884c\u4f18\u5316\u3002<\/p>\n<h3>2. IMU\u9884\u79ef\u5206\u56e0\u5b50 IMU Preintegration Factor<\/h3>\n<p data-pid=\"EHe3Fpr7\">The measurements of angular velocity and acceleration from an IMU are defined using Eqs. 2 and 3:<\/p>\n<p data-pid=\"EHe3Fpr7\">IMU\u89d2\u901f\u5ea6\u548c\u52a0\u901f\u5ea6\u7684\u89c2\u6d4b\u516c\u5f0f\u5b9a\u4e49\u5982\u4e0b\uff1a<\/p>\n<p data-pid=\"EHe3Fpr7\"><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs2-3.png\"><img loading=\"lazy\" class=\"alignnone wp-image-10532 size-medium\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs2-3-300x65.png\" alt=\"\" width=\"300\" height=\"65\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs2-3-300x65.png 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs2-3-768x166.png 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs2-3-624x135.png 624w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs2-3.png 776w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p data-pid=\"iF1Pbqds\">where\u02c6\u03c9t and \u02c6at are the raw IMU measurements in B at time t. \u02c6\u03c9t and \u02c6at are affected by a slowly varying bias bt and white noise nt. RBWt is the rotation matrix from W to B. g is the constant gravity vector in W.<\/p>\n<p data-pid=\"iF1Pbqds\">\u5176\u4e2d \u02c6\u03c9t <span id=\"MathJax-Element-12-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mover&gt;&lt;mi&gt;&amp;#x03C9;&lt;\/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;&amp;#x005E;&lt;\/mo&gt;&lt;\/mover&gt;&lt;\/mrow&gt;&lt;mi&gt;t&lt;\/mi&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u548c \u02c6at <span id=\"MathJax-Element-13-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mover&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;a&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mo stretchy=&quot;false&quot;&gt;&amp;#x005E;&lt;\/mo&gt;&lt;\/mover&gt;&lt;\/mrow&gt;&lt;mi&gt;t&lt;\/mi&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u662f\u673a\u4f53\u5750\u6807\u7cfb\u4e0b t<span id=\"MathJax-Element-15-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mi&gt;t&lt;\/mi&gt;&lt;\/math&gt;\"><\/span> \u65f6\u523b\u7684IMU\u89c2\u6d4b\u6e90\u6570\u636e\u3002\u02c6\u03c9t <span id=\"MathJax-Element-12-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mover&gt;&lt;mi&gt;&amp;#x03C9;&lt;\/mi&gt;&lt;mo stretchy=&quot;false&quot;&gt;&amp;#x005E;&lt;\/mo&gt;&lt;\/mover&gt;&lt;\/mrow&gt;&lt;mi&gt;t&lt;\/mi&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u548c \u02c6at \u5747\u53d7\u5230\u7f13\u6162\u53d8\u5316\u7684IMU\u96f6\u504f bt<span id=\"MathJax-Element-17-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;b&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;t&lt;\/mi&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u00a0\u4ee5\u53ca\u767d\u566a\u58f0 nt<span id=\"MathJax-Element-18-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;n&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;t&lt;\/mi&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span> \u7684\u5f71\u54cd\u3002 RBWt \u662f\u4ece\u4e16\u754c\u5750\u6807\u7cfb\u5230\u673a\u4f53\u5750\u6807\u7cfb\u7684\u65cb\u8f6c\u77e9\u9635\u3002t\u00a0<span id=\"MathJax-Element-20-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;g&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/math&gt;\"><\/span>\u00a0\u662f\u4e16\u754c\u5750\u6807\u7cfb\u00a0<span id=\"MathJax-Element-21-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;W&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/math&gt;\"><\/span> W \u4e0b\u7684\u91cd\u529b\u5e38\u6570\u5411\u91cf\u3002<\/p>\n<p data-pid=\"iF1Pbqds\">We can now use the measurements from the IMU to infer the motion of the robot. The velocity, position and rotation of the robot at time t + \u2206t can be computed as follows:<\/p>\n<p data-pid=\"nuJqkwZc\">\u73b0\u5728\u6211\u4eec\u53ef\u4ee5\u91c7\u7528IMU\u6d4b\u91cf\u53bb\u63a8\u65ad\u51fa\u673a\u5668\u4eba\u7684\u8fd0\u52a8\u3002\u673a\u5668\u4eba\u5728 t + \u2206t<span id=\"MathJax-Element-22-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mi&gt;t&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mi mathvariant=&quot;normal&quot;&gt;&amp;#x0394;&lt;\/mi&gt;&lt;mi&gt;t&lt;\/mi&gt;&lt;\/math&gt;\"><\/span>\u00a0\u65f6\u523b\u7684\u901f\u5ea6\u3001\u4f4d\u7f6e\u4ee5\u53ca\u65cb\u8f6c\u8ba1\u7b97\u5982\u4e0b\uff1a<\/p>\n<p data-pid=\"nuJqkwZc\"><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs4-6.png\"><img loading=\"lazy\" class=\"alignnone wp-image-10533 size-medium\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs4-6-300x123.png\" alt=\"\" width=\"300\" height=\"123\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs4-6-300x123.png 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs4-6-1024x422.png 1024w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs4-6-768x316.png 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs4-6-624x257.png 624w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs4-6.png 1064w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p data-pid=\"Cvuys6lp\">where Rt = RWB t = RtBW T. Here we assume that the t angular velocity and the acceleration of B remain constant during the above integration.<\/p>\n<p data-pid=\"Cvuys6lp\">\u5176\u4e2d\u00a0<span id=\"MathJax-Element-26-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;R&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;t&lt;\/mi&gt;&lt;\/msub&gt;&lt;mo&gt;=&lt;\/mo&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;R&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;t&lt;\/mi&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;W&lt;\/mi&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;B&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/mrow&gt;&lt;\/msubsup&gt;&lt;mo&gt;=&lt;\/mo&gt;&lt;msup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;msubsup&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;R&lt;\/mi&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;t&lt;\/mi&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;B&lt;\/mi&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;W&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/mrow&gt;&lt;\/msubsup&gt;&lt;\/mrow&gt;&lt;\/mrow&gt;&lt;mo&gt;&amp;#x22BA;&lt;\/mo&gt;&lt;\/msup&gt;&lt;\/math&gt;\"><\/span> Rt = RWB t = R t BW T\u3002\u8fd9\u91cc\u6211\u4eec\u5047\u8bbe\u673a\u5668\u4eba\u89d2\u901f\u5ea6\u548c\u52a0\u901f\u5ea6\u5728\u79ef\u5206\u8fc7\u7a0b\u4e2d\u4fdd\u6301\u5300\u901f\u4e0d\u53d8\u3002<\/p>\n<p data-pid=\"Cvuys6lp\">We then apply the IMU preintegration method proposed in [20] to obtain the relative body motion between two timesteps. The preintegrated measurements \u2206vij , \u2206pij , and \u2206Rij between time i and j can be computed using:<\/p>\n<p data-pid=\"zDZe8_3c\">\u7136\u540e\u6211\u4eec\u91c7\u7528\u6587\u732e\u301020\u3011\u63d0\u51fa\u7684<span style=\"color: #ff0000;\">IMU\u9884\u79ef\u5206<\/span>\u53bb<span style=\"color: #ff0000;\"><span style=\"color: #333333;\">\u83b7\u53d6<\/span>\u4e24\u4e2a\u65f6\u95f4\u6233\u4e4b\u95f4\u7684\u76f8\u5bf9\u8fd0\u52a8<\/span>\u3002\u9884\u79ef\u5206\u5f97\u5230\u7684\u7b2c i<span id=\"MathJax-Element-30-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;\/math&gt;\"><\/span> \u548c\u7b2c j<span id=\"MathJax-Element-27-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mi&gt;j&lt;\/mi&gt;&lt;\/math&gt;\"><\/span>\u00a0\u65f6\u523b\u4e4b\u95f4\u7684\u901f\u5ea6\u6d4b\u91cf \u2206vij<span id=\"MathJax-Element-28-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mi mathvariant=&quot;normal&quot;&gt;&amp;#x0394;&lt;\/mi&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;v&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mi&gt;j&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u3001\u4f4d\u7f6e\u6d4b\u91cf \u2206pij <span id=\"MathJax-Element-31-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mi mathvariant=&quot;normal&quot;&gt;&amp;#x0394;&lt;\/mi&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;p&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mi&gt;j&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u4ee5\u53ca\u65cb\u8f6c\u6d4b\u91cf \u2206Rij <span id=\"MathJax-Element-29-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mi mathvariant=&quot;normal&quot;&gt;&amp;#x0394;&lt;\/mi&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;R&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mi&gt;j&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u8ba1\u7b97\u5982\u4e0b\uff1a<\/p>\n<p data-pid=\"zDZe8_3c\"><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs7-9.png\"><img loading=\"lazy\" class=\"alignnone wp-image-10534 size-medium\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs7-9-300x87.png\" alt=\"\" width=\"300\" height=\"87\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs7-9-300x87.png 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs7-9-1024x297.png 1024w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs7-9-768x223.png 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs7-9-624x181.png 624w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs7-9.png 1048w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p data-pid=\"zDZe8_3c\">Due to space limitations, we refer the reader to the de- scription from [20] for the detailed derivation of Eqs. 7 &#8211; 9. Besides its efficiency, applying IMU preintegration also naturally gives us one type of constraint for the factor graph &#8211; IMU preintegration factors. The IMU bias is jointly optimized alongside the lidar odometry factors in the graph.<\/p>\n<p data-pid=\"g3llPPWD\">\u7531\u4e8e\u7bc7\u5e45\u9650\u5236\uff0c\u6211\u4eec\u8ba9\u8bfb\u8005\u53c2\u8003\u6765\u81ea\u6587\u732e\u301020\u3011\u7684\u63cf\u8ff0\uff0c\u6765\u5f97\u5230\u516c\u5f0f\u30102-9\u3011\u7684\u8be6\u7ec6\u63a8\u5bfc\u3002\u9664\u4e86IMU\u9884\u79ef\u5206\u7684<span style=\"color: #ff0000;\">\u6548\u7387<\/span>\u4e4b\u5916\uff0c\u5e94\u7528IMU\u9884\u79ef\u5206\u4e5f\u53ef\u4ee5\u5f88\u81ea\u7136\u5730\u7ed9\u51fa<span style=\"color: #ff0000;\">IMU\u9884\u79ef\u5206\u56e0\u5b50\u5728\u56e0\u5b50\u56fe\u4e2d\u7684\u7ea6\u675f\u6761\u4ef6<\/span>\u3002<span style=\"color: #ff0000;\">IMU\u96f6\u504f\u56e0\u5b50<\/span>\u4e0e<span style=\"color: #ff0000;\">\u6fc0\u5149\u96f7\u8fbe\u91cc\u7a0b\u8ba1\u56e0\u5b50<\/span>\u5728<span style=\"color: #ff0000;\">\u56e0\u5b50\u56fe<\/span>\u4e2d\u4e00\u8d77\u8fdb\u884c<span style=\"color: #ff0000;\">\u8054\u5408\u4f18\u5316<\/span>\u3002<\/p>\n<h3>3.\u6fc0\u5149\u96f7\u8fbe\u91cc\u7a0b\u8ba1\u56e0\u5b50 Lidar Odometry Factor<\/h3>\n<p>When a new lidar scan arrives, we first perform fea- ture extraction. Edge and planar features are extracted by evaluating the roughness of points over a local region. Points with a large roughness value are classified as edge features. Similarly, a planar feature is categorized by a small roughness value. We denote the extracted edge and planar features from a lidar scan at time i as Fei and Fpi respectively. All the features extracted at time i compose a lidar frame Fi, where Fi = {Fei , Fpi }. Note that a lidar frame F is represented in B. A more detailed description of the feature extraction process can be found in [1], or [7] if a range image is used.<\/p>\n<p data-pid=\"llhuEngV\">\u5f53\u65b0\u7684\u4e00\u5708\u6fc0\u5149\u96f7\u8fbe\u626b\u63cf\u5230\u6765\u65f6\uff0c\u9996\u5148\u6267\u884c<span style=\"color: #ff0000;\">\u7279\u5f81\u63d0\u53d6<\/span>\u3002\u901a\u8fc7\u8bc4\u4f30<span style=\"color: #ff0000;\">\u5c40\u90e8\u533a\u57df<\/span>\u4e0a<span style=\"color: #ff0000;\">\u70b9\u7684\u7c97\u7cd9\u5ea6\/\u66f2\u7387<\/span>\u6765\u63d0\u53d6<span style=\"color: #ff0000;\">\u8fb9\u7f18\u548c\u5e73\u9762\u7279\u5f81<\/span>\u3002<span style=\"color: #ff0000;\">\u7c97\u7cd9\u5ea6\/\u66f2\u7387\u8f83\u5927\u7684\u70b9<\/span>\u88ab\u5212\u5206\u4e3a<span style=\"color: #ff0000;\">\u8fb9\u7f18\u7279\u5f81<\/span>\u3002\u7c7b\u4f3c\u5730\uff0c\u4e00\u4e2a\u5e73\u9762\u7279\u5f81\u4e5f\u53ef\u4ee5\u6309\u4e00\u4e2a\u5c0f\u7684\u7c97\u7cd9\u5ea6\/\u66f2\u7387\u8fdb\u884c\u5206\u7c7b\u3002 \u6211\u4eec\u5c06\u4ece\u6fc0\u5149\u96f7\u8fbe\u5728 t<span id=\"MathJax-Element-35-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mi&gt;t&lt;\/mi&gt;&lt;\/math&gt;\"><\/span>\u00a0\u65f6\u523b\u626b\u63cf\u70b9\u4e91\u4e2d\u63d0\u53d6\u7684\u8fb9\u7f18\u7279\u5f81\u4ee5\u53ca\u5e73\u9762\u7279\u5f81\u5206\u522b\u5b9a\u4e49\u4e3a Fei<span id=\"MathJax-Element-38-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;e&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/msubsup&gt;&lt;\/math&gt;\"><\/span> \u4ee5\u53ca\u00a0Fpi\u3002\u5728 t<span id=\"MathJax-Element-37-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mi&gt;t&lt;\/mi&gt;&lt;\/math&gt;\"><\/span>\u00a0\u65f6\u523b\u63d0\u53d6\u7684\u6240\u6709\u7279\u5f81\u6784\u6210\u4e86\u4e00\u4e2a\u6fc0\u5149\u96f7\u8fbe\u70b9\u4e91\u5e27\u00a0<span id=\"MathJax-Element-39-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;double-struck&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span> Fi\uff0c\u5176\u4e2d Fi = {Fei , Fpi }<span id=\"MathJax-Element-40-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;double-struck&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;\/msub&gt;&lt;mo&gt;=&lt;\/mo&gt;&lt;mo fence=&quot;false&quot; stretchy=&quot;false&quot;&gt;{&lt;\/mo&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;e&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/msubsup&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mi&gt;p&lt;\/mi&gt;&lt;\/msubsup&gt;&lt;mo fence=&quot;false&quot; stretchy=&quot;false&quot;&gt;}&lt;\/mo&gt;&lt;\/math&gt;\"><\/span> \u3002\u6ce8\u610f\u4e00\u4e2a\u6fc0\u5149\u96f7\u8fbe\u70b9\u4e91\u5e27 F<span id=\"MathJax-Element-41-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;double-struck&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/math&gt;\"><\/span>\u00a0\u662f\u8868\u793a\u5728\u673a\u5668\u4eba\u5750\u6807\u7cfb\u4e0b\u7684\u3002\u7279\u5f81\u63d0\u53d6\u6b65\u9aa4\u7684\u66f4\u591a\u8be6\u7ec6\u63cf\u8ff0\u53ef\u4ee5\u5728\u6587\u732e\u30101\u3011\u6216\u5982\u679c\u7528\u5230\u8ddd\u79bb\u56fe\u50cf\u4e5f\u53ef\u4ee5\u53c2\u8003\u6587\u732e\u30107\u3011\u3002<\/p>\n<p data-pid=\"llhuEngV\">Using every lidar frame for computing and adding factors to the graph is computationally intractable, so we adopt the concept of keyframe selection, which is widely used in the visual SLAM field. Using a simple but effective heuristic approach, we select a lidar frame Fi+1 as a keyframe when the change in robot pose exceeds a user-defined threshold when compared with the previous state xi. The newly saved keyframe, Fi+1, is associated with a new robot state node, xi+1, in the factor graph. The lidar frames between two keyframes are discarded. Adding keyframes in this way not only achieves a balance between map density and memory consumption but also helps maintain a relatively sparse factor graph, which is suitable for real-time nonlinear optimization. In our work, the position and rotation change thresholds for adding a new keyframe are chosen to be 1m and 10\u25e6 .<\/p>\n<p data-pid=\"6zGdLmNi\">\u5982\u679c<span style=\"color: #ff0000;\">\u5c06\u6bcf\u4e00\u5e27\u6fc0\u5149\u96f7\u8fbe\u70b9\u4e91\u90fd\u62ff\u6765\u8ba1\u7b97\u56e0\u5b50\u5e76\u6dfb\u52a0\u5230\u56e0\u5b50\u56fe\u4e2d\u662f\u96be\u4ee5\u8ba1\u7b97\u7684<\/span>\uff0c\u56e0\u6b64\u6211\u4eec\u91c7\u7528\u4e86<span style=\"color: #ff0000;\">\u5173\u952e\u5e27\u9009\u62e9<\/span>\u7684\u6982\u5ff5\uff0c\u5176\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e\u89c6\u89c9SLAM\u9886\u57df\u3002\u4f7f\u7528\u4e00\u79cd\u7b80\u5355\u4f46\u6709\u6548\u7684\u542f\u53d1\u5f0f\u65b9\u6cd5\uff0c\u5f53<span style=\"color: #ff0000;\">\u673a\u5668\u4eba\u59ff\u6001<\/span>\u7684<span style=\"color: #ff0000;\">\u53d8\u5316<\/span>\u4e0e\u5148\u524d\u7684\u72b6\u6001\u76f8\u6bd4\uff0c\u5982\u679c<span style=\"color: #ff0000;\">\u8d85\u8fc7<\/span>\u4e86\u7528\u6237\u5b9a\u4e49\u7684<span style=\"color: #ff0000;\">\u9608\u503c<\/span>\u65f6\uff0c\u6211\u4eec\u9009\u62e9\u6b64\u65f6\u7684\u6fc0\u5149\u96f7\u8fbe\u5e27\u4f5c\u4e3a<span style=\"color: #ff0000;\">\u5173\u952e\u5e27<\/span>\u3002\u65b0\u4fdd\u5b58\u7684\u5173\u952e\u5e27 \u4e0e\u56e0\u5b50\u56fe\u7684\u4e2d\u65b0\u7684\u673a\u5668\u4eba\u72b6\u6001\u8282\u70b9\u76f8<span style=\"color: #ff0000;\">\u5173\u8054<\/span>\u3002\u7136\u540e<span style=\"color: #ff0000;\">\u4e22\u5f03<\/span>\u6389\u4e24\u4e2a\u5173\u952e\u5e27<span style=\"color: #ff0000;\">\u4e4b\u95f4<\/span>\u7684\u5176\u4ed6\u6fc0\u5149\u96f7\u8fbe\u5e27\u3002\u8fd9\u6837\u6dfb\u52a0\u7684\u5173\u952e\u5e27\u4e0d\u4ec5\u53ef\u4ee5\u5b9e\u73b0<span style=\"color: #ff0000;\">\u5730\u56fe\u5bc6\u5ea6<\/span>\u548c<span style=\"color: #ff0000;\">\u5185\u5b58\u6d88\u8017<\/span>\u4e4b\u95f4\u7684\u5e73\u8861\uff0c\u800c\u4e14\u6709\u52a9\u4e8e\u4fdd\u6301\u4e00\u4e2a\u76f8\u5bf9<span style=\"color: #ff0000;\">\u7a00\u758f<\/span>\u7684<span style=\"color: #ff0000;\">\u56e0\u5b50\u56fe\u7ed3\u6784<\/span>\uff0c\u9002\u7528\u4e8e<span style=\"color: #ff0000;\">\u5b9e\u65f6<\/span>\u7684<span style=\"color: #ff0000;\">\u975e\u7ebf\u6027\u4f18\u5316<\/span>\u3002\u5728\u6211\u4eec\u7684\u5de5\u4f5c\u4e2d\uff0c\u6dfb\u52a0\u65b0\u5173\u952e\u5e27\u7684\u5e73\u79fb\u548c\u65cb\u8f6c\u7684\u53d8\u5316\u9608\u503c\u9009\u62e9\u4e3a1\u7c73\u548c10\u5ea6\u3002<\/p>\n<p data-pid=\"6zGdLmNi\">Let us assume we wish to add a new state node xi+1 to the factor graph. The lidar keyframe that is associated with this state is Fi+1. The generation of a lidar odometry factor is described in the following steps:<\/p>\n<p data-pid=\"EhjHlUnv\">\u5047\u8bbe\u6211\u4eec\u5e0c\u671b\u5728\u56e0\u5b50\u56fe\u4e2d\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684\u72b6\u6001\u8282\u70b9\u00a0<span id=\"MathJax-Element-46-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;x&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span> xi+1\u3002\u90a3\u4e48\u4e0e\u8be5\u72b6\u6001\u76f8\u5173\u8054\u7684\u6fc0\u5149\u96f7\u8fbe\u5173\u952e\u5e27\u4e3a\u00a0<span id=\"MathJax-Element-47-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;double-struck&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span> Fi+1\u3002\u6fc0\u5149\u96f7\u8fbe\u91cc\u7a0b\u8ba1\u56e0\u5b50\u7684\u751f\u6210\u8fc7\u7a0b\u63cf\u8ff0\u5982\u4e0b\uff1a<\/p>\n<h5><b>a\uff09\u5efa\u7acb\u5b50\u5173\u952e\u5e27\u7684\u4f53\u7d20\u5730\u56fe Sub-keyframes for voxel map<\/b><\/h5>\n<p>We implement a sliding window approach to create a point cloud map containing a fixed number of recent lidar scans. Instead of optimizing the transformation between two consecutive lidar scans, we extract the n most recent keyframes, which we call the sub-keyframes, for estimation. The set of sub-keyframes {Fi\u2212n, &#8230;, Fi}is then transformed into frame W using the transformations {Ti\u2212n, &#8230;, Ti}associated with them. The transformed sub-keyframes are merged together into a voxel map Mi. Since we extract two types of features in the previous feature extraction step, Mi is composed of two sub- voxel maps that are denoted Mei , the edge feature voxel map, and Mpi , the planar feature voxel map. The lidar frames and voxel maps are related to each other as follows:<\/p>\n<p data-pid=\"28xpCL9e\">\u6211\u4eec\u5b9e\u73b0\u4e86\u4e00\u79cd<span style=\"color: #ff0000;\">\u6ed1\u52a8\u7a97\u53e3\u65b9\u6cd5<\/span>\u53bb\u6784\u5efa\u70b9\u4e91\u5730\u56fe\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u56fa\u5b9a\u6570\u76ee\u7684\u6700\u8fd1\u6fc0\u5149\u96f7\u8fbe\u7684\u626b\u63cf\u70b9\u4e91\u3002\u6211\u4eec\u6ca1\u6709\u4f18\u5316\u4e24\u4e2a\u8fde\u7eed\u7684\u6fc0\u5149\u96f7\u8fbe\u626b\u63cf\u70b9\u4e91\u5e27\u4e4b\u95f4\u7684\u53d8\u6362\u5173\u7cfb\uff0c\u800c\u662f\u63d0\u53d6\u4e86n\u4e2a\u6700\u8fd1\u7684\u5173\u952e\u5e27\uff0c<span style=\"color: #ff0000;\">sub-keyframes\u5b50\u5173\u952e\u5e27<\/span>\uff0c\u6765\u8fdb\u884c\u4f30\u8ba1\u3002<span style=\"color: #333333;\">\u91c7\u7528<span style=\"color: #ff0000;\">\u53d8\u6362\u5173\u7cfb{Ti\u2212n, &#8230;, Ti} <\/span>\u5c06\u5173\u8054\u7684<span style=\"color: #ff0000;\">\u5b50\u5173\u952e\u5e27\u96c6\u5408{Fi\u2212n, &#8230;, Fi}<\/span> <span style=\"color: #ff0000;\">\u8f6c\u6362\u5230\u4e16\u754c\u5750\u6807\u7cfb<\/span>\u4e2d\u3002\u8f6c\u6362\u540e\u7684\u5b50\u5173\u952e\u5e27\u4f1a\u88ab<span style=\"color: #ff0000;\">\u5408\u5e76\u6210\u4e00\u4e2a\u4f53\u7d20\u5730\u56feMi<\/span><\/span>\u3002\u7531\u4e8e\u6211\u4eec\u5728\u4e4b\u524d\u7684\u7279\u5f81\u63d0\u53d6\u6b65\u9aa4\u4e2d\u63d0\u53d6\u4e86\u4e24\u79cd\u7279\u5f81\uff1a\u8fb9\u7f18\u7279\u5f81\u4ee5\u53ca\u5e73\u9762\u7279\u5f81\uff0c\u56e0\u6b64\u4f53\u7d20\u5730\u56feMi\u00a0<span id=\"MathJax-Element-51-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;M&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u7531\u4e24\u4e2a\u5b50\u4f53\u7d20\u5730\u56fe\u6784\u6210\uff0c\u5b9a\u4e49\u8fb9\u7f18\u7279\u5f81\u4f53\u7d20\u5730\u56fe\u4e3aMei\uff0c\u5e73\u9762\u7279\u5f81\u4f53\u7d20\u5730\u56fe\u4e3aMpi\u3002\u6fc0\u5149\u96f7\u8fbe\u5e27\u4ee5\u53ca\u4f53\u7d20\u5730\u56fe\u4e4b\u95f4\u7684\u5173\u7cfb\u5982\u4e0b\uff1a<\/p>\n<p data-pid=\"cPGwVu4s\"><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqsxx.png\"><img loading=\"lazy\" class=\"alignnone wp-image-10535 size-medium\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqsxx-300x80.png\" alt=\"\" width=\"300\" height=\"80\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqsxx-300x80.png 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqsxx-768x204.png 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqsxx-624x166.png 624w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqsxx.png 994w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p data-pid=\"e3ONPtqw\">\u2032Fei and \u2032Fpi are the transformed edge and planar features in W. Mei and Mpi are then downsampled to eliminate the duplicated features that fall in the same voxel cell. In this paper, n is chosen to be 25. The downsample resolutions for Me i and Mp i are 0.2m and 0.4m, respectively.<\/p>\n<p data-pid=\"e3ONPtqw\">\u800c \u2032Fei<span id=\"MathJax-Element-57-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mover&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;F&lt;\/mi&gt;&lt;mo mathvariant=&quot;bold&quot; stretchy=&quot;false&quot;&gt;&amp;#x005E;&lt;\/mo&gt;&lt;\/mover&gt;&lt;\/mrow&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;e&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/msubsup&gt;&lt;\/math&gt;\"><\/span>\u00a0\u548c \u2032Fpi\u00a0<span id=\"MathJax-Element-58-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mover&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;F&lt;\/mi&gt;&lt;mo mathvariant=&quot;bold&quot; stretchy=&quot;false&quot;&gt;&amp;#x005E;&lt;\/mo&gt;&lt;\/mover&gt;&lt;\/mrow&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;p&lt;\/mi&gt;&lt;\/msubsup&gt;&lt;\/math&gt;\"><\/span>\u00a0\u662f\u8f6c\u6362\u5230\u4e16\u754c\u5750\u6807\u7cfb\u4e0b\u7684\u8fb9\u7f18\u7279\u5f81\u548c\u5e73\u9762\u7279\u5f81\u3002\u7136\u540e\u5bf9\u5b50\u4f53\u7d20\u5730\u56fe Mei<span id=\"MathJax-Element-59-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;M&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mi&gt;e&lt;\/mi&gt;&lt;\/msubsup&gt;&lt;\/math&gt;\"><\/span>\u00a0\u548c Mpi<span id=\"MathJax-Element-60-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;M&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;p&lt;\/mi&gt;&lt;\/msubsup&gt;&lt;\/math&gt;\"><\/span> \u8fdb\u884c\u4e0b\u91c7\u6837\uff0c\u6d88\u9664\u843d\u5728\u540c\u4e00\u4e2a\u4f53\u7d20\u5355\u5143\u4e2d\u7684\u91cd\u590d\u5197\u4f59\u7279\u5f81\u3002\u672c\u6587\u4e2d\uff0cn \u9009\u62e925\u3002Mei<span id=\"MathJax-Element-59-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;M&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mi&gt;e&lt;\/mi&gt;&lt;\/msubsup&gt;&lt;\/math&gt;\"><\/span> \u548c Mpi \u4e0b\u91c7\u6837\u7684\u5206\u8fa8\u7387\u5206\u522b\u8bbe\u4e3a0.2m\u548c0.4m\u3002<\/p>\n<h5><b>b\uff09\u626b\u63cf\u5339\u914d Scan-matching<\/b><\/h5>\n<p>We match a newly obtained lidar frame Fi+1, which is also {Fei+1, Fpi+1}, to Mi via scan- matching. Various scan-matching methods, such as [3] and [4], can be utilized for this purpose. Here we opt to use the method proposed in [1] due to its computational efficiency and robustness in various challenging environments.<\/p>\n<p data-pid=\"3bnAMTGO\">\u6211\u4eec\u5c06\u65b0\u83b7\u5f97\u7684\u6fc0\u5149\u96f7\u8fbe\u5173\u952e\u5e27 Fi+1 = {Fei+1, Fpi+1}<span id=\"MathJax-Element-64-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;double-struck&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;mo&gt;=&lt;\/mo&gt;&lt;mo fence=&quot;false&quot; stretchy=&quot;false&quot;&gt;{&lt;\/mo&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;mi&gt;e&lt;\/mi&gt;&lt;\/msubsup&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;mi&gt;p&lt;\/mi&gt;&lt;\/msubsup&gt;&lt;mo fence=&quot;false&quot; stretchy=&quot;false&quot;&gt;}&lt;\/mo&gt;&lt;\/math&gt;\"><\/span>\u00a0\u901a\u8fc7\u626b\u63cf\u5339\u914d\u5230\u4e16\u754c\u5750\u6807\u7cfb\u4e0b\u7684\u4f53\u7d20\u5730\u56fe Mi<span id=\"MathJax-Element-65-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;M&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u00a0\u4e2d\u3002\u4e3a\u6b64\uff0c\u53ef\u4ee5\u4f7f\u7528\u5404\u79cd\u626b\u63cf\u5339\u914dscan-match\u65b9\u6cd5\uff0c\u6bd4\u5982ICP\u30103\u3011\u548cGICP\u30104\u3011\u3002\u8fd9\u91cc\uff0c\u6211\u4eec\u9009\u62e9\u4f7f\u7528\u6587\u732e\u30101\u3011\u4e2d\u63d0\u51fa\u7684\u65b9\u6cd5\uff0c\u56e0\u4e3a\u5b83\u5177\u5907\u51fa\u8272\u8ba1\u7b97\u6548\u7387\u548c\u5728\u5404\u79cd\u6709\u6311\u6218\u6027\u7684\u73af\u5883\u4e2d\u6709\u5f88\u597d\u7684\u9c81\u68d2\u6027\u3002<\/p>\n<p data-pid=\"3bnAMTGO\">We first transform {Fe i+1, Fp i+1}from B to W and obtain {\u2032Fe \u2032Fp i+1, i+1}. This initial transformation is obtained by using the predicted robot motion,\u02dc Ti+1, from the IMU. For each feature in \u2032Fe i+1 or \u2032Fp i+1, we then find its edge or planar correspondence in Me i or Mp i . For the sake of brevity, the detailed procedures for finding these correspondences are omitted here, but are described thoroughly in [1].<\/p>\n<p data-pid=\"FJp9gSlV\">\u6211\u4eec\u9996\u5148\u5c06\u6fc0\u5149\u96f7\u8fbe\u5173\u952e\u5e27 {Fe i+1, Fp i+1}<span id=\"MathJax-Element-66-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mo fence=&quot;false&quot; stretchy=&quot;false&quot;&gt;{&lt;\/mo&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;mi&gt;e&lt;\/mi&gt;&lt;\/msubsup&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;mi&gt;p&lt;\/mi&gt;&lt;\/msubsup&gt;&lt;mo fence=&quot;false&quot; stretchy=&quot;false&quot;&gt;}&lt;\/mo&gt;&lt;\/math&gt;\"><\/span>\u00a0\u4ece\u673a\u5668\u4eba\u5750\u6807\u7cfb\u8f6c\u6362\u5230\u4e16\u754c\u5750\u6807\u7cfb\u4e2d\uff0c\u5f97\u5230\u8f6c\u6362\u540e\u7684\u5173\u952e\u5e27\u96c6\u5408\u4e3a\u00a0<span id=\"MathJax-Element-67-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mo fence=&quot;false&quot; stretchy=&quot;false&quot;&gt;{&lt;\/mo&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mover&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;F&lt;\/mi&gt;&lt;mo mathvariant=&quot;bold&quot; stretchy=&quot;false&quot;&gt;&amp;#x005E;&lt;\/mo&gt;&lt;\/mover&gt;&lt;\/mrow&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;e&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/msubsup&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mover&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;F&lt;\/mi&gt;&lt;mo mathvariant=&quot;bold&quot; stretchy=&quot;false&quot;&gt;&amp;#x005E;&lt;\/mo&gt;&lt;\/mover&gt;&lt;\/mrow&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;p&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/msubsup&gt;&lt;mo fence=&quot;false&quot; stretchy=&quot;false&quot;&gt;}&lt;\/mo&gt;&lt;\/math&gt;\"><\/span> {\u2032Fe \u2032Fp i+1, i+1}\u3002\u521d\u59cb\u7684\u53d8\u6362\u5173\u7cfb\u662f\u901a\u8fc7\u4eceIMU\u9884\u6d4b\u7684\u673a\u5668\u4eba\u8fd0\u52a8 \u02dc Ti+1<span id=\"MathJax-Element-69-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mover&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;T&lt;\/mi&gt;&lt;mo accent=&quot;false&quot;&gt;&amp;#x00AF;&lt;\/mo&gt;&lt;\/mover&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span> \u4e2d\u5f97\u5230\u7684\u3002\u5bf9\u4e8e\u6bcf\u5e27 \u2032Fe i+1 \u6216 \u2032Fp i+1<span id=\"MathJax-Element-70-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mover&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;F&lt;\/mi&gt;&lt;mo mathvariant=&quot;bold&quot; stretchy=&quot;false&quot;&gt;&amp;#x005E;&lt;\/mo&gt;&lt;\/mover&gt;&lt;\/mrow&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;e&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/msubsup&gt;&lt;\/math&gt;\"><\/span> \u4e2d\u7684\u8fb9\u7f18\u7279\u5f81\u548c\u5e73\u9762\u7279\u5f81\uff0c\u6211\u4eec\u7136\u540e\u627e\u5230\u5b83\u4eec\u5bf9\u5e94\u7684\u5b50\u4f53\u7d20\u5730\u56fe Mei \u548c Mpi\u00a0\u4e2d\u7684\u8fb9\u7f18\u548c\u5e73\u9762\u3002\u4e3a\u4e86\u7b80\u6d01\u8d77\u89c1\uff0c\u627e\u5230\u5bf9\u5e94\u5173\u7cfb\u7684\u8be6\u7ec6\u8fc7\u7a0b\u5728\u8fd9\u91cc\u7701\u7565\uff0c\u6587\u732e\u30101\u3011\u4e2d\u7ed9\u51fa\u4e86\u8be6\u7ec6\u7684\u63cf\u8ff0\u3002<\/p>\n<h5><b>c\uff09\u76f8\u5bf9\u53d8\u6362\u5173\u7cfb Relative transformation<\/b><\/h5>\n<p>The distance between a fea- ture and its edge or planar patch correspondence can be computed using the following equations:<\/p>\n<p data-pid=\"vgGmLBqA\"><span style=\"color: #ff0000;\">\u8fb9\u7f18\u7279\u5f81\u4e0e\u5e73\u9762\u7279\u5f81\u548c\u5b83\u4eec\u5bf9\u5e94\u7684\u8fb9\u7f18\u6216\u5e73\u9762\u5757\u4e4b\u95f4\u7684\u8ddd\u79bb<\/span>\u53ef\u4ee5\u901a\u8fc7\u5982\u4e0b\u7684\u516c\u5f0f\u8fdb\u884c\u8ba1\u7b97\uff1a<\/p>\n<p data-pid=\"vgGmLBqA\"><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs10-11.png\"><img loading=\"lazy\" class=\"alignnone wp-image-10537 size-medium\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs10-11-300x153.png\" alt=\"\" width=\"300\" height=\"153\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs10-11-300x153.png 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs10-11-1024x522.png 1024w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs10-11-768x392.png 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs10-11-624x318.png 624w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs10-11.png 1074w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p data-pid=\"bYPk9S55\">where k, u, v, and w are the feature indices in their corresponding sets. For an edge feature pei+1,k in \u2032Fei+1, pei,u and pei,v are the points that form the corresponding edge line in Mei . For a planar feature ppi+1,k in \u2032Fpi+1, ppi,u, ppi,v , and ppi,w form the corresponding planar patch in Mpi . The GaussNewton method is then used to solve for the optimal transformation by minimizing:<\/p>\n<p data-pid=\"bYPk9S55\">\u5176\u4e2d\uff0ck, u, v, w <span id=\"MathJax-Element-75-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mi&gt;k&lt;\/mi&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;mi&gt;u&lt;\/mi&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;mi&gt;v&lt;\/mi&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;mi&gt;w&lt;\/mi&gt;&lt;\/math&gt;\"><\/span>\u00a0\u662f\u5728\u8fb9\u7f18\u7279\u5f81\u6216\u5e73\u9762\u7279\u5f81\u5bf9\u5e94\u96c6\u5408\u4e2d\u7684\u7d22\u5f15\u53f7\u3002\u5bf9\u4e8e\u5728\u8f6c\u6362\u540e\u7684\u8fb9\u7f18\u5173\u952e\u5e27 \u2032Fe i+1<span id=\"MathJax-Element-76-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mover&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;F&lt;\/mi&gt;&lt;mo mathvariant=&quot;bold&quot; stretchy=&quot;false&quot;&gt;&amp;#x005E;&lt;\/mo&gt;&lt;\/mover&gt;&lt;\/mrow&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;e&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/msubsup&gt;&lt;\/math&gt;\"><\/span>\u00a0\u4e2d\u7684\u8fb9\u7f18\u7279\u5f81 pe i+1,k <span id=\"MathJax-Element-77-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;p&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;mi&gt;k&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;e&lt;\/mi&gt;&lt;\/msubsup&gt;&lt;\/math&gt;\"><\/span>\u00a0\u6765\u8bf4\uff0cpei,u \u548c pei,v \u00a0\u662f\u5f62\u6210\u8fb9\u7f18\u5b50\u4f53\u7d20\u5730\u56fe Mei<span id=\"MathJax-Element-79-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;M&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;e&lt;\/mi&gt;&lt;\/msubsup&gt;&lt;\/math&gt;\"><\/span> \u4e2d\u76f8\u5bf9\u5e94\u7684\u8fb9\u7f18\u7ebf\u4e0a\u7684\u70b9\u3002\u800c\u5bf9\u4e8e\u5728\u8f6c\u6362\u540e\u7684\u5e73\u9762\u5173\u952e\u5e27 \u2032Fpi+1 \u4e2d\u7684\u5e73\u9762\u7279\u5f81 ppi+1,k <span id=\"MathJax-Element-85-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;p&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;mi&gt;k&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;p&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/msubsup&gt;&lt;\/math&gt;\"><\/span>\u6765\u8bf4\uff0cppi,u, ppi,v \u4ee5\u53ca ppi,w\u00a0\u5f62\u6210\u4e86\u5e73\u9762\u5b50\u4f53\u7d20\u5730\u56fe Mpi<span id=\"MathJax-Element-86-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msubsup&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;M&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;p&lt;\/mi&gt;&lt;\/msubsup&gt;&lt;\/math&gt;\"><\/span>\u00a0\u4e2d\u5bf9\u5e94\u7684\u5e73\u9762\u5757\u3002\u7136\u540e\u91c7\u7528\u9ad8\u65af\u725b\u987f\u6cd5\u6765\u6c42\u89e3\u6700\u4f18\u7684\u53d8\u6362\u77e9\u9635\u5173\u7cfb\uff0c\u901a\u8fc7\u6700\u5c0f\u5316\u4e0b\u8ff0\u516c\u5f0f\uff1a<\/p>\n<p data-pid=\"bYPk9S55\"><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs11-.png\"><img loading=\"lazy\" class=\"alignnone wp-image-10538 size-medium\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs11--300x61.png\" alt=\"\" width=\"300\" height=\"61\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs11--300x61.png 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs11--1024x208.png 1024w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs11--768x156.png 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs11--624x127.png 624w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs11-.png 1062w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p data-pid=\"bYPk9S55\">At last, we can obtain the relative transformation \u2206Ti,i+1 between xi and xi+1, which is the lidar odometry factor linking these two poses:<\/p>\n<p data-pid=\"PCzBVgVL\">\u6700\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u5f97\u5230\u72b6\u6001\u8282\u70b9 xi<span id=\"MathJax-Element-89-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;x&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u00a0\u4e0e\u72b6\u6001\u8282\u70b9 xi+1<span id=\"MathJax-Element-88-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;x&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u00a0\u4e4b\u95f4\u7684\u76f8\u5bf9\u53d8\u6362\u5173\u7cfb \u2206Ti,i+1\uff0c\u5b83\u662f\u8fde\u63a5\u8fd9\u4e24\u79cd\u4f4d\u59ff\u7684\u6fc0\u5149\u91cc\u7a0b\u8ba1\u56e0\u5b50\uff1a<\/p>\n<p data-pid=\"PCzBVgVL\"><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs12.png\"><img loading=\"lazy\" class=\"alignnone wp-image-10539 size-medium\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs12-300x60.png\" alt=\"\" width=\"300\" height=\"60\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs12-300x60.png 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/eqs12.png 558w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p data-pid=\"PCzBVgVL\">We note that an alternative approach to obtain \u2206Ti,i+1 is to transform sub-keyframes into the frame of xi. In other words, we match Fi+1 to the voxel map that is represented in the frame of xi. In this way, the real relative transformation \u2206Ti,i+1 can be directly obtained. Because the transformed features \u2032Fei and \u2032Fpi can be reused multiple times, we instead opt to use the approach described in Sec. III-C.1 for its computational efficiency.<\/p>\n<p data-pid=\"9duGyLnp\">\u6211\u4eec\u6ce8\u610f\u5230\uff0c\u83b7\u5f97 \u2206Ti,i+1<span id=\"MathJax-Element-93-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mi mathvariant=&quot;normal&quot;&gt;&amp;#x0394;&lt;\/mi&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;T&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u00a0\u7684\u53e6\u4e00\u79cd\u65b9\u6cd5\u662f\u5c06\u5b50\u5173\u952e\u5e27\u8f6c\u6362\u5230 xi<span id=\"MathJax-Element-96-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;x&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u00a0\u72b6\u6001\u8282\u70b9\u7684\u5750\u6807\u7cfb\u4e0b\u3002\u6362\u53e5\u8bdd\u8bf4\uff0c\u5c31\u662f\u5c06 Fi+1<span id=\"MathJax-Element-95-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;double-struck&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u00a0\u4e0e\u5728 xi<span id=\"MathJax-Element-92-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;x&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u00a0\u72b6\u6001\u8282\u70b9\u5750\u6807\u7cfb\u4e0b\u8868\u793a\u7684\u4f53\u7d20\u5730\u56fe\u8fdb\u884c\u5339\u914d\u3002\u8fd9\u79cd\u65b9\u5f0f\u4e0b\uff0c\u53ef\u4ee5\u76f4\u63a5\u5f97\u5230\u5b9e\u65bd\u76f8\u5bf9\u53d8\u6362\u5173\u7cfb\u00a0<span id=\"MathJax-Element-94-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mi mathvariant=&quot;normal&quot;&gt;&amp;#x0394;&lt;\/mi&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;T&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span> \u2206Ti,i+1\u3002\u7531\u4e8e\u8f6c\u6362\u540e\u7684\u7279\u5f81 \u2032Fei \u548c \u2032Fpi \u00a0\u53ef\u4ee5\u591a\u6b21\u91cd\u590d\u4f7f\u7528\uff0c\u6240\u4ee5\u6211\u4eec\u9009\u62e9\u91c7\u7528\u7b2cIII\u8282-C.1\u4e2d\u63cf\u8ff0\u7684\u65b9\u6cd5\uff0c\u56e0\u4e3a\u5b83\u7684\u8ba1\u7b97\u6548\u7387\u5f88\u9ad8\u3002<\/p>\n<h3><b>4. GPS \u56e0\u5b50 GPS Factor<\/b><\/h3>\n<p>Though we can obtain reliable state estimation and map- ping by utilizing only IMU preintegration and lidar odometry factors, the system still suffers from drift during long- duration navigation tasks. To solve this problem, we can introduce sensors that offer absolute measurements for elim- inating drift. Such sensors include an altimeter, compass, and GPS. For the purposes of illustration here, we discuss GPS, as it is widely used in real-world navigation systems.<\/p>\n<p data-pid=\"C7tmZ4iP\"><span style=\"color: #ff0000;\">\u867d\u7136\u4ec5\u4ec5\u5229\u7528IMU\u9884\u79ef\u5206\u548c\u6fc0\u5149\u91cc\u7a0b\u8ba1\u56e0\u5b50\u5c31\u53ef\u4ee5\u83b7\u5f97\u53ef\u9760\u7684\u72b6\u6001\u4f30\u8ba1\u4ee5\u53ca\u5efa\u56fe\uff0c\u4f46\u662f\u8fd9\u4e2a\u7cfb\u7edf\u5728\u957f\u671f\u7684\u5bfc\u822a\u4efb\u52a1\u4e2d\uff0c\u4ecd\u7136\u5b58\u5728\u6f02\u79fb\u95ee\u9898<\/span>\u3002\u4e3a\u4e86\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u6211\u4eec\u53ef\u4ee5<span style=\"color: #ff0000;\">\u5f15\u5165\u63d0\u4f9b\u6d88\u9664\u6f02\u79fb\u7684\u7edd\u5bf9\u6d4b\u91cf\u503c\u7684\u4f20\u611f\u5668<\/span>\u3002\u8fd9\u4e9b\u4f20\u611f\u5668\u5305\u62ec\u9ad8\u5ea6\u8ba1\u3001\u6307\u5357\u9488\u7f57\u76d8\u4ee5\u53caGPS\u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf\u3002\u8fd9\u91cc\u4e3a\u4e86\u9610\u8ff0\u6e05\u695a\uff0c\u6211\u4eec\u8ba8\u8bba\u4e86\u5176\u4e2dGPS\uff0c\u56e0\u4e3a\u5b83\u5728\u73b0\u5b9e\u5bfc\u822a\u7cfb\u7edf\u4e2d\u88ab\u5e7f\u6cdb\u4f7f\u7528\u3002<\/p>\n<p data-pid=\"C7tmZ4iP\">When we receive GPS measurements, we first transform them to the local Cartesian coordinate frame using the method proposed in [21]. Upon the addition of a new node to the factor graph, we then associate a new GPS factor with this node. If the GPS signal is not hardware-synchronized with the lidar frame, we interpolate among GPS measurements linearly based on the timestamp of the lidar frame.<\/p>\n<p data-pid=\"44tow9YH\">\u5f53\u6211\u4eec\u63a5\u6536GPS\u6d4b\u91cf\u65f6\uff0c\u9996\u5148\u4f7f\u7528\u6587\u732e\u301021\u3011\u4e2d\u63d0\u5230\u7684\u65b9\u6cd5<span style=\"color: #ff0000;\">\u5c06GPS\u5750\u6807\u8f6c\u6362\u5230\u5c40\u90e8\u7b1b\u5361\u5c14\u5750\u6807\u7cfb\u4e0b<\/span>\u3002\u5728\u56e0\u5b50\u56fe\u4e2d\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684\u8282\u70b9\u540e\uff0c\u6211\u4eec\u5c06\u65b0\u7684GPS\u56e0\u5b50\u548c\u8fd9\u4e2a\u65b0\u8282\u70b9\u5173\u8054\u8d77\u6765\u3002<span style=\"color: #ff0000;\">\u5982\u679cGPS\u4fe1\u53f7\u4e0e\u6fc0\u5149\u96f7\u8fbe\u6ca1\u6709\u505a\u786c\u4ef6\u540c\u6b65\uff0c\u90a3\u4e48\u6211\u4eec\u6839\u636e\u6fc0\u5149\u96f7\u8fbe\u7684\u65f6\u95f4\u6233\u5728GPS\u4e2d\u8fdb\u884c\u7ebf\u6027\u63d2\u503c<\/span><b>\u3002<\/b><\/p>\n<p data-pid=\"44tow9YH\">We note that adding GPS factors constantly when GPS reception is available is not necessary because the drift of lidar inertial odometry grows very slowly. In practice, we only add a GPS factor when the estimated position covariance is larger than the received GPS position covariance.<\/p>\n<p data-pid=\"yqy7XCUm\">\u6211\u4eec\u6ce8\u610f\u5230\uff0c<span style=\"color: #ff0000;\">\u5f53GPS\u63a5\u6536\u53ef\u7528\u65f6\uff0c\u4e0d\u65ad\u6dfb\u52a0GPS\u56e0\u5b50\u662f\u6ca1\u6709\u5fc5\u8981\u7684\uff0c\u56e0\u4e3a\u6fc0\u5149\u60ef\u5bfc\u91cc\u7a0b\u8ba1\u6f02\u79fb\u589e\u52a0\u662f\u975e\u5e38\u7f13\u6162\u7684<\/span>\u3002\u5728\u5b9e\u8df5\u4e2d\uff0c\u6211\u4eec\u53ea\u9700\u8981\u5728\u4f30\u8ba1\u7684\u4f4d\u7f6e\u534f\u65b9\u5dee\u5927\u4e8e\u63a5\u6536\u5230\u7684GPS\u4f4d\u7f6e\u534f\u65b9\u5dee\u7684\u65f6\u5019\uff0c\u624d\u53bb\u589e\u52a0\u4e00\u4e2aGPS\u56e0\u5b50\u3002<\/p>\n<h3>5. \u95ed\u73af\u56e0\u5b50 Loop Closure Factor<\/h3>\n<p>Thanks to the utilization of a factor graph, loop closures can also be seamlessly incorporated into the proposed system, as opposed to LOAM and LIOM. For the purposes of illustration, we describe and implement a naive but effective Euclidean distance-based loop closure detection approach. We also note that our proposed framework is compatible with other methods for loop closure detection, for example, [22] and [23], which generate a point cloud descriptor and use it for place recognition.<\/p>\n<p data-pid=\"IcTYl4lQ\">\u7531\u4e8e\u5229\u7528\u4e86\u56e0\u5b50\u56fe\uff0c\u95ed\u73af\u4e5f\u53ef\u4ee5\u65e0\u7f1d\u5730\u63d2\u5165\u5230\u63d0\u51fa\u7684\u7cfb\u7edf\u4e2d\uff0c\u800c\u4e0d\u662f\u8ddfLOAM\u548cLIO Mapping\u90a3\u6837\u3002\u4e3a\u4e86\u8bf4\u660e\uff0c\u6211\u4eec\u63cf\u8ff0\u5e76\u5b9e\u73b0\u4e86\u4e00\u79cd<span style=\"color: #ff0000;\">\u6734\u7d20\u4f46\u6709\u6548<span style=\"color: #333333;\">\u7684<\/span>\u57fa\u4e8e\u6b27\u6c0f\u8ddd\u79bb\u7684\u95ed\u73af\u68c0\u6d4b<span style=\"color: #333333;\">\u65b9\u6cd5<\/span><\/span>\u3002\u6211\u4eec\u8fd8\u6ce8\u610f\u5230\uff0c\u6211\u4eec\u63d0\u51fa\u7684\u6846\u67b6\u4e0e\u5176\u4ed6\u7684\u95ed\u73af\u68c0\u6d4b\u65b9\u6cd5\u662f\u517c\u5bb9\u7684\uff0c\u4f8b\u5982\u6587\u732e\u301022\u3011\u301023\u3011\u63d0\u5230\u7684\u65b9\u6cd5\uff0c\u4ed6\u4eec\u751f\u4ea7\u4e86\u4e00\u4e2a\u70b9\u4e91\u63cf\u8ff0\u7b26\u5e76\u5c06\u5b83\u7528\u4e8e\u4f4d\u7f6e\u8bc6\u522b\u3002<\/p>\n<p data-pid=\"IcTYl4lQ\">When a new state xi+1 is added to the factor graph, we first search the graph and find the prior states that are close to xi+1 in Euclidean space. As is shown in Fig. 1, for example, x3 is one of the returned candidates. We then try to match Fi+1 to the sub-keyframes {F3\u2212m, &#8230;, F3, &#8230;, F3+m}using scan-matching. Note that Fi+1 and the past sub-keyframes are first transformed into W before scan-matching. We obtain the relative transformation \u2206T3,i+1 and add it as a loop closure factor to the graph. Throughout this paper, we choose the index m to be 12, and the search distance for loop closures is set to be 15m from a new state xi+1.<\/p>\n<p data-pid=\"7HTetUB4\">\u5f53\u4e00\u4e2a\u65b0\u7684\u72b6\u6001 xi+1<span id=\"MathJax-Element-99-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;x&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u00a0\u88ab\u52a0\u5165\u5230\u56e0\u5b50\u56fe\u4e2d\uff0c\u6211\u4eec\u9996\u5148\u5728\u56e0\u5b50\u56fe\u4e2d\u8fdb\u884c\u641c\u7d22\uff0c\u627e\u5230\u6b27\u5f0f\u7a7a\u95f4\u4e2d\u63a5\u8fd1\u72b6\u6001 xi+1<span id=\"MathJax-Element-100-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;x&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u00a0\u7684\u5148\u9a8c\u72b6\u6001\u3002\u5982\u56fe1\u6240\u793a\uff0c\u72b6\u6001\u8282\u70b9 x3<span id=\"MathJax-Element-101-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;x&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mn&gt;3&lt;\/mn&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u00a0\u662f\u5176\u4e2d\u4e00\u4e2a\u8fd4\u56de\u7684\u5019\u9009\u5bf9\u8c61\u3002\u7136\u540e\u6211\u4eec\u5c1d\u8bd5\u7528\u626b\u63cf\u5339\u914dscan-match\u65b9\u5f0f\u5c06\u5173\u952e\u5e27 Fi+1<span id=\"MathJax-Element-103-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;double-struck&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u00a0\u4e0e\u5b50\u5173\u952e\u5e27\u96c6 {F3\u2212m, &#8230;, F3, &#8230;, F3+m}<span id=\"MathJax-Element-102-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mo fence=&quot;false&quot; stretchy=&quot;false&quot;&gt;{&lt;\/mo&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;double-struck&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mn&gt;3&lt;\/mn&gt;&lt;mo&gt;&amp;#x2212;&lt;\/mo&gt;&lt;mi&gt;m&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;mo&gt;&amp;#x22EF;&lt;\/mo&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;double-struck&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mn&gt;3&lt;\/mn&gt;&lt;\/msub&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;mo&gt;&amp;#x22EF;&lt;\/mo&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;double-struck&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mn&gt;3&lt;\/mn&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mi&gt;m&lt;\/mi&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;mo fence=&quot;false&quot; stretchy=&quot;false&quot;&gt;}&lt;\/mo&gt;&lt;\/math&gt;\"><\/span>\u00a0\u8fdb\u884c\u5339\u914d\u3002\u6ce8\u610f\uff0c\u5173\u952e\u5e27 Fi+1<span id=\"MathJax-Element-104-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;double-struck&quot;&gt;F&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u00a0\u548c\u8fc7\u53bb\u7684\u5b50\u5173\u952e\u5e27\u5728\u626b\u63cf\u5339\u914dscan-match\u4e4b\u524d\u5df2\u7ecf\u5148\u88ab\u8f6c\u6362\u5230\u4e16\u754c\u5750\u6807\u7cfbW\u4e2d \u3002\u7136\u540e\u6211\u4eec\u5c31\u5f97\u5230\u4e86\u76f8\u5bf9\u53d8\u6362 \u2206T3,i+1<span id=\"MathJax-Element-105-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;mi mathvariant=&quot;normal&quot;&gt;&amp;#x0394;&lt;\/mi&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;T&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mn&gt;3&lt;\/mn&gt;&lt;mo&gt;,&lt;\/mo&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u00a0\uff0c\u5e76\u5c06\u5176\u4f5c\u4e3a\u4e00\u4e2a\u95ed\u73af\u56e0\u5b50\u6dfb\u52a0\u5230\u56e0\u5b50\u56fe\u4e2d\u3002\u5728\u672c\u6587\u4e2d\uff0c\u6211\u4eec\u9009\u62e9\u7d22\u5f15\u6570m\u4e3a12\uff0c\u95ed\u73af\u4e0e\u65b0\u72b6\u6001 xi+1<span id=\"MathJax-Element-106-Frame\" class=\"MathJax_SVG\" tabindex=\"0\" role=\"presentation\" data-mathml=\"&lt;math xmlns=&quot;http:\/\/www.w3.org\/1998\/Math\/MathML&quot;&gt;&lt;msub&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi mathvariant=&quot;bold&quot;&gt;x&lt;\/mi&gt;&lt;\/mrow&gt;&lt;mrow class=&quot;MJX-TeXAtom-ORD&quot;&gt;&lt;mi&gt;i&lt;\/mi&gt;&lt;mo&gt;+&lt;\/mo&gt;&lt;mn&gt;1&lt;\/mn&gt;&lt;\/mrow&gt;&lt;\/msub&gt;&lt;\/math&gt;\"><\/span>\u00a0\u7684\u641c\u7d22\u8303\u56f4\u8bbe\u4e3a15m\u3002<\/p>\n<p data-pid=\"7HTetUB4\">In practice, we find adding loop closure factors is espe- cially useful for correcting the drift in a robot\u2019s altitude, when GPS is the only absolute sensor available. This is because the elevation measurement from GPS is very inaccurate &#8211; giving rise to altitude errors approaching 100m in our tests, in the absence of loop closures.<\/p>\n<p data-pid=\"rG7o0h3M\">\u5b9e\u9645\u4e2d\uff0c\u6211\u4eec\u53d1\u73b0\uff0c\u5f53GPS\u662f\u552f\u4e00\u53ef\u7528\u7684\u7edd\u5bf9\u4f4d\u7f6e\u6d4b\u91cf\u4f20\u611f\u5668\u7684\u65f6\u5019\uff0c\u6dfb\u52a0<span style=\"color: #ff0000;\">\u95ed\u73af\u56e0\u5b50\u5bf9\u4e8e\u4fee\u6b63\u673a\u5668\u4eba\u9ad8\u7a0b\u4e0a\u7684\u6f02\u79fb\u7279\u522b\u6709\u7528<\/span>\u3002\u8fd9\u662f\u7531\u4e8e<span style=\"color: #ff0000;\">GPS\u7684\u9ad8\u7a0b\u6d4b\u91cf\u662f\u975e\u5e38\u4e0d\u51c6\u786e\u7684<\/span>\uff0c\u5728\u6211\u4eec\u7684\u6d4b\u8bd5\u4e2d\uff0c\u6ca1\u6709\u95ed\u73af\u60c5\u51b5\u4e0b\uff0c\u4f1a\u5bfc\u81f4\u63a5\u8fd1100\u7c73\u7684\u9ad8\u7a0b\u8bef\u5dee\u3002<\/p>\n<h1>\u4e94\u3001\u5b9e\u9a8c Experiments<\/h1>\n<p>We now describe a series of experiments to qualitatively and quantitatively analyze our proposed framework. The sensor suite used in this paper includes a Velodyne VLP- 16 lidar, a MicroStrain 3DM-GX5-25 IMU, and a Reach M GPS. For validation, we collected 5 different datasets across various scales, platforms and environments. These datasets are referred to as Rotation, Walking, Campus, Park and Amsterdam, respectively. The sensor mounting platforms are shown in Fig. 2. The first three datasets were collected using a custom-built handheld device on the MIT campus. The Park dataset was collected in a park covered by vegetation, using an unmanned ground vehicle (UGV) &#8211; the Clearpath Jackal. The last dataset, Amsterdam, was collected by mounting the sensors on a boat and cruising in the canals of Amsterdam. The details of these datasets are shown in Table I.<\/p>\n<p data-pid=\"1gIguHfM\">\u6211\u4eec\u73b0\u5728\u63cf\u8ff0\u4e00\u7cfb\u5217\u7684\u5b9e\u9a8c\u6765\u5b9a\u6027\u548c\u5b9a\u91cf\u5730\u5206\u6790\u6211\u4eec\u63d0\u51fa\u7684\u6846\u67b6\u3002\u672c\u6587\u91c7\u7528\u7684\u4f20\u611f\u5668\u5957\u4ef6\u5305\u62ec<b>\u4e00\u4e2a<\/b><span style=\"color: #ff0000;\">Velodyne16\u7ebf\u6fc0\u5149\u96f7\u8fbe<\/span>\uff0c\u4e00\u4e2a<span style=\"color: #ff0000;\">MicroStrain<\/span> <span style=\"color: #ff0000;\">3DM-GX5-25\u7684IMU<\/span>\u4ee5\u53ca\u4e00\u4e2a<span style=\"color: #ff0000;\">Reach M\u7684GPS<\/span>\u3002\u4e3a\u4e86\u8fdb\u884c\u5b9e\u9a8c\u9a8c\u8bc1\uff0c\u6211\u4eec\u5728\u4e0d\u540c\u5c3a\u5ea6\u3001\u5e73\u53f0\u548c\u73af\u5883\u4e2d\u641c\u96c6\u4e865\u4e2a\u4e0d\u540c\u7684\u6570\u636e\u96c6\u3002\u8fd9\u4e9b\u6570\u636e\u96c6\u5206\u522b\u4e3aRotation\uff0cWalking\uff0cCampus\uff0cPark\uff0cAmsterdam\u3002\u4f20\u611f\u5668\u5b89\u88c5\u5e73\u53f0\u5982\u56fe2\u6240\u793a\u3002<\/p>\n<p data-pid=\"1gIguHfM\"><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/experiment-.jpeg\"><img loading=\"lazy\" class=\"alignnone wp-image-10518 size-full\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/experiment-.jpeg\" alt=\"\" width=\"1856\" height=\"728\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/experiment-.jpeg 1856w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/experiment--300x118.jpeg 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/experiment--1024x402.jpeg 1024w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/experiment--768x301.jpeg 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/experiment--1536x602.jpeg 1536w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/experiment--624x245.jpeg 624w\" sizes=\"(max-width: 1856px) 100vw, 1856px\" \/><\/a><\/p>\n<p style=\"text-align: center;\" data-pid=\"1gIguHfM\">\u56fe2. \u5728\u4e09\u4e2a\u5e73\u53f0\u4e0a\u641c\u96c6\u7684\u6570\u636e\u96c6\uff1aa) \u4e00\u4e2a\u5b9a\u5236\u7684\u624b\u6301\u5f0f\u8bbe\u5907\uff1bb) \u4e00\u8f86\u65e0\u4eba\u9a7e\u9a76\u7684\u5730\u9762\u6c7d\u8f66-ClearPath Jackal\uff1bc) \u4e00\u8258\u7535\u52a8\u8239-Duffy<\/p>\n<p data-pid=\"NRj1mmIH\">\u524d\u4e09\u4e2a\u6570\u636e\u96c6\u662f\u4f7f\u7528MIT\u6821\u56ed\u91cc\u5b9a\u5236\u7684\u624b\u6301\u5f0f\u8bbe\u5907\u641c\u96c6\u7684\u3002Park\u6570\u636e\u96c6\u662f\u5728\u4e00\u4e2a\u690d\u88ab\u8986\u76d6\u7684\u516c\u56ed\u91cc\u91c7\u96c6\u7684\uff0c\u4f7f\u7528\u4e86\u4e00\u8f86\u65e0\u4eba\u5730\u9762\u8f66\u8f86\uff08UGV\uff09- Clearpath Jackal\u3002\u6700\u540e\u4e00\u4e2a\u6570\u636e\u96c6\uff0cAmsterdam\uff0c\u662f\u901a\u8fc7\u5c06\u4f20\u611f\u5668\u5b89\u88c5\u5728\u4e00\u8258\u7535\u52a8\u8239\u4e0a\uff0c\u5e76\u5728\u963f\u59c6\u65af\u7279\u4e39\u8fd0\u6cb3\u4e2d\u5de1\u822a\u91c7\u96c6\u7684\u3002\u8fd9\u4e9b\u6570\u636e\u96c6\u7684\u8be6\u7ec6\u4fe1\u606f\u663e\u793a\u5728\u4e0b\u8868\u4e2d\u3002<\/p>\n<table data-draft-node=\"block\" data-draft-type=\"table\" data-size=\"normal\" data-row-style=\"normal\">\n<tbody>\n<tr>\n<th>\u6570\u636e\u96c6<\/th>\n<th>\u626b\u63cf\u6570<\/th>\n<th>\u9ad8\u7a0b\u53d8\u5316(\u7c73)<\/th>\n<th>\u8f68\u8ff9\u957f\u5ea6(\u7c73)<\/th>\n<th>\u6700\u5927\u65cb\u8f6c\u901f\u5ea6(\u5ea6\/\u79d2)<\/th>\n<\/tr>\n<tr>\n<td>Rotation<\/td>\n<td>582<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>213.9<\/td>\n<\/tr>\n<tr>\n<td>Walking<\/td>\n<td>6502<\/td>\n<td>0.3<\/td>\n<td>801<\/td>\n<td>133.7<\/td>\n<\/tr>\n<tr>\n<td>Campus<\/td>\n<td>9865<\/td>\n<td>1.0<\/td>\n<td>1437<\/td>\n<td>124.8<\/td>\n<\/tr>\n<tr>\n<td>Park<\/td>\n<td>24691<\/td>\n<td>19.0<\/td>\n<td>2898<\/td>\n<td>217.4<\/td>\n<\/tr>\n<tr>\n<td>Amsterdam<\/td>\n<td>107656<\/td>\n<td>0<\/td>\n<td>19065<\/td>\n<td>17.2<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-pid=\"8_bwJPmh\">We compare the proposed LIO-SAM framework with LOAM and LIOM. In all the experiments, LOAM and LIO- SAM are forced to run in real-time. LIOM, on the other hand, is given infinite time to process every sensor measurement. All the methods are implemented in C++ and executed on a laptop equipped with an Intel i7-10710U CPU using the robot operating system (ROS) [24] in Ubuntu Linux. We note that only the CPU is used for computation, without parallel computing enabled. Our implementation of LIO-SAM is freely available on Github1. Supplementary details of the experiments performed, including complete visualizations of all tests, can be found at the link below2 .<\/p>\n<p data-pid=\"8_bwJPmh\">\u6211\u4eec\u5c06\u63d0\u51fa\u7684LIO-SAM\u6846\u67b6\u4e0eLOAM\u548cLIO Mapping\u8fdb\u884c\u6bd4\u8f83\u3002\u5728\u6240\u6709\u5b9e\u9a8c\u4e2d\uff0cLOAM\u548cLIO-SAM\u5b9e\u65f6\u7684\u8fd0\u884c\u4e86\u3002\u800cLIO-Mapping\u76f8\u53cd\uff0c\u7ed9\u4e86\u65e0\u9650\u591a\u7684\u65f6\u95f4\u6765\u5904\u7406\u6bcf\u4e2a\u4f20\u611f\u5668\u7684\u89c2\u6d4b\u503c\u3002\u6240\u6709\u7684\u65b9\u6cd5\u90fd\u5728C++\u4e2d\u5b9e\u73b0\uff0c\u5e76\u5728\u914d\u5907\u4e86Intel i7-10710U CPU\u7684\u7b14\u8bb0\u672c\u4e0a\u8fd0\u884c\uff0c\u4f7f\u7528\u7684\u5e73\u53f0\u662f\u662fUbuntu\u4e2d\u7684ROS\u673a\u5668\u4eba\u64cd\u4f5c\u7cfb\u7edf\u3002\u6211\u4eec\u6ce8\u610f\u5230\uff0c\u53ea\u6709CPU\u9002\u7528\u4e8e\u8ba1\u7b97\uff0c\u6ca1\u6709\u542f\u7528\u5e76\u884c\u8ba1\u7b97\u3002\u6211\u4eec\u7684LIO-SAM\u7684\u5b9e\u73b0\u53ef\u4ee5\u5728\u6211\u4eec\u7684<a class=\" wrap external\" href=\"https:\/\/github.com\/TixiaoShan\/LIO-SAM\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" data-za-detail-view-id=\"1043\">Github<\/a>\u4e2d\u8fdb\u884c\u4e0b\u8f7d\u3002\u6267\u884c\u5b9e\u9a8c\u7684\u8865\u5145\u7ec6\u8282\uff0c\u5305\u62ec\u6240\u6709\u6d4b\u8bd5\u7684\u5b8c\u6574\u89c6\u9891\uff0c\u53ef\u4ee5\u5728\u6211\u4eec\u7684<a class=\" wrap external\" href=\"https:\/\/youtu.be\/A0H8CoORZJU\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" data-za-detail-view-id=\"1043\">YouTube\u9891\u9053<\/a>\u4e2d\u627e\u5230<\/p>\n<h3><b>1. Rotation\u6570\u636e\u96c6<\/b><\/h3>\n<p>In this test, we focus on evaluating the robustness of our framework when only IMU preintegration and lidar odometry factors are added to the factor graph. The Rotation dataset is collected by a user holding the sensor suite and performing a series of aggressive rotational maneuvers while standing still. The maximum rotational speed encountered in this test is 133.7 \u25e6\/s. The test environment, which is populated with structures, is shown in Fig. 3(a). The maps obtained from LOAM and LIO-SAM are shown in Figs. 3(b) and (c) respec- tively.<\/p>\n<p data-pid=\"SLlqt1pv\">\u5728\u8fd9\u4e2a\u6d4b\u8bd5\u4e2d\uff0c\u5f53\u53ea\u4f7f\u7528IMU\u9884\u79ef\u5206\u4ee5\u53ca\u6fc0\u5149\u91cc\u7a0b\u8ba1\u56e0\u5b50\u88ab\u6dfb\u52a0\u5230\u56e0\u5b50\u56fe\u4e2d\u65f6\uff0c\u91cd\u70b9\u8bc4\u4f30\u6211\u4eec\u63d0\u51fa\u7684LIO-SAM\u6846\u67b6\u7684\u9c81\u68d2\u6027\u3002Rotation\u6570\u636e\u96c6\u662f\u4eba\u624b\u6301\u4f20\u611f\u5668\u5957\u4ef6\u91c7\u96c6\u7684\uff0c\u5728\u539f\u5730<span style=\"color: #ff0000;\">\u9759\u6b62\u4e0d\u79fb\u52a8<\/span>\u6761\u4ef6\u4e0b\uff0c<span style=\"color: #ff0000;\">\u53ea\u8fdb\u884c\u7eaf\u65cb\u8f6c\u64cd\u4f5c<\/span>\u3002\u672c\u5b9e\u9a8c\u4e2d\u6700\u5927\u7684<span style=\"color: #ff0000;\">\u65cb\u8f6c\u901f\u5ea6\u4e3a133.7\u5ea6\u6bcf\u79d2<\/span>\u3002\u6d4b\u8bd5\u73af\u5883\u5982\u56fe3(a)\u6240\u793a\u3002LOAM\u548cLIO-SAM\u4e2d\u751f\u6210\u7684\u5730\u56fe\u5982\u56fe3(b)\uff0c\u56fe3(c)\u6240\u793a\u3002<\/p>\n<p data-pid=\"SLlqt1pv\"><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/rotation.jpg\"><img loading=\"lazy\" class=\"alignnone wp-image-10519 size-full\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/rotation.jpg\" alt=\"\" width=\"1726\" height=\"1960\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/rotation.jpg 1726w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/rotation-264x300.jpg 264w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/rotation-902x1024.jpg 902w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/rotation-768x872.jpg 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/rotation-1353x1536.jpg 1353w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/rotation-624x709.jpg 624w\" sizes=\"(max-width: 1726px) 100vw, 1726px\" \/><\/a><\/p>\n<p style=\"text-align: center;\" data-pid=\"SLlqt1pv\"><span style=\"font-size: 1rem;\">\u56fe3. LOAM\u548cLIO-SAM\u5728Rotation\u7eaf\u65cb\u8f6c\u6570\u636e\u96c6\u4e0a\u7684\u5efa\u56fe\u7ed3\u679c\u3002LIO-Mapping\u6ca1\u6709\u5efa\u51fa\u597d\u7ed3\u679c\u3002<\/span><\/p>\n<p data-pid=\"18d133D7\">Because LIOM uses the same initialization pipeline from [25], it inherits the same initialization sensitivity of visual-inertial SLAM and is not able to initialize properly using this dataset. Due to its failure to produce meaningful results, the map of LIOM is not shown. As is shown, the map of LIO-SAM preserves more fine structural details of the environment compared with the map of LOAM. This is because LIO-SAM is able to register each lidar frame precisely in SO(3), even when the robot undergoes rapid rotation.<\/p>\n<p data-pid=\"18d133D7\">\u7531\u4e8eLIO-Mapping\u4f7f\u7528\u4e86\u6587\u732e\u301025\u3011\u4e2d\u76f8\u540c\u7684\u521d\u59cb\u5316\u8fc7\u7a0b\uff0c\u7ee7\u627f\u4e86\u89c6\u89c9\u60ef\u5bfcSLAM\u7c7b\u4f3c\u7684\u5bf9\u521d\u59cb\u5316\u7684\u654f\u611f\u6027\uff0c\u5e76\u4e14\u65e0\u6cd5\u4f7f\u7528\u8fd9\u4e2aRotation\u6570\u636e\u5b8c\u6210\u6b63\u786e\u7684\u521d\u59cb\u5316\u3002\u7531\u4e8eLIO-Maping\u6ca1\u80fd\u4ea7\u751f\u6709\u610f\u4e49\u7684\u7ed3\u679c\uff0c\u5b83\u7684\u5730\u56fe\u5c31\u6ca1\u6709\u663e\u793a\u51fa\u6765\u3002\u4ece\u56fe\u4e2d\u53ef\u4ee5\u770b\u51fa\uff0c\u4e0eLOAM\u7b97\u6cd5\u76f8\u6bd4\uff0cLIO-SAM\u6784\u5efa\u7684\u5730\u56fe\u4fdd\u7559\u4e86<span style=\"color: #ff0000;\">\u66f4\u7cbe\u7ec6<\/span>\u7684<span style=\"color: #ff0000;\">\u73af\u5883\u7ed3\u6784\u7ec6\u8282<\/span>\u3002\u8fd9\u662f\u7531\u4e8eLIO-SAM\u80fd\u591f\u5728SO(3)\u7279\u6b8a\u6b63\u4ea4\u7fa4\u4e2d\u7cbe\u786e\u7684\u6ce8\u518c\u6bcf\u4e2a\u6fc0\u5149\u96f7\u8fbe\u5e27\u70b9\u4e91\uff0c\u5373\u4f7f\u5f53\u673a\u5668\u4eba\u53d1\u751f\u4e86<span style=\"color: #ff0000;\">\u5feb\u901f\u65cb\u8f6c<\/span>\u7684\u60c5\u51b5\u4e0b\u3002<\/p>\n<h3>2. Walking\u6570\u636e\u96c6<\/h3>\n<p>This test is designed to evaluate the performance of our method when the system undergoes aggressive translations and rotations in SE(3). The maximum translational and rotational speed encountered is this dataset is 1.8 m\/s and 213.9 \u25e6\/s respectively. During the data gathering, the user holds the sensor suite shown in Fig. 2(a) and walks quickly across the MIT campus (Fig. 4(a)). In this test, the map of LOAM, shown in Fig. 4(b), diverges at multiple locations when aggressive rotation is encountered. LIOM outperforms LOAM in this test. However, its map, shown in Fig. 4(c), still diverges slightly in various locations and consists of numerous blurry structures. Because LIOM is designed to process all sensor measurements, it only runs at 0.56\u00d7real- time while other methods are running in real-time. Finally, LIO-SAM outperforms both methods and produces a map that is consistent with the available Google Earth imagery.<\/p>\n<p data-pid=\"45CYYJv0\">\u8fd9\u4e2a\u6d4b\u8bd5\u8bbe\u8ba1\u7684\u76ee\u7684\u5728\u4e8e\u8bc4\u4f30\u6211\u4eec\u63d0\u51fa\u7684\u65b9\u6cd5\u5728SE(3)\u7279\u6b8a\u6b27\u5f0f\u7fa4\u4e2d\u7cfb\u7edf\u53d1\u751f<span style=\"color: #ff0000;\">\u5267\u70c8\u5e73\u79fb\u548c\u65cb\u8f6c<\/span>\u7684\u60c5\u51b5\u4e0b\u7684\u6027\u80fd\u3002\u8fd9\u4e2a\u6570\u636e\u96c6\u4e0a\u9047\u5230\u7684<span style=\"color: #ff0000;\">\u6700\u5927\u5e73\u79fb\u901f\u5ea6\u548c\u65cb\u8f6c\u901f\u5ea6\u5206\u522b\u4e3a1.8\u7c73\u6bcf\u79d2\u548c213.9\u5ea6\u6bcf\u79d2<\/span>\u3002\u5728\u6570\u636e\u91c7\u96c6\u671f\u95f4\uff0c\u4eba\u62ff\u7740\u56fe2(a)\u90a3\u6837\u7684\u624b\u6301\u5f0f\u4f20\u611f\u5668\uff0c\u7136\u540e\u5feb\u901f\u884c\u8d70\u5728MIT\u6821\u56ed\u4e2d\uff0c\u5982\u56fe4(a)\u4e2d\u3002\u8fd9\u4e2a\u5b9e\u9a8c\u4e2d\uff0cLOAM\u5efa\u7684\u5730\u56fe\uff0c\u5982\u56fe4(b)\u6240\u793a\uff0c\u5f53\u9047\u5230\u4e3b\u52a8\u65cb\u8f6c\u65f6\u5019\uff0c\u4f1a\u5728\u591a\u4e2a\u4f4d\u7f6e\u51fa\u73b0\u53d1\u6563\u3002LIO-Mapping\u5728\u8fd9\u4e2a\u6570\u636e\u96c6\u4e0a\u8981\u6bd4LOAM\u8868\u73b0\u7684\u51fa\u8272\u3002\u7136\u800cLIO-Mapping\u5efa\u7684\u5730\u56fe\uff0c\u5982\u56fe4(c)\u6240\u793a\uff0c\u5728\u4e0d\u540c\u4f4d\u7f6e\u4ecd\u7136\u5b58\u5728\u4e0d\u4e00\u6837\uff0c\u5e76\u4e14\u7531\u5f88\u591a\u6a21\u7cca\u7684\u7ed3\u6784\u7ec4\u6210\u3002\u7531\u4e8eLIO-Mapping\u88ab\u8bbe\u8ba1\u7528\u6765\u5904\u7406\u6240\u6709\u4f20\u611f\u5668\u7684\u6d4b\u91cf\uff0c\u56e0\u6b64\u5b83\u65e8\u57280.56\u500d\u7684\u5b9e\u65f6\u6761\u4ef6\u4e0b\u8fd0\u884c\uff0c\u800c\u5176\u4ed6\u4e24\u79cd\u65b9\u6cd5\u90fd\u53ef\u4ee5\u5b9e\u65f6\u8fd0\u884c\u3002\u6700\u540e\uff0cLIO-SAM\u7684\u6027\u80fd\u8981\u4f18\u4e8e\u5176\u4ed6\u4e24\u79cd\u65b9\u6cd5\uff0c\u5e76\u6784\u5efa\u4e86\u4e00\u5f20\u4e0e\u53ef\u7528\u7684\u8c37\u6b4c\u5730\u56fe\u4e00\u81f4\u7684\u5730\u56fe\u3002<\/p>\n<p data-pid=\"45CYYJv0\"><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/mapping-diff--scaled.jpeg\"><img loading=\"lazy\" class=\"alignnone wp-image-10520 size-full\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/mapping-diff--scaled.jpeg\" alt=\"\" width=\"2560\" height=\"809\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/mapping-diff--scaled.jpeg 2560w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/mapping-diff--300x95.jpeg 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/mapping-diff--1024x324.jpeg 1024w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/mapping-diff--768x243.jpeg 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/mapping-diff--1536x485.jpeg 1536w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/mapping-diff--2048x647.jpeg 2048w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/mapping-diff--624x197.jpeg 624w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/a><\/p>\n<p style=\"text-align: center;\" data-pid=\"45CYYJv0\">\u56fe4. LOAM, LIO-Mapping\u548cLIO-SAM\u5728Walking\u6570\u636e\u96c6\u4e0a\u7684\u5efa\u56fe\u7ed3\u679c\u3002\u5f53\u9047\u5230\u4e3b\u52a8\u65cb\u8f6c\u65f6\uff0c\u56feb\u7684LOAM\u5efa\u7684\u56fe\u4f1a\u591a\u6b21\u53d1\u6563\u3002LIO-Mapping\u5efa\u56fe\u6027\u80fd\u8981\u4f18\u4e8eLOAM\u3002\u4f46\u662f\uff0cLIO-Mapping\u5efa\u7684\u5730\u56fe\u7531\u4e8e\u70b9\u4e91\u914d\u51c6\u7684\u4e0d\u51c6\u786e\uff0c\u9020\u6210\u4e86\u8bb8\u591a\u6a21\u7cca\u7ed3\u6784\u3002LIO-SAM\u5728\u672a\u4f7f\u7528GPS\u7684\u60c5\u51b5\u4e0b\uff0c\u751f\u6210\u4e86\u4e00\u5f20\u4e0e\u8c37\u6b4c\u5730\u7403\u56fe\u50cf\u4e00\u81f4\u7684\u5730\u56fe<\/p>\n<h3>3. Campus\u6570\u636e\u96c6<\/h3>\n<p>This test is designed to show the benefits of introducing GPS and loop closure factors. In order to do this, we purposely disable the insertion of GPS and loop closure factors into the graph. When both GPS and loop closure factors are disabled, our method is referred to as LIO-odom, which only utilizes IMU preintegration and lidar odometry factors. When GPS factors are used, our method is referred to as LIO-GPS, which uses IMU preintegration, lidar odometry, and GPS factors for graph construction. LIO-SAM uses all factors when they are available.<\/p>\n<p>\u672c\u6570\u636e\u96c6\u4e0a\u7684\u6d4b\u8bd5\u662f\u8bbe\u8ba1\u7528\u6765\u5c55\u793a<span style=\"color: #ff0000;\">\u5f15\u5165GPS \u548c \u95ed\u73af\u56e0\u5b50<\/span>\u540e\u7684\u5efa\u56fe\u6548\u679c\u3002\u4e3a\u4e86\u505a\u5230\u8fd9\u4e00\u70b9\uff0c\u6211\u4eec\u6545\u610f\u672a\u6dfb\u52a0GPS\u548c\u95ed\u73af\u56e0\u5b50\u5230\u56e0\u5b50\u56fe\u4e2d\u3002\u5f53GPS\u548c\u95ed\u73af\u56e0\u5b50\u7981\u7528\u540e\uff0c\u6211\u4eec\u63d0\u51fa\u7684\u65b9\u6cd5\u547d\u540d\u4e3aLIO-Odom\uff0c\u4e5f\u5c31\u662f\u53ea\u5229\u7528IMU\u9884\u79ef\u5206\u548c\u6fc0\u5149\u91cc\u7a0b\u8ba1\u56e0\u5b50\u3002\u5f53\u4f7f\u7528GPS\u56e0\u5b50\u65f6\uff0c\u6211\u4eec\u63d0\u51fa\u7684\u65b9\u6cd5\u5b9a\u4e49\u4e3aLIO-GPS\uff0c\u5176\u4f7f\u7528IMU\u9884\u79ef\u5206\uff0c\u6fc0\u5149\u91cc\u7a0b\u8ba1\u4ee5\u53caGPS\u56e0\u5b50\u7528\u4e8e\u5efa\u56fe\u3002LIO-SAM\u5219\u662f\u5728\u56fe\u4e2d\u6dfb\u52a0\u4e86\u6240\u6709\u7684\u56e0\u5b50\u3002<\/p>\n<p>To gather this dataset, the user walks around the MIT campus using the handheld device and returns to the same position. Because of the numerous buildings and trees in the mapping area, GPS reception is rarely available and inaccu- rate most of the time. After filtering out the inconsistent GPS measurements, the regions where GPS is available are shown in Fig. 5(a) as green segments. These regions correspond to the few areas that are not surrounded by buildings or trees.<\/p>\n<p data-pid=\"YF5cfUal\">\u4e3a\u4e86\u6536\u96c6\u8fd9\u4e2a\u6570\u636e\u96c6\uff0c\u7814\u7a76\u4eba\u5458\u4f7f\u7528\u624b\u6301\u5f0f\u4f20\u611f\u5668\u8bbe\u5907\u5728MIT\u6821\u56ed\u5468\u56f4\u8d70\u52a8\uff0c\u5e76\u8fd4\u56de\u5230\u76f8\u540c\u4f4d\u7f6e\u3002\u7531\u4e8e\u5728\u5efa\u56fe\u533a\u57df\u5b58\u5728\u8bb8\u591a\u5efa\u7b51\u7269\u548c\u6811\u6728\uff0c<span style=\"color: #ff0000;\">GPS<\/span>\u63a5\u6536<span style=\"color: #ff0000;\">\u51e0\u4e4e\u4e0d\u53ef\u7528<span style=\"color: #333333;\">\uff0c<\/span><\/span>\u800c\u4e14\u5927\u591a\u6570\u65f6\u5019\u4e5f<span style=\"color: #ff0000;\">\u4e0d\u51c6\u786e<\/span>\u3002\u5728\u8fc7\u6ee4\u6389\u4e0d\u4e00\u81f4\u7684GPS\u89c2\u6d4b\u540e\uff0c<span style=\"color: #ff0000;\">\u53ef\u7528\u7684GPS<\/span>\u5982\u56fe5(a)<span style=\"color: #ff0000;\">\u7eff\u8272\u90e8\u5206<\/span>\u6240\u793a\u3002\u8fd9\u4e9b\u533a\u57df\u5bf9\u5e94\u4e8e\u5c11\u6570\u6ca1\u6709\u5efa\u7b51\u7269\u6216\u6811\u6728\u5305\u56f4\u7684\u533a\u57df\u3002<\/p>\n<p data-pid=\"YF5cfUal\"><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map.jpg\"><img loading=\"lazy\" class=\"alignnone wp-image-10521 size-full\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map.jpg\" alt=\"\" width=\"1394\" height=\"2278\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map.jpg 1394w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map-184x300.jpg 184w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map-627x1024.jpg 627w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map-768x1255.jpg 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map-940x1536.jpg 940w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map-1253x2048.jpg 1253w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map-624x1020.jpg 624w\" sizes=\"(max-width: 1394px) 100vw, 1394px\" \/><\/a><\/p>\n<p style=\"text-align: center;\" data-pid=\"YF5cfUal\">\u56fe5. \u5404\u79cd\u65b9\u6cd5\u5728MIT\u6821\u56ed\u4e2d\u91c7\u96c6\u7684Campus\u6570\u636e\u96c6\u4e0a\u7684\u7ed3\u679c\u3002\u7ea2\u70b9\u8868\u793a\u8d77\u59cb\u4f4d\u7f6e\u548c\u7ed3\u675f\u4f4d\u7f6e\u3002\u8f68\u8ff9\u7684\u65b9\u5411\u662f\u6309\u7167\u65f6\u949f\u6392\u5217\u7684\u3002LIO-Mapping\u65b9\u6cd5\u7531\u4e8e\u6ca1\u6709\u4ea7\u751f\u6709\u610f\u4e49\u7684\u8f68\u8ff9\u7ed3\u679c\uff0c\u6ca1\u6709\u663e\u793a\u5728\u91cc\u9762<\/p>\n<p data-pid=\"13QkMwL1\">The estimated trajectories of LOAM, LIO-odom, LIO- GPS, and LIO-SAM are shown in Fig. 5(a). The results of LIOM are not shown due to its failure to initialize properly and produce meaningful results. As is shown, the trajectory of LOAM drifts significantly when compared with all other methods. Without the correction of GPS data, the trajectory of LIO-odom begins to visibly drift at the lower right corner of the map. With the help of GPS data, LIO-GPS can correct the drift when it is available. However, GPS data is not available in the later part of the dataset. As a result, LIO- GPS is unable to close the loop when the robot returns to the start position due to drift. On the other hand, LIO- SAM can eliminate the drift by adding loop closure factors to the graph. The map of LIO-SAM is well-aligned with Google Earth imagery and shown in Fig. 5(b). The relative translational error of all methods when the robot returns to the start is shown in Table II.<\/p>\n<p data-pid=\"13QkMwL1\">LOAM\u3001LIO-Odom\u3001LIO-GPS\u4ee5\u53caLIO-SAM\u4f30\u8ba1\u51fa\u6765\u7684\u8f68\u8ff9\u5982\u56fe5(a)\u6240\u793a\u3002\u7531\u4e8eLIO-Mapping\u6ca1\u80fd\u6b63\u786e\u5730\u521d\u59cb\u5316\uff0c\u5e76\u4e14\u672a\u80fd\u4ea7\u751f\u6709\u610f\u4e49\u7684\u7ed3\u679c\uff0c\u56e0\u6b64LIO-Mapping\u7684\u7ed3\u679c\u6ca1\u6709\u5c55\u793a\u51fa\u6765\u3002\u5982\u56fe\u4e0a\u6240\u793a\uff0c\u548c\u5176\u4ed6\u5176\u4ed6\u65b9\u6cd5\u76f8\u6bd4\uff0cLOAM\u7684\u8f68\u8ff9\u6709\u660e\u663e\u7684\u6f02\u79fb\u3002\u7531\u4e8e\u6ca1\u6709\u5bf9GPS\u6570\u636e\u8fdb\u884c\u4fee\u6b63\uff0c\u5728\u5730\u56fe\u7684\u53f3\u4e0b\u89d2LIO-Odom\u7684\u8f68\u8ff9\u5f00\u59cb\u51fa\u73b0\u660e\u663e\u7684\u6f02\u79fb\u3002\u52a0\u5165\u4e86GPS\u6570\u636e\u540e\uff0cLIO-GPS\u53ef\u4ee5\u5728GPS\u53ef\u7528\u65f6\u4fee\u6b63\u6f02\u79fb\u3002\u4f46\u662f\uff0c\u5728\u6570\u636e\u96c6\u7684\u540e\u534a\u90e8\u5206GPS\u90fd\u662f\u4e0d\u53ef\u7528\u7684\u3002\u56e0\u6b64\uff0c\u5f53\u7531\u4e8e\u6f02\u79fb\u5bfc\u81f4\u673a\u5668\u4eba\u8fd4\u56de\u5230\u8d77\u59cb\u4f4d\u7f6e\u65f6\uff0cLIO-GPS\u65e0\u6cd5\u68c0\u6d4b\u5230\u95ed\u73af\u3002\u53e6\u4e00\u65b9\u9762\uff0cLIO-SAM\u53ef\u4ee5\u901a\u8fc7\u5411\u56e0\u5b50\u56fe\u4e2d\u6dfb\u52a0<span style=\"color: #ff0000;\">\u95ed\u73af\u56e0\u5b50<\/span>\u6765<span style=\"color: #ff0000;\">\u6d88\u9664\u8f68\u8ff9\u6f02\u79fb<\/span>\u3002LIO-SAM\u5efa\u7684\u5730\u56fe<span style=\"color: #ff0000;\">\u4e0e\u8c37\u6b4c\u5730\u7403\u4e0a\u7684\u56fe\u53ef\u4ee5\u5f88\u597d\u7684\u5bf9\u9f50<\/span>\uff0c\u5982\u56fe5(b)\u6240\u793a\u3002\u5f53\u673a\u5668\u4eba\u56de\u5230\u539f\u70b9\u65f6\uff0c\u6240\u6709\u65b9\u6cd5\u7684\u76f8\u5bf9\u5e73\u79fb\u8bef\u5dee\u5982\u4e0b\u8868\u6240\u793a\u3002<\/p>\n<table data-draft-node=\"block\" data-draft-type=\"table\" data-size=\"normal\" data-row-style=\"normal\">\n<tbody>\n<tr>\n<th>\u6570\u636e\u96c6<\/th>\n<th>LOAM<\/th>\n<th>LIOM<\/th>\n<th>LIO-Odom<\/th>\n<th>LIO-GPS<\/th>\n<th>LIO-SAM<\/th>\n<\/tr>\n<tr>\n<td>Campus<\/td>\n<td>192.43<\/td>\n<td>Fail<\/td>\n<td>9.44<\/td>\n<td>6.87<\/td>\n<td>0.12<\/td>\n<\/tr>\n<tr>\n<td>Park<\/td>\n<td>121.74<\/td>\n<td>34.60<\/td>\n<td>36.36<\/td>\n<td>2.93<\/td>\n<td>0.04<\/td>\n<\/tr>\n<tr>\n<td>Amsterdam<\/td>\n<td>Fail<\/td>\n<td>Fail<\/td>\n<td>Fail<\/td>\n<td>1.21<\/td>\n<td>0.17<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>4. Park \u6570\u636e\u96c6<\/h3>\n<p>In this test, we mount the sensors on a UGV and drive the vehicle along a forested hiking trail. The robot returns to its initial position after 40 minutes of driving. The UGV is driven on three road surfaces: asphalt, ground covered by grass, and dirt-covered trails. Due to its lack of suspension, the robot undergoes low amplitude but high frequency vibra- tions when driven on non-asphalt roads.<\/p>\n<p data-pid=\"KNcN2HsV\">\u5728\u672c\u6b21\u6d4b\u8bd5\u4e2d\uff0c\u6211\u4eec\u5c06\u4f20\u611f\u5668\u5b89\u88c5\u5728\u4e00\u8f86UGV\u65e0\u4eba\u8f66\u4e0a\uff0c\u6cbf\u7740\u68ee\u6797\u5f92\u6b65\u8def\u7ebf\u884c\u9a76\u3002\u673a\u5668\u4eba\u5728\u884c\u9a7640\u5206\u949f\u540e\u56de\u5230\u51fa\u53d1\u4f4d\u7f6e\u3002\u65e0\u4eba\u8f66\u5728\u4e09\u79cd\u8def\u9762\u4e0a\u884c\u9a76\uff1a<span style=\"color: #ff0000;\">\u6ca5\u9752\u8def\u9762\u3001\u8349\u576a\u4ee5\u53ca\u6ce5\u5730<\/span>\u3002\u7531\u4e8e\u7f3a\u4e4f\u60ac\u6302\u7cfb\u7edf\uff0c\u8fd9\u4e2a\u673a\u5668\u4eba\u5728\u975e\u6ca5\u9752\u8def\u9762\u884c\u9a76\u8fc7\u7a0b\u4e2d\uff0c\u4f1a\u51fa\u73b0<span style=\"color: #ff0000;\">\u4f4e\u5e45\u5ea6\u9ad8\u9891\u7387\u7684\u632f\u52a8<\/span>\u3002<\/p>\n<p data-pid=\"KNcN2HsV\">To mimic a challenging mapping scenario, we only use GPS measurements when the robot is in widely open areas, which is indicated by the green segments in Fig. 6(a). Such a mapping scenario is representative of a task in which a robot must map multiple GPS-denied regions and periodically returns to regions with GPS availability to correct the drift.<\/p>\n<p data-pid=\"QYnYvNUV\">\u4e3a\u4e86\u6a21\u62df\u5177\u6709\u6311\u6218\u6027\u7684\u5efa\u56fe\u573a\u666f\uff0c\u6211\u4eec\u53ea\u5728\u673a\u5668\u4eba\u5904\u4e8e\u5f00\u653e\u7684\u533a\u57df\u65f6\u4f7f\u7528GPS\u6d4b\u91cf\u503c\uff0c\u6bd4\u5982\u56fe6(a)\u4e2d\u7684\u7eff\u8272\u90e8\u5206\u3002\u8fd9\u79cd\u5efa\u56fe\u573a\u666f\u4e00\u7c7b\u4efb\u52a1\u7684\u4ee3\u8868\uff0c\u5373\u673a\u5668\u4eba\u5fc5\u987b<span style=\"color: #ff0000;\">\u5728\u6ca1\u6709GPS\u7684\u533a\u57df\u8fdb\u884c\u5efa\u56fe<\/span>\uff0c\u5e76<span style=\"color: #ff0000;\">\u5b9a\u671f\u8fd4\u56de\u6709GPS\u4fe1\u53f7\u7684\u533a\u57df\u6765\u7ea0\u6b63\u6f02\u79fb<\/span>\u3002<\/p>\n<p data-pid=\"QYnYvNUV\"><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map2.jpg\"><img loading=\"lazy\" class=\"alignnone wp-image-10522 size-full\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map2.jpg\" alt=\"\" width=\"1324\" height=\"1802\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map2.jpg 1324w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map2-220x300.jpg 220w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map2-752x1024.jpg 752w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map2-768x1045.jpg 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map2-1129x1536.jpg 1129w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/09\/lio-sam-map2-624x849.jpg 624w\" sizes=\"(max-width: 1324px) 100vw, 1324px\" \/><\/a><\/p>\n<p style=\"text-align: center;\" data-pid=\"QYnYvNUV\">\u56fe6. \u4f7f\u7528\u7f8e\u56fd\u65b0\u6cfd\u897f\u5dde\u7684Pleasant Valley Park\u6536\u96c6Park\u6570\u636e\u96c6\u4e0a\u6240\u6709\u65b9\u6cd5\u7684\u8f68\u8ff9\u5bf9\u6bd4\u7ed3\u679c\u3002\u7ea2\u70b9\u8868\u793a\u8d77\u59cb\u4f4d\u7f6e\u548c\u7ed3\u675f\u4f4d\u7f6e\u3002\u8f68\u8ff9\u65b9\u5411\u662f\u987a\u65f6\u9488\u65b9\u5411\u3002<\/p>\n<p data-pid=\"gnspTUUk\">Similar to the results in the previous tests, LOAM, LIOM, and LIO-odom suffer from significant drift, since no absolute correction data is available. Additionally, LIOM only runs at 0.67\u00d7real-time, while the other methods run in real-time. Though the trajectories of LIO-GPS and LIO-SAM coincide in the horizontal plane, their relative translational errors are different (Table II). Because no reliable absolute elevation measurements are available, LIO-GPS suffers from drift in altitude and is unable to close the loop when returning to the robot\u2019s initial position. LIO-SAM has no such problem, as it utilizes loop closure factors to eliminate the drift.<\/p>\n<p data-pid=\"gnspTUUk\">\u4e0e\u524d\u9762\u5b9e\u9a8c\u7ed3\u679c\u7c7b\u4f3c\uff0cLOAM\u3001LIO-Mapping\u548cLIO-Odom\u90fd\u51fa\u73b0\u4e86\u5f88\u660e\u663e\u7684\u8f68\u8ff9\u6f02\u79fb\uff0c\u56e0\u4e3a\u4ed6\u4eec\u6ca1\u6709\u4f7f\u7528<span style=\"color: #ff0000;\">\u7edd\u5bf9\u6821\u6b63\u6570\u636e<\/span>\u3002\u6b64\u5916\uff0cLIO-Mapping\u53ea\u57280.67\u500d\u5b9e\u65f6\u901f\u5ea6\u4e0b\u8fd0\u884c\uff0c\u800c\u5176\u4ed6\u65b9\u6cd5\u662f\u5b9e\u65f6\u8fd0\u884c\u7684\u3002\u867d\u7136LIO-GPS\u548cLIO-SAM\u7684\u8f68\u8ff9\u5728\u6c34\u5e73\u9762\u4fdd\u6301\u4e00\u81f4\uff0c\u4f46\u5b83\u4eec\u7684\u76f8\u5bf9\u5e73\u79fb\u8bef\u5dee\u662f\u4e0d\u4e00\u6837\u7684\u5982\u8868II\u6240\u793a\u3002\u7531\u4e8e\u6ca1\u6709\u53ef\u9760\u7684\u7edd\u5bf9\u9ad8\u5ea6\u6d4b\u91cf\u503c\uff0cLIO-GPS\u5728\u9ad8\u5ea6\u4e0a\u6709\u6f02\u79fb\uff0c\u5e76\u4e14\u5728\u8fd4\u56de\u5230\u673a\u5668\u4eba\u7684\u8d77\u59cb\u4f4d\u7f6e\u65f6\u65e0\u6cd5\u95ed\u73af\u3002LIO-SAM\u6ca1\u6709\u51fa\u73b0\u8fd9\u6837\u7684\u95ee\u9898\uff0c\u56e0\u4e3a\u5b83\u5229\u7528<span style=\"color: #ff0000;\">\u95ed\u73af\u56e0\u5b50<\/span>\u6765<span style=\"color: #ff0000;\">\u6d88\u9664\u8f68\u8ff9\u6f02\u79fb<\/span>\u3002<\/p>\n<h3>5. Amsterdam \u6570\u636e\u96c6<\/h3>\n<p>Finally, we mounted the sensor suite on a boat and cruised along the canals of Amsterdam for 3 hours. Although the movement of the sensors is relatively smooth in this test, mapping the canals is still challenging for several reasons. Many bridges over the canals pose degenerate scenarios, as there are few useful features when the boat is under them, similar to moving through a long, featureless corridor. The number of planar features is also significantly less, as the ground is not present. We observe many false detections from the lidar when direct sunlight is in the sensor field-of-view, which occurs about 20% of the time during data gathering. We also only obtain intermittent GPS reception due to the presence of bridges and city buildings overhead.<\/p>\n<p data-pid=\"yzhy_bAP\">\u6700\u540e\uff0c\u6211\u4eec\u628a\u4f20\u611f\u5668\u5957\u4ef6\u5b89\u88c5\u5230\u7535\u52a8\u8239\u4e0a\uff0c\u6cbf\u7740\u963f\u59c6\u65af\u7279\u4e39\u7684<span style=\"color: #ff0000;\">\u8fd0\u6cb3<\/span>\u5de1\u822a3\u5c0f\u65f6\u3002\u867d\u7136\u5728\u8fd9\u6b21\u6d4b\u8bd5\u4e2d\uff0c\u4f20\u611f\u5668\u7684\u79fb\u52a8\u76f8\u5bf9\u5e73\u7a33\uff0c\u4f46\u7531\u4e8e\u5b58\u5728\u82e5\u5e72\u4e2a\u539f\u56e0\uff0c\u7ed9\u8fd0\u6cb3\u6574\u4f53\u5efa\u56fe\u4ecd\u7136\u5177\u6709\u6311\u6218\u6027\u3002\u8fd0\u6cb3\u4e0a\u7684\u8bb8\u591a\u6865\u6881\u90fd\u51fa\u73b0\u4e86\u9000\u5316\u7684\u60c5\u51b5\uff0c\u56e0\u4e3a\u5f53\u8239\u51fa\u73b0\u5728\u6865\u4e0b\u65f6\uff0c\u51e0\u4e4e<span style=\"color: #ff0000;\">\u6ca1\u6709\u4ec0\u4e48\u6709\u7528\u7684\u7279\u5f81<\/span>\uff0c\u7c7b\u4f3c\u4e8e\u7a7f\u8fc7\u4e00\u6761\u5f88\u957f\u53c8\u6beb\u65e0\u7279\u8272\u7684\u8d70\u5eca\u3002\u7531\u4e8e\u6c34\u91cc\u4e0d\u5b58\u5728\u5730\u9762\uff0c<span style=\"color: #ff0000;\">\u5e73\u9762\u7279\u5f81\u7684\u6570\u91cf\u4e5f\u660e\u663e\u8f83\u5c11<\/span>\u3002\u5f53<span style=\"color: #ff0000;\">\u9633\u5149<\/span>\u76f4\u5c04\u5230\u4f20\u611f\u5668\u7684\u89c6\u91ce\u8303\u56f4\u5185\u65f6\uff0c\u6211\u4eec\u89c2\u5bdf\u5230\u8bb8\u591a<span style=\"color: #ff0000;\">\u6fc0\u5149\u96f7\u8fbe\u7684\u9519\u8bef\u68c0\u6d4b<\/span>\uff0c\u8fd9\u53d1\u751f\u5728\u6570\u636e\u91c7\u96c6\u603b\u65f6\u957f\u768420%\u5904\u3002\u7531\u4e8e\u7535\u52a8\u8239\u4e0a\u65b9\u6865\u6881\u548c\u57ce\u5e02\u5efa\u7b51\u7684\u5b58\u5728\uff0c\u6211\u4eec\u4e5f\u53ea\u83b7\u5f97\u4e86<span style=\"color: #ff0000;\">\u95f4\u6b47\u6027\u7684GPS\u4fe1\u53f7<\/span>\u7684\u63a5\u6536\u3002<\/p>\n<p data-pid=\"yzhy_bAP\">Due to these challenges, LOAM, LIOM, and LIO-odom all fail to produce meaningful results in this test. Similar to the problems encountered in the Park dataset, LIO-GPS is unable to close the loop when returning to the robot\u2019s initial position because of the drift in altitude, which further motivates our usage of loop closure factors in LIO-SAM.<\/p>\n<p data-pid=\"pwwlJiwn\">\u7531\u4e8e\u5b58\u5728\u8fd9\u6837\u90a3\u6837\u7684\u6311\u6218\uff0cLOAM\u3001LIO-Mapping\u548cLIO-Odom\u90fd\u672a\u80fd\u5728\u8fd9\u4e2a\u6d4b\u8bd5\u4e2d\u4ea7\u751f\u6709\u610f\u4e49\u7684\u7ed3\u679c\u3002\u4e0ePark\u516c\u56ed\u6570\u636e\u96c6\u4e2d\u9047\u5230\u7684\u95ee\u9898\u7c7b\u4f3c\uff0cLIO-GPS\u7531\u4e8e\u9ad8\u5ea6\u503c\u4e0a\u51fa\u73b0\u6f02\u79fb\uff0c\u5728\u8fd4\u56de\u673a\u5668\u4eba\u7684\u521d\u59cb\u4f4d\u7f6e\u65f6\u65e0\u6cd5\u95ed\u73af\uff0c\u8fd9\u8fdb\u4e00\u6b65\u6fc0\u53d1\u6211\u4eec\u5728LIO-SAM\u4e2d\u4f7f\u7528\u95ed\u73af\u56e0\u5b50\u6765\u6d88\u9664\u8f68\u8ff9\u4e0a\u7684\u6f02\u79fb\u3002<\/p>\n<h3>6. \u57fa\u51c6\u6d4b\u8bd5\u7ed3\u679c Benchmarking Results<\/h3>\n<p>Since full GPS coverage is only available in the P ark dataset, we show the root mean square error (RMSE) results w.r.t to the GPS measurement history, which is treated as ground truth. This RMSE error does not take the error along the z axis into account. As is shown in Table III, LIO-GPS and LIO-SAM achieve similar RMSE error with respect to the GPS ground truth. Note that we could further reduce the error of these two methods by at least an order of magni- tude by giving them full access to all GPS measurements. However, full GPS access is not always available in many mapping settings. Our intention is to design a robust system that can operate in a variety of challenging environments.<\/p>\n<p data-pid=\"KgtSIePr\">\u7531\u4e8e\u5b8c\u6574\u7684GPS\u8986\u76d6\u53ea\u5728Park\u6570\u636e\u96c6\u4e2d\u53ef\u7528\uff0c\u56e0\u6b64\u6211\u4eec\u663e\u793a\u4e86\u5173\u4e8eGPS\u6d4b\u91cf\u5386\u53f2\u7684\u5747\u65b9\u6839\u8bef\u5dee(RMSE)\u7ed3\u679c\uff0c\u53ef\u4ee5\u628a\u5b83\u770b\u4f5cGround Truth\u771f\u503c\u3002\u8fd9\u91cc\u5747\u65b9\u6839\u8bef\u5dee\u6ca1\u6709\u8003\u8651\u6cbfz\u8f74\u53d1\u751f\u7684\u8bef\u5dee\u3002\u5982\u4e0b\u8868\u6240\u793a\uff0cLIO-GPS\u548cLIO-SAM\u5728GPS\u7684Ground Truth\u771f\u503c\u4e0a\u90fd\u8fbe\u5230\u4e86\u5dee\u4e0d\u591a\u7684RMSE\u5747\u65b9\u6839\u8bef\u5dee\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u8ba9\u8fd9\u4e24\u79cd\u65b9\u6cd5\u4f7f\u7528\u6240\u6709GPS\u6d4b\u91cf\u503c\uff0c\u6765\u4f7f\u5176\u5747RMSE\u65b9\u6839\u8bef\u5dee\u51cf\u5c11\u81f3\u5c11\u4e00\u4e2a\u6570\u91cf\u7ea7\u3002\u7136\u800c\uff0c\u5728\u8bb8\u591a\u5efa\u56fe\u914d\u7f6e\u4e2d\uff0c\u5b8c\u6574GPS\u89c2\u6d4b\u5e76\u4e0d\u603b\u662f\u53ef\u7528\u7684\u3002\u6211\u4eec\u7684\u76ee\u7684\u662f\u8bbe\u8ba1\u4e00\u4e2a\u53ef\u4ee5\u5728\u5404\u79cd\u5177\u6709\u6311\u6218\u6027\u7684\u73af\u5883\u4e2d\u90fd\u53ef\u8fd0\u884c\u7684\u9c81\u68d2\u7cfb\u7edf\u3002<\/p>\n<table data-draft-node=\"block\" data-draft-type=\"table\" data-size=\"normal\" data-row-style=\"normal\">\n<tbody>\n<tr>\n<th>\u6570\u636e\u96c6<\/th>\n<th>LOAM<\/th>\n<th>LIOM<\/th>\n<th>LIO-Odom<\/th>\n<th>LIO-GPS<\/th>\n<th>LIO-SAM<\/th>\n<\/tr>\n<tr>\n<td>Park<\/td>\n<td>47.31<\/td>\n<td>28.96<\/td>\n<td>23.96<\/td>\n<td>1.09<\/td>\n<td>0.96<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-pid=\"bBNXEBLY\">The average runtime for the three competing methods to register one lidar frame across all five datasets is shown in Table IV. Throughout all tests, LOAM and LIO-SAM are forced to run in real-time. In other words, some lidar frames are dropped if the runtime takes more than 100ms when the lidar rotation rate is 10Hz. LIOM is given infinite time to process every lidar frame. As is shown, LIO-SAM uses significantly less runtime than the other two methods, which makes it more suitable to be deployed on low-power embedded systems.<\/p>\n<p data-pid=\"bBNXEBLY\">LOAM\u3001LIO-Mapping\u4ee5\u53caLIO-SAM\u8fd9\u4e09\u79cd\u5bf9\u6bd4\u65b9\u6cd5\uff0c\u5728\u4e0a\u8ff05\u4e2a\u6570\u636e\u96c6\u4e0a\u5904\u7406\u4e00\u4e2a\u6fc0\u5149\u96f7\u8fbe\u70b9\u4e91\u5e27\u7684\u5e73\u5747\u8fd0\u884c\u65f6\u95f4\u5982\u4e0b\u8868\u6240\u793a\u3002\u5728\u6240\u6709\u6d4b\u8bd5\u4e2d\uff0cLOAM\u548cLIO-SAM\u662f\u5b9e\u65f6\u8fd0\u884c\u7684\u3002\u6362\u53e5\u8bdd\u8bf4\uff0c\u5f53\u6fc0\u5149\u96f7\u8fbe\u7684\u65cb\u8f6c\u901f\u7387\u4e3a10Hz\u65f6\uff0c\u5982\u679c\u8fd0\u884c\u65f6\u95f4\u9700\u8981\u8d85\u8fc7100ms\uff0c\u90a3\u4e48\u4e00\u4e9b\u6fc0\u5149\u96f7\u8fbe\u5e27\u70b9\u4e91\u5c31\u4f1a\u88ab\u4e22\u5f03\u3002\u6211\u4eec\u7ed9LIO-Mapping\u65b9\u6cd5\u65e0\u9650\u957f\u7684\u65f6\u95f4\u6765\u5904\u7406\u6bcf\u4e2a\u6fc0\u5149\u96f7\u8fbe\u5e27\u3002\u5982\u56fe\u4e2d\u6240\u793a\uff0cLIO-SAM\u7684\u8fd0\u884c\u65f6\u95f4\u660e\u663e\u5c11\u4e8e\u5176\u4ed6\u4e24\u79cd\u65b9\u6cd5\uff0c\u8fd9\u4f7f\u5f97\u5b83\u66f4\u9002\u5408\u90e8\u7f72\u5728\u4f4e\u529f\u8017\u7684\u5d4c\u5165\u5f0f\u7cfb\u7edf\u4e0a\u3002<\/p>\n<table data-draft-node=\"block\" data-draft-type=\"table\" data-size=\"normal\" data-row-style=\"normal\">\n<tbody>\n<tr>\n<th>\u6570\u636e\u96c6<\/th>\n<th>LOAM<\/th>\n<th>LIOM<\/th>\n<th>LIO-SAM<\/th>\n<th>Stress Test<\/th>\n<\/tr>\n<tr>\n<td>Rotation<\/td>\n<td>83.6<\/td>\n<td>Fail<\/td>\n<td>41.9<\/td>\n<td>13x<\/td>\n<\/tr>\n<tr>\n<td>Walking<\/td>\n<td>253.6<\/td>\n<td>339.8<\/td>\n<td>58.4<\/td>\n<td>13x<\/td>\n<\/tr>\n<tr>\n<td>Campus<\/td>\n<td>244.9<\/td>\n<td>Fail<\/td>\n<td>97.8<\/td>\n<td>10x<\/td>\n<\/tr>\n<tr>\n<td>Park<\/td>\n<td>266.4<\/td>\n<td>245.2<\/td>\n<td>100.5<\/td>\n<td>9x<\/td>\n<\/tr>\n<tr>\n<td>Amsterdam<\/td>\n<td>Fail<\/td>\n<td>Fail<\/td>\n<td>79.3<\/td>\n<td>11x<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-pid=\"DuQk-k7C\">We also perform stress tests on LIO-SAM by feeding it the data faster than real-time. The maximum data playback speed is recorded and shown in the last column of Table IV when LIO-SAM achieves similar performance without failure compared with the results when the data playback speed is 1\u00d7real-time. As is shown, LIO-SAM is able to process data faster than real-time up to 13\u00d7.<\/p>\n<p data-pid=\"DuQk-k7C\">\u6211\u4eec\u8fd8\u901a\u8fc7\u6bd4\u5b9e\u65f6\u901f\u5ea6\u66f4\u5feb\u7684\u8f93\u5165\u6570\u636e\u5230LIO-SAM\u4e2d\uff0c\u5bf9\u5176\u8fdb\u884c\u538b\u529b\u6d4b\u8bd5\u3002\u5f53LIO-SAM\u5728<span style=\"color: #ff0000;\">\u52a0\u901f\u64ad\u653e<\/span>\u4e0e1\u500d\u901f\u56de\u653e\u6570\u636e\u7684\u7ed3\u679c\u8fdb\u884c\u6bd4\u8f83\uff0c\u53ef\u4ee5\u987a\u5229\u8fbe\u5230\u76f8\u4f3c\u7684\u6027\u80fd\u65f6\uff0c\u8bb0\u5f55\u4e0b\u6700\u5927\u6570\u636e\u56de\u653e\u901f\u5ea6\u5e76\u663e\u793a\u5728\u4e0a\u8868\u7684\u6700\u540e\u4e00\u5217\u4e2d\u3002\u4ece\u56fe\u4e2d\u53ef\u4ee5\u770b\u51fa\uff0cLIO-SAM\u80fd\u591f\u4ee5\u9ad8\u8fbe<span style=\"color: #ff0000;\">13\u500d\u901f<\/span>\u6765\u5904\u7406\u6570\u636e\u3002<\/p>\n<p data-pid=\"DuQk-k7C\">We note that the runtime of LIO-SAM is more signif- icantly influenced by the density of the feature map, and less affected by the number of nodes and factors in the factor graph. For instance, the Park dataset is collected in a feature-rich environment where the vegetation results in a large quantity of features, whereas the Amsterdam dataset yields a sparser feature map. While the factor graph of the Park test consists of 4,573 nodes and 9,365 factors, the graph in the Amsterdam test has 23,304 nodes and 49,617 factors. Despite this, LIO-SAM uses less time in the Amsterdam test as opposed to the runtime in the Park test.<\/p>\n<p data-pid=\"zmcWTZ1O\">\u6211\u4eec\u6ce8\u610f\u5230\uff0cLIO-SAM\u7684<span style=\"color: #ff0000;\">\u8fd0\u884c\u65f6\u95f4<span style=\"color: #333333;\">\u660e\u663e\u4f1a<span style=\"color: #ff0000;\">\u53d7<span style=\"color: #333333;\">\u5230<\/span><\/span><\/span>\u7279\u5f81\u5730\u56fe\u5bc6\u5ea6<\/span>\u7684<span style=\"color: #ff0000;\">\u5f71\u54cd<\/span>\uff0c\u4f46\u53d7\u5230\u56e0\u5b50\u56fe\u4e2d\u8282\u70b9\u6570\u548c\u56e0\u5b50\u6570\u7684\u5f71\u54cd\u6bd4\u8f83\u5c0f\u3002\u4f8b\u5982\uff0cPark\u6570\u636e\u96c6\u662f\u5728\u4e00\u4e2a\u7279\u5f81\u4e30\u5bcc\u7684\u73af\u5883\u4e2d\u91c7\u96c6\u7684\uff0c\u5176\u4e2d\u7684\u7eff\u690d\u4ea7\u751f\u4e86\u5927\u91cf\u7684\u7279\u5f81\uff0c\u800cAmsterdam\u6570\u636e\u96c6\u4ea7\u751f\u7684\u7279\u5f81\u5730\u56fe\u76f8\u5bf9\u66f4\u7a00\u758f\u3002Park\u6570\u636e\u96c6\u5b9e\u9a8c\u4e2d\u7684\u56e0\u5b50\u56fe\u5305\u542b4573\u4e2a\u8282\u70b9\u548c9365\u4e2a\u56e0\u5b50\uff0c\u800cAmsterdam\u6570\u636e\u96c6\u5b9e\u9a8c\u4e2d\u7684\u56e0\u5b50\u56fe\u5219\u670923304\u4e2a\u8282\u70b9\u548c49617\u4e2a\u56e0\u5b50\u3002\u5c3d\u7ba1\u5982\u6b64\uff0c\u4e0ePark\u6570\u636e\u96c6\u6d4b\u8bd5\u76f8\u6bd4\uff0cLIO-SAM\u5728Amsterdam\u6570\u636e\u96c6\u6d4b\u8bd5\u4e2d\u4f7f\u7528\u7684\u65f6\u95f4\u66f4\u5c11\u3002<\/p>\n<p><a href=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/lio-sam-map3.jpg\"><img loading=\"lazy\" class=\"alignnone wp-image-10525 size-full\" src=\"http:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/lio-sam-map3.jpg\" alt=\"\" width=\"1296\" height=\"1381\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/lio-sam-map3.jpg 1296w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/lio-sam-map3-282x300.jpg 282w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/lio-sam-map3-961x1024.jpg 961w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/lio-sam-map3-768x818.jpg 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2025\/08\/lio-sam-map3-624x665.jpg 624w\" sizes=\"(max-width: 1296px) 100vw, 1296px\" \/><\/a><\/p>\n<p style=\"text-align: center;\" data-pid=\"zmcWTZ1O\">\u56fe 7\uff1aLIO-SAM \u4e0e Google Earth \u5bf9\u9f50\u7684\u5730\u56fe\u3002<\/p>\n<h1>\u516d\u3001\u7ed3\u8bba\u4e0e\u8ba8\u8bba Conclusion and Discussion<\/h1>\n<p>We have proposed LIO-SAM, a framework for tightly- coupled lidar inertial odometry via smoothing and mapping, for performing real-time state estimation and mapping in complex environments. By formulating lidar-inertial odom- etry atop a factor graph, LIO-SAM is especially suitable for multi-sensor fusion. Additional sensor measurements can easily be incorporated into the framework as new factors. Sensors that provide absolute measurements, such as a GPS, compass, or altimeter, can be used to eliminate the drift of lidar inertial odometry that accumulates over long durations, or in feature-poor environments. Place recognition can also be easily incorporated into the system. To improve with_gateway_unit real-time performance of the system, we propose a sliding window approach that marginalizes old lidar frames for scan- matching. Keyframes are selectively added to the factor graph, and new keyframes are registered only to a fixed- size set of sub-keyframes when both lidar odometry and loop closure factors are generated. This scan-matching at a local scale rather than a global scale facilitates the real- time performance of the LIO-SAM framework. The proposed method is thoroughly evaluated on datasets gathered on three platforms across a variety of environments. The results show that LIO-SAM can achieve similar or better accuracy when compared with LOAM and LIOM. Future work involves testing the proposed system on unmanned aerial vehicles.<\/p>\n<p data-pid=\"GrBVfzgp\">\u6211\u4eec\u63d0\u51fa\u4e86<b>LIO-SAM\uff0c\u4e00\u4e2a\u901a\u8fc7\u5e73\u6ed1\u548c\u5efa\u56fe\u5b9e\u73b0\u7d27\u8026\u5408\u6fc0\u5149\u96f7\u8fbe\u60ef\u6027\u91cc\u7a0b\u8ba1\u6846\u67b6\uff0c\u7528\u4e8e<span style=\"color: #ff0000;\">\u590d\u6742\u73af\u5883<\/span>\u4e2d\u6267\u884c\u5b9e\u65f6\u72b6\u6001\u4f30\u8ba1\u548c\u5efa\u56fe<\/b>\u3002<b>\u901a\u8fc7\u5728\u56e0\u5b50\u56fe\u4e0a\u5efa\u7acb\u6fc0\u5149\u96f7\u8fbe-\u60ef\u6027\u91cc\u7a0b\u8ba1\uff0cLIO-SAM\u7279\u522b\u9002\u7528\u4e8e\u591a\u4f20\u611f\u5668\u878d\u5408<\/b>\u3002<b>\u989d\u5916\u7684\u4f20\u611f\u5668\u6d4b\u91cf\u503c\u53ef\u4ee5\u5f88\u5bb9\u6613\u5730\u4f5c\u4e3a\u65b0\u7684\u56e0\u5b50\u52a0\u5165\u5230\u6846\u67b6\u4e2d\u3002\u63d0\u4f9b\u7edd\u5bf9\u6d4b\u91cf\u7684\u4f20\u611f\u5668<\/b>\uff0c\u6bd4\u5982<span style=\"color: #ff0000;\">GPS<\/span>\u3001\u7f57\u76d8\u6307\u5357\u76d8\u6216\u9ad8\u5ea6\u8ba1\uff0c\u53ef\u4ee5\u7528\u6765<b><span style=\"color: #ff0000;\">\u6d88\u9664<\/span>\u6fc0\u5149\u96f7\u8fbe\u60ef\u6027\u91cc\u7a0b\u8ba1\u5728<span style=\"color: #ff0000;\">\u957f\u65f6\u95f4\u8fd0\u884c<\/span>\u6216<span style=\"color: #ff0000;\">\u7279\u5f81\u6bd4\u8f83\u5c11<\/span>\u7684\u73af\u5883\u4e2d\u7d2f\u8ba1\u7684<span style=\"color: #ff0000;\">\u8f68\u8ff9\u6f02\u79fb<\/span><\/b>\u3002\u4f4d\u7f6e\u8bc6\u522b\u4e5f\u53ef\u4ee5\u5f88\u5bb9\u6613\u5730\u878d\u5165\u5230\u7cfb\u7edf\u4e2d\u3002\u4e3a\u4e86\u63d0\u9ad8\u7cfb\u7edf\u7684\u5b9e\u65f6\u6027\u80fd\uff0c\u6211\u4eec<b>\u63d0\u51fa\u4e86\u4e00\u79cd\u6ed1\u52a8\u7a97\u53e3\u65b9\u6cd5\uff0c\u8fb9\u7f18\u5316\u65e7\u7684\u6fc0\u5149\u96f7\u8fbe\u5e27\u8fdb\u884cscan-matching\u626b\u63cf\u5339\u914d<\/b>\u3002<b>\u5173\u952e\u5e27\u88ab\u6709\u9009\u62e9\u6027\u5730\u6dfb\u52a0\u5230\u56e0\u5b50\u56fe\u4e2d\uff0c\u5e76\u4e14\u5f53\u540c\u65f6\u4ea7\u751f\u6fc0\u5149\u96f7\u8fbe\u91cc\u7a0b\u8ba1\u56e0\u5b50\u548c\u95ed\u73af\u56e0\u5b50\u65f6\uff0c\u65b0\u7684\u5173\u952e\u5e27\u53ea\u5173\u8054\u5230\u56fa\u5b9a\u5927\u5c0f\u7684\u5b50\u5173\u952e\u5e27\u96c6\u4e2d<\/b>\u3002\u8fd9\u79cd\u5c40\u90e8\u5c3a\u5ea6\u800c\u4e0d\u662f\u5168\u5c40\u5c3a\u5ea6\u7684scan-match\u626b\u63cf\u5339\u914d\u65b9\u6cd5\u63d0\u9ad8\u4e86LIO-SAM\u7b97\u6cd5\u6846\u67b6\u7684<span style=\"color: #ff0000;\">\u5b9e\u65f6\u6027\u80fd<\/span>\u3002\u63d0\u51fa\u7684LIO-SAM\u65b9\u6cd5\u5728\u4e0d\u540c\u73af\u5883\u7684\u4e09\u4e2a\u79fb\u52a8\u5e73\u53f0\u4e2d\u91c7\u96c6\u7684\u6570\u636e\u96c6\u4e0a\u8fdb\u884c\u4e86\u5168\u9762\u7684\u8bc4\u4f30\u3002\u7ed3\u679c\u8868\u660e\uff0c<b>\u4e0eLOAM\u548cLIO-Mapping\u76f8\u6bd4\uff0cLIO-SAM\u53ef\u4ee5\u83b7\u5f97\u76f8\u4f3c\u6216\u66f4\u597d\u7684<span style=\"color: #ff0000;\">\u7cbe\u5ea6<\/span><\/b>\u3002\u672a\u6765\u7684\u5de5\u4f5c\u5305\u62ec\u5728\u65e0\u4eba\u673a\u4e0a\u6d4b\u8bd5\u6211\u4eec\u63d0\u51fa\u7684LIO-SAM\u7cfb\u7edf\u3002<\/p>\n<h1 data-pid=\"GrBVfzgp\">\u4e03\u3001\u53c2\u8003\u6587\u732e<\/h1>\n<p data-pid=\"GrBVfzgp\">[1] J. Zhang \u548c S. Singh\uff0c\u201c\u4f4e\u6f02\u79fb\u5b9e\u65f6\u6fc0\u5149\u96f7\u8fbe\u91cc\u7a0b\u8ba1\u4e0e\u5730\u56fe\u7ed8\u5236\u201d\uff0c\u300a\u81ea\u4e3b\u673a\u5668\u4eba\u300b\uff0c\u7b2c 41(2) \u5377\uff1a401-416\uff0c2017 \u5e74\u3002<br \/>\n[2] A. Geiger\u3001P. Lenz \u548c R. Urtasun\uff0c\u201c\u6211\u4eec\u51c6\u5907\u597d\u8fce\u63a5\u81ea\u52a8\u9a7e\u9a76\u4e86\u5417\uff1fKITTI \u89c6\u89c9\u57fa\u51c6\u5957\u4ef6\u201d\uff0cIEEE \u56fd\u9645\u8ba1\u7b97\u673a\u89c6\u89c9\u4e0e\u6a21\u5f0f\u8bc6\u522b\u4f1a\u8bae\uff0c\u7b2c 3354-3361 \u9875\uff0c2012 \u5e74\u3002<br \/>\n[3] P.J. Besl \u548c N.D. McKay\uff0c\u201c\u4e00\u79cd 3D \u5f62\u72b6\u914d\u51c6\u65b9\u6cd5\u201d\uff0c\u300aIEEE \u6a21\u5f0f\u5206\u6790\u4e0e\u673a\u5668\u667a\u80fd\u5b66\u62a5\u300b\uff0c\u7b2c14(2): 239-256, 1992\u3002<br \/>\n[4] A. Segal\u3001D. Haehnel \u548c S. Thrun\uff0c\u201c\u5e7f\u4e49 ICP\u201d\uff0c\u300a\u673a\u5668\u4eba\u5b66\uff1a\u79d1\u5b66\u4e0e\u7cfb\u7edf\u300b\u8bba\u6587\u96c6\uff0c2009 \u5e74\u3002<br \/>\n[5] W.S. Grant\u3001R.C. Voorhies \u548c L. Itti\uff0c\u201c\u5728 LiDAR \u70b9\u4e91\u4e2d\u67e5\u627e\u5e73\u9762\u4ee5\u5b9e\u73b0\u5b9e\u65f6\u914d\u51c6\u201d\uff0cIEEE\/RSJ \u667a\u80fd\u673a\u5668\u4eba\u4e0e\u7cfb\u7edf\u56fd\u9645\u4f1a\u8bae\uff0c\u7b2c 4347-4354 \u9875\uff0c2013 \u5e74\u3002<br \/>\n[6] M. Velas\u3001M. Spanel \u548c A. Herout\uff0c\u201c\u5229\u7528\u9886\u7ebf\u6bb5\u4ece Velodyne \u70b9\u4e91\u5feb\u901f\u4f30\u8ba1\u91cc\u7a0b\u201d\uff0cIEEE \u673a\u5668\u4eba\u4e0e\u81ea\u52a8\u5316\u56fd\u9645\u4f1a\u8bae\uff0c\u7b2c 4486-4495 \u9875\uff0c2016 \u5e74\u3002<br \/>\n[7] T. Shan \u548c B. Englot\uff0c\u201cLeGO-LOAM\uff1a\u8f7b\u91cf\u7ea7\u4e14\u9488\u5bf9\u5730\u9762\u4f18\u5316\u7684\u53ef\u53d8\u5730\u5f62\u6fc0\u5149\u96f7\u8fbe\u91cc\u7a0b\u8ba1\u548c\u5236\u56fe\u201d\uff0cIEEE\/RSJ \u667a\u80fd\u673a\u5668\u4eba\u4e0e\u7cfb\u7edf\u56fd\u9645\u4f1a\u8bae\uff0c\u7b2c 4758-4765 \u9875\uff0c2018 \u5e74\u3002<br \/>\n[8] T. Shan\u3001J. Wang\u3001K. Doherty \u548c B. Englot\uff0c\u201c\u7528\u4e8e\u5730\u5f62\u53ef\u7a7f\u8d8a\u6027\u6d4b\u7ed8\u7684\u8d1d\u53f6\u65af\u5e7f\u4e49\u6838\u63a8\u7406\u201d\uff0c\u673a\u5668\u4eba\u5b66\u4e60\u4f1a\u8bae\uff0c\u7b2c 829-838 \u9875\uff0c2018 \u5e74\u3002<br \/>\n[9] S. Lynen\u3001M.W. Achtelik\u3001S. Weiss\u3001M. Chli \u548c R. Siegwart\uff0c\u201c\u4e00\u79cd\u5e94\u7528\u4e8e\u5fae\u578b\u98de\u884c\u5668\u5bfc\u822a\u7684\u9c81\u68d2\u6a21\u5757\u5316\u591a\u4f20\u611f\u5668\u878d\u5408\u65b9\u6cd5\u201d\uff0cIEEE\/RSJ \u667a\u80fd\u673a\u5668\u4eba\u4e0e\u7cfb\u7edf\u56fd\u9645\u4f1a\u8bae\uff0c\u7b2c 3923-3929 \u9875\uff0c2013 \u5e74\u3002<br \/>\n[10] S. Yang\u3001X. Zhu\u3001X. Nian\u3001L. Feng\u3001X. Qu \u548c T. Mal\uff0c\u201c\u4e00\u79cd\u7528\u4e8e\u57ce\u5e02\u89c4\u6a21\u6fc0\u5149\u96f7\u8fbe\u6d4b\u7ed8\u7684\u9c81\u68d2\u4f4d\u59ff\u56fe\u65b9\u6cd5\u201d\uff0cIEEE\/RSJ \u667a\u80fd\u673a\u5668\u4eba\u4e0e\u7cfb\u7edf\u56fd\u9645\u4f1a\u8bae\uff0c\u7b2c 1175-1182 \u9875\uff0c2018 \u5e74\u3002<br \/>\n[11] M. Demir \u548cK. Fujimura\uff0c\u201c\u57ce\u5e02\u73af\u5883\u4e2d\u4f4e\u67b6\u591a\u6fc0\u5149\u96f7\u8fbe\u7684\u7a33\u5065\u5b9a\u4f4d\u201d\uff0cIEEE\u667a\u80fd\u4ea4\u901a\u7cfb\u7edf\u4f1a\u8bae\uff0c\u7b2c3288-3293\u9875\uff0c2019\u5e74\u3002<br \/>\n[12] Y. Gao\u3001S. Liu\u3001M. Atia\u548cA. Noureldin\uff0c\u201c\u57fa\u4e8e\u6df7\u5408\u626b\u63cf\u5339\u914d\u7b97\u6cd5\u7684\u57ce\u5e02\u548c\u5ba4\u5185\u73af\u5883INS\/GPS\/\u6fc0\u5149\u96f7\u8fbe\u96c6\u6210\u5bfc\u822a\u7cfb\u7edf\u201d\uff0c\u4f20\u611f\u5668\uff0c\u7b2c15\u5377(9): 23286-23302\uff0c2015\u5e74\u3002<br \/>\n[13] S. Hening\u3001C.A. Ippolito\u3001K.S. Krishnakumar\u3001V. Stepanyan \u548c M. Teodorescu\uff0c\u201c\u57ce\u5e02 GPS \u4fe1\u53f7\u9000\u5316\u73af\u5883\u4e2d\u65e0\u4eba\u673a\u7684 3D LiDAR SLAM \u4e0e GPS\/INS \u96c6\u6210\u201d\uff0cAIAA Infotech@Aerospace\u4f1a\u8bae\uff0c\u7b2c 448-457 \u9875\uff0c2017 \u5e74\u3002<br \/>\n[14] C. Chen\u3001H. Zhu\u3001M. Li \u548c S. You\uff0c\u201c\u4ece\u57fa\u4e8e\u6ee4\u6ce2\u548c\u57fa\u4e8e\u4f18\u5316\u7684\u89d2\u5ea6\u56de\u987e\u89c6\u89c9-\u60ef\u6027\u540c\u6b65\u5b9a\u4f4d\u4e0e\u5730\u56fe\u6784\u5efa\u201d\uff0cRobotics\uff0cvol. 7(3):45, 2018\u3002<br \/>\n[15] C. Le Gentil\u3001T. Vidal-Calleja \u548c S. Huang\uff0c\u201cIN2LAMA\uff1a\u60ef\u6027\u6fc0\u5149\u96f7\u8fbe\u5b9a\u4f4d\u4e0e\u5efa\u56fe\u201d\uff0cIEEE \u673a\u5668\u4eba\u4e0e\u81ea\u52a8\u5316\u56fd\u9645\u4f1a\u8bae\uff0c\u7b2c 6388-6394 \u9875\uff0c2019 \u5e74\u3002<br \/>\n[16] C. Qin\u3001H. Ye\u3001C.E. Pranata\u3001J. Han\u3001S. Zhang \u548c Ming Liu\uff0c\u201cR-LINS\uff1a\u4e00\u79cd\u7528\u4e8e\u7a33\u5065\u9ad8\u6548\u5bfc\u822a\u7684\u673a\u5668\u4eba\u4e2d\u5fc3\u6fc0\u5149\u96f7\u8fbe\u60ef\u6027\u72b6\u6001\u4f30\u8ba1\u5668\u201d\uff0carXiv:1907.02233\uff0c2019 \u5e74\u3002<br \/>\n[17] H. Ye\u3001Y. Chen \u548c M. Liu\uff0c\u201c\u7d27\u8026\u5408 3D \u6fc0\u5149\u96f7\u8fbe\u60ef\u6027\u91cc\u7a0b\u8ba1\u4e0e\u5efa\u56fe\u201d\uff0cIEEE \u673a\u5668\u4eba\u4e0e\u81ea\u52a8\u5316\u56fd\u9645\u4f1a\u8bae\uff0c\u7b2c 3144-3150 \u9875\uff0c 2019\u3002<br \/>\n[18] F. Dellaert \u548c M. Kaess\uff0c\u201c\u673a\u5668\u4eba\u611f\u77e5\u7684\u56e0\u5b50\u56fe\u201d\uff0c\u300a\u673a\u5668\u4eba\u5b66\u57fa\u7840\u4e0e\u8d8b\u52bf\u300b\uff0c\u7b2c 6 \u5377(1-2): 1-139\uff0c2017 \u5e74\u3002<br \/>\n[19] M. Kaess\u3001H. Johannsson\u3001R. Roberts\u3001V. Ila\u3001J.J. Leonard \u548c F. Dellaert\uff0c\u201ciSAM2\uff1a\u4f7f\u7528\u8d1d\u53f6\u65af\u6811\u8fdb\u884c\u589e\u91cf\u5e73\u6ed1\u548c\u6620\u5c04\u201d\uff0c\u300a\u56fd\u9645\u673a\u5668\u4eba\u7814\u7a76\u6742\u5fd7\u300b\uff0c\u7b2c 31 \u5377(2): 216-235\uff0c2012 \u5e74\u3002<br \/>\n[20] C. Forster\u3001L. Carlone\u3001F. Dellaert \u548c D. Scaramuzza\uff0c\u201c\u5b9e\u65f6\u89c6\u89c9\u60ef\u6027\u91cc\u7a0b\u8ba1\u7684\u6d41\u5f62\u4e0a\u9884\u79ef\u5206\u201d\uff0c\u300aIEEE \u673a\u5668\u4eba\u5b66\u62a5\u300b\uff0c\u7b2c 6 \u5377(2): 216-235\uff0c2012 \u5e74\u3002 33(1): 1-21, 2016\u3002<br \/>\n[21] T. Moore \u548c D. Stouch\uff0c\u201c\u673a\u5668\u4eba\u64cd\u4f5c\u7cfb\u7edf\u7684\u5e7f\u4e49\u6269\u5c55\u5361\u5c14\u66fc\u6ee4\u6ce2\u5668\u5b9e\u73b0\u201d\uff0c\u667a\u80fd\u81ea\u4e3b\u7cfb\u7edf\uff0c\u7b2c 13 \u5377\uff1a335-348\uff0c2016\u3002<br \/>\n[22] G. Kim \u548c A. Kim\uff0c\u201c\u626b\u63cf\u4e0a\u4e0b\u6587\uff1a3D \u70b9\u4e91\u5730\u56fe\u4e2d\u4f4d\u7f6e\u8bc6\u522b\u7684\u81ea\u6211\u4e2d\u5fc3\u7a7a\u95f4\u63cf\u8ff0\u7b26\u201d\uff0cIEEE\/RSJ \u667a\u80fd\u673a\u5668\u4eba\u4e0e\u7cfb\u7edf\u56fd\u9645\u4f1a\u8bae\uff0c\u7b2c 4802-4809 \u9875\uff0c2018\u3002<br \/>\n[23] J. Guo\u3001P. VK Borges\u3001C. Park \u548c A. Gawel\uff0c\u201c\u4f7f\u7528\u6fc0\u5149\u96f7\u8fbe\u5f3a\u5ea6\u200b\u200b\u8fdb\u884c\u7a33\u5065\u4f4d\u7f6e\u8bc6\u522b\u7684\u5c40\u90e8\u63cf\u8ff0\u7b26\u201d\uff0cIEEE \u673a\u5668\u4eba\u4e0e\u81ea\u52a8\u5316\u5feb\u62a5\uff0c\u7b2c 13 \u5377\uff1a335-348\uff0c2016\u3002 4(2): 1470-1477, 2019\u3002<br \/>\n[24] M. Quigley\u3001K. Conley\u3001B. Gerkey\u3001J. Faust\u3001T. Foote\u3001J. Leibs\u3001<br \/>\nR. Wheeler \u548c A.Y. Ng\uff0c\u201cROS\uff1a\u4e00\u79cd\u5f00\u6e90\u673a\u5668\u4eba\u64cd\u4f5c\u7cfb\u7edf\u201d\uff0cIEEE ICRA \u5f00\u6e90\u8f6f\u4ef6\u7814\u8ba8\u4f1a\uff0c2009\u3002<br \/>\n[25] T. Qin\u3001P. Li \u548c S. Shen\uff0c\u201cVins-mono\uff1a\u4e00\u79cd\u7a33\u5065\u4e14\u591a\u529f\u80fd\u7684\u5355\u76ee\u89c6\u89c9\u60ef\u6027\u72b6\u6001\u4f30\u8ba1\u5668\u201d\uff0cIEEE \u673a\u5668\u4eba\u5b66\u62a5\uff0c\u7b2c 34(4): 1004-1020, 2018\u3002<\/p>\n<p data-pid=\"GrBVfzgp\">yan 25.8.30<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u6587\u5bf9LIO-SAM:Tightly-coupled Lidar Inertial Odometry via  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1409],"tags":[1453],"_links":{"self":[{"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/10513"}],"collection":[{"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10513"}],"version-history":[{"count":4,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/10513\/revisions"}],"predecessor-version":[{"id":10684,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/10513\/revisions\/10684"}],"wp:attachment":[{"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10513"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10513"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}