【SLAM基础】激光SLAM和视觉SLAM介绍_光照会影响视觉导航吗-程序员宅基地

技术标签: # SLAM  机器人  机器学习  

:如果你也对机器人、人工智能感兴趣,看来我们志同道合
:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852
:文章若有幸对你有帮助,可点赞 收藏 不迷路
:内容若有错误,敬请留言 指正!原创文,转载请注明出处


问题来源

自动导航技术是机器人的关键技术,机器人要实现自主导航需要解决以下三个问题:
:1.我在哪里?
:2.到哪里去?
:3.怎么去?
其中第一个问题是后面两个的基础,如果都不知道所处的位置,又怎么能确定要去的方向呢?而SLAM就是为了解决第一个问题的其中一个办法。
1887年,Smith等提出了一种定位与构图同时进行的方法,从此拉开对同时定位与地图构建研究的序幕。
一般来讲,SLAM系统通常都包含多种传感器和多种功能模块。而按照核心的功能模块来区分,目前常见的机器人SLAM系统一般具有两种形式:基于激光雷达的SLAM(激光SLAM)和基于视觉的SLAM(Visual SLAM或VSLAM)。

定位与建图之间的关系

在未知的环境中实现精确定位和建图需要精确的地图,建立精确的地图又依赖于精准的定位,形成一种两者相互耦合,相辅相成的关系。

一、激光SLAM

1.1定义

:激光SLAM脱胎于早期的基于测距的定位方法(如超声和红外单点测距)。激光雷达(Light Detection And Ranging)的出现和普及使得测量更快更准,信息更丰富。激光雷达采集到的物体信息呈现出一系列分散的、具有准确角度和距离信息的点,被称为点云。通常,激光SLAM系统通过对不同时刻两片点云的匹配与比对,计算激光雷达相对运动的距离和姿态的改变,也就完成了对机器人自身的定位。

:激光雷达采集到的物体信息呈现出一系列分散的、具有准确角度和距离信息的点,被称为点云。通常,激光SLAM系统通过对不同时刻两片点云的匹配与比对,计算激光雷达相对运动的距离和姿态的改变,从而完成对机器人自身的定位。

:激光雷达距离测量比较准确,误差模型简单,在强光直射以外的环境中运行稳定,点云的处理也比较容易。同时,点云信息本身包含直接的几何关系,使得机器人的路径规划和导航变得直观。激光SLAM理论研究也相对成熟,落地产品更丰富。

1.2优点

1.激光雷达的出现和普及使得测量更快更准,信息更丰富。
2.误差模型简单,在强光直射以外的环境中运行稳定,点云的处理也比较容易。
3.点云信息本身包含直接的几何关系,使得机器人的路径规划和导航变得直观。
4.研究成熟,在算法上门槛更低

1.3缺点

1.较为缺乏回环检测的能力,累计误差的消除较为困难。
2.成本都高于视觉传感器。
3.不擅长动态环境中的定位。
4.多机器人协作能力差。
在这里插入图片描述
激光雷达

在这里插入图片描述
激光SLAM的地图构建(谷歌Cartographer)

二、视觉SLAM

2.1定义

使用相机作为唯一感知环境的传感器,被称为视觉SLAM:在未知的环境中的未知地点出发,在移动的过程中通过重复观测到周围的环境特征(路标)定位自身的位置和姿态,再根据自身位置进行增量式构建地图,从而达到同时定位和建图的目的。一个VSLAM系统由前端和后端组成,前端负责负责快速定位。后端负责较慢的地图维护:1.(回环)回到原处并修正两次访问中间各处的位置与姿态;2.当前端跟踪丢失时,根据视觉的纹理信息对机器人进行重新定位。
回环问题的难点在于一开始出现未被发觉的少许误差,直到机器人绕着环路一圈,误差将不断累加,导致环路无法闭合的问题。
在这里插入图片描述

2.2优点

