ros系统上常用的2d建图算法有四种,它们分别是gmapping、谷歌cartographer、hector、Karto。

Gmapping算法

目前激光2Dslam用得最广的方法,gmapping是基于RBPF粒子滤波的算法,优点是定位准确,但需要完整的硬件平台,需要激光数据和里程计数据。主要框架如下:

优点:是在构建小场景地图所需的计算量较小且精度较高,相比Cartographer在构建小场景地图时,Gmapping不需要太多的粒子并且没有回环检测因此计算量小于Cartographer而精度并没有差太多。并且CPU资源消耗比Cartographer小。在长廊及低特征场景中建图效果好。

缺点:随着场景增大所需的粒子增加,因为每个粒子都携带一幅地图,因此在构建大地图时所需内存和计算量都会增加。因此不适合构建大场景地图。并且没有回环检测,因此在回环闭合时可能会造成地图错位,虽然增加粒子数目可以使地图闭合但是以增加计算量和内存为代价。依赖里程计(odometry),无法适用无人机及地面小车不平坦区域;无回环。

问题的关键在计算量,gmapping为单线程程序,多核cpu不起作用。计算量与地图分辨率、粒子数成正比,分辨率越大、粒子数越多,cpu占用率越高。cpu的高负荷导致一次数据处理的时间变长,从而导致部分数据得不到处理。cpu负荷越高,遗漏的数据越多,造成状态估计的不连续。这就是为什么随着粒子数的增加或地图分辨率的提高,会出现地图扭曲、未知区域变大、直接拼图失败等现象。

cartographer算法

cartographer是google推出的一套基于图优化的SLAM算法,cartographer采取的是google的ceres构建problem优化,采取的是4线程后端优化。

Cartographer主要理论是通过闭环检测来消除构图过程中产生的累积误差。用于闭环检测的基本单元是submap。一个submap是由一定数量的laser scan构成。将一个laser scan插入其对应的submap时,会基于submap已有的laser scan及其它传感器数据估计其在该submap中的最佳位置。submap的创建在短时间内的误差累积被认为是足够小的。然而随着时间推移,越来越多的submap被创建后,submap间的误差累积则会越来越大。

因此需要通过闭环检测适当的优化这些submap的位姿进而消除这些累积误差,这就将问题转化成一个位姿优化问题。当一个submap的构建完成时,也就是不会再有新的laser scan插入到该submap时,该submap就会加入到闭环检测中。闭环检测会考虑所有的已完成创建的submap。当一个新的laser scan加入到地图中时,如果该laser scan的估计位姿与地图中某个submap的某个laser scan的位姿比较接近的话,那么通过某种 scan match策略就会找到该闭环。

Cartographer中的scan match策略通过在新加入地图的laser scan的估计位姿附近取一个窗口,进而在该窗口内寻找该laser scan的一个可能的匹配,如果找到了一个足够好的匹配,则会将该匹配的闭环约束加入到位姿优化问题中。Cartographer的重点内容就是融合多传感器数据的局部submap创建以及用于闭环检测的scan match策略的实现。

优点:有回环检测,不会出现地图错位。累计误差低,能天然的输出协方差矩阵,后端优化的输入项。成本较低的雷达也能跑出不错的效果。没有imu和odom,只有雷达也可以建图,还可以手持建图。可以建图上万平米。

缺点:只有5cm的地图分辨率。内存占用较大,算法体量较大,需要花上很久的时间才能稍微看得懂。

hector算法

HectorSLAM是一种结合了鲁棒性较好的扫描匹方法2D SLAM方法和使用惯性传感系统的导航技术。传感器的要求:高更新频率小测量噪声的激光扫描仪。不需要里程计,使空中无人机与地面小车在不平坦区域运行存在运用的可能性。作者利用现代激光雷达的高更新率和低距离测量噪声,通过扫描匹配实时地对机器人运动进行估计。所以当只有低更新率的激光传感器时,即便测距估计很精确,对该系统都会出现一定的问题。

优点:不需要里程计数据,可以行驶不平坦路面。

缺点:对激光硬件要求比较高,没有回环检测,机器人行驶速度过快会导致建图失败。

karto算法

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

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

优点:在大环境下,优势大。

缺点:需要内存空间更大。

参考资料:

