ubuntu16.04+kinetic 配置cartographer


做个正直的人

配置google的cartographer来实现SLAM(同步定位与建图)

做毕设需要用到SLAM算法来对环境建图,由于移动平台上使用的是google开发的cartographer来建图,我也在我的电脑上配置了一下,做个笔记。

1、安装工具

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

2、为cartographer建立工作空间

在根目录下创建一个cartographer的工作空间,我起名为cartographer_ws。创建完成之后进行初始化。

mkdir cartographer_ws
cd cartographer_ws
wstool init src

3、解压cartographer的压缩文件

cartographer.tar.gz
提取码: q2zk
压缩包里面有四个文件:cartographer、cartographer_ros、ceres-solver、protobuf
将cartographer、cartographer_ros、ceres-solver放到cartographer/src目录下
把protobuf剪切到cartographer/scripts目录之下。
(不要复制!如果src目录下也有一个protobuf,那么在后面catkin_cmake后面的时候就会make这个文件而不是cartographer/scripts里面的那个了。如果是复制的话,把src下的protobuf删除即可)

4、编译protobuf

进入到protobuf目录之下

cd cartographer_ws/src/cartographer/scripts/protobuf

新建build文件夹,并进入之

mkdir build
cd build

编译,cmake

cmake -G Ninja \
  -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
  -DCMAKE_BUILD_TYPE=Release \
  -Dprotobuf_BUILD_TESTS=OFF \
  ../cmake
ninja
sudo ninja install

安装ninja的目的是为了安装proto3。出错不要紧,多试几次。

5、安装依赖

执行rosdep。
(其实不执行好像也没有问题,相信在安装ros的时候,你已经见识过这一命令的超强杀伤力了。)
执行如下命令,失败了不要紧,多试几次,我试了好几次才成功。

rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y

6、编译安装

回到cartographer的工作空间,编译

catkin_make_isolated --install --use-ninja

7、配置环境变量

回到根目录,运行如下命令打开.bashrc文件

sudo gedit .bashrc

在文件末尾加上下面这一句

source ~/cartographer_ws/install_isolated/setup.bash

8、测试结果

下载例程包

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

没问题的话,应该能够看到如下结果
例程包运行结果

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值