VSLAM的优点是它所利用的丰富纹理信息。例如两块尺寸相同内容却不同的广告牌,基于点云的激光SLAM算法无法区别他们,而视觉则可以轻易分辨。这带来了重定位、场景分类上无可比拟的巨大优势。同时,视觉信息可以较为容易的被用来跟踪和预测场景中的动态目标,如行人、车辆等,对于在复杂动态场景中的应用这是至关重要的。第三,视觉的投影模型理论上可以让无限远处的物体都进入视觉画面中,在合理的配置下(如长基线的双目相机)可以进行很大尺度场景的定位与地图构建。

1.从环境中获取海量的、富于冗余的纹理信息,拥有超强的场景辨识能力。
2.多机器人协作能力强。
3.相对于其他传感器能够获得更丰富的图像信息,同时视觉传感器轻巧价廉、易于安装,因此基于视觉传感器的SLAM研究成为当下研究热点。
在这里插入图片描述
DJI精灵4上的视觉系统。

2.3缺点

1.受光照的影响较大。
2.在无纹理环境(比如面对整洁的白墙面)中表现较差。
3.技术的算法门槛也远远高于激光SLAM。基于非线性优化的地图构建上是非常复杂和耗时的计算问题。

三、激光SLAM和视觉SLAM的融合

视觉在纹理丰富的动态环境中稳定工作,并能为激光SLAM提供非常准确的点云匹配,而激光雷达提供的精确方向和距离信息在正确匹配的点云上会发挥更大的威力。
而在光照严重不足或纹理缺失的环境中,激光SLAM的定位工作使得视觉可以借助不多的信息进行场景记录。

在这里插入图片描述
图:激光雷达和视觉系统的安装应用。谷歌无人车上的多线激光雷达

四、SLAM系统与其他传感器的融合

SLAM(Simultaneous Localization and Mapping,同时定位与建图)系统是一种通过结合传感器测量数据来实现机器人同时进行自主定位和环境地图构建的技术。现实中的激光与视觉SLAM系统几乎都会配备惯性元件、轮机里程计、卫星定位系统、室内基站定位系统等辅助定位工具。

SLAM系统通常基于以下传感器进行融合:

  1. 惯性测量单元(Inertial Measurement Unit,IMU):IMU能够提供机器人的加速度和角速度测量数据,用于估计机器人的姿态和位置变化。与其他传感器相比,IMU具有高频率的测量能力,但会存在漂移等问题。

  2. 视觉传感器:包括摄像头、深度相机等。通过对环境中的特征进行提取和跟踪,利用视觉传感器可以得到机器人在环境中的位置和地图信息。视觉传感器能够提供丰富的感知信息,但对于光照和遮挡等问题比较敏感。

  3. 激光雷达:激光雷达通过发射激光束并测量反射回来的光来获取环境的几何信息。激光雷达提供高精度的距离和位置测量,可以用于地图构建和障碍物检测。但是激光雷达通常较为昂贵、体积较大,且对于特别亮或黑暗的物体可能有限制。

  4. 范围传感器:比如超声波传感器和红外线传感器等,用于测量机器人与周围物体的距离。范围传感器常用于近距离避障和环境建模,但精度和范围有限。

融合不同传感器的数据可以综合各种传感器的优势,提高定位和建图的准确性和鲁棒性。常用的方法包括扩展卡尔曼滤波(Extended Kalman Filter,EKF)、粒子滤波(Particle Filter)和优化方法(如图优化)等。这些方法能够将不同传感器获得的信息进行融合,并进行状态估计和地图构建,实现SLAM系统的功能。

结语

SLAM技术将赋予为机器人和智能体前所未有的行动能力。作为当前SLAM框架的主要类型,激光SLAM与视觉SLAM必将在相互竞争和融合中发展,必将带来机器人技术和人工智能技术的真正革命,也将使得机器人从实验室和展示厅中走出来,真正服务和解放人类。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_51244852/article/details/116143358

智能推荐

前端开发之vue-grid-layout的使用和实例-程序员宅基地

文章浏览阅读1.1w次,点赞7次,收藏34次。vue-grid-layout的使用、实例、遇到的问题和解决方案_vue-grid-layout

Power Apps-上传附件控件_powerapps点击按钮上传附件-程序员宅基地

文章浏览阅读218次。然后连接一个数据源,就会在下面自动产生一个添加附件的组件。把这个控件复制粘贴到页面里,就可以单独使用来上传了。插入一个“编辑”窗体。_powerapps点击按钮上传附件

