2D-slam 激光slam: 开源代码的比较HectorSLAM Gmapping KartoSLAM CoreSLAM LagoSLAM

最近找到一篇论文比较了一下 目前ros下2D激光slam的开源代码效果比较:

详细参见论文:   An evaluation of 2D SLAM techniques available in robot operating system

1. 算法介绍

A . HectorSLAM

    scan-matching(Gaussian-Newton equation)  +  传感器的要求高

  要求: 高更新频率小测量噪声的激光扫描仪.  不需要里程计,使空中无人机与地面小车在不平坦区域运行存在运用的可能性.

      利用已经获得的地图对激光束点阵进行优化, 估计激光点在地图的表示,和占据网格的概率.

      其中扫描匹配利用的是高斯牛顿的方法进行求解. 找到激光点集映射到已有地图的刚体转换(x,y,theta).

     ( 接触的匹配的方法还有最近邻匹配的方法(ICP) ,gmapping代码中的scanmatcher部分有两种方法选择.   )

  为避免局部最小而非全局最优的(类似于多峰值模型的,局部梯度最小了,但非全局最优)出现,地图采用多分辨率的形式.

  导航中的状态估计可以加入惯性测量,进行EKF滤波.


B.   Gmapping:   tutorial

    proposed by Grisetti et al. and is a Rao-Blackwellized PF SLAM approach.
    adaptive resampling technique

    目前激光2Dslam用得最广的方法,gmapping采用的是RBPF的方法. 必须得了解粒子滤波(利用统计特性描述物理表达式下的结果)的方法.

     粒子滤波的方法一般需要大量的粒子来获取好的结果,但这必会引入计算的复杂度;粒子是一个依据过程的观测逐渐更新权重与收敛的过程,这种重采样的过程必然会代入粒子耗散问题(depletion problem), 大权重粒子显著,小权重粒子会消失(有可能正确的粒子模拟可能在中间的阶段表现权重小而消失). 

     自适应重采样技术引入减少了粒子耗散问题 , 计算粒子分布的时候不单单仅依靠机器人的运动(里程计),同时将当前观测考虑进去, 减少了机器人位置在粒子滤波步骤中的不确定性. (FAST-SLAM 2.0 的思想,可以适当减少粒子数)


C. KartoSLAM

     graph-based SLAM approach developed  bySRI International’s Karto Robotics
     highly-optimized and non iterative Cholesky matrix decomposition for sparse linear systems as its solver
     the Sparse Pose Adjustment (SPA) is responsible for both scan matching and loop-closure procedures

      Karto Open Libraries 2.0  SDK(Karto Open Libraries 2.0 is available under the LGPL open source license. You can try the full Karto SDK 2.1 for 30 days.   后面在详细研究下(比较下MRPT )

        图优化的核心思想我认为主要就是 矩阵的稀疏化与最小二乘..参见graphslam学习

  KartoSLAM是基于图优化的方法,用高度优化和非迭代 cholesky矩阵进行稀疏系统解耦作为解. 图优化方法利用图的均值表示地图,每个节点表示机器人轨迹的一个位置点和传感器测量数据集,箭头的指向的连接表示连续机器人位置点的运动,每个新节点加入,地图就会依据空间中的节点箭头的约束进行计算更新.

  KartoSLAMROS版本,其中采用的稀疏点调整(the Spare Pose Adjustment(SPA))与扫描匹配和闭环检测相关.landmark越多,内存需求越大,然而图优化方式相比其他方法在大环境下制图优势更大.在某些情况下KartoSLAM更有效,因为他仅包含点的图(robot pose),求得位置后再求map.


D. CoreSLAM

      tinySLAM algorithm: two different steps(distance calculation and update of the map
      simple and easy

     为了简单和容易理解最小化性能损失的一种slam算法.将算法简化为距离计算与地图更新的两个过程,  第一步,每次扫描输入,基于简单的粒子滤波算法计算距离,粒子滤波的匹配器用于激光与地图的匹配,每个滤波器粒子代表机器人可能的位置和相应的概率权重,这些都依赖于之前的迭代计算. 选择好最好的假设分布,即低权重粒子消失,新粒子生成..在更新步骤,扫描得到的线加入地图中,当障碍出现时,围绕障碍点绘制调整点集,而非仅一个孤立点.



E. LagoSLAM

      Linear Approximation for Graph Optimization
      the optimization process requires no initial guess

         基本的图优化slam的方法就是利用最小化非线性非凸代价函数.每次迭代, 解决局部凸近似的初始问题来更新图配置,过程迭代一定次数直到局部最小代价函数达到. (假设起始点经过多次迭代使得局部代价函数最小).  LagoSLAM 是线性近似图优化,不需要初始假设.  优化器的方法可以有三种选择 Tree-based netORK Optimizer(TORO), g2o,LAGO



2. 实验结果比较

分别从大小仿真环境和实际环境以及cpu消耗的情况下对算法进行了比较. CartoSLAM 与gampping占很大优势


说明:能力有限,讲得有问题欢迎指正,暂且粗解到这,后面再具体看看对应算法的详细论文介绍,有问题再改...


slam算法的论文几篇

下载:http://download.csdn.net/detail/zyh821351004/8986339



--------------------------------------------------------------------

补:源码工程整理: https://github.com/kintzhao/laser_slam_openSources

--------------------------------------------------------------------


  • 11
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
ORB-SLAM3是一个基于特征的视觉SLAM系统,而您遇到的错误是关于缺少文件或目录opencv/cv.h的问题。根据引用,它是由于缺少必要的包含目录而导致的错误。具体来说,您需要确保在CMakeLists.txt文件中正确设置了包含目录,并且已经安装了所需的依赖项。 引用中提到了一个可能的解决方案,即在include_directories()中添加正确的路径。请确保您已经正确设置了PROJECT_SOURCE_DIR、EIGEN3_INCLUDE_DIR和Pangolin_INCLUDE_DIRS的路径,并将/opt/ros/kinetic/include添加到包含目录中。 此外,根据引用,您还应该安装Eigen3和OpenCV的发包。您可以使用以下命令来安装Eigen3: sudo apt-get install libeigen3-dev 然后,参考引用的方法来安装OpenCV,确保您在安装时包含了opencv库。 最后,如果您遇到了undefined reference的错误,如引用所示,这可能是由于缺少链接库的原因。您可以通过在CMakeLists.txt文件中添加目标链接库来解决此问题。 综上所述,为了解决ORB-SLAM3中的Fatal error: opencv/cv.h: 没有那个文件或目录错误,您需要确认包含目录的设置正确,并安装了所需的依赖项Eigen3和OpenCV,并添加了必要的链接库。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [编译orbslam出现的问题解决](https://blog.csdn.net/qq_42429516/article/details/120348695)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [orbslam2 安装与运行](https://blog.csdn.net/peng_258/article/details/126725770)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值