谷歌自己提供了安裝方法,但是安裝比較繁瑣,我做了一定的修改,代碼放到個人github上,https://github.com/hitcm/。
ros下面的安裝非常快捷,只需要catkin_make即可。
更多細節,可以看看知乎的問題https://www.zhihu.com/question/51348391/answer/125560951?from=profile_answer_card
個人理解錯誤的地方還請不吝賜教,轉載請標明出處,內容如有改動更新,請看原博:http://www.cnblogs.com/hitcm/,如有任何問題,feel free to contact me at robotsming@gmail.com
如有問題,請及時反饋給我,博客會持續更新。
如下,需要安裝3個軟件包,ceres solver、cartographer和cartographer_ros
0.安裝所有依賴項
sudo apt-get install -y google-mock libboost-all-dev libeigen3-dev libgflags-dev libgoogle-glog-dev liblua5.2-dev libprotobuf-dev libsuitesparse-dev libwebp-dev ninja-build protobuf-compiler python-sphinx ros-indigo-tf2-eigen libatlas-base-dev libsuitesparse-dev liblapack-dev
1.首先安裝ceres solver,選擇的版本是1.11,路徑隨意
1. git clone https://github.com/hitcm/ceres-solver-1.11.0.git
2. cd ceres-solver-1.11.0/build
3. cmake ..
4. make –j
5. sudo make install
2.然后安裝 cartographer,路徑隨意
1. git clone https://github.com/hitcm/cartographer.git
2 . cd cartographer/build
3. cmake .. -G Ninja
4. ninja
5. ninja test
6. sudo ninja install
上述第3步執行錯誤的同學可以忽略3-6步,改用下面的方法。
7. cmake ..
8 . make
9. sudo make install
3.安裝cartographer_ros。
谷歌官方提供的安裝方法比較繁瑣,我對原來的文件進行了少許的修改,核心代碼不變,只是修改了編譯文件
下載到catkin_ws下面的src文件夾下面
git clone https://github.com/hitcm/cartographer_ros.git
然后到catkin_ws下面運行catkin_make即可。
4.數據下載測試
2d數據,大概500M,用迅雷下載
https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
3d數據,8G左右,同樣用迅雷下載
https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/cartographer_3d_deutsches_museum.bag
有同學反映上面鏈接失效了,請用下面的即可。
https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/b3-2016-04-05-14-14-00.bag
然后運行launch文件即可。
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/cartographer_3d_deutsches_museum.bag
剛開始使用ROS的同學運行下面兩句是無法工作的,可能出現的錯誤如下。
[demo_backpack_2d.launch] is neither a launch file in package [cartographer_ros] nor is [cartographer_ros] a launch file name
The traceback for the exception was written to the log file
這種錯誤的主要原因是ros的catkin_ws配置問題,可以運行rospack profile試試。
實在不行還有如下所示的兩種解決方法。推薦第二種。
最終結果如下圖,左側為2d,右側為3d。
Good luck!關於代碼的原理解析,接下來的文章可能會詳細探討。