LeGO-LOAM 簡介
LeGO-LOAM 的英文全稱是 lightweight and ground optimized lidar odometry and mapping。輕量化具有地面優(yōu)化的激光雷達里程計和建圖
其框架如下,大體和LOAM是一致的
LeGO-LOAM是基于LOAM的改進版本,其主要目的是為了實現(xiàn)小車在多變地形下的定位和建圖,針對前端和后端都做了一系列的改進。
在原本的LOAM中比如應用場景是:AGV在草地中行駛,草地中的點會很有可能提取為角點,但是這種點是不穩(wěn)定的,相比于樓房、樹干等穩(wěn)定的角點,希望要把地面上的角點去除掉。
LeGO-LOAM更輕量化,不影響精度的情況下減輕計算負荷,保障了嵌入式平臺的實時性
相比LOAM改進部分
前端:
- 1 對地面點進行分類和提取,避免一些邊緣點的提取
- 2 應用了一個簡單的點云聚類算法,剔除了一些可能的outlier
- 3 兩步迭代求解前端里程計,不影響精度的情況下減輕計算負荷,保障了嵌入式平臺的實時性
后端:
- 1 使用slam中關鍵幀的概念對后端部分進行了重構
- 2 引入回環(huán)檢測和位姿圖優(yōu)化概念,使得地圖的全局一致性更好
LeGO-LOAM 代碼編譯安裝
github的地址是:https://github.com/RobustFieldAutonomyLab/LeGO-LOAM
已被測試ROS版本有:
- indigo
- kinetic
- melodic
它的依賴庫有gtsam。所以需要先安裝gtsam
wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.0-alpha2/
mkdir build && cd build
cmake ..
sudo make install
cmake 可以改成如下指令
cmake -DGTSAM_BUILD_EITH_MARCH_NATIVE=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON ..
目的是設置一些宏
DGTSAM_BUILD_EITH_MARCH_NATIVE 是開啟css加速的宏,要關閉。避免其它庫(比如PCL或者自己代碼)沒有開啟的話,會造成運行時出現(xiàn)異常的情況
DGTSAM_USE_SYSTEM_EIGEN 這個是用系統(tǒng)裝的eigen編譯的宏,要開啟。OFF的話會用gtsam自帶的eigen,代碼運行存在兩個版本eigen會容易出問題
之后下載LeGO-LOAM的ROS功能包
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
然后放在ROS的工作空間
然后編譯,注意第一次編譯要用
catkin_make -j1
之后再編譯就不用 -j1 了
這么做的原因就是LeGO-LOAM有一些自定義的msg。
-j1 則會通過單線程編譯。把自定義的msg編譯到。
如果直接用catkin_make 則會根據(jù)計算機有幾個核,進行幾線程的編譯。
編譯成功的話會生成 LeGO-LOAM的 可執(zhí)行文件
LeGO-LOAM Gazebo測試
下面通過直接搭的gazebo測試場景 對 LeGO-LOAM進行一個初步測試
在運行之前需要根據(jù) 使用的激光雷達型號,在utility.h文件中對些變量進行設置
該文件的位置在 include文件夾下:
激光雷達的點云 Topic 名稱
extern const string pointCloudTopic = "/velodyne_points";
激光雷達的參數(shù)包括
- 線束
- 水平點數(shù)
- 水平角點分辨率
- 垂直角度分辨率
- 與水平方向的夾角
- 掃描到地面的激光線數(shù)
在gazebo中搭建的仿真場景是用的 Velodyne-16的激光雷達,其配置如下:
// VLP-16
extern const int N_SCAN = 16;
extern const int Horizon_SCAN = 1800;
extern const float ang_res_x = 0.2;
extern const float ang_res_y = 2.0;
extern const float ang_bottom = 15.0+0.1;
extern const int groundScanInd = 7;
然后運行在launch文件夾下的run.launch文件
再啟動仿真場景,進行初步的測試文章來源:http://www.zghlxwxcb.cn/news/detail-608493.html
其結(jié)果如下:
在rviz中綠色的是角點,粉色的是面點
特征提取沒有異常情況
建圖情況文章來源地址http://www.zghlxwxcb.cn/news/detail-608493.html
到了這里,關于激光slam:LeGO-LOAM---代碼編譯安裝與gazebo測試的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!