cartographer学习(1)——编译和运行

cartographer编译和运行

cartographer官方的编译文档的地址为:

https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html

https://google-cartographer.readthedocs.io/en/latest/index.html

1 环境搭建

cartographer所依赖库有abseil-cpp、ceres-solver、protobuf,此外运行cartographer_ros还需要将cartographer包安装到系统里,这里所需要的4个包已经压缩好放到网盘里了,下载下来按照以下步骤进行环境的搭建:

1.1 安装依赖

sudo apt-get install \
    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 \
    python-wstool \
    python-rosdep \
	python-sphinx \
	libatlas-base-dev

-map_filestem= m a p d i r / map_dir/ mapdir/map_name

1.2 安装abseil-cpp库

set -o errexit
set -o verbose

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

1.3 安装Ceres库

cd -
cd ../../ceres-solver
mkdir build
cd build
cmake .. -G Ninja -DCXX11=ON
ninja
#CTEST_OUTPUT_ON_FAILURE=1 ninja test
sudo ninja install

1.4 安装proto3库

cd ../../protobuf
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

1.5 编译安装Cartographer

cd ../../cartographer
mkdir build
cd build
cmake .. -G Ninja
ninja
#CTEST_OUTPUT_ON_FAILURE=1 ninja test
sudo ninja install

至此 cartographer 的编译环境安装完成。

2 编译cartographer

2.1 创建并cartographer工作空间:

mkdir cartographer_ws/src

cd  cartographer_ws/src

catkin_init_workspace

2.2 下载代码:

src里的代码包括两个部分,一个是cartographer_ros,另一个是不带ros的cartographer。这两个包都可以在我上传的网盘里下载,也可以通过git在官网下载。

网盘链接:

官网下载:-map_filestem= m a p d i r / map_dir/ mapdir/map_name

git clone https://github.com/cartographer-project/cartographer.git

git clone https://github.com/cartographer-project/cartographer_ros.git

2.3 编译

catkin_make_isolated --install --use-ninja

note:编译前一定要确保依赖项全部安装成功, 否则这里的编译可能报错。

2.4 数据集下载

2d数据集:下载地址

3d数据集:下载地址

2.5 运行cartographer

source install_isolated/setup.bash

roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/.../cartographer_paper_deutsches_museum.bag

运行结果:
在这里插入图片描述

2.6 保存cartographer地图

  • 写一个脚本来结束并保存cartographer地图:vi save.sh
#!/bin/bash

source install_isolated/setup.bash

map_dir="${HOME}/map"
map_name="cartographer"

# 检查文件夹是否存在, 如果不存在就创建文件夹
if [ ! -d "$map_dir" ];then
  echo "文件夹不存在, 正在创建文件夹"
  mkdir -p $map_dir
fi


# finish slam
rosservice call /finish_trajectory 0

# make pbstream
rosservice call /write_state "{filename: '$map_dir/$map_name.pbstream'}"

# pbstream to map
rosrun cartographer_ros cartographer_pbstream_to_ros_map \
-pbstream_filename=$map_dir/$map_name.pbstream \
-map_filestem=$map_dir/$map_name
  • 给权限:sudo chmod 777 save.sh
  • 不要关闭建图终端,新开一个执行:./save.sh
    在这里插入图片描述
    第一次执行会在家目录下新建一个map文件夹,完成后可以在这个文件夹下看到保存的结果:在这里插入图片描述
  • 1
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值