Ubuntu18.04 + ROS Melodic 部署 Cartographer_ros

一、背景

最近在调试四轮差速底盘小车的自主探索建图,一调研发现目前开源的2D建图包有Gmapping、Hector和Cartographer等。Gmapping比较容易部署,安装过程基本没有遇到什么阻碍。但是,俗话说最容易得到的,大多数都不是最后的选择。Gmapping虽然融合了2D激光、里程计等信息,但无奈他有个致命缺点——没有闭环优化,这就意味着建图过程极其依赖scan match,如果地形空旷或是旋转之后特征不明显,地图就会漂移,导致建图失败。而Hector建图只依靠激光雷达数据,这对于小车来说太不鲁棒了,实际测试之后也发现,Hector建图是最容易花的。最后,目光聚焦在谷歌出品的cartographer上了。从介绍上来看,cartographer确实是三者中最亮眼的一个,他支持激光雷达、IMU以及里程计的多传感器输入,而且还做了各种性能上的优化,更适合边缘设备的实时SLAM,最棒的是他还做了闭环优化,这样一看,cartographer确实是短板最少的一个建图工具了。话不多说,直接开盘!

二、干货

由于cartographer是谷歌发布的东西,所以我毫不犹豫先对工控机进行了科学上网,这是经验之谈,如果头铁的朋友,也可以用国内的网试一试,应该会比较坎坷。

主要参照下面的官网教程进行部署,但有一些区别,各位可以照着我的步骤来。

Compiling Cartographer ROS — Cartographer ROS documentationhttps://google-cartographer-ros.readthedocs.io/en/latest/compilation.html1、源码安装Glog

为什么不用 sudo apt-get install libgoogle-glog-dev ,因为我电脑上用apt装glog的话,后面编译ceres库的时候会报错,找不到链接库,所以我只能手动编译安装,并且如果电脑上用apt装过glog的话,必须要先apt remove掉

首先进入 glog 源码地址

https://github.com/google/gloghttps://github.com/google/glog找到 0.5.0版本

 下载下来后解压,进行编译安装

sudo apt-get install autoconf automake libtool
cd glog
mkdir build
cd build
cmake ..
make
sudo make install

2、安装几个依赖库


sudo apt-get update
sudo apt-get install -y clang google-mock libboost-all-dev libcairo2-dev libcurl4-openssl-dev libgflags-dev liblua5.2-dev libsuitesparse-dev lsb-release ninja-build stow

3、源码安装 ceres-solver 1.13.0

git clone https://github.com/ceres-solver/ceres-solver 
cd ceres-solver
git checkout tags/1.13.0
mkdir build
cd build
cmake .. -G Ninja -DCXX11=ON
ninja
CTEST_OUTPUT_ON_FAILURE=1 ninja test
sudo ninja install

4、接下来的步骤只在打开了科学上网环境后,方能保证生效

sudo apt-get install -y python-wstool python-rosdep
mkdir carto_ws
cd carto_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src

gedit src/cartographer/package.xml
``` 注释以下内容 ```
  <!--<depend>libboost-iostreams-dev</depend>-->
  <!--<depend>eigen</depend>-->
  <!--<depend>libabsl-dev</depend>-->
  <!--<depend>libcairo2-dev</depend>-->
  <!--<depend>libceres-dev</depend>-->
  <!--<depend>libgflags-dev</depend>-->
  <!--<depend>libgoogle-glog-dev</depend>-->
  <!--<depend>lua5.2-dev</depend>-->
  <!--<depend>protobuf-dev</depend>-->
``` 保存退出 ```

sudo apt-get remove ros-${ROS_DISTRO}-abseil-cpp
cd src/cartographer/scripts/
chmod +x install_abseil.sh
./install_abseil.sh
cd ~/carto_ws
catkin_make_isolated --install --use-ninja

5、接下来就是使用官方的数据集进行测试(需要bag的可以私信我)

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

三、写在后面

如果实在没有科学上网环境的话,也可以参考这位博主的流程,应该也是可以成功的

Ubantu18.04安装cartographer –>踩坑历程_风穗子的博客-CSDN博客

后面我会再码一篇博客,具体就是讲述如何将cartographer用在自己的小车底盘上,实现自主建图

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值