SLAM:SLAM(即时定位与地图构建)的简介、发展、案例应用之详细攻略

简介: SLAM:SLAM(即时定位与地图构建)的简介、发展、案例应用之详细攻略

SLAM的简介


       SLAM (simultaneous localization and mapping),也称为CML (Concurrent Mapping and Localization), 即时定位与地图构建,或并发建图与定位。问题可以描述为:将一个机器人放入未知环境中的未知位置,是否有办法让机器人一边移动一边逐步描绘出此环境完全的地图,所谓完全的地图(a consistent map)是指不受障碍行进到房间可进入的每个角落。

       SLAM问题可以描述为: 机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。

       Simultaneous Localization And Mapping也称为Concurrent Mapping and Localization并发建图与定位CML 。SLAM最早由Smith、Self和Cheeseman于1986年提出。 由于其重要的理论与应用价值,被很多学者认为是实现真正全自主移动机器人的关键。它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动。如果这里的传感器主要为相机,那就称为“视觉SLAM"。



1、我在什么地方?—定位,自身状态。 周围环境是什么样?—建图,外在环境。


       室内的话,可以在房间地板上铺设导引线,在墙壁上贴识别二维码,在桌子上放置无线电定位设备。如果在室外,还可以在小萝卜脑袋上安装GPS定位设备,像手机或汽车一样。

       把这些传感器分为两类。一类传感器是携带于机器人本体上的,例如机器人的轮式编码器、相机、激光等等。另一类是安装于环境中的,例如前面讲的导轨、二维码标志等等。安装于环境中的传感设备,通常能够直接测量到机器人的位置信息,简单有效地解决定位问题。然而,由于它们必须在环境中设置,在一定程度上限制了机器人的使用范围。比方说,有些地方没有GPS信号,有些地方无法铺设导轨,这时怎么做定位呢?

       可知,这类传感器约束了外部环境。只有在这些约束满足时,基于它们的定位方案才能工作。虽然这类传感器简单可靠,但它们无法提供一个普遍的、通用的解决方案。相对的,那些携带于机器人本体上的传感器,比如激光传感器、相机、轮式编码器、惯性测量单元(Inertial Measurement Unit, IMU)等等,它们测到的通常都是一些间接的物理量而不是直接的位置数据。例如,轮式编码器会测到轮子转动的角度、IMU测量运动的角速度和加速度,相机和激光则读取外部环境的某种观测数据。我们只能通过一些间接的手段,从这些数据推算自己的位置。虽然这听上去是一种迂回战术,但更明显的好处是,它没有对环境提出任何要求,使得这种定位方案可适用于未知环境。



2、SLAM的问题描述


      机器人在未知环境中,从一个未知位置开始移动,在移动过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。



3、SLAM试图解决的问题


      一个机器人在未知的环境中运动,如何通过对环境的观测确定自身的运动轨迹,同时构建出环境的地图。SLAM技术正是为了实现这个目标涉及到的诸多技术的总和。



4、SLAM 2D与SLAM 3D


SLAM 2D


      SLAM定位时,仅用单线激光传感器,在激光传感器扫描的这一个平面上进行二维定位,在获取精密的二维定位后,在此基础上解算三维激光点云,成为一个完整的空间三维数据。


SLAM 3D


      要用三维激光传感器,获取三维数据,然后通过三维数据的特征点匹配进行定位,然后在三维定位基础上,来解算和匹配完整的三维数据。




SLAM的发展


1、古人的牵星板


       定位、定向、测速、授时是人们惆怅千年都未能完全解决的问题,最早的时候,古人只能靠夜观天象和司南来做简单的定向。直至元代,出于对定位的需求,才华横溢的中国人发明了令人叹为观止的牵星术,用牵星板测量星星实现纬度估计。  



2、1964年美国投入GPS


       1964年美国投入使用GPS,突然就打破了大家的游戏规则。军用的P码可以达到1-2米级精度,开放给大众使用的CA码也能够实现5-10米级的精度。后来大家一方面为了突破P码封锁,另一方面为了追求更高的定位定姿精度,想出了很多十分具有创意的想法来挺升GPS的精度。利用RTK的实时相位差分技术,甚至能实现厘米的定位精度,基本上解决了室外的定位和定姿问题。但室内这个问题就难办多了,为了实现室内的定位定姿,一大批技术不断涌现,其中,SLAM技术逐渐脱颖而出。



3、1988年正式提出SLAM


       SLAM最早由Smith、Self和Cheeseman于1988年提出。 由于其重要的理论与应用价值,被很多学者认为是实现真正全自主移动机器人的关键。


