cartographer实现纯定位

简介: cartographer实现纯定位

实现纯定位

 

(1)因为正常的cartographer的建图的map是由cartographer发布的;如下

 

rostopic info /map

Type: nav_msgs/OccupancyGrid

Publishers:

* /cartographer_occupancy_grid_node

因此需要把map的发布替换成

 

<node name="map_server" pkg="map_server" type="map_server"

args="/home/lx/carto_ws/map/2d-1.yaml" />

 

把原来的去掉

<node name="cartographer_occupancy_grid_node" pkg="cartographer_ros"

     type="cartographer_occupancy_grid_node" args="-resolution 0.05" />

这是在运行cartographer建图的launch文件中修改

 

(2)开启纯定位

在lua文件的配置参数中修改

 

 

TRAJECTORY_BUILDER.pure_localization_trimmer = {

max_submaps_to_keep = 3, //最大保存子图数,存定位模式通过子图进行定位,但只需要当前和上一个子图即可,我这里设置的是2

}

POSE_GRAPH.optimize_every_n_nodes = 20 //每20个有效帧一个子图,子图构建完成要闭环检测一次,这个数越小,

 

纯定位的原理

image.png


纯定位的TF树

image.png

图里map到footpint的tf就是机器人实际的位姿

 

关于纯定位的优化

 

纯定位至少有两个轨迹

纯本地化不同于映射。首先,我们期望本地和全局 SLAM 的延迟更低。其次,全局 SLAM 通常会在作为地图的冻结轨迹和当前轨迹之间找到非常大量的相互约束。

 

如果您在 中运行pure_localization,submaps.resolution 则应与.pbstream您正在运行的子图的分辨率相匹配。使用不同的分辨率目前未经测试,可能无法按预期工作。

 

POSE_GRAPH.optimize_every_n_nodes需要减小,则提高了优化的频率

减小global_sampling_ratio减小了全局的采样频率,减小constraint_builder.sampling_ratio减小了普通约束的采样频率。因此降低了计算量

 

运行纯定位,submaps.resolution(子图分辨率) 则应与.pbstream的子图的分辨率相匹配。

 

相关资料

Cartographer的纯定位模式在低性能处理器上的应用适配

blog.csdn.net/zhzwang/art…



相关文章
|
5月前
定位有几种,他们的特点分别是什么? 是相对于什么进行定位的?
定位有几种,他们的特点分别是什么? 是相对于什么进行定位的?
43 0
|
1月前
定位网页元素
定位网页元素
8 0
|
6月前
|
IDE 前端开发 安全
使用xpath定位遇到的坑
使用xpath定位遇到的坑
102 0
|
7月前
测试定位打卡
测试定位打卡
36 0
|
9月前
|
XML 数据格式 开发者
|
11月前
|
前端开发
定位
定位
73 0
文件定位
文件定位
89 0
|
安全 开发者
定位 | 学习笔记
快速学习定位。
68 0
定位 | 学习笔记
|
存储 中间件 测试技术
如何及时定位到非必现问题?
自定义channel;区分哪个环境中使用自定义的channel;使用优雅的 monolog 驱动
123 0
如何及时定位到非必现问题?
|
前端开发 JavaScript 容器
分享个小案例-Fixed定位的框选功能
最近项目涉及到一个支持批量操作的小需求,交互上需要使用框选来触发。在查阅了一些资料后发现,网上的方案基本都是基于绝对定位布局的,此方案如果是针对全局(在body上)的框选,还是可用的。但是现实需求里几乎都是针对某个区域的框选。如果用绝对定位实现就比较繁琐了,需要调整定位原点。下面介绍一种基于Fixed定位的框选实现。
136 0
分享个小案例-Fixed定位的框选功能