实时建图

建图文件成功打开

目前机器人使用中需要进行SLAM建图,因为移动机器人想要实现自主行走,核心在于实现自主定位导航,在自主定位导航技术中会涉及到定位、建图、路径规划等问题,而地图构建的好坏将直接影响机器人的行走路径。 机器人想要到达某个目的地,需要和人类绘制地图一样,描述环境、认识环境的过程主要就是依靠地图。下面对myAGV小车使用的两种建图算法进行介绍。

Gmapping 算法介绍

gmapping :是一种基于粒子滤波的激光SLAM算法,它已经集成在ROS中,是移动机器人中使用最多的SLAM算法。 基于粒子滤波的算法用许多加权粒子表示路径的后验概率,每个粒子都给出一个重要性因子。 但是它们通常需要大量的粒子才能获得比较好的的结果,从而增加该算法的的计算复杂性。此外,与PF重采样过程相关的粒子退化耗尽问题也降低了算法的准确性。

Cartographer 算法介绍

cartographer :是google开发的实时室内SLAM项目,一套基于图优化的SLAM算法。 cartographer采用基于google自家开发的ceres非线性优化的方法,cartographer的亮点在于代码规范与工程化,非常适合于商业应用和再开发。 并且cartographer基于submap子图构建全局地图的思想,能有效的避免建图过程中环境中移动物体的干扰。并且cartographer支持多传感器数据(odometry、IMU、LaserScan等)建图, 支持2D_SLAM和3D_SLAM建图。能天然的输出协方差矩阵,后端优化的输入项。

Gmapping、Cartorgrapher建图对比

Gmapping可以实时构建室内地图,在构建小场景地图所需的计算量较小且精度较高。 而相比Cartographer在构建小场景地图时,Gmapping不需要太多的粒子并且没有回环检测,因此计算量小于Cartographer,而精度并没有差太多。 Gmapping有效利用了车轮里程计信息,这也是Gmapping对激光雷达频率要求低的原因:里程计可以提供机器人的位姿先验。 而Cartographer的设计初衷不是为了解决平面移动机器人定位和建图,而Cartographer是用于手持激光雷达完成SLAM过程,也就没有里程计可以用。

results matching ""

    No results matching ""