Cartographer纯定位原理
cartographer用于纯定位时所加载的pbstream格式文件,可以从中读取出子图、节点、里程计等数据(参考)。cartographer在收到一个scan时,除了会用来插入子图,也会尝试将其与所有已构建完成的子图进行扫描匹配以建立约束,当一个子图构建完成时也会尝试将其与所有的节点进行配准以建立约束。每收到足够的scan会进行一次优化求解,在优化前,scan是和插入子图匹配的,而插入子图并不一定与从文件中读取的子图匹配,所以定位是否准确主要看优化过程。此外,由于在建立约束时,如果两者距离较远,则不会进行配准,所以机器最好在原点处开机,不然很难通过优化定位回来。又由于当配准得到的位姿或者添加scan的时间与上一个太接近,则该scan不会用于插入也不会记为一次添加(这会使得添加的scan数量达不到优化的要求,从而不进行优化。或许亦存在一个根据间隔时间进行优化的模块??)
本文解析了Cartographer纯定位技术的核心机制,包括pbstream文件中的数据结构、scan匹配与子图构建、优化求解策略,以及为何原点开机对定位至关重要。着重讲解了如何通过优化过程提高定位准确性,并讨论了约束匹配的条件和间隔时间对优化的影响。
5684

被折叠的 条评论
为什么被折叠?



