有两种扫描匹配策略:
无论哪种方式,CeresScanMatcher 都可以配置为给每个输入一定的权重 。权重是衡量对数据的信任度,可以将其视为静态协方差 。重量参数的单位是无量纲的数量,不能在彼此之间进行比较 。数据源的权重越大,Cartographer在进行扫描匹配时就会越强调这个数据源 。数据来源包括占用空间(扫描点),位姿外推器(或 RealTimeCorrelativeScanMatcher )的平移和旋转
注意
在3D中,occupied_space_weight_0 和 occupied_space_weight_1 参数分别与高分辨率和低分辨率滤波点云相关 。
在 CeresScanMatcher 从得名 Ceres Solver,以谷歌为解决非线性最小二乘问题的库 。扫描匹配问题被建模为这样的问题的最小化,其中两个扫描之间的 运动 (变换矩阵)是要确定的参数 。Ceres使用下降算法针对给定的迭代次数优化运动 。Ceres可以配置为根据您自己的需要调整收敛速度 。
该 RealTimeCorrelativeScanMatcher 可以根据您在传感器的信任进行切换 。它的工作原理是在 搜索窗口中 搜索类似的扫描,搜索窗口 由最大距离半径和最大角度半径定义 。当使用此窗口中的扫描执行扫描匹配时,可以为平移和旋转组件选择不同的权重 。例如,如果您知道机器人不会旋转很多,您可以使用这些权重 。
为避免每个子图插入太多扫描,一旦扫描匹配器找到两次扫描之间的运动,它就会通过 运动滤波器。如果导致它的运动不够重要,则扫描将被删除 。仅当扫描的运动高于特定距离,角度或时间阈值时,才会将扫描插入到当前子图中 。
当LocalSLAM已经接收到给定量的范围数据时,认为子图构建完成 。LocalSLAM会随着时间漂移,GlobalSLAM用于解决这种漂移问题 。子图必须足够小,以使其内部的漂移低于分辨率,以便它们在局部是正确 。另一方面,子图应该足够大以使环路闭合能够正常工作 。
子图可以将它们的范围数据存储在几个不同的数据结构中:最广泛使用的表示称为概率网格 。但是,在2D中,还可以选择使用截断的有符号距离场(TSDF) 。
概率网格将空间划分为2D或3D表格,其中每个单元格具有固定大小并包含被障碍物占有的概率 。根据“命中”(测量范围数据)和“未命中”(传感器和测量点之间的自由空间)更新Odds 。命中 和 未命中 可以在占用概率计算不同的权重,赋予更多或更少的信任 。
在2D中,每个子图仅存储一个概率网格 。在3D中,出于扫描匹配性能的原因,使用两个 混合 概率网格 。(术语“混合”仅指内部树状数据表示并被抽象给用户)
扫描匹配首先将低分辨率点云的远点与低分辨率混合网格对齐,然后通过将高分辨率点与高分辨率混合网格对齐来细化位姿 。
注意
CartographerROS提供了一个可视化子图的RViz插件 。您可以从其编号中选择要查看的子图 。在3D中,RViz仅显示3D混合概率网格的2D投影(灰度) 。RViz左侧窗格中提供了选项,可在低分辨率和高分辨率混合网格可视化之间切换 。
TODO : 记录TSDF配置
当LocalSLAM生成其连续的子图时,全局优化(通常称为“优化问题”或“稀疏位姿调整”)任务在后台运行 。它的作用是重新安排彼此之间的子图,以便它们形成一个连贯的全局地图 。例如,该优化负责改变当前构建的轨迹以正确地对准关于环闭合的子图 。
一旦插入了一定数量的轨迹节点,就会批量运行优化 。根据您运行它的频率,您可以调整这些批次的大小 。
注意
将 POSE_GRAPH.optimize_every_n_nodes 设置为 0 是禁用全局SLAM并专注于LocalSLAM行为的便捷方法 。这通常是调整Cartographer的第一件事 。
全局SLAM是一种“GraphSLAM”,它本质上是一种位姿图优化,它通过在 节点 和子图之间构建 约束 然后优化得到的约束图来工作 。可以直观地将约束视为将所有节点捆绑在一起的小绳索 。稀疏位姿调整完全固定这些绳索 。生成的网称为“位姿图” 。
注意
约束可以在RViz中可视化,调整全局SLAM非常方便 。还可以切换 POSE_GRAPH.constraint_builder.log_matches 以获得格式化为直方图的约束构建器的常规报告 。
注意
实际上,全局约束不仅可以在单个轨迹上查找循环闭包 。它们还可以对齐由多个机器人记录的不同轨迹,但我们将保留此用法以及与“全局本地化”相关的参数超出本文档的范围 。
为了限制约束(和计算)的数量,Cartographer仅考虑构建约束的所有关闭节点的子采样集 。这由采样率常数控制 。采样太少的节点可能导致错过约束和无效的循环闭包 。对太多节点进行采样会降低全局SLAM的速度并阻止实时循环关闭 。
秒懂生活扩展阅读
- 三级跳远测量是从哪里开始测量
- 华硕A52j怎样设置从U盘启动
- 从上海虹桥机场到周庄怎么走
- cf超级对讲机从哪领
- 牛皮和牛皮革有什么区别
- 世袭制是从哪个朝代结束的
- 洗碗机怎么选 从哪两方面入手
- 从icloud怎么恢复备份
- 宋朝节度使是几品官
- 水育师是什么职业