ROS slam-google cartographerコンパイルとdemo実行

5486 ワード

Google Cartographerは、プラットフォームにまたがる2 D/3 DリアルタイムSLAMおよびセンサ構成を提供するアルゴリズムシステムであり、本稿では主にこのアルゴリズムのコンパイルおよびGoogle bagの動作について説明する.アルゴリズムの詳細については、リンクを参照してください.https://github.com/googlecartographer/cartographer/blob/master/docs/source/index.rst.
1実験環境
1)ハードウェア環境:PC(CPU:X 64 bit,Memory:4 G)
2)ソフトウェア環境:Ubuntu 16.04 32 bit(Googleは64 bitを推奨し、32 bitにissueが存在するが、64 bitシステムを再インストールしないために現在の32 bitを試した)、ROS Kineticバージョン
2実験手順
2.1基本的に必要なライブラリのインストール
sudo apt-get update
sudo apt-get install -y \
    cmake \
    g++ \
    git \
    google-mock \
    libboost-all-dev \
    libcairo2-dev \
    libeigen3-dev \
    libgflags-dev \
    libgoogle-glog-dev \
    liblua5.2-dev \
    libprotobuf-dev \
    libsuitesparse-dev \
    libwebp-dev \
    ninja-build \
    protobuf-compiler \
    python-sphinx

2.2 Ceresのコンパイルとインストール
git clone https://ceres-solver.googlesource.com/ceres-solver
cd ceres-solver
mkdir build
cd build
cmake .. -G Ninja
ninja
ninja test
sudo ninja install

:googleからコードを り すことができない はgithubからcodeを できます.https://github.com/ceres-solver/ceres-solver
2.3 wstoolとrosdepのインストール
sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build

2.4ワークスペースの
mkdir google_cartographer_catkin_ws
cd catkin_ws
wstool init src

2.5 google cartographerソースコードのダウンロード
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src

2.6インストールdeb
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${kinetic} -y

2.7コンパイルとインストール
catkin_make_isolated --install --use-ninja
source install_isolated/setup.bash

: はコンパイル にQTに する に しました. くのQTヘッダファイルが つかりません.Ubuntu 16.04がqt 4を っているからではないか かりません. はqt 5をインストールしました. にCMakeListsを しました.txtができました.
error log:
bmap.h:35:0,                  from cartographer_rviz/moc_drawable_submap.cpp:9,                  from cartographer_rviz/drawable_submap_automoc.cpp:2:/opt/ros/kinetic/include/rviz/display_context.h:34:19: fatal error: QObject: No such file or directory compilation terminated. ninja: build stopped: subcommand failed. <== Failed to process package 'cartographer_rviz':   Command '['/home/siriansu/google_cartographer_catkin_ws/install_isolated/env.sh', 'ninja', '-j2', '-l2']' returned non-zero exit status 1 Reproduce this error by running: ==> cd/home/siriansu/google_cartographer_catkin_ws/build_isolated/cartographer_rviz &&/home/siriansu/google_cartographer_catkin_ws/install_isolated/env.sh ninja -j2 -l2 In file included from/home/siriansu/google_cartographer_catkin_ws/src/cartographer_ros/cartographer_rviz/cartographer_rviz/drawable_submap.h:35:0, cartographer_rviz/../../../src/cartographer_ros/cartographer_rviz/cartographer_rviz/drawable_submap.h:35:35: fatal error: rviz/displays_context.h: No such file or directory
:src/cartographerを するros/cartographer_rviz/ のCMakeLists.txtは の い を します.
if(rviz_QT_VERSION VERSION_LESS "5")   message(STATUS "Using Qt4 based on the rviz_QT_VERSION: ${rviz_QT_VERSION}")   find_package(Qt4 ${rviz_QT_VERSION} EXACT REQUIRED QtCore QtGui)   include(${QT_USE_FILE}) else()   message(STATUS "Using Qt5 based on the rviz_QT_VERSION: ${rviz_QT_VERSION}")   find_package(Qt5 ${rviz_QT_VERSION} EXACT REQUIRED Core Widgets)   find_package(Qt5Widgets REQUIRED)   set(QT_LIBRARIES Qt5::Widgets)   include_directories(/opt/Qt5.5.1/5.5/gcc/include/QtCore/opt/Qt5.5.1/5.5/gcc/include//opt/Qt5.5.1/5.5/gcc/include/QtGui/)   endif()
3 Google Demoの
Googleには4つのdemoがありますが、 は しただけなので、 のdemoだけをダウンロードし、コマンドをダウンロードして します.
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

を に します.