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的,因此安装方式有两种:
- 将cartographer编译成一个库,然后cartographer_ros在编译的时候调用这个库就行。
- 依照上面的方法将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版权协议,转载请附上原文出处链接和本声明。