1. 程式人生 > >Google的cartographer SLAM演算法在Turtlebot3上的模擬實現教程(中)(已排坑!)

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

執行效果: