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…



相关文章
定位有几种,他们的特点分别是什么? 是相对于什么进行定位的?
定位有几种,他们的特点分别是什么? 是相对于什么进行定位的?
84 0
|
3月前
定位
【8月更文挑战第25天】定位。
49 3
|
1月前
定位有几种,他们的特点分别是什么?是相对于什么进行定位的?
定位有几种,他们的特点分别是什么?是相对于什么进行定位的?
18 0
|
2月前
静态定位和固定定位
静态定位和固定定位。
31 1
|
6月前
|
API Python
文件位置标记及其定位
文件位置标记及其定位
60 2
|
IDE 前端开发 安全
使用xpath定位遇到的坑
使用xpath定位遇到的坑
244 0
测试定位打卡
测试定位打卡
64 0
|
XML 数据格式 开发者
|
存储 中间件 测试技术
如何及时定位到非必现问题?
自定义channel;区分哪个环境中使用自定义的channel;使用优雅的 monolog 驱动
168 0
如何及时定位到非必现问题?
|
安全 开发者
定位 | 学习笔记
快速学习定位。
100 0
定位 | 学习笔记