C++ 面向对象(Object-Oriented)的特征 & 构造函数& 析构函数_"object(cnofd[\"ofdrender\"])十条"-程序员宅基地

文章浏览阅读264次。(1) Abstraction (抽象)(2) Polymorphism (多态)(3) Inheritance (继承)(4) Encapsulation (封装)_"object(cnofd[\"ofdrender\"])十条"

修改node_modules源码,并保存,使用patch-package打补丁,git提交代码后,所有人可以用到修改后的_修改 node_modules-程序员宅基地

文章浏览阅读133次。删除node_modules,重新npm install看是否成功。在 package.json 文件中的 scripts 中加入。修改你的第三方库的bug等。然后目录会多出一个目录文件。_修改 node_modules

【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure-程序员宅基地

文章浏览阅读883次。【代码】【】kali--password:su的 Authentication failure问题,&sudo passwd root输入密码时Sorry, try again._password: su: authentication failure

整理5个优秀的微信小程序开源项目_微信小程序开源模板-程序员宅基地

文章浏览阅读1w次,点赞13次,收藏97次。整理5个优秀的微信小程序开源项目。收集了微信小程序开发过程中会使用到的资料、问题以及第三方组件库。_微信小程序开源模板

随便推点

Centos7最简搭建NFS服务器_centos7 搭建nfs server-程序员宅基地

文章浏览阅读128次。Centos7最简搭建NFS服务器_centos7 搭建nfs server

Springboot整合Mybatis-Plus使用总结(mybatis 坑补充)_mybaitis-plus ruledataobjectattributemapper' and '-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏3次。前言mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的解决了这个问题。..._mybaitis-plus ruledataobjectattributemapper' and 'com.picc.rule.management.d

EECE 1080C / Programming for ECESummer 2022 Laboratory 4: Global Functions Practice_eece1080c-程序员宅基地

文章浏览阅读325次。EECE 1080C / Programming for ECESummer 2022Laboratory 4: Global Functions PracticePlagiarism will not be tolerated:Topics covered:function creation and call statements (emphasis on global functions)Objective:To practice program development b_eece1080c

洛谷p4777 【模板】扩展中国剩余定理-程序员宅基地

文章浏览阅读53次。被同机房早就1年前就学过的东西我现在才学,wtcl。设要求的数为\(x\)。设当前处理到第\(k\)个同余式,设\(M = LCM ^ {k - 1} _ {i - 1}\) ,前\(k - 1\)个的通解就是\(x + i * M\)。那么其实第\(k\)个来说,其实就是求一个\(y\)使得\(x + y * M ≡ a_k(mod b_k)\)转化一下就是\(y * M ...

android 退出应用没有走ondestory方法,[Android基础论]为何Activity退出之后,系统没有调用onDestroy方法?...-程序员宅基地

文章浏览阅读1.3k次。首先,问题是如何出现的?晚上复查代码,发现一个activity没有调用自己的ondestroy方法我表示非常的费解,于是我检查了下代码。发现再finish代码之后接了如下代码finish();System.exit(0);//这就是罪魁祸首为什么这样写会出现问题System.exit(0);////看一下函数的原型public static void exit (int code)//Added ..._android 手动杀死app,activity不执行ondestroy

SylixOS快问快答_select函数 导致堆栈溢出 sylixos-程序员宅基地

文章浏览阅读894次。Q: SylixOS 版权是什么形式, 是否分为<开发版税>和<运行时版税>.A: SylixOS 是开源并免费的操作系统, 支持 BSD/GPL 协议(GPL 版本暂未确定). 没有任何的运行时版税. 您可以用她来做任何 您喜欢做的项目. 也可以修改 SylixOS 的源代码, 不需要支付任何费用. 当然笔者希望您可以将使用 SylixOS 开发的项目 (不需要开源)或对 SylixOS 源码的修改及时告知笔者.需要指出: SylixOS 本身仅是笔者用来提升自己水平而开发的_select函数 导致堆栈溢出 sylixos

推荐文章

热门文章

相关标签