本篇主要介绍在ROS系统中使用SLAM算法建地图时出现地图定位漂移的几种原因及可以采取的措施。
1.SLAM建图时出现的定位漂移现象
2.原因分析
- 里程计数据发生异常;
- 计算机的配置不高,计算机建图过程出现卡顿;
- 激光雷达的数据传入异常;
- 配置文件中的参数配置不够好;
- 建图算法选择。
3.解决方案
出现地图定位漂移问题的几种解决方案,对应上述原因:
- 里程计数据异常。
出现地图地位漂移问题的一个重要原因是里程计没有配置好,笔者在调试AGV过程中,因为写stm32程序的同事把里程计的程序写错,电机控制程序错误,导致里程计数据异常,AGV处理里程计数据时,无法正确定位,从而导致建图时发生漂移,这是很重要的一个原因,通过输出里程计数据进行分析。 - 计算机配置。
笔者公司现在使用的是公司配备的笔记本,配置不是很高,使用这个笔记本建图时,快要建立好地图时,地图就被卡漂移了,有时候建立大型地图时,就得建一天,总是卡漂移。但是,使用新同事自己的高配电脑建地图时,明显流畅以及速度加快。如果计算机配置不算太高,可以通过降低配置文件中的某些参数去减轻计算机的计算压力以满足建图需要,如降低resolution等; - 激光雷达。
读取激光雷达数据的速率是否过快,导致计算机计算压力过大,需要根据激光雷达的参数,设置好建图文件的参数。 - 配置文件的参数。
在几个导航文件中,如cost配置文件、planner配置文件中的参数,需要根据自己电脑的配置去调试好,电脑配置不太高的,就通过降低某些指标去适配电脑,这和第二点差不多,但是配置文件参数很多,需要读者去细读各个配置文件,以及各个配置文件参数的含义,官方建议的取值,是取大一点还是取小一点,这都影响AGV的运行效果。 - 建图算法。
建图算法也有几种,如:gmapping、hector、frontier等算法,选择正确的建图算法也是很重要的。
注:以上是笔者在调试AGV过程中,出现建图漂移时尝试过的几个解决方案,里程计数据以及配置文件的参数配置其中最重要的两个因素,需要重点分析;同时欢迎各位在评论区留言各位对于建图定位漂移的原因分析以及对应的解决方案。