Cartographer工作流程及参数解析

Cartographer工作流程及参数解析

参考Cartographer_ros官方教程
Cartographer 是一个复杂的系统,调整它需要对其内部工作有很好的了解。 这里试图直观地概述 Cartographer 使用的不同子系统及其参数配置值。这里只描述了 2D SLAM,但它包含了Cartographer使用的大多数概念。 这些概念通常也适用于 3D。

Cartographer的详细细节可以参考W. Hess, D. Kohler, H. Rapp, and D. Andor, Real-Time Loop Closure in 2D LIDAR SLAM, in Robotics and Automation (ICRA), 2016 IEEE International Conference on. IEEE, 2016. pp. 1271–1278.

系统概述


Cartographer 可以被视为两个独立但相关的子系统。 第一个是局部SLAM(有时也称为前端或本地轨迹构建器)。 它的工作是构建一系列子图。 每个子图都是局部一致的,但我们接受局部 SLAM 随时间漂移。 大多数局部 SLAM 选项可以在 install_isolated/share/cartographer/configuration_files/trajectory_builder_2d.lua(对于 2D)和 install_isolated/share/cartographer/configuration_files/trajectory_builder_3d.lua(对于 3D)中找到。

另一个子系统是全局 SLAM(有时称为后端)。 它在后台线程中运行,其主要工作是寻找闭环约束。 它通过扫描匹配方法匹配当前的扫描(储存在节点中)和子图来实现这一点。 它还结合其他传感器数据以获得更高级别的层次的视角并确定最一致的全局解。 在 3D 中,它还试图找到重力的方向。 它的大部分选项可以在install_isolated/share/cartographer/configuration_files/pose_graph.lua中找到。

在更高的抽象层次上,局部 SLAM 的工作是生成好的子图,而全局 SLAM 的工作是将它们最一致地联系在一起。

测距传感器(例如:LIDAR)提供多个方向的深度信息。 然而,一些测量与 SLAM 无关。 如果传感器部分被灰尘覆盖或指向机器人的一部分,则部分测量距离可被视为 SLAM 的噪声。 另一方面,一些最远的测量也可能来自不期望的信息源(反射、传感器噪声),并且也与 SLAM 无关。 为了解决这些问题,Cartographer 首先应用带通滤波器,并且将范围值保持在某个最小和最大范围之间。 应根据机器人和传感器的规格选择这些最小值和最大值。

TRAJECTORY_BUILDER_nD.min_range
TRAJECTORY_BUILDER_nD.max_range

在 2D 中,Cartographer 用·TRAJECTORY_BUILDER_2D.missing_data_ray_length 替换了比 max_range 更远的距离测量值。 它还提供了max_zmin_z值以将 3D 点云过滤为 2D 切片。

在 Cartographer 配置文件中,每个距离都以米为单位定义。

距离是在机器人实际移动的一段时间内测量的。 然而,距离是由传感器在一个大的 ROS 消息中“批量”传递的。 Cartographer 可以独立考虑每个消息的时间戳,以考虑由机器人运动引起的畸变。 Cartographer 获得测量值的次数越多,就越能更好地对测量值进行去畸变以获得可以立即捕获的单个扫描。 因此,强烈建议通过扫描(一组可以与另一个扫描匹配的范围数据)提供尽可能多的范围数据(ROS 消息)。

TRAJECTORY_BUILDER_nD.num_accumulated_range_data

市面上的商用雷达不提供这个功能,可以忽略掉这个功能

范围数据通常是从机器人上的单个点以多个角度测量的。 这意味着靠近的表面(例如道路)经常被击中并提供很多点。 相反,远处的物体被击中的频率较低,提供的点也较少。 为了减少点处理的计算量,我们通常需要对点云进行二次采样。 但是,简单的随机抽样会从已经是低测量密度的区域中删除点,而高测量密度区域的点仍会比需要的多。 为了解决这个测量值密度分布不均的问题,我们可以使用体素滤波器将原始点下采样为恒定大小体素,并且只保留每个体素的质心。

较小的体素尺寸将导致更稠密的数据表示,从而导致更多的计算。 大的体素尺寸会导致数据丢失,但速度会快得多。

TRAJECTORY_BUILDER_nD.voxel_filter_size

在应用了固定大小的体素滤波器之后,Cartographer 还

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值