安装测试cartographer
$ sudo apt-get update
$ sudo apt-getinstall -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
// 为避免不能翻墙导致ceres-solver包无法下载,所以这里直接更改源码包的地址。
// 使用gedit打开.rosinstall文件
$ sudo gedit src/.rosinstall
//修改.rosinstall里ceres-solver的地址,如下图将ceres-solver的地址改成https://github.com/ceres-solver/ceres-solver.git
// 稍安勿躁 !!
$ wstool update -t src
$ rosdep update
$ rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
#Ubuntu16.04默认安装的是proto2,而这里要使用proto3,版本不匹配需重新安装
// 如不确定proto版本,可使用下面命令查看当前proto的版本
$ protoc --version
// 查看protoc位置
$ which protoc
#如果protoc版本不匹配(例如 libprotoc 2.4.0),重新安装protoc
// 找到catkin_ws/src/cartographer/scripts目录下的install_proto3.sh文件并执行
$ cd src/cartographer/scripts
// 稍安勿躁 !!
$ sudo ./install_proto3.sh
#到此你已经同时安装了proto2和proto3,在编译时会优先找了/usr/bin/protoc下的proto2, 新安装的proto3是在/usr/local/bin/protoc目并录下,为了编译时优先找到proto3,这里需要建立一个软连接。
$ sudo mv /usr/bin/protoc /usr/bin/protoc.bk
$ sudo ln -s /usr/local/bin/protoc /usr/bin/protoc
// 编译catkin_ws工作空间 // 稍安勿躁 !
$ catkin_make_isolated --install --use-ninja
$ source install_isolated/setup.bash
#至此,cartographer安装完成。
#可以使用google官方给的数据包测试一下
// 下载2d激光slam demo数据包(493.4 MB )
$ wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
// 运行2d激光slam demo
$ roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
// 下载3d激光slam demo数据包(此包大概9G,量力而行 )// 躁起来吧!!
$ wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/with_intensities/b3-2016-04-05-14-14-00.bag
// 运行3d激光slam demo
$ roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag
让我们荡起双桨 小船儿推开波浪 ~~