Cartographer用于机器人纯定位

您所在的位置:网站首页 slam开源代码能实现定位和建图吗 Cartographer用于机器人纯定位

Cartographer用于机器人纯定位

2023-09-25 21:57| 来源: 网络整理| 查看: 265

  *转载请注明出处 @梦凝小筑

前言

         本人研一主要研究室内2D激光SLAM,对应的项目是激光AGV。现在项目也已经完结,这里分享下Cartographer用于机器人定位的经验。

        我看到大部分使用Cartographer的人只用Cartographer进行建图,并没有用其进行定位。大多还是用的Cartographer + AMCL + MoveBase这一套。本人一开始也是这样做的,但后来发现AMCL定位精度比较差,而且已经废了很大劲学习Cartographer,为什么不用他来进行定位呢?于是现在使用的是Cartographer + MoveBase,把 AMCL 去掉了。

        后面才了解到SLAM(同步定位与建图),建图的过程中便是 定位 + 地图叠加,因此Cartographer可用于建图,必然可用于定位,事实的确如此。Cartographer源码里其实也开放了纯定位的接口,只是初学的话一般很难运用。

Cartographer纯定位接口:

文件:backpack_2d_localization.lua:

TRAJECTORY_BUILDER.pure_localization_trimmer = { max_submaps_to_keep = 3, //最大保存子图数,存定位模式通过子图进行定位,但只需要当前和上一个子图即可,我这里设置的是2 } POSE_GRAPH.optimize_every_n_nodes = 20 //每20个有效帧一个子图,子图构建完成要闭环检测一次,这个数越小,闭环检测越频繁,当然CPU爆炸 一、纯定位仿真测试

        官方文档提供了纯定位的仿真教程,步骤如下:

下载数据集

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/b2-2016-04-05-14-44-52.bag wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/b2-2016-04-27-12-31-41.bag

建图

roslaunch cartographer_ros offline_backpack_2d.launch bag_filenames:=${HOME}/Downloads/b2-2016-04-05-14-44-52.bag

纯定位测试

这里后面两个参数一个是上一步建好的地图,pbstream格式,另一个是数据集

roslaunch cartographer_ros demo_backpack_2d_localization.launch \ load_state_filename:=${HOME}/Downloads/b2-2016-04-05-14-44-52.bag.pbstream \ bag_filename:=${HOME}/Downloads/b2-2016-04-27-12-31-41.bag

也就是说,先用第一个数据集建图,建完图后用第二个数据集进行定位测试。

 

二、纯定位用在自己的机器人上

能看这篇文章相信已经掌握了Cartographer建图的方法。其实想让Cartographer用于定位也很简单。步骤如下:

修改文件 demo_backpack_2d_localization.launch

按照下面的文档中序号修改即可,不要直接粘贴。这个lannch文件建议大家也备份一个



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3