Cartographer学习

Cartographer学习

Cartographer学习1---cartographer的安装


前言

cartographer是谷歌开源的SLAM算法,具体内容可以参考cartographer的官方文档

cartographer推荐使用的ubuntu版本有三个:
1. ubuntu 16.04 Kinetic
2. ubuntu 18.04 melodic
3. ubuntu 20.04 noetic


一、安装一些必要的依赖库

cartographer官方推荐使用wstool与rosdep来构建ROS环境,同时为了提高速度,推荐使用Ninja系统。

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

在安装cartographer之前需要安装一些依赖库:

sudo apt-get update
sudo apt-get install -y \
    clang \
    cmake \
    g++ \
    git \
    google-mock \
    libboost-all-dev \
    libcairo2-dev \
    libcurl4-openssl-dev \
    libeigen3-dev \
    libgflags-dev \
    libgoogle-glog-dev \
    liblua5.2-dev \
    libsuitesparse-dev \
    lsb-release \
    ninja-build \
    stow

安装absel

git clone https://github.com/abseil/abseil-cpp.git
cd abseil-cpp
git checkout d902eb869bcfacc1bad14933ed9af4bed006d481
mkdir build
cd build
cmake -G Ninja \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
  -DCMAKE_INSTALL_PREFIX=/usr/local/stow/absl \
  ..
ninja
sudo ninja install
cd /usr/local/stow
sudo stow absl

安装ceres:

git clone https://ceres-solver.googlesource.com/ceres-solver
cd ceres-solver
git checkout tags/${VERSION}
mkdir build
cd build
cmake .. -G Ninja -DCXX11=ON
ninja
CTEST_OUTPUT_ON_FAILURE=1 ninja test
sudo ninja install

安装protobuf:

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

完成上述的依赖库安装,就能够进行cartographer的安装:

https://github.com/cartographer-project/cartographer.git
cd cartographer
mkdir build
cd build
cmake .. -G Ninja
ninja
CTEST_OUTPUT_ON_FAILURE=1 ninja test
sudo ninja install

cartographer有ros版本和非ROS版本,对于非ros版本到这就已经安装结束了,对于ROS版本的安装有两种方式。
由于cartographer_ros是依赖于cartographer的,因此安装方式有两种:

  1. 将cartographer编译成一个库,然后cartographer_ros在编译的时候调用这个库就行。
  2. 依照上面的方法将cartographer安装完成,然后创建工作空间,将cartographer_ros下载,然后使用catkin_make_isolated进行编译。
    如:
//创建工作空间
mkdir -p carto_ws/src
cd ..
catkin_make

将cartographer_ros放到src下,然后使用catkin_make_isolated进行编译。


版权声明:本文为yuwanmuyoucumian原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。