{"id":9414,"date":"2024-11-07T01:24:59","date_gmt":"2024-11-06T17:24:59","guid":{"rendered":"https:\/\/yanjingang.com\/blog\/?p=9414"},"modified":"2025-07-16T16:59:09","modified_gmt":"2025-07-16T08:59:09","slug":"h30-imu-pandar40p-lidar%e8%81%94%e5%90%88%e6%a0%87%e5%ae%9a","status":"publish","type":"post","link":"https:\/\/yanjingang.com\/blog\/?p=9414","title":{"rendered":"Pandar40P Lidar + H30 IMU \u5916\u53c2\u6807\u5b9a"},"content":{"rendered":"<p>\u5728\u4f7f\u7528LIO-SAM\u8fdb\u884cLidar+IMU\u5efa\u56fe\u4e4b\u524d\uff0c\u9700\u8981\u505a\u4e24\u4e2a\u6807\u5b9a\u5de5\u4f5c\uff0cIMU\u5185\u53c2\u6807\u5b9a\u548cLidar-IMU\u5916\u53c2\u6807\u5b9a\u3002IMU\u5185\u53c2\u6807\u5b9a\uff0c\u53ef\u4ee5\u89e3\u51b3\u5176\u56fa\u6709\u7684\u6d4b\u91cf\u8bef\u5dee\u95ee\u9898\u3002Lidar\u548cIMU\u7684\u5916\u53c2\u6807\u5b9a(\u4ee5\u4e0b\u7b80\u79f0\u201c\u5916\u53c2\u6807\u5b9a\u201d)\uff0c\u76ee\u7684\u662f\u83b7\u5f97\u6fc0\u5149\u96f7\u8fbe\u548cIMU\u4e4b\u95f4\u7684\u4f4d\u7f6e\u8f6c\u6362\u5173\u7cfb\uff0c\u5176\u4e2d\u5305\u62ec\u5e73\u79fb\u5173\u7cfb\u548c\u65cb\u8f6c\u5173\u7cfb\uff0c\u5bf9\u5e94\u6700\u7ec8\u8f93\u51fa\u7ed3\u679c\u4e2d\u7684\u5e73\u79fb\u5411\u91cf\u4e0e\u65cb\u8f6c\u77e9\u9635\u3002<\/p>\n<p>\u6807\u5b9a\u73af\u5883\u5982\u4e0b\uff1a<\/p>\n<ul>\n<li>OS\uff1aUbuntu20.04<\/li>\n<li>ROS\uff1a1 Noetic\uff08\u9009ROS1\u7684\u539f\u56e0\u662f\u5927\u591a\u6570\u6807\u5b9a\u5de5\u5177\u90fd\u6ca1\u6709ROS2\u7248\u672c\uff09<\/li>\n<li>IMU\uff1aH30<\/li>\n<li>Lidar\uff1aHesai Pandar40P<\/li>\n<\/ul>\n<h1>\u4e00\u3001IMU\u5185\u53c2\u6807\u5b9a<\/h1>\n<p>IMU\u7684\u5185\u53c2\u6807\u5b9a\u4e3b\u8981\u5206\u4e3a\u786e\u5b9a\u6027\u53c2\u6570\u6807\u5b9a\u548c\u4e0d\u786e\u5b9a\u6027\u53c2\u6570\u6807\u5b9a\uff1a<\/p>\n<ul>\n<li>\u786e\u5b9a\u6027\u53c2\u6570\u6807\u5b9a\uff1a\u5305\u62ec\u5c3a\u5ea6\u3001\u5750\u6807\u7cfb\u975e\u6b63\u4ea4\uff08\u5b89\u88c5\u8bef\u5dee\uff09\u3001\u4f20\u611f\u5668\u504f\u7f6e, \u4ee3\u8868\u6027\u5de5\u5177imu_tk\u3002<\/li>\n<li>\u4e0d\u786e\u5b9a\u6027\u53c2\u6570\u6807\u5b9a\uff1a\u5305\u62ec\u91cf\u5316\u566a\u58f0\uff08Q\uff09\u3001\u89d2\u5ea6\u968f\u673a\u6e38\u8d70\uff08N\uff09\u3001\u96f6\u504f\u7a33\u5b9a\u6027\uff08B\uff09\u3001\u89d2\u901f\u7387\u968f\u673a\u6e38\u8d70\uff08K\uff09\u3001\u901f\u7387\u659c\u5761\uff08R\uff09\uff0c\u4ee3\u8868\u6027\u5de5\u5177imu_utils\u3002<\/li>\n<\/ul>\n<p><a href=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-inex.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-9459\" src=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-inex.png\" alt=\"\" width=\"798\" height=\"640\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-inex.png 798w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-inex-300x241.png 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-inex-768x616.png 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-inex-624x500.png 624w\" sizes=\"(max-width: 798px) 100vw, 798px\" \/><\/a><\/p>\n<p>IMU\u81ea\u8eab\u7684\u91cd\u7f6e\u6821\u51c6\u5df2\u7ecf\u901a\u8fc7\u5382\u5546\u5de5\u5177\u5b8c\u6210\uff0c\u8fd9\u91cc\u4e3b\u8981\u8fd8\u9700\u8981\u91c7\u7528imu_utils\u5de5\u5177\u5bf9IMU\u8fdb\u884c\u5185\u53c2\u6807\u5b9a\u3002imu_utils\u7684\u6838\u5fc3\u65e8\u5728\u901a\u8fc7Allan\u65b9\u5dee\u5206\u6790\u6765\u8bc4\u4f30IMU\uff08\u52a0\u901f\u5ea6\u8ba1\u548c\u9640\u87ba\u4eea\uff09\u7684\u968f\u673a\u8bef\u5dee\u7279\u6027\u3002\u5b83\u4e0d\u4ec5\u63d0\u4f9b\u4e86C++\u5b9e\u73b0\u7684Allan\u65b9\u5dee\u5de5\u5177\uff0c\u8fd8\u652f\u6301\u4ece\u9759\u6001\u6d4b\u8bd5\u4e2d\u6536\u96c6\u7684\u6570\u636e\u8fdb\u884c\u7ec6\u81f4\u7684\u566a\u58f0\u5206\u6790\u3002\u7528\u6237\u80fd\u591f\u901a\u8fc7\u8fd9\u4e2a\u5de5\u5177\u5305\u5bf9\u4e0d\u540c\u578b\u53f7\u7684IMU\uff08\u5982ADIS16448\u30013DM-GX4\u7b49\uff09\u5728\u9759\u7f6e\u72b6\u6001\u4e0b\u7684\u6570\u636e\u8fdb\u884c\u957f\u8fbe\u4e24\u5c0f\u65f6\u7684\u91c7\u96c6\uff0c\u8fdb\u800c\u5206\u6790\u201c\u767d\u566a\u58f0\u201d\u3001\u201c\u504f\u7f6e\u4e0d\u7a33\u5b9a\u6027\u201d\u7b49\u5173\u952e\u53c2\u6570\uff0c\u8fd9\u4e9b\u5bf9\u4e8e\u5bfc\u822a\u7cfb\u7edf\u548c\u81ea\u52a8\u9a7e\u9a76\u5e94\u7528\u81f3\u5173\u91cd\u8981\u3002\u901a\u8fc7\u4f7f\u7528imu_utils\uff0c\u7814\u7a76\u8005\u548c\u5de5\u7a0b\u5e08\u80fd\u591f\u66f4\u6709\u6548\u5730\u6821\u51c6\u548c\u9009\u62e9\u9002\u5408\u4ed6\u4eec\u5e94\u7528\u7684IMU\uff0c\u786e\u4fdd\u4f20\u611f\u5668\u6570\u636e\u7684\u53ef\u9760\u6027\u548c\u7cbe\u786e\u5ea6\u3002\u65e0\u8bba\u662f\u65e0\u4eba\u673a\u3001\u81ea\u52a8\u9a7e\u9a76\u8f66\u8f86\u8fd8\u662f\u673a\u5668\u4eba\u9886\u57df\uff0cimu_utils\u90fd\u662f\u4e00\u4e2a\u4e0d\u53ef\u6216\u7f3a\u7684\u5de5\u5177\u7bb1\u3002<\/p>\n<p>imu\u65b9\u5dee\u6536\u655b\u793a\u610f\u56fe\uff1a<\/p>\n<ul>\n<li>\u5de6\u5217\uff1a\u5206\u522b\u662f\u52a0\u901f\u5ea6\u8ba1\u548c\u9640\u87ba\u7684allen\u65b9\u5dee\uff08\u53ef\u4ee5\u7c97\u7565\u7684\u5224\u65ad\u51fa\u6211\u4eec\u9700\u8981\u9759\u7f6eimu\u7684\u65f6\u95f4\uff0c\u5373\u521d\u59cb\u5316\u65f6\u95f4\uff09<\/li>\n<li>\u53f3\u5217\uff1a\u6839\u636e\u6807\u5b9a\u83b7\u5f97\u7684imu\u5185\u53c2\uff0c\u4eff\u771f\u4ea7\u751f\u7684allan\u65b9\u5dee\u56fe<\/li>\n<\/ul>\n<p><a href=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-inext.png\"><img loading=\"lazy\" class=\"alignnone size-large wp-image-9457\" src=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-inext-1024x547.png\" alt=\"\" width=\"625\" height=\"334\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-inext-1024x547.png 1024w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-inext-300x160.png 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-inext-768x410.png 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-inext-1536x820.png 1536w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-inext-2048x1093.png 2048w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-inext-624x333.png 624w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<h4>1. \u7f16\u8bd1imu_utils\u5de5\u5177<\/h4>\n<pre class=\"pure-highlightjs\"><code class=\"\"># 1. ceres-solver\r\nsudo apt-get install libdw-dev libceres-dev\r\n\r\n# 2. download code\r\nmkdir -p ~\/catkin_calib\/src\r\ncd ~\/catkin_calib\/src\r\ngit clone git@github.com:yanjingang\/code_utils.git\r\ncd ..\r\n\r\n# 3. edit for build bug fix \r\nvim src\/code_utils\/src\/sumpixel_test.cpp\r\n    row2: #include \"backward.hpp\" \u6539\u4e3a #include \"code_utils\/backward.hpp\" \r\n    row 84\/107: CV_LOAD_IMAGE_GRAYSCALE \u6539\u4e3a cv::IMREAD_GRAYSCALE\r\n    row 94\/117: CV_MINMAX \u6539\u4e3a CV_MMX\r\nvim src\/code_utils\/src\/mat_io_test.cpp\r\n    row 33: CV_LOAD_IMAGE_UNCHANGED \u6539\u4e3a cv::IMREAD_UNCHANGED\r\n\r\n# 4. build\r\ncatkin_make -DCATKIN_WHITELIST_PACKAGES=code_utils\r\ncatkin_make -DCATKIN_WHITELIST_PACKAGES=imu_tuils<\/code><\/pre>\n<h4>2. \u91c7\u96c6IMU\u6570\u636e<\/h4>\n<p>\u6253\u5f00IMU\u540e\uff0c\u7b49\u5f8510\u5206\u949f\u518d\u5f00\u59cb\u5f55\u5236\uff08\u4e0a\u753510\u5206\u949f\u4e4b\u5185\u8bef\u5dee\u4f1a\u8f83\u5927\uff09\uff0c\u5f55\u5236\u65f6\u5e94\u4fdd\u6301IMU\u5b8c\u5168\u9759\u6b62\u4e0d\u52a8\uff0c\u65f6\u957f\u5efa\u8bae\u81f3\u5c11\u4e24\u5c0f\u65f6\u5de6\u53f3\uff0c\u5426\u5219\u6807\u5b9a\u51fa\u6765\u7684\u53c2\u6570\u4e0d\u591f\u51c6\u786e\u3002<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\"># \u542f\u52a8IMU\r\nroslaunch yesense_imu yesense_ahrs.launch\r\n\r\n# \u5f55\u5236bag\r\nrosbag record -O h30.bag \/sensor\/imu\/data\r\n\r\n# \u67e5\u770b\u5305\u4fe1\u606f\r\nrosbag info h30.bag \r\n    path: h30.bag\r\n    version: 2.0\r\n    duration: 9hr 41:47s (34907s)\r\n    start: Nov 04 2024 23:48:21.41 (1730735301.41)\r\n    end: Nov 05 2024 09:30:08.77 (1730770208.77)\r\n    size: 2.5 GB\r\n    messages: 6981520\r\n    compression: none [3249\/3249 chunks]\r\n    types: sensor_msgs\/Imu [6a62c6daae103f4ff57a132d6f95cec2]\r\n    topics: \/sensor\/imu\/data 6981520 msgs : sensor_msgs\/Imu<\/code><\/pre>\n<h4>3. \u5185\u53c2\u6807\u5b9a<\/h4>\n<h6>3.1 \u914d\u7f6eIMU\u6807\u5b9a\u53c2\u6570<\/h6>\n<pre class=\"pure-highlightjs\"><code class=\"\"># conf\r\nvim src\/imu_utils\/launch\/<span style=\"color: #ff0000;\">yesense_h30.launch<\/span>\r\n    &lt;node pkg=\"imu_utils\" type=\"imu_an\" name=\"imu_an\" output=\"screen\"&gt;\r\n        &lt;param name=\"imu_topic\" type=\"string\" value= \"<span style=\"color: #ff0000;\">\/sensor\/imu\/data<\/span>\"\/&gt;\r\n        &lt;param name=\"imu_name\" type=\"string\" value= \"<span style=\"color: #ff0000;\">yesense_h30<\/span>\"\/&gt;\r\n        &lt;param name=\"data_save_path\" type=\"string\" value= \"$(find imu_utils)\/<span style=\"color: #ff0000;\">data\/yesense_h30\/<\/span>\"\/&gt;\r\n        &lt;param name=\"max_time_min\" type=\"int\" value= \"200\"\/&gt;\r\n        &lt;param name=\"max_cluster\" type=\"int\" value= \"100\"\/&gt;\r\n    &lt;\/node&gt;\r\n\r\n# build\r\ncatkin_make -DCATKIN_WHITELIST_PACKAGES=imu_utils<\/code><\/pre>\n<ul>\n<li>imu_topic\uff1a\u5f55\u5236\u7684\u6570\u636e\u5305\u4e2d\u7684imu\u8bdd\u9898\uff0c\u53ef\u4f7f\u7528 rosbag info ***.bag \u547d\u4ee4\u67e5\u770b\u5bf9\u5e94\u7684imu\u8bdd\u9898\uff0c\u5e76\u6ce8\u610f\u4ee5 \/ \u5f00\u5934\uff0c\u867d\u7136info\u547d\u4ee4\u4e0d\u663e\u793a\u659c\u6760\uff0c\u4f46\u4e5f\u5fc5\u987b\u52a0\u4e0a\u659c\u6760\u3002<\/li>\n<li>imu_name\uff1a\u4f60\u81ea\u5df1\u7684imu\u540d\u5b57\uff0c\u53ef\u968f\u4fbf\u8d77\u540d\u3002<br \/>\ndata_save_path\uff1a\u4f60\u671f\u671b\u4fdd\u5b58\u7684\u6807\u5b9a\u7ed3\u679c\u7684\u5177\u4f53\u8def\u5f84\uff0c\u7531\u4e8eimu_utils\/data\u76ee\u5f55\u4e0b\u9ed8\u8ba4\u6709\u5f88\u591a\u6587\u4ef6\uff0c\u540e\u7eed\u6807\u5b9a\u4ee5\u540e\u4e0d\u597d\u5224\u65ad\u7ed3\u679c\u6587\u4ef6\u7684\u751f\u6210\uff0c\u66f4\u6539\u8def\u5f84\u4ee5\u65b9\u4fbf\u540e\u7eed\u5224\u65ad\u6807\u5b9a\u7ed3\u679c\u662f\u5426\u751f\u6210\uff1b\u53e6\u5916\u6ce8\u610f\u4ee5 \/ \u7ed3\u5c3e\uff0c\u4ee3\u8868\u5728\u6b64\u76ee\u5f55\u4e0b\u751f\u6210\u3002<\/li>\n<li>max_time_min\uff1a\u5f55\u5236\u7684\u6570\u636e\u5305\u7684\u65f6\u957f\uff0c\u5355\u4f4d\u5206\u949f\uff0c120\u4ee3\u88682h\uff0c\u53ef\u4f7f\u7528 rosbag info ***.bag \u547d\u4ee4\u67e5\u770b\u6570\u636e\u5305\u65f6\u957f(duration)\uff0c\u5e76\u6ce8\u610f\u5728\u8fd9\u91cc\u8bbe\u7f6e\u7684\u5206\u949f\u6570\u4e0d\u80fd\u9ad8\u4e8e\u6570\u636e\u5305\u7684\u5b9e\u9645\u65f6\u95f4\uff08\u6bd4\u5982\u6211\u7684\u6570\u636e\u5305duration\u662f1h59min59s\uff0c\u90a3\u5728launch\u6587\u4ef6\u4e2d\u5c31\u53ea\u80fd\u8bbe\u7f6e119\u3002<\/li>\n<\/ul>\n<h6>3.2 IMU\u5185\u53c2\u6807\u5b9a<\/h6>\n<pre class=\"pure-highlightjs\"><code class=\"\">cd ~\/catkin_calib\r\nsource devel\/setup.bash\r\n\r\n# \u542f\u52a8\u6807\u5b9a\u7a0b\u5e8f\r\nroslaunch imu_utils <span style=\"color: #ff0000;\">yesense_h30<\/span>.launch\r\n\r\n# 200\u500d\u901f\u64ad\u5305\uff08\u76f4\u63a5\u542f\u52a8imu\u7684\u8f93\u51fa\u7b492-6\u5c0f\u65f6\uff0c\u73b0\u91c7\u73b0\u6807\u4e5f\u53ef\u4ee5\uff0c\u4e0d\u8fc7\u5efa\u8bae\u8fd8\u662f\u5f55\u4e0b\u6765bag\uff0c\u65b9\u4fbf\u91cd\u590d\u6807\uff09\r\nrosbag play -r <span style=\"color: #ff0000;\">200<\/span> h30.bag<\/code><\/pre>\n<p>2\u5c0f\u65f6\u7684\u5305\u9700\u8981\u7b49\u5f85\u4e00\u5206\u949f\u5de6\u53f3\uff0c\u6570\u636e\u5305\u5373\u64ad\u653e\u5b8c\u6bd5\uff0c\u4e00\u822c\u6765\u8bf4\u64ad\u653e\u5b8c\u6bd5\u77ac\u95f4\u4f1a\u663e\u793a\u8ba1\u7b97\u8fc7\u7a0b\uff1a<\/p>\n<p><a href=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-start.png\"><img loading=\"lazy\" class=\"alignnone size-large wp-image-9432\" src=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-start-1024x954.png\" alt=\"\" width=\"625\" height=\"582\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-start-1024x954.png 1024w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-start-300x279.png 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-start-768x715.png 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-start-624x581.png 624w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-start.png 1038w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/a> \u00a0\u7a0b\u5e8f\u5728\u6570\u79d2\u5185\u4f1a\u8ba1\u7b97\u5b8c\u6210\uff0c\u5e76\u663e\u793afinish\u5e76\u81ea\u52a8\u9000\u51fa\u3002<\/p>\n<p><a href=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-done.png\"><img loading=\"lazy\" class=\"alignnone size-large wp-image-9431\" src=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-done-1024x809.png\" alt=\"\" width=\"625\" height=\"494\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-done-1024x809.png 1024w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-done-300x237.png 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-done-768x607.png 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-done-624x493.png 624w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-done.png 1094w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p>\u67e5\u770b\u8bbe\u5b9a\u7684data_save_path\u76ee\u5f55\u4e0b\u4f1a\u751f\u6210yesense_h30_imu_param.yaml\u6587\u4ef6\uff0c\u6211\u4eec\u53ea\u8981\u5176\u4e2d\u76844\u4e2a\u503c\uff0c\u5206\u522b\u662f gyr_n\uff08\u5e73\u5747\u8f74\u65cb\u8f6c\u9ad8\u65af\u767d\u566a\u58f0\uff09\u3001gyr_w\uff08\u5e73\u5747\u8f74\u65cb\u8f6c bias \u968f\u673a\u6e38\u8d70\uff09\u3001acc_n\uff08\u5e73\u5747\u8f74\u52a0\u901f\u5ea6\u9ad8\u65af\u767d\u566a\u58f0\uff09\u3001acc_w\uff08\u5e73\u5747\u8f74\u52a0\u901f\u5ea6 bias \u968f\u673a\u6e38\u8d70\uff09\u3002<\/p>\n<p><a href=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-output-files.png\"><img loading=\"lazy\" class=\"alignnone size-large wp-image-9434\" src=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-output-files.png\" alt=\"\" width=\"625\" height=\"322\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-output-files.png 667w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-output-files-300x155.png 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/imu-calibration-output-files-624x322.png 624w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p>\u5c06yesense_h30_imu_param.yaml\u4e2d\u7684\u8fd9\u56db\u4e2a\u5185\u53c2\u503c\u653e\u5230LIO-SAM\/config\/params.yaml\u5bf9\u5e94\u4f4d\u7f6e\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">$ cat ~\/catkin_calib\/src\/imu_utils\/data\/yesense_h30\/yesense_h30_imu_param.yaml\r\n   %YAML:1.0\r\n   ---\r\n   type: IMU\r\n   name: yesense_h30\r\n   <span style=\"color: #ff0000;\">Gyr<\/span>:\r\n      unit: \" rad\/s\"\r\n      <span style=\"color: #ff0000;\">avg<\/span>-axis:\r\n         <span style=\"color: #ff0000;\">gyr_n<\/span>: 1.2050330151032497e-03\r\n         <span style=\"color: #ff0000;\">gyr_w<\/span>: 1.4177677047615486e-05\r\n   <span style=\"color: #ff0000;\">Acc<\/span>:\r\n      unit: \" m\/s^2\"\r\n      <span style=\"color: #ff0000;\">avg<\/span>-axis:\r\n         <span style=\"color: #ff0000;\">acc_n<\/span>: 7.5656614363139437e-03\r\n         <span style=\"color: #ff0000;\">acc_w<\/span>: 2.9325075138204079e-04<\/code><\/pre>\n<h6>3.3 \u914d\u7f6eLIO-SAM\u7684IMU\u5185\u53c2<\/h6>\n<p>\u5bf9\u5e94LIO-SAM\u7684IMU\u5185\u53c2\u914d\u7f6e\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">vim ~\/ros2_ws\/src\/LIO-SAM\/config\/params.yaml\r\n    # IMU Settings (IMU\u5185\u53c2)\r\n    imuAccNoise: 7.5656614363139437e-03        # <span style=\"color: #ff0000;\">acc_n<\/span>\r\n    imuGyrNoise: 1.2050330151032497e-03        # <span style=\"color: #ff0000;\">gyr_n<\/span>\r\n    imuAccBiasN: 2.9325075138204079e-04        # <span style=\"color: #ff0000;\">acc_w<\/span>\r\n    imuGyrBiasN: 1.4177677047615486e-05        $ <span style=\"color: #ff0000;\">gyr_w\r\n<\/span><\/code><\/pre>\n<p>&nbsp;<\/p>\n<h1>\u4e8c\u3001IMU\u4e0eLidar\u5916\u53c2\u6807\u5b9a<\/h1>\n<p>\u5916\u53c2\u6807\u5b9a\u7684\u76ee\u7684\u662f\u83b7\u5f97\u6fc0\u5149\u96f7\u8fbe\u548cIMU\u4e4b\u95f4\u7684\u4f4d\u7f6e\u8f6c\u6362\u5173\u7cfb\uff0c\u5176\u4e2d\u5305\u62ec\u5e73\u79fb\u5173\u7cfb\u548c\u65cb\u8f6c\u5173\u7cfb\uff0c\u5206\u522b\u5bf9\u5e94\u6700\u7ec8\u8f93\u51fa\u7ed3\u679c\u4e2d\u7684\u5e73\u79fb\u5411\u91cf\u4e0e\u65cb\u8f6c\u77e9\u9635\u3002<\/p>\n<p>\u8fd9\u91cc\u91c7\u7528\u6d59\u6c5f\u5927\u5b66\u5f00\u53d1\u7684 lidar_imu_calib \u5de5\u5177\uff08\u7b80\u79f0li_calib\uff09\u8fdb\u884c\u5916\u53c2\u6807\u5b9a\uff0c\u5b83\u662f\u4e00\u4e2a\u7528\u4e8e\u6821\u51c6 6DoF \u521a\u6027\u53d8\u6362\u548c 3D LiDAR \u4e0e IMU \u4e4b\u95f4\u7684\u65f6\u95f4\u504f\u79fb\u7684\u5de5\u5177\u5305\uff0c\u57fa\u4e8e\u8fde\u7eed\u65f6\u95f4\u6279\u91cf\u4f18\u5316\uff0c\u5efa\u56fe\u7684\u5b9e\u8df5\u8bc1\u660e\u6b64\u65b9\u6cd5\u5177\u6709\u8f83\u597d\u7684\u9c81\u68d2\u6027\u3002\u8fd9\u4e2a\u5de5\u5177\u53ea\u652f\u6301VLP-16\u4e0eIMU\u8fdb\u884c\u6807\u5b9a\uff0c\u6211\u4eec\u4f7f\u7528\u7684Pandar40P\u9700\u8981\u8fdb\u884c\u9002\u914d\u624d\u80fd\u4f7f\u7528\u3002<\/p>\n<h4>1. \u6e90\u7801\u7f16\u8bd1<\/h4>\n<p>\u6700\u597d\u79d1\u5b66\u4e0a\u7f51\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff0c\u80fd\u8282\u7ea6\u5f88\u591a\u65f6\u95f4\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\"># depend\r\nsudo apt install -y python3-wstool ros-noetic-pcl-ros ros-noetic-velodyne-msgs ros-noetic-velodyne-pointcloud\r\n\r\n# download\r\ncd ~\/catkin_calib\/src\r\n# slam code\r\ngit clone git@github.com:yanjingang\/ndt_omp.git    # \u8fd9\u4e2a\u662f\u4f7f\u7528c++14\u7f16\u8bd1\u7684\u7248\u672c\r\ngit clone git@github.com:yanjingang\/li_calib.git\r\n# sensor code\r\ngit <span class=\"hljs-built_in\">clone<\/span> https:\/\/github.com\/HesaiTechnology\/HesaiLidar_General_SDK.git\r\ngit <span class=\"hljs-built_in\">clone<\/span> --recursive git@github.com:yanjingang\/HesaiLidar_General_ROS.git\r\ngit <span class=\"hljs-built_in\">clone<\/span> git@github.com:yanjingang\/yesense_ros1.git\r\n\r\n# depend pangolin\r\ncd li_calib\r\n.\/build_submodules.sh\r\n\r\n# build\r\ncd ~\/catkin_calib\r\ncatkin_make -DCATKIN_WHITELIST_PACKAGES=ndt_omp\r\ncatkin_make -DCATKIN_WHITELIST_PACKAGES=li_calib\r\ncatkin_make -DCATKIN_WHITELIST_PACKAGES=   # \u6e05\u9664\u5305\u6307\u5b9a\uff0c\u5168\u7f16\u8bd1\r\nsource .\/devel\/setup.bash<\/code><\/pre>\n<h4>2. \u6570\u636e\u91c7\u96c6<\/h4>\n<p>\u5f55\u5236\u6570\u636e\u65f6\uff0c\u9700\u8981\u5c06Lidar-IMU\u8bbe\u5907\u56fa\u5b9a\u5230\u4e00\u8d77\uff0c\u5e76\u57fa\u4e8e\u5145\u5206\u7684\u8fd0\u52a8\u6fc0\u52b1\u3002<\/p>\n<ul>\n<li>\u9700\u8981\u5728\u5e73\u9762\u591a\u7684\u623f\u95f4\u91cc\u5f55\u5236\uff0c\u7279\u5f81\u70b9\u8fc7\u5c11\u6216\u8005\u5e73\u9762\u8fc7\u5c11\u53ef\u80fd\u4f1a\u5bfc\u81f4\u5931\u8d25\uff0c\u7ecf\u6d4b\u8bd5\u4e00\u822c\u529e\u516c\u5ba4\u73af\u5883\u5c31\u53ef\u4ee5\u3002<\/li>\n<li>XYZ\u4e09\u8f74\u65b9\u5411\u90fd\u9700\u8981\u5145\u5206\u79fb\u52a8\u3001\u5145\u5206\u8f6c\u52a8\uff0c\u4f46\u4e0d\u5b9c\u52a0\u901f\u5ea6\u8fc7\u5927\u7684\u731b\u70c8\u649e\u51fb\u5f0f\u8fd0\u52a8\uff0c\u53ef\u5404\u8f74\u65b9\u5411\u6b63\u5e38\u8f6c\u52a84-5\u6b21\uff0c <a class=\"link-info\" title=\"\u8fd9\u4e2a\" href=\"https:\/\/www.youtube.com\/watch?v=2IX5LVTDkLc\" target=\"_blank\" rel=\"nofollow noopener\">\u5177\u4f53\u65b9\u6cd5\u53ef\u4ee5\u53c2\u8003\u8fd9\u91cc<\/a>\u00a0\u3002<\/li>\n<li>\u6574\u4f53\u65f6\u95f41\u5206\u949f\u5de6\u53f3\u5373\u53ef\u3002<\/li>\n<\/ul>\n<p>\u5f00\u59cb\u5f55\u5236\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">cd ~\/catkin_calib\r\nsource devel\/setup.bash\r\n\r\n# \u542f\u52a8Lidar (Frame: Pandar40P, Topic: \/hesai\/pandar)\r\n<span class=\"hljs-attribute\">roslaunch<\/span> hesai_lidar <span style=\"color: #333333;\">hesai_lidar<\/span>.launch\r\n# \u542f\u52a8IMU (Frame: imu_link, Topic: \/sensor\/imu\/data)\r\nroslaunch yesense_imu yesense_ahrs.launch\r\n\r\n# \u5f00\u542fLidar PTP\u65f6\u949f\u540c\u6b65\r\nsudo ptp4l -m -4 -i eno2 -S\r\n\r\n# \u68c0\u67e5\u5e27\u7387\r\nrostopic hz \/sensor\/imu\/data \/hesai\/pandar\r\n    topic rate min_delta max_delta std_dev window\r\n    \/sensor\/imu\/data 200.0 0.003751 0.006297 0.001005 201 \r\n    \/hesai\/pandar 10.01 0.09922 0.1012 0.0006164 201 \r\n\r\n# \u68c0\u67e5\u65f6\u95f4\u6233\u662f\u5426\u6b63\u5e38\r\nrostopic echo \/hesai\/pandar -p\r\nrostopic echo \/sensor\/imu\/data -p\r\n\r\n# \u542f\u52a8\u5f55\u5305\r\nrosbag record -O pandar40p-h30.bag  \/hesai\/pandar \/sensor\/imu\/data\r\n\r\n# \u67e5\u770b\u5305\u4fe1\u606f\r\nrosbag info pandar40p-h30.bag \r\n    path: pandar40p-h30.bag\r\n    version: 2.0\r\n    duration: 3:19s (199s)\r\n    start: Nov 06 2024 23:48:12.51 (1730908092.51)\r\n    end: Nov 06 2024 23:51:32.15 (1730908292.15)\r\n    size: 5.9 GB\r\n    messages: 41925\r\n    compression: none [1997\/1997 chunks]\r\n    types: sensor_msgs\/Imu [6a62c6daae103f4ff57a132d6f95cec2]\r\n           sensor_msgs\/PointCloud2 [1158d486dd51d683ce2f1be655c3c181]\r\n    topics: \/hesai\/pandar 1996 msgs : sensor_msgs\/PointCloud2\r\n            \/sensor\/imu\/data 39929 msgs : sensor_msgs\/Imu<\/code><\/pre>\n<h4>3. \u5916\u53c2\u6807\u5b9a<\/h4>\n<h6>3.1 \u4fee\u6539\u914d\u7f6e<\/h6>\n<p>\u6839\u636e\u5f55\u5236\u6570\u636e\u4fee\u6539Lidar\u7c7b\u578b\u3001Topic\u3001Bag\u4f4d\u7f6e\u3001\u5f55\u5236\u65f6\u957f\u7b49\u53c2\u6570\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">vim ~\/catkin_calib\/src\/li_calib\/launch\/licalib_gui.launch \r\n    &lt;arg name=\"lidar_model\"         default=\"HESAI_40P\" \/&gt;                                  &lt;!-- Lidar\u7c7b\u578b: VLP_16 \/ HESAI_40P \/ RS_16 --&gt;\r\n    &lt;arg name=\"topic_imu\"           default=\"\/sensor\/imu\/data\" \/&gt;                           &lt;!-- Lidar topic --&gt;\r\n    &lt;arg name=\"topic_lidar\"         default=\"\/hesai\/pandar\" \/&gt;                              &lt;!-- IMU topic --&gt;\r\n    &lt;arg name=\"path_bag\"            default=\"\/home\/work\/catkin_calib\/pandar40p-h30.bag\" \/&gt;  &lt;!-- \u5f55\u5236\u7684\u6570\u636e\u5305\u7684\u5177\u4f53\u8def\u5f84 --&gt;\r\n    &lt;arg name=\"bag_durr\"            default=\"120\" \/&gt;                                         &lt;!-- \u5f55\u5236\u7684\u6570\u636e\u5305\u7684\u65f6\u957f\uff0c\u5355\u4f4d\u79d2 --&gt;\r\n    &lt;arg name=\"show_ui\"             default=\"true\" \/&gt;                                       &lt;!-- \u6253\u5f00\u53ef\u89c6\u5316\u64cd\u4f5c\u7a97\u53e3 --&gt;    <\/code><\/pre>\n<p>*\u6ce8\uff1a\u5982\u679c\u662fvelodyne\u7684\u96f7\u8fbe\uff0c\u9700\u8981\u5f55\u5236\/velodyne_packets \u800c\u4e0d\u662f \/velodyne_points\u624d\u53ef\u4ee5\u3002\u6211\u8fd9\u91cc\u7528\u7684Pardar40P\uff0c\u662f\u5728li_calib\u91cc\u5355\u72ec\u9002\u914d\u4e86\u4e0b\u683c\u5f0f\uff0c\u9002\u914d\u7684\u65f6\u5019\u6ce8\u610fsensor_msgs::PointCloud2\u548cvelodyne_msgs::VelodyneScan\u683c\u5f0f\u662f2\u4e2a\u4e0d\u540c\u7684unpack_scan()\uff0c\u6839\u636e\u4f60\u7684\u96f7\u8fbe\u53ea\u9002\u914d\u5176\u4e2d\u4e00\u4e2a\u65b9\u6cd5\u5373\u53ef\u3002<\/p>\n<h6>3.2 \u542f\u52a8\u6807\u5b9a\u7a0b\u5e8f<\/h6>\n<pre class=\"pure-highlightjs\"><code class=\"\">cd ~\/catkin_calib\r\nsource devel\/setup.bash\r\nroslaunch li_calib licalib_gui.launch<\/code><\/pre>\n<h6>3.3 Initialization\u521d\u59cb\u5316<\/h6>\n<p>\u5728\u5f39\u51fa\u754c\u9762\u4e0a\uff0c\u70b9\u51fbInitialization\u6309\u94ae\u8fdb\u884c\u521d\u59cb\u5316\uff0c\u63a7\u5236\u53f0\u8f93\u51fa\u5982\u4e0b\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">Load dataset lidar_type=2 bag=\/home\/work\/catkin_calib\/pandar40p-h30.bag\r\n\/hesai\/pandar: 1980\r\n\/sensor\/imu\/data: 39601\r\nCeres Solver Report: Iterations: 29, Initial cost: 6.809535e+06, Final cost: 5.975024e+02, Termination: CONVERGENCE\r\n[Initialization] Done. Euler_ItoL initial degree: 178.901 178.979 -86.1102<\/code><\/pre>\n<h6>3.4 Data Association\u6570\u636e\u5173\u8054<\/h6>\n<p>\u70b9\u51fbData Association\u6309\u94ae\u8fdb\u884c\u6570\u636e\u5173\u8054\uff0c\u63a7\u5236\u53f0\u8f93\u51fa\u5982\u4e0b\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">[Association] start ....\r\nPlane type :32 12 19; Plane number: 63\r\nSurfel point number: 46353\r\n[Association] 201426 ms\r\n<\/code><\/pre>\n<p>\u5173\u8054\u6210\u529f\u540eui\u754c\u9762\u4e0a\u4f1a\u663e\u793a\u51fa\u6765\u91c7\u96c6\u6570\u636e\u7684\u5730\u56fe\uff1a<\/p>\n<p><a href=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/licalib-DataAssociation.png\"><img loading=\"lazy\" class=\"alignnone size-large wp-image-9485\" src=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/licalib-DataAssociation-1024x608.png\" alt=\"\" width=\"625\" height=\"371\" srcset=\"https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/licalib-DataAssociation-1024x608.png 1024w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/licalib-DataAssociation-300x178.png 300w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/licalib-DataAssociation-768x456.png 768w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/licalib-DataAssociation-624x370.png 624w, https:\/\/yanjingang.com\/blog\/wp-content\/uploads\/2024\/11\/licalib-DataAssociation.png 1264w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<h6>3.5 Batch Optimization\u8fed\u4ee3\u4f18\u5316\u521d\u59cb\u5316<\/h6>\n<p>\u70b9\u51fbBatch Optimization\u6309\u94ae\u8fdb\u884c\u8fed\u4ee3\u4f18\u5316\u521d\u59cb\u5316\uff0c\u63a7\u5236\u53f0\u8f93\u51fa\u5982\u4e0b\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">================ Iteration 0 ==================\r\nCeres Solver Report: Iterations: 31, Initial cost: 7.883758e+06, Final cost: 1.245670e+05, Termination: NO_CONVERGENCE\r\n\r\n============== After optimization ================\r\n[Gyro]  Error size, average: 39579; 0.00828549 0.00818175 0.00496492\r\n[Accel] Error size, average: 39579;   0.028903 0.0306898 0.0593846\r\n[LiDAR] Error size, average: 46353; 0.0838659\r\n\r\nP_LinI      :  0.0329959 -0.0504669  0.0173797\r\neuler_LtoI  : 0.765177 0.508529 -93.3331\r\nP_IinL      : -0.0482363 -0.0356993 -0.0183443\r\neuler_ItoL  :  0.552158 -0.734316   93.3333\r\ntime offset : 0\r\ngravity     : -0.670243  -0.65516   9.74503\r\nacce bias   : -0.0602972   0.137668 -0.0115294\r\ngyro bias   : -0.00037345 0.000105357 0.000272736\r\n[BatchOptimization] 59086.6 ms<\/code><\/pre>\n<h6>3.6 Refinement\u8fed\u4ee3\u4f18\u5316<\/h6>\n<p>\u70b9\u51fbRefinement\u6309\u94ae\u8fdb\u884c\u8fed\u4ee3\u4f18\u5316\uff0c\u4e0e\u4e0a\u4e00\u90e8\u7684\u521d\u59cb\u5316\u8f93\u51fa\u7c7b\u4f3c\uff0c\u4f46\u662f\u9700\u8981\u591a\u6b21\u70b9\u51fb\u3002\u7ec8\u7aef\u6bcf\u51fa\u73b0 [Refinement] 24056.2 ms \u4fe1\u606f\u4ee5\u540e\u5c31\u70b9\u51fb\u4e00\u6b21\uff0c\u76f4\u5230\u6bcf\u6b21\u7ec8\u7aef\u663e\u793a\u7684\u5b57\u6bb5\u90fd\u5b8c\u5168\u4e00\u6837\u4e0d\u518d\u53d8\u5316\uff08\u4e00\u822c5-20\u8f6e\u5de6\u53f3\uff09\uff0c\u5373\u89c6\u4e3a\u6807\u5b9a\u6210\u529f\uff0c\u7136\u540e\u624b\u52a8\u9000\u51fa\u7a0b\u5e8f\u3002\u6807\u5b9a\u7ed3\u679c\u4f1a\u4fdd\u5b58\u5728bag\u5305\u76f8\u540c\u8def\u5f84\u7684\u540c\u540d\u6587\u4ef6\u5939\u4e0bcalib_result.csv \u6587\u4ef6\u5185\u3002<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\">tail -n1 ~\/catkin_calib\/pandar40p-h30\/calib_result.csv\r\n    p_IinL.x p_IinL.y p_IinL.z q_ItoL.x q_ItoL.y q_ItoL q_ItoL.w\r\n    0.0169827,-0.0285108,0.097318,-0.00186273,-0.00394953,0.720984,0.692938<\/code><\/pre>\n<p>\u8fd9\u4e2a\u53c2\u6570\u53ef\u4ee5\u76f4\u63a5\u914d\u7f6e\u5230tf\u4e2d\uff1a<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"\"># static_transform_publisher x y z qx qy qz qw frame_id child_frame_id period_in_ms\r\n&lt;node pkg=\"tf\" type=\"static_transform_publisher\" name=\"imu_to_lidar\"\r\n\targs=\"0.0169827,-0.0285108,0.097318,-0.00186273,-0.00394953,0.720984,0.692938 imu_link lidar_link 20\"&gt;\r\n&lt;\/node&gt;<\/code><\/pre>\n<h6>3.7 \u914d\u7f6eLIO-SAM\u7684Lidar -&gt; IMU\u5916\u53c2<\/h6>\n<p>\u6807\u5b9a\u5916\u53c2\u8981\u63d0\u4f9b\u7ed9LIO-SAM\u4f7f\u7528\uff0c\u56e0\u4e3a\u6d89\u53ca\u5230<span style=\"font-size: 1rem;\">\u56db\u5143\u6570\u8f6c\u5316\u4e3a\u65cb\u8f6c\u77e9\u9635\u4ee5\u53ca\u5bf9\u5e94\u5173\u7cfb\u7b49\uff0c\u89e3\u91ca\u8d77\u6765\u6709\u70b9\u7e41\u7410\uff0c\u6211\u8fd9\u91cc\u76f4\u63a5\u5199\u4e86\u4e2a\u81ea\u52a8\u751f\u6210\u811a\u672c\u6765\u6839\u636eLidar-IMU\u6807\u5b9a\u5916\u53c2\u4e00\u952e\u751f\u6210LIO-SAM\u7684\u914d\u7f6e\u53c2\u6570\uff1a<\/span><\/p>\n<ul>\n<li>P_IinL.x\u3001P_IinL.y\u3001P_IinL.z\uff1a\u4ee5\u6fc0\u5149\u96f7\u8fbe\u4e3a\u53c2\u8003\u5750\u6807\u7cfb\u65f6\uff0cIMU\u7684\u4e09\u8f74\u5750\u6807\uff0c\u7ec4\u6210\u4e86\u96f7\u8fbe\u5230IMU\u7684\u5e73\u79fb\u5411\u91cf\uff08\u5bf9\u5e94LIO-SAM\u7684<span style=\"font-size: 1rem;\">extrinsicTrans\u53c2\u6570<\/span>\uff09\uff1b<\/li>\n<li><span style=\"font-size: 1rem;\"><span style=\"font-size: 1rem;\"><span style=\"font-size: 1rem;\">q_ItoL.x\u3001q_ItoL.y\u3001q_ItoL.z\u3001q_ItoL.w\uff1a\u4ee5\u6fc0\u5149\u96f7\u8fbe\u4e3a\u53c2\u8003\u5750\u6807\u7cfb\u65f6\uff0cIMU\u7684\u4e09\u8f74\u65cb\u8f6c\u56db\u5143\u6570\uff0c\u53ef\u540e\u7eed\u8f6c\u5316\u4e3a\u65cb\u8f6c\u77e9\u9635\uff08\u5bf9\u5e94LIO-SAM\u7684<\/span><\/span><\/span><span style=\"font-size: 1rem;\"><span style=\"font-size: 1rem;\"><span style=\"font-size: 1rem;\">extrinsicRot\/extrinsicRPY<\/span><\/span><\/span><span style=\"font-size: 1rem;\"><span style=\"font-size: 1rem;\">\u53c2\u6570\uff09<\/span><\/span><span style=\"font-size: 1rem;\">\u3002<br \/>\n<\/span><\/li>\n<\/ul>\n<pre class=\"pure-highlightjs\"><code class=\"\">$ python3 tools\/gen_liosam_extrinsics.py ~\/catkin_calib\/pandar40p-h30\/calib_result.csv\r\np_IinL.x p_IinL.y p_IinL.z q_ItoL.x q_ItoL.y q_ItoL q_ItoL.w\r\n0.0169827,-0.0285108,0.097318,-0.00186273,-0.00394953,0.720984,0.692938\r\n0.0169827,-0.0285108,0.097318,-0.00186273,-0.00394953,0.720984,0.692938\r\nAvg:  2  \/  21\r\n<span style=\"color: #ff0000;\">0.0169827 -0.0285108 0.097318<\/span> -0.00186273 -0.00394953 0.720984 0.692938\r\nIMU_to_LiDAR: [[<span style=\"color: #ff0000;\">-0.03966705 -0.99917971 -0.00815956]\r\n [ 0.99920914 -0.0396428  -0.00311358]\r\n [ 0.00278756 -0.00827661  0.99996186<\/span>]]\r\n\r\nExtrinsics (lidar -&gt; IMU):\r\n    extrinsicTrans:  [0.0169827, -0.0285108, 0.097318]\r\n    extrinsicRot:  [-0.03966705, -0.99917971, -0.00815956,\r\n                    0.99920914, -0.0396428,  -0.00311358,\r\n                    0.00278756, -0.00827661,  0.99996186]\r\n    extrinsicRPY:  [-0.03966705, -0.99917971, -0.00815956,\r\n                    0.99920914, -0.0396428,  -0.00311358,\r\n                    0.00278756, -0.00827661,  0.99996186]<\/code><\/pre>\n<p>&nbsp;<\/p>\n<h1>\u4e09\u3001\u603b\u7ed3<\/h1>\n<p>\u81f3\u6b64\uff0c\u5728\u8d9f\u4e86\u65e0\u6570\u4e2a\u5751\u4e4b\u540e\uff0c\u6211\u4eec\u7684Lidar-IMU\u5916\u53c2\u6807\u5b9a\u5de5\u4f5c\u5c31\u505a\u597d\u4e86\uff0c\u4e0b\u4e00\u6b21\u6211\u5e26\u5927\u5bb6\u4e00\u8d77\u7528\u8fd9\u4e2a\u5916\u53c2SLAM\u5efa\u56fe\u770b\u4e0b\u6807\u5b9a\u6548\u679c\u662f\u5426\u7cbe\u51c6\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u53c2\u8003\uff1a<\/p>\n<p><a href=\"https:\/\/blog.csdn.net\/qq_43112859\/article\/details\/132879387\" target=\"_blank\" rel=\"noopener\">IMU+\u6fc0\u5149\u96f7\u8fbe\u878d\u5408\u4f7f\u7528LIO-SAM\u5efa\u56fe\u5b66\u4e60\u7b14\u8bb0\u2014\u2014IMU\u5185\u53c2\u6807\u5b9a\/Lidar-IMU\u5916\u53c2\u6807\u5b9a<\/a><\/p>\n<p><a href=\"https:\/\/blog.csdn.net\/weixin_46416017\/article\/details\/120316198\" target=\"_blank\" rel=\"noopener\">\u57fa\u4e8e<\/a><a href=\"https:\/\/blog.csdn.net\/weixin_46416017\/article\/details\/120316198\" target=\"_blank\" rel=\"noopener\">lidar_IMU_calib \u7684 \u901f\u817e RS32 \u96f7\u8fbe\u9002\u914d<\/a><\/p>\n<p><a href=\"https:\/\/blog.csdn.net\/cyx610481953\/article\/details\/115265585\" target=\"_blank\" rel=\"noopener\">\u6fc0\u5149\u96f7\u8fbe\u548cIMU\u8054\u5408\u6807\u5b9a\u5e76\u8fd0\u884cLIOSAM<\/a><\/p>\n<p><a href=\"https:\/\/zhuanlan.zhihu.com\/p\/434710744\" target=\"_blank\" rel=\"noopener\">\u5341\u56db.\u6fc0\u5149\u548c\u60ef\u5bfcLIO-SLAM\u6846\u67b6\u5b66\u4e60\u4e4b\u60ef\u5bfc\u5185\u53c2\u6807\u5b9a<\/a><\/p>\n<p><a href=\"https:\/\/zhuanlan.zhihu.com\/p\/434718435\" target=\"_blank\" rel=\"noopener\">\u5341\u4e94.\u6fc0\u5149\u548c\u60ef\u5bfcLIO-SLAM\u6846\u67b6\u5b66\u4e60\u4e4b\u60ef\u5bfc\u4e0e\u96f7\u8fbe\u5916\u53c2\u6807\u5b9a\uff081\uff09<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/chennuo0125-HIT\/lidar_imu_calib\" target=\"_blank\" rel=\"noopener\">3D \u6fc0\u5149\u96f7\u8fbe\u548c IMU \u5916\u90e8\u53c2\u6570\u7684\u81ea\u52a8\u6821\u51c6<\/a><\/p>\n<p><a href=\"https:\/\/gitee.com\/deep-blue-hero\/lidar_-imu_calib_for_-rs-16\" target=\"_blank\" rel=\"noopener\">\u901f\u817e16\u7ebf\u6fc0\u5149+IMU\u5916\u53c2\u6807\u5b9a<\/a><\/p>\n<p><a href=\"https:\/\/blog.csdn.net\/weixin_44675820\/article\/details\/124796674\" target=\"_blank\" rel=\"noopener\">error: \u2018CV_LOAD_IMAGE_UNCHANGED\u2019 was not declared in this scope<\/a><\/p>\n<p><a href=\"https:\/\/blog.csdn.net\/weixin_50844034\/article\/details\/135666835\" target=\"_blank\" rel=\"noopener\">\u79be\u8d5b\u3001\u901f\u817e\u4e09\u7ef4\u96f7\u8fbe\u9002\u914dlio-sam\u3001fast-lio2\u5efa\u56fe\u7b97\u6cd5<\/a><\/p>\n<p><a href=\"https:\/\/gitee.com\/duanyuanchao123\/hesai_to_velodyne\" target=\"_blank\" rel=\"noopener\">hesai_to_velodyne \u683c\u5f0f\u8f6c\u6362\u8282\u70b9 ros1<\/a><\/p>\n<p><a href=\"https:\/\/blog.csdn.net\/weixin_45205745\/article\/details\/129462125\" target=\"_blank\" rel=\"noopener\">ubuntu20.04\u4f7f\u7528\u6d59\u5927\u5f00\u6e90\u5305\u9002\u914dRS_Helios5515<\/a><\/p>\n<p><a href=\"https:\/\/blog.csdn.net\/chengde6896383\/article\/details\/106056354\" target=\"_blank\" rel=\"noopener\">\/velodyne_packets\u548c\/velodyne_points\u7684\u76f8\u4e92\u8f6c\u6362<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/yanliang-wang\/ws_sensor_utils\" target=\"_blank\" rel=\"noopener\">\u5173\u4e8e\u4e00\u4e9b ROS \u9a71\u52a8\u7a0b\u5e8f\u548c\u4f20\u611f\u5668\u6821\u51c6\u5de5\u5177\uff08\u5305\u62ec IMU\u3001Camera\u3001LiDAR \u7b49\uff09\u7684\u5de5\u4f5c\u533a\u3002<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/APRIL-ZJU\/lidar_IMU_calib\/issues\/56\" target=\"_blank\" rel=\"noopener\">error: \u2018class pclomp::NormalDistributionsTransform has no member named \u2018getTargetCells()&#8217; #56<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728\u4f7f\u7528LIO-SAM\u8fdb\u884cLidar+IMU\u5efa\u56fe\u4e4b\u524d\uff0c\u9700\u8981\u505a\u4e24\u4e2a\u6807\u5b9a\u5de5\u4f5c\uff0cIMU\u5185\u53c2\u6807\u5b9a\u548cLidar-IMU\u5916\u53c2 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1376,1346,1409,1005,1413],"tags":[1400,1414,1377,1347,1396,968,1416,1417,1415],"_links":{"self":[{"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/9414"}],"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=9414"}],"version-history":[{"count":3,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/9414\/revisions"}],"predecessor-version":[{"id":10466,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/9414\/revisions\/10466"}],"wp:attachment":[{"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9414"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9414"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yanjingang.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9414"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}