http://keaa.net/ros-gmapping-map.html#:~:text=%E5%9C%B0%E5%9B%BE%E6%98%AF%E5%AF%BC%E8%88%AA%E5%BF%85%E8%A6%81%E7%9A%84%E8%8A%82%E7%82%B9%EF%BC%8C%E5%9C%A8ROS%E4%B8%8A%E9%9D%A2%E5%B8%B8%E8%A7%81%E6%9C%89%E5%9B%9B%E7%A7%8D%E4%BA%8C%E7%BB%B4SLAM%E5%BB%BA%E5%9B%BE%E6%96%B9%E5%BC%8F%EF%BC%8C%E5%AE%83%E4%BB%AC%E5%88%86%E5%88%AB%E6%98%AFgmapping%E3%80%81%E8%B0%B7%E6%AD%8Ccartographer%E3%80%81hector%E3%80%81Karto%EF%BC%8C%E6%AF%8F%E7%A7%8D%E7%AE%97%E6%B3%95%E9%83%BD%E6%9C%89%E4%B8%8D%E5%90%8C%E7%9A%84%E4%BC%98%E7%BC%BA%E7%82%B9%EF%BC%8C,%E6%84%9F%E5%85%B4%E8%B6%A3%E5%8F%AF%E4%BB%A5%E7%9C%8B%E7%9C%8B%E8%BF%99%E9%87%8C%E7%9A%84SLAM%E7%AE%97%E6%B3%95%E5%AF%B9%E6%AF%94%20%E3%80%82

https://blog.csdn.net/wangguchao/article/details/85328459

https://www.cnblogs.com/kuangxionghui/p/8494566.html

https://blog.csdn.net/h1475457833/article/details/118439886

https://www.cnblogs.com/li-yao7758258/p/8213578.html

https://www.slamtec.com/cn/News/Detail/72#:~:text=%E7%9B%B8%E6%AF%94Hector,SLAM%E5%AF%B9%E6%BF%80%E5%85%89%E9%9B%B7%E8%BE%BE%E9%A2%91%E7%8E%87%E8%A6%81%E6%B1%82%E4%BD%8E%E3%80%81%E9%B2%81%E6%A3%92%E6%80%A7%E9%AB%98%EF%BC%88Hector%20%E5%9C%A8%E6%9C%BA%E5%99%A8%E4%BA%BA%E5%BF%AB%E9%80%9F%E8%BD%AC%E5%90%91%E6%97%B6%E5%BE%88%E5%AE%B9%E6%98%93%E5%8F%91%E7%94%9F%E9%94%99%E8%AF%AF%E5%8C%B9%E9%85%8D%EF%BC%8C%E5%BB%BA%E5%87%BA%E7%9A%84%E5%9C%B0%E5%9B%BE%E5%8F%91%E7%94%9F%E9%94%99%E4%BD%8D%EF%BC%8C%E5%8E%9F%E5%9B%A0%E4%B8%BB%E8%A6%81%E6%98%AF%E4%BC%98%E5%8C%96%E7%AE%97%E6%B3%95%E5%AE%B9%E6%98%93%E9%99%B7%E5%85%A5%E5%B1%80%E9%83%A8%E6%9C%80%E5%B0%8F%E5%80%BC%EF%BC%89%EF%BC%9B%E8%80%8C%E7%9B%B8%E6%AF%94Cartographer%E5%9C%A8%E6%9E%84%E5%BB%BA%E5%B0%8F%E5%9C%BA%E6%99%AF%E5%9C%B0%E5%9B%BE%E6%97%B6%EF%BC%8CGmapping%E4%B8%8D%E9%9C%80%E8%A6%81%E5%A4%AA%E5%A4%9A%E7%9A%84%E7%B2%92%E5%AD%90%E5%B9%B6%E4%B8%94%E6%B2%A1%E6%9C%89%E5%9B%9E%E7%8E%AF%E6%A3%80%E6%B5%8B%E5%9B%A0%E6%AD%A4%E8%AE%A1%E7%AE%97%E9%87%8F%E5%B0%8F%E4%BA%8ECartographer%E8%80%8C%E7%B2%BE%E5%BA%A6%E5%B9%B6%E6%B2%A1%E6%9C%89%E5%B7%AE%E5%A4%AA%E5%A4%9A%E3%80%82https://blog.csdn.net/qq_24893115/article/details/52965410

