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基本的に必要なライブラリのインストール
2.2 Ceresのコンパイルとインストール
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
を に します.