Google的cartographer SLAM演算法在Turtlebot3上的模擬實現教程(中)(已排坑!)
一、前言
該篇為本文的重點,主要內容為
cartographer_turtlrbot3原始碼庫的安裝
二、cartographer_turtlebot原始碼庫安裝
這裡基本參考創客智造的安裝教程,但是由於教程中安裝的一些包版本已經更新,如果完全按照教程走的話
會發現最後編譯會報錯(大坑之所在!!!)
所以我在這裡重新更改了部分過程,應該可以一遍通過!
環境依舊是:ubuntu16.04 + ROSkinetic版本
1.依賴安裝
sudo apt-get update sudo apt-get install -y python-wstool python-rosdep ninja-build
2.安裝protobuf
但在github上下載時注意版本問題 我們需要3.4.0版本,而不是最新版
在branch:master 的tag欄中選擇版本 3.4.0 下載該版本程式包
原始碼包中的src/README.md, 有詳細的安裝說明,安裝過程如下:
解壓縮後開啟其所在資料夾
1、安裝所需工具:sudo apt-get install autoconf automake libtool curl make g++ unzip
2、自動生成configure配置檔案:./autogen.sh
3、配置環境:./configure
4、編譯原始碼(時間比較長):make
5、安裝:sudo make install
6、重新整理動態庫:sudo ldconfig
7、檢查安裝: protoc --version
應該是出現3.4.0版本就對了
3.建立新的工作空間
mkdir catkin_ws
cd catkin_ws
wstool init src
4.Merge the cartographer_turtlebot.rosinstall
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_turtlebot/master/cartographer_turtlebot.rosinstall **vim src/.rosinstall** #更改ceres-solver中地址改為下面的地址:(否則下一步會中止) #uri: https://github.com/ceres-solver/ceres-solver.git wstool update -t src
5.手動替換正確版本的ceres-solver(1.12 0rc4)!!!
第三步中更改了ceres-solver程式包的github的地址,是因為原地址需要翻牆才能正常下載
但是這個連結永遠對應最新版本的ceres-solver 這就會導致我們最後編譯整個程式會報錯!!
因此我們需要手動下載 ceres-solver 1.12 0rc4 版本的程式包 去替換新版本
(2)在branch:master 的tag欄中選擇版本 1.12 0rc4 下載該版本程式包
(3)在你自己的程式工作空間 src 裡覆蓋原版本的ceres-solver資料夾,並重命名去掉版本號,保持和被替換的版本相同檔名
6 安裝deb dependencies.
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${KINETIC} -y
7. make
catkin_make_isolated --install --use-ninja
source install_isolated/setup.bash
8.測試
現在安裝了Cartographer,Cartographer ROS和Cartographer ROS的TurtleBot整合
將示例包下載到已知位置,~/Downloads,並使用roslaunch來調出演示:
程式執行:
# Launch the 2D LIDAR demo.
roslaunch cartographer_turtlebot demo_lidar_2d.launch bag_filename:=${HOME}/Downloads/cartographer_turtlebot_demo.bag
# Launch the 2D depth camera demo.
roslaunch cartographer_turtlebot demo_depth_camera_2d.launch bag_filename:=${HOME}/Downloads/cartographer_turtlebot_demo.bag
# Launch the 3D depth camera demo.
roslaunch cartographer_turtlebot demo_depth_camera_3d.launch bag_filename:=${HOME}/Downloads/cartographer_turtlebot_demo.bag
執行效果: