HectorSLAMGmappingKartoSLAMCoreSLAMLagoSLAM

2023-11-01

1. 算法介绍

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

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

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

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

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

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

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

B. Gmapping
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 by SRI 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库)

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

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

  KartoSLAM的ROS版本,其中采用的稀疏点调整(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占很大优势

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HectorSLAMGmappingKartoSLAMCoreSLAMLagoSLAM 的相关文章

随机推荐

  • 人工智能大会机器人范围

    AI时代 看机器人七十二变 2020世界人工智能大会现场 一组 AI上海 机器人矩阵 观展区十分吸引眼球 格物斯坦表示 机器人的种类分很多 智能广告导引机器人 智能末端配送站 智能陪伴机器人 数字化门店等各路机器人各显神通 共同为沪上的人工
  • 手把手教你用 ChatGPT plugin 打造一个人知识库系统(一)

    为什么需要个人知识库 大概有很多人跟我一样 被现在信息过载弄得非常焦虑 很自然想到通过整理的方式来对抗信息过载 试图使用各种知识管理工具来整理这些信息 但最后折腾完各种工具后 才发现根本用不起来 因为这些工具常常需要我们按照预设的框架去管理
  • 如何融合多任务学习 (Multi-Task Learning ) 损失函数loss

    目录 1 Uncertainty Weighting 1 1 基础概念 1 2 方法 2 GradNorm 2 1 原理 2 2 方法 3 Multi Objective Optimisation 3 1 原理 3 2 方法 4 Geome
  • OAuth2基础知识

    什么是OAuth 2 OAuth 2 0是一种授权协议 它的核心是授权许可和令牌机制 它通过颁发访问令牌给第三方 允许第三方代表用户访问该用户的数据 而不是直接给第三方用户名和密码 它主要用来保护Web API接口 第三方只有得到授权和访问
  • Js文件中调用其它Js函数的方法

    转载 在一个js中引用另一个js的方法 方法 步骤 一个js调用另外一个js的方法 最简单的例子就是jquery的调用 首先准备好两个js文件 然后写一个html文件 通过方法 将两个js引用到html文件中 处于下方的js文件 就可以直接
  • 电路实验

    任务一 1 非门电路 2 表格 INPUT toggle switch OUTPUT led ON 1 Black 0 OFF 0 Red 1 任务二 1 A B C AB AC 2 表格 A B C O1 O2 0 0 0 0 0 0 1
  • 【C++编程题】回文串( 动态规划×,暴力求解√ )

    问题描述 回文串 是一个正读和反读都一样的字符串 比如 level 或者 noon 等等就是回文串 给你一个字符串 问最少在字符串尾添加多少字符 可以使得字符串变为回文串 输入格式 有多组测试数据 每组测试数据第一行是一个正整数N 表示字符
  • 土地利用现状分类2020_国土空间调查、规划、用途管制用地用海分类指南来了...

    自然资源部办公厅印发指南通知 据自然资源部官网今日消息 该部办公厅已于11月17日印发 国土空间调查 规划 用途管制用地用海分类指南 试行 这部指南主要内容包括总则 一般规定 用地用海分类等 其明确了国土空间调查 规划 用途管制用地用海分类
  • Pandora设置samba(文件共享)的步骤#openwrt通用#

    此方法为在线安装 进入后台 进入系统 gt 软件包 点击刷新列表 搜索Samba 安装两个插件 luci app samba和 samba4 server 重启路由器 在服务中可以查看配置 添加用户 在winscp中 找到etc passw
  • 代码随想录算法训练营第二十九天/46.全排列、47.全排列2

    文章目录 组合 排列辨析 46 全排列 思路 注意 实现代码 47 全排列2 思路 注意 实现代码 组合 排列辨析 组合 是无序的 例如 1 2 2 1 是同一个 排列 是有序的 例如 1 2 2 1 是不一样的 46 全排列 思路 判断结
  • Maven入门学习

    Maven 1 Maven 介绍 Maven 是跨平台的项目管理工具 作为 Apache 组织提供的一个颇为成功的开源项目 它是基于项目对象模型 POM project object model 可以通过一小段描述信息 配置 来管理项目的构
  • 【MQ】kafka(四)——kafka消费者如何消费的?如何防止重复消费?如何顺序消费?

    一 前言 前面博客小编向大家分享了 kafka如何保证消息不丢失 基本是从producer和broker来分析的 producer要支持重试和acks producer要做好副本和及时刷盘落地 这篇博客呢 就跟大家一起聊一下 kafka 消
  • 多核CPU开几个线程最好

    影响最佳线程数的主要因素 1 IO 2 CPU 根据公式 服务器端最佳线程数量 线程等待时间 线程cpu时间 线程cpu时间 cpu数量 一般来说是IO和CPU IO开销较多的应用其CPU线程等待时间会比较长 所以线程数量可以开的多一些 相
  • Kubernetes控制器之Deployment

    Deployment为Pod和ReplicaSet提供了一个声明式定义 declarative 方法 用来替代以前的ReplicationController来方便的管理应用 只需要在Deployment中描述一个期望状态 Deployme
  • Spring Data 与MongoDB 集成二:操作篇(添加和删除)

    一 简介 spring data mongodb项目提供与mongdb文档数据库的集成 spring data mongodb提供了org springframework data mongodb core MongoTemplate对mo
  • keras和tensorflow的版本对应关系

    keras和tensorflow的版本对应关系 Framework Env name env parameter Description Docker Image Packages and Nvidia Settings TensorFlo
  • java生成电子发票_电子发票实例(iText)

    实例简介 1 首先右键解决方案还原 nuget包 2 运行项目 则如下图 实例截图 生成的电子发票如下 模板的内容如下 核心代码 using MakePDFDemo Model using System namespace MakePDFD
  • Android平台 Target API level 升级到 31,在Android 12上启动黑屏卡死

    项目场景 项目上架平台要求android API需要升级到31及以上才行 API升级到33版本后经测试在android12 13机型上会卡在启动页面 打开调试日志也没报错 问题描述 Android平台 Target API level 升级
  • 阿里云服务器Windows Server 2008 架设 Web 服务器教程(图文详解)

    最近刚忙完嵌入式下位机LWIP的网络通讯 希望将嵌入式设备接入云端来进行控制 买了一个阿里云Windows server 2008服务器 来搭建云服务器 过程给大家分享一下互相学习 让小白快速上手 通过win R打开命令终端 输入mstsc
  • HectorSLAMGmappingKartoSLAMCoreSLAMLagoSLAM

    1 算法介绍 A HectorSLAM scan matching Gaussian Newton equation 传感器的要求高 要求 高更新频率小测量噪声的激光扫描仪 不需要里程计 使空中无人机与地面小车在不平坦区域运行存在运用的可能