ROS-2Dslam算法比较相关推荐

  1. ROS——Teb算法的优化

    一.简介 "TEB"全称Time Elastic Band(时间弹性带)Local Planner,该方法针对全局路径规划器生成的初始轨迹进行后续修正(modification), ...

  2. 随想录(ros学习笔记)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] ros,全称robot operating system.说它是操作系统,其实也不全对,因为它实 ...

  3. ROSCon 2016视频和幻灯片发布 ROS机器人操作系统重要参考资料

    ROSCon 2016视频和幻灯片发布 By Tully Foote on 十月19,2016 7:28 AM 全部PPT下载地址:http://pan.baidu.com/s/1gf2sn2F RO ...

  4. python 机器人运动仿真_基于ros平台的移动机器人的设计与运动仿真-创新创业训练计划.pdf...

    基于ros平台的移动机器人的设计与运动仿真-创新创业训练计划 基于ROS 平台的移动机器人的设计与运动仿真 陈勇林 朱应钦 杜政恒 张玉林  (重庆大学城市科技学院电气信息学院,重庆 永川 402 ...

  5. 【ROS仿真实战】获取机器人在gazebo位置真值的三种方法(三)

    文章目录 前言 一. 使用ROS tf库 二. 使用Gazebo Model Plugin 三. 使用libgazebo_ros_p3d插件 四.总结 前言 在ROS和Gazebo中,获取机器人的位置 ...

  6. A-LOAM总结-(前端+后端)算法流程分析

    文章目录 scanRegistration.cpp 雷达信息预处理进程 laserOdometry.cpp laserMapping.cpp A-LOAM算法流程:主要运行以下3个cpp文件 流程框图 ...

  7. ROS 学习系列 -- iRobot 第二代机座 Roomba 作为Turtlebot使用时无法开关机

     iRobot 推出了第二代机座 Roomba来取代Create.  这是一个绿脸的机座. 如果使用在turtlebot上,几乎是完全兼容的,不用该什么代码,但是波特率提高了一倍,所以需要更改环境 ...

  8. 已 树莓派4b ros 系统 网盘_无限可能:树莓派4B 安装Ubuntu18.04+ROS1(melodic)

    一.安装Ubuntu18.04 从Ubuntu官网(Install Ubuntu Server on a Raspberry Pi 2, 3 or 4 | Ubuntu)下载64bit镜像,Ubunt ...

  9. ROS1云课→29如何借助导航实现走迷宫机器人

    ROS1云课→28机器人代价地图配置 简述: 在这个项目中,将创建一个机器人,它将进入一个迷宫形式的房间,然后从另一个点离开房间. 详细: 在行业中,有些地方机器人可以收集加工过的物体并将这些物体放入 ...

  10. ROSCon会议详细资料

    ROSCon 2017通知:9月21日和22日在温哥华 视频和幻灯片已上传并在程序中链接到下面. 2012年, 2013年, 2014年, 2015年和 2016 年的 档案 也可用. 我们很高兴地宣 ...

最新文章

  1. 美国限制研究生入境,港大神操作,只要你愿意,填个表就行,还有机会获得校长奖学金...
  2. 在winform程序中启动wpf窗体
  3. Bootstrap 幻灯片效果
  4. 如何看待清华大学生命科学学院削减研究生补助的行为?
  5. javascript创建表格
  6. 能否构成三角形的条件代码_中考三角形专题复习:一般三角形知识全面梳理
  7. VUE从一个页面传值到另一个页面
  8. GEANT4 中的NIST MATERIAL 材料名录
  9. 百度二年级手工机器人_小学二年级手工科技制作方案
  10. 有时用weblogic用户启动weblogic时会报错的原因以及解决办法
  11. 第三章 - 有穷自动机与词法分析(一)
  12. nginx的日志放在哪里?
  13. 向世界问好,.NET 5 从 Fur 框架开始,v1.0.0.rc2 发布
  14. 张国土“黄河千年清一回”——让黄河水更清 让农民更富裕
  15. 自己写了好久的SSM个人博客。。。记录下,并分享 源码----(SpringBoot+Thymeleaf+layui+mybatis)
  16. 熵权法(客观赋权法)
  17. 拦截器与过滤器详解,使用方式与注意事项,使用场景以及区别与联系
  18. java刷新透视表数据源,Excel数据透视表过滤源更新时更改的值
  19. cia402 状态字_解析CiA402.doc
  20. Python爬虫练习(爬取OJ题目和学校信息通知)

热门文章

  1. DOM初探(14)——查看滚动条的滚动距离
  2. Linux之scp与sftp的使用
  3. Vue.js如何获得兄弟元素,子元素,父元素(DOM操作)
  4. 魔兽世界会流行多久?
  5. psu 计算机 排名,PSU研究生计算机科学排名,真慎重来考察
  6. MySql模糊查询like通配符的使用
  7. 型のデザインのガイドライン
  8. 电影html css页面,纯CSS3构建的电影屏幕效果
  9. wincc做皮带动画_WINCC中制作管道流体流动动画的一种方法
  10. ultron官网,奥创官网,奥创中国区官网,ultron中国区官网,奥创公链,ultron公链,ulx,ultron奥创,ultron,奥创,海洋renhe333333