【萌新向】cartographer_ros最新安裝指南 2019-12


首先說明,這篇文章於2019年12月寫下,cartographer現在還在不斷更新,也許這篇文檔內容會失效,但是大體是一樣的安裝流程。

一、硬件條件

使用平台

  • x86_64平台

ROS發行版

  • Indigo
  • Kinetic
  • Lunar
  • Melodic

二、編譯安裝

1. 先安裝一些必要的安裝工具:python-wstool、python-rosdep和ninja;

sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build

2. 創建一個cartographer_ros的工作空間,命名為"catkin_ws",並初始化。

mkdir catkin_ws
cd catkin_ws
wstool init src
# 這里先增加一個.rosinstall文件,修改內容如下一段
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
  • 這里得提一下, 個別地區沒方法訪問googlesource.com,即谷歌的源代碼倉庫,上面第四句執行之后,修改 .rosinstall 文件到src目錄:
- git: {local-name: cartographer, uri: 'https://github.com/googlecartographer/cartographer.git', version: '1.0.0'}
- git: {local-name: cartographer_ros, uri: 'https://github.com/googlecartographer/cartographer_ros.git', version: '1.0.0'}
- git: {local-name: ceres-solver, uri: 'https://github.com/ceres-solver/ceres-solver.git', version: '1.13.0'}
  • !注:也可以直接復制上面的git源碼地址uri,下載對應版本的源碼到對應的工作空間src里面,就不需要wstool部分命令了。
  • 順便也提供了藍奏雲鏈接https://www.lanzous.com/b0akgy6uh 密碼:cmvf

3. 安裝cartographer_ros的依賴項(proto3和deb軟件包)。如果自安裝ROS以來已經執行過初始化rosdep的命令,則命令'sudo rosdep init'將顯示錯誤,該錯誤可以忽略。

# 腳本內容是配置了一些環境變量,然后用git下載proto3(肯定比較慢,可以手動下載),如果手動下載了proto3,里面需要改內容,內容在下一段。
src/cartographer/scripts/install_proto3.sh

# 這句初始化rosdep,一般正常安裝ros都執行過,可以不用管。
sudo rosdep init 

# 下面這兩句,是常用來一鍵安裝該工作空間下所有依賴包的,務必熟練使用
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
  • !注意如果手動下載了3.4.1版本的proto3,建議還是用install_proto3.sh安裝,不過需要修改內容為:
# 只是注釋掉了git下載和切換的內容。
set -o errexit
set -o verbose

# VERSION="v3.4.1"

# Build and install proto3.
# git clone https://github.com/google/protobuf.git
cd protobuf
# git checkout tags/${VERSION}
mkdir build
cd build
cmake -G Ninja \
  -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
  -DCMAKE_BUILD_TYPE=Release \
  -Dprotobuf_BUILD_TESTS=OFF \
  ../cmake
ninja
sudo ninja install

4. 構建並安裝。

# 用ninja工具進行catkin的編譯
catkin_make_isolated --install --use-ninja

注意:

  • 到這里,執行完上面的步驟,沒報錯的話就安裝成功了。
  • 有些萌新因為git的配置問題報錯下載失敗,就按照報錯提示百度一下解決;不想折騰git的話,也可以直接打開.rosinstall的那三個源碼鏈接,下載對應版本的源碼(version標注的內容)

  • git下載速度慢,基本上也是因為DNS污染的原因,這里修改一下hosts文件:
sudo gedit /etc/hosts

增加以下內容(給dns指定了github的服務器地址):

# 建議在http://ip.tool.chinaz.com/github.com查詢以下三個網址對應的ip,這里是2019-12月的數據,可能會改變
github.com  13.250.177.223
assets-cdn.github.com 185.199.108.153
github.global.ssl.fastly.net 75.126.215.88

重啟networking
sudo /etc/init.d/networking restart

三、跑數據集安裝測試

1. 測試數據集

  • 現在已經安裝了Cartographer和Cartographer的ROS集成,可以下載封裝成bag包形式的數據集。這里提供了德國博物館的數據集。這個數據集是人類背着激光雷達錄制的,效果也是不錯。
  • 首先,下載數據集,然后運行demo,會自動打開rviz。
# 這句命令把數據集下載到了Downloads文件夾,如果沒有wget工具,可以自己安裝
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag

# 記得先配置工作空間到環境變量
echo  "source ~/catkin_ws/install_isolated/setup.bash" >> ~/.bashrc

# 這句用roslaunch啟動了放在對應目錄的數據集
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag

隨便找了張圖:
image

2. 其他bag數據集


參考文獻:

  1. 官方手冊 https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM