ubuntu 16.04 Kinetic Cartographer谷歌开源导航框架安装指南,亲测有效

由于该算法更新速度较快,建议使用最新版的软件包;

本次教程面向的是ros接口,如果想不使用ros来跑cartographer请参考官方教程:https://google-cartographer.readthedocs.io/en/latest/

废话不多说,let's go!

安装rosdep和wstool

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

新建工作空间(可以与你原来的功能包公用一个工作空间)

mkdir catkin_ws

cd catkin_ws

wstool init src

注意,此处需要下载软件

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

rosdep install --from-paths src --ignore-src --rosdistro=${kinetic} -y
catkin_make_isolated --install --use-ninja

使用ninja进行编译,等待十分钟左右(根据电脑配置决定,我是使用的mac虚拟机,一会儿就编译好了)

在编译的过程中可能会报错,proto版本过低,Unrecognized syntax identifier "proto3".  This parser only recognizes "proto2".需要进行升级:

protoc --version
可以看到protobuf的版本是2.6,需要就行升级,此处升级成最新版本,
libprotoc 3.5.1

去https://github.com/google/protobuf/releases下载最新版本,第一个文件

$ ./configure
$ make
$ make check
$ sudo make install
$ sudo ldconfig # refresh shared library cache.

160819更新:官网写了,默认会安装到/usr/local路径下,但是/usr/local/lib不一定是系统路径LD_LIBRARY_PATH的一部分,因而或者将/usr/local/lib增加到系统路径LD_LIBRARY_PATH,或者指定安装路径。最好的就是指定安装到/usr路径(此时由于拷贝lib文件夹,实际上安装到/usr/lib路径),如下命令:

./configure --prefix=/usr

一般不需要进行设置的;

此时再查看protobuf的版本已经是现在最新的3.5.1版本了,重新运行

catkin_make_isolated --install --use-ninja

最后不要忘记

source install_isolated/setup.bash
或者将这一句加到bashrc中来,这样应该可以顺利结束了,注意:重新编译的时候需要将编译生成的build_isolated,devel_isolated和install_isolated三个文件夹删除,再重新编译;

下载测试数据包

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}/cartographer_paper_deutsches_museum.bag 

正常情况下, 可以看到如下图所示的结果了:


ubuntu 16.04 Kinetic Cartographer谷歌开源导航框架安装指南,亲测有效_第1张图片

后边我会带来拜托ros的该slam算法的应用,大家有兴趣的可以多多留言进行交流,本人邮箱:[email protected]

你可能感兴趣的:(教程)