安裝cartographer,跑官網數據集

今天開始寫一個關於google cartographer系列文章。此類文章網上已經很多,本系列文章主要記錄重點部分及容易踩坑地方。

cartographer是一個完整的激光SLAM開源項目,屬於graph slam,包含了完整的前端里程計和後端地圖優化,既能夠同時定位建圖,又能夠基於先驗地圖進行獨立全局定位。

值得好好研讀學習:(1)一個漂亮的slam實現工程,學習其模塊架構,代碼架構,接口等 (2)學習google code style,作爲c++編程規範的一個範本

目錄

一、推薦首選看官網資料,已經很詳細了

二、安裝

三、源碼文件架構

四、跑數據集

1、建圖

2、基於先驗地圖的全局定位


一、推薦首選看官網資料,已經很詳細了

原生版:

https://google-cartographer.readthedocs.io/en/latest/

ros集成版:

https://google-cartographer-ros.readthedocs.io/en/latest/index.html

源碼:

https://github.com/cartographer-project/cartographer_ros

論文:

W. Hess, D. Kohler, H. Rapp, and D. Andor, Real-Time Loop Closure in 2D LIDAR SLAM, in Robotics and Automation (ICRA), 2016 IEEE International Conference on. IEEE, 2016. pp. 1271–1278.

二、安裝

本人環境:ubuntu 18.04(64位),ROS melodic

以源碼編譯安裝方式。

步驟1:安裝依賴。參考 https://google-cartographer.readthedocs.io/en/latest/ 先安裝一部分依賴

本人電腦只安裝了以下部分依賴,其餘雜七雜八的都沒有裝(可能之前配置時已經安裝了相應依賴)

步驟2:繼續安裝依賴。參考 https://google-cartographer-ros.readthedocs.io/en/latest/index.html 安裝其他依賴

步驟3:注意!創建ROS工程目錄,下載源碼。在進行到下載源碼步驟時,需要先網頁登錄自己的github賬號,否則提示無法連接網址!

wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall

步驟4:源碼編譯。

執行完 catkin_make_isolated --install --use-ninja 後即成功安裝。

步驟5:注意!配置source。由於採用isolated方式編譯的,因此在~/.bashrc中也要以此方式source,添加詞句 source /home/你的ubuntu用戶名/cartographer/devel_isolated/setup.bash

至此,就完成了源碼安裝,下面就可以下載官網數據集跑啦。

三、源碼文件架構

安裝好後的源碼結果如下:包含原生碼和ros集成部分

     

四、跑數據集

1、建圖

參考 https://google-cartographer-ros.readthedocs.io/en/latest/demos.html 下載2d揹包數據集(490M,下載挺快)

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag

數據集大概持續30分鐘,建的地圖夠大,效果如下,比較驚豔。(0,9)類似數據標明瞭loopclosure

基於3D激光雷達建圖:三維點雲被投影到二維佔據柵格地圖

數據集有9.8G

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/with_intensities/b3-2016-04-05-14-14-00.bag
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag

使用了2個vlp-16,水平和垂直

側視圖可以看到構建的地圖不是在同一個水平面上

 

2、基於先驗地圖的全局定位

參考 https://google-cartographer-ros.readthedocs.io/en/latest/demos.html ,以下爲基於2D數據集的定位

步驟1:先構建先驗地圖,尺寸大概100m*100m

步驟2:基於先驗地圖全局實時定位

初始時刻未匹配上,過幾秒鐘後匹配上。位置及軌跡得到了修正。

運動過程中出現匹配出錯,但能夠很快修正回來

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章