LIO-SAM的全稱是:Tightly-coupled Lidar Inertial Odometry via Smoothing and
Mapping
從全稱上可以看出,該算法是一個緊耦合的雷達慣導里程計(Tightly-coupled Lidar Inertial
Odometry),借助的手段就是利用GT-SAM庫中的方法。
LIO-SAM 提出了一個利用GT-SAM的緊耦合激光雷達慣導里程計的框架。
本篇博客重點解讀LIO-SAM框架下IMU預積分功能數據初始化代碼部分
LIO-SAM 的代碼主要在其主目錄內的src文件夾下的四個cpp文件,分別是:
featureExtraction.cpp
imageProjection.cpp
imuPreintegration.cpp
mapOptmization.cpp
每個cpp文件是一個獨立的ROS節點,對應著下圖的四個模塊
lio-sam的所有文件即對應功能在下面做了如下總結:
lio-sam:│ CMakeLists.txt #項目工程配置文件,可以知道作者用了哪些第三方庫及cpp生成了什么執行文件
│ LICENSE #軟件版權
│ package.xml #ROS包配置文件
│ README.md #項目工程說明文件:文件構成、依賴、運行等
│ ├─config│ │ params.yaml #參數文件
│ │ │ └─doc #存儲效果圖、流程圖、論文等
│ │ │ └─kitti2bag #將kitti數據集轉換成bag格式
│ kitti2bag.py│ README.md│ ├─include│ utility.h #參數服務器類,初始化參數;各類公用函數
│ ├─launch│ │ run.launch #總運行launch文件
│ │ │ └─include #分模塊運行文件
│ │ module_loam.launch│ │ module_navsat.launch│ │
module_robot_state_publisher.launch│ │ module_rviz.launch│ │ │ ├─config
#存儲rviz參數文件和機器人坐標系參數
│ │ rviz.rviz│ │ robot.urdf.xacro│ ├─msg│ cloud_info.msg #自定義ROS數據格式
│ ├─src #源文件
│ featureExtraction.cpp #提取雷達線面特征,發布雷達點云
│ imageProjection.cpp#訂閱提取的雷達點云、IMU數據和IMU里程計數據,對雷達做畸變矯正,進行雷達前端里程計位姿粗估計的發布(以IMU頻率)
│ imuPreintegration.cpp#IMU預積分,訂閱雷達里程計和IMU數據,估計IMU偏置,進行雷達里程計、IMU預積分因子的圖優化,輸出IMU里程計。
│ mapOptmization.cpp #訂閱雷達前端信息、GPS信息,進行點云配準,進行雷達里程計、全局GPS、回環檢測因子的圖優化。
│ └─srv save_map.srv
本篇主要解讀 IMU預積分部分代碼,也就是
imuPreintegration.cpp#IMU預積分,訂閱雷達里程計和IMU數據,估計IMU偏置,進行雷達里程計、IMU預積分因子的圖優化,輸出IMU里程計。
-
SAM
+關注
關注
0文章
112瀏覽量
33519 -
激光雷達
+關注
關注
968文章
3967瀏覽量
189825 -
3D激光
+關注
關注
0文章
30瀏覽量
7465
發布評論請先 登錄
相關推薦
評論