有理解力的SLAM: 语义SLAM,精准感知并适应环境。将语义分析与SLAM有效融合,增强机器对环境中相互作用的理解能力,为机器人赋予了复杂环境感知力和动态场景适应力。

有广度的SLAM:100万平米强大建图能力。借助高效的环境识别、智能分析技术,机器人将拥有室内外全场景范围高达100万平米的地图构建能力。

有精度的SLAM:高精度定位领先算法。SLAM2.0可在任何地点进行开机识别、全局定位,精准度高达±2cm。

有时效的SLAM:动态地图实时更新。根据传感器回传数据,与原有地图进行分析比对,完成动态实时更新,实现life-long SLAM。



SLAM的案例应用



1、AR/VR设备


根据 SLAM 得到地图和当前视角对叠加虚拟物体做相应渲染,这样做可以使得叠加的虚拟物体看起来比较真实,没有违和感;



2、无人机器、无人驾驶领域


SLAM可以构建局部地图,辅助无人机进行自主避障、规划路径;


无人驾驶领域: SLAM 技术可以提供视觉里程计功能,然后跟其他的定位方式融合;


SLAM的重要性,有人说,SLAM是无人驾驶技术的灵魂;也有人曾打比方说,手机离开了WIFI和数据网络,就像无人车和机器人离开了SLAM一样。


3、机器人定位导航领域


机器人定位导航领域:SLAM 可以用于生成环境的地图。基于这个地图,机器人执行路径规划、自主探索、导航等任务。


核潜艇海底定位就有了SLAM的雏形。扫地机器人的盛行让它名声大噪,近期基于三维视觉的VSLAM又让它越来越显主流。


4、室内机器人




 


相关文章
|
9月前
|
传感器 算法 机器人
机器人SLAM建图与自主导航:从基础到实践
通过Gazebo平台和gmapping算法成功生成并保存了一张二维仿真环境地图,为后续的机器人自主导航实验奠定了基础。完整代码及更多细节可参考[GitHub仓库](https://github.com/Jieshoudaxue/ros_senior/tree/main/mbot_navigation/config/move_base)。
1604 23
|
存储 算法 安全
【算法】Java实现ECC算法
ECC(Elliptic Curve Cryptography)是一种非对称加密算法,基于椭圆曲线数学。与传统的RSA和DSA等算法相比,ECC在相同的安全性下使用更短的密钥长度,提供了更高的加密效率和性能。
1184 0
|
开发工具 git
Git 如何将一个项目的代码放到一个新的仓库中,但不在新的仓库中显示旧的提交记录
Git 如何将一个项目的代码放到一个新的仓库中,但不在新的仓库中显示旧的提交记录
651 0
|
6月前
|
人工智能 编解码 芯片
告别低效沟通|让技术提问不再头疼-这套高效AI提问模板来帮你
不会向ai提问,不知道怎么提问的 可以看看
20693 1
告别低效沟通|让技术提问不再头疼-这套高效AI提问模板来帮你
|
7月前
|
人工智能 编解码 自然语言处理
VideoMind:Chain-of-LoRA突破时间盲区让AI真正看懂长视频
VideoMind是一种新型视频语言代理,专为解决长视频时间定位理解挑战设计。它通过“Chain-of-LoRA”技术结合四个专业角色(Planner、Grounder、Verifier、Answerer)实现高效推理。Planner分析查询并制定计划;Grounder精确定位视频时刻;Verifier验证候选时刻准确性;Answerer生成最终答案。此架构在14个公共基准上表现出色,尤其在长视频定位任务中超越了现有模型,同时保持高内存效率。VideoMind推动了多模态AI的发展,提供了解决复杂视频理解问题的新方法。
10345 5
|
5月前
|
API 开发工具 开发者
HarmonyOS NEXT实战:拨打电话
本课程介绍如何在HarmonyOS SDK中使用Telephony Kit实现拨打电话功能。通过CallPhoneDemoPage示例,讲解如何输入电话号码并调用makeCall接口拨号,涉及call模块的使用及设备通话能力检测。
7860 0
|
安全 Ubuntu Linux
Linux系统无法启动或启动过程中卡住
【10月更文挑战第5天】
1950 3
|
网络安全 数据安全/隐私保护
VSC通过 SSH 连接到远程服务器时,每次都需要输入密码
VSC通过 SSH 连接到远程服务器时,每次都需要输入密码
3364 0
|
消息中间件 分布式计算 关系型数据库
如何解决多链路数据传输,最后数据同步统计问题
如何解决多链路数据传输,最后数据同步统计问题
202 1
|
开发工具
已设定选项 ‘readonly‘ (请加 ! 强制执行)
已设定选项 ‘readonly‘ (请加 ! 强制执行)
1389 0