安装cartographer,跑官网数据集

今天开始写一个关于google cartographer系列文章。此类文章网上已经很多,本系列文章主要记录重点部分及容易踩坑地方。

cartographer是一个完整的激光SLAM开源项目,属于graph slam,包含了完整的前端里程计和后端地图优化,既能够同时定位建图,又能够基于先验地图进行独立全局定位。

值得好好研读学习:(1)一个漂亮的slam实现工程,学习其模块架构,代码架构,接口等 (2)学习google code style,作为c++编程规范的一个范本

目录

一、推荐首选看官网资料,已经很详细了

二、安装

三、源码文件架构

四、跑数据集

1、建图

2、基于先验地图的全局定位


一、推荐首选看官网资料,已经很详细了

原生版:

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

ros集成版:

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

源码:

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

论文:

W. Hess, D. Kohler, H. Rapp, and D. Andor, Real-Time Loop Closure in 2D LIDAR SLAM, in Robotics and Automation (ICRA), 2016 IEEE International Conference on. IEEE, 2016. pp. 1271–1278.

二、安装

本人环境:ubuntu 18.04(64位),ROS melodic

以源码编译安装方式。

步骤1:安装依赖。参考 https://google-cartographer.readthedocs.io/en/latest/ 先安装一部分依赖

本人电脑只安装了以下部分依赖,其余杂七杂八的都没有装(可能之前配置时已经安装了相应依赖)

安装cartographer,跑官网数据集_第1张图片

步骤2:继续安装依赖。参考 https://google-cartographer-ros.readthedocs.io/en/latest/index.html 安装其他依赖

步骤3:注意!创建ROS工程目录,下载源码。在进行到下载源码步骤时,需要先网页登录自己的github账号,否则提示无法连接网址!

wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall

步骤4:源码编译。

执行完 catkin_make_isolated --install --use-ninja 后即成功安装。

步骤5:注意!配置source。由于采用isolated方式编译的,因此在~/.bashrc中也要以此方式source,添加词句 source /home/你的ubuntu用户名/cartographer/devel_isolated/setup.bash

至此,就完成了源码安装,下面就可以下载官网数据集跑啦。

三、源码文件架构

安装好后的源码结果如下:包含原生码和ros集成部分

安装cartographer,跑官网数据集_第2张图片      安装cartographer,跑官网数据集_第3张图片

四、跑数据集

1、建图

参考 https://google-cartographer-ros.readthedocs.io/en/latest/demos.html 下载2d背包数据集(490M,下载挺快)

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

数据集大概持续30分钟,建的地图够大,效果如下,比较惊艳。(0,9)类似数据标明了loopclosure

基于3D激光雷达建图:三维点云被投影到二维占据栅格地图

数据集有9.8G

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/with_intensities/b3-2016-04-05-14-14-00.bag
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag

使用了2个vlp-16,水平和垂直

安装cartographer,跑官网数据集_第4张图片

侧视图可以看到构建的地图不是在同一个水平面上

 

2、基于先验地图的全局定位

参考 https://google-cartographer-ros.readthedocs.io/en/latest/demos.html ,以下为基于2D数据集的定位

步骤1:先构建先验地图,尺寸大概100m*100m

安装cartographer,跑官网数据集_第5张图片

步骤2:基于先验地图全局实时定位

初始时刻未匹配上,过几秒钟后匹配上。位置及轨迹得到了修正。

安装cartographer,跑官网数据集_第6张图片

安装cartographer,跑官网数据集_第7张图片

运动过程中出现匹配出错,但能够很快修正回来

 

你可能感兴趣的:(cartographer,SLAM)