ROS笔记:cartographer安装

cartographer功能包安装

之前安装过cartographer功能包感觉非常麻烦,到处都是坑,最近又需要用到cartographer了,再安装一次,顺便做个总结,记录一下。

首先说一下一般正常情况的安装方法

1.安装工具

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

2.创建工作空间、初始化工作空间

mkdir google_ws
cd google_ws/
wstool init src

3.设置下载地址

wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src

ROS笔记:cartographer安装_第1张图片
在下载到ceres-solver功能包源码时有可能会出现网络连接问题,导致ceres-solver下载失败,那么此时需要修改src/.rosinstall文件中ceres-solver的下载地址
在这里插入图片描述

ROS笔记:cartographer安装_第2张图片
修改成以下地址:

https://github.com/ceres-solver/ceres-solver.git

4.下载功能包

rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y

5.编译功能包

catkin_make_isolated --install --use-ninja
source install_isolated/setup.bash

在编译的时候有可能会遇到protobuf的版本问题
ROS笔记:cartographer安装_第3张图片
此时需要下载最新版protobuf源码,编译安装,地址:
https://github.com/google/protobuf

到了这一步,如果你的运气不错的话再次编译的话有可能会成功。但是更多还会出现其他一些稀奇古怪编译问题,当然你可以选择按照编译的错误一个个去改正,但是我实在是顶不住了,所以选择了另一种比较直接的安装方法,也是下面要介绍的。

下面是我后来采用的方法,每一个包单独编译

1.下载克隆所需的四个功能包

采用clone单独下载cartographer,cartographer_ros,ceres-solver,protobuf四个包
ROS笔记:cartographer安装_第4张图片

下载地址分别如下:
cartographer

https://github.com/googlecartographer/cartographer.git

cartographer_ros

https://github.com/googlecartographer/cartographer_ros.git

ceres-solver

https://github.com/ceres-solver/ceres-solver.git

protobuf

https://github.com/protocolbuffers/protobuf.git

2.安装依赖

sudo apt-get update
sudo apt-get install -y google-mock libboost-all-dev  libeigen3-dev libgflags-dev libgoogle-glog-dev liblua5.2-dev libprotobuf-dev  libsuitesparse-dev libwebp-dev ninja-build protobuf-compiler python-sphinx  ros-kinetic-tf2-eigen libatlas-base-dev libsuitesparse-dev liblapack-dev libcairo2-dev git g++ cmake

3.安装编译ceres-solver

cd google_ws/src/ceres-solver/
mkdir build
cd build/
cmake ..
make -j4
sudo make install

除了这个方法外还可以参考 install_ceres.sh 文件的方法
ROS笔记:cartographer安装_第5张图片注意:版本号要对应为自己的

4.安装编译protobuf

cd google_ws/src/protobuf/
git checkout v3.11.0
mkdir build
cd build/
cmake  \
  -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
  -DCMAKE_BUILD_TYPE=Release \
  -Dprotobuf_BUILD_TESTS=OFF \
  ../cmake
make -j4
sudo make install

除了这个方法外还可以参考 install_proto3.sh 文件的方法
ROS笔记:cartographer安装_第6张图片注意:版本号要对应自己的

5.安装编译cartographer

cd google_ws/src/cartographer
mkdir build
cd build/
cmake ..
make -j4
sudo make install

同样也可以参考 install_cartographer_cmake.sh 文件的方法
ROS笔记:cartographer安装_第7张图片

6.最后完成 cartographer_ros 的安装和编译

首先回到工作空间,再执行编译

cd google_ws
catkin_make_isolated --install --use-ninja

此时有可能会出现下面的这个情况
ROS笔记:cartographer安装_第8张图片
那么这时候只要进入红框的文件路径,将 package.xml 文件删掉即可,然后再从新执行编译
ROS笔记:cartographer安装_第9张图片
之后执行最后一步

echo "source ~/google_ws/install_isolated/setup.bash" >> ~/.bashrc
source .bashrc

在这里插入图片描述

至此,cartographer安装完成!

你可能感兴趣的:(笔记)