ros:cartographer(二)整体介绍

在这里插入图片描述
cartographer的doc中给出了这个图。
现在我还没看过源码,所以只能猜测一些内容。
待看完源码后,再详细介绍这个图。

直观地说,左侧的是输入的数据,包括测距数据、码盘里程计和IMU数据。左下方的固定的姿态应该是作为整个sparse pose的锚点。

pose extrapolator的输入包括:里程计姿态、imu估计的姿态和扫描匹配输出的姿态。既然有三种关于姿态的信息(实际中可以配置,如没有IMU),那么可以通过滤波方法获得更准确的位姿估计。这里我的感觉还应该有其他的功能,如作为扫描匹配的初值。
这里的一个问题是:scan-matching是采用哪种方式?图中就有距离数据和位姿进入scan matching,感觉少一部分内容。

扫描匹配的姿态传递给运动滤波蒸馏(位姿变化或时间变化),也就是如果机器人一直静止不动的话,新来的数据是没有太大意义的,所以把这些数据扔掉。

如果运动了或者经过了一段时间,则把姿态和滤波后的激光数据加入到sub map中。
并插入结果(时间、姿态、数据和submaps)

然后传递给后端线程,创建位姿图。这里包括回环检测。

大体上从这个图中,若没有看过源码,很多细节还是不清楚。

由于我的下一步工作是做相关内容,所以我将重点关注:
采用里程计和2D激光雷达传感器,构建栅格地图。所以在后续的文章中,主要分析与之相关的源码内容。

这里我的问题:
1 扫描匹配采用何种方式?scan-scan,scan-map,map-map?
2 位姿图是如何构建的?
3 如何进行的回环检测?
4 里程计和扫描匹配的姿态融合采用何种方法?
5 …

cartographer 用到的库:

Boost:准标准的C++库。

Eigen3: 准标准的线性代数库。

Lua:非常轻量的脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值