一起自学SLAM算法:11.2 环境感知

连载文章,长期更新,欢迎关注:


写在前面

第1章-ROS入门必备知识

第2章-C++编程范式

第3章-OpenCV图像处理

第4章-机器人传感器

第5章-机器人主机

第6章-机器人底盘

第7章-SLAM中的数学基础

第8章-激光SLAM系统

第9章-视觉SLAM系统

第10章-其他SLAM系统

第11章-自主导航中的数学基础

        11.1 自主导航发展简史

        11.2 环境感知

        11.3 路径规划

        11.4 运动控制

        11.5 强化学习与自主导航

第12章-典型自主导航系统

第13章-机器人SLAM导航综合实战


环境感知就是机器人利用传感器获取自身及环境状态信息的过程,自主导航机器人的环境感知主要包括实时定位、环境建模、语义理解等,下面具体讨论。

11.2.1 实时定位

定位其实就是在回答图11-1中机器人提出的第1个问题“我在哪”,更确切点说应该是实时定位,因为机器人不仅要知道自身的起始位姿,在导航过程中机器人实时位姿也必须要知道。实时定位可以分为被动定位和主动定位两种,被动定位依赖外部人工信标,主动定位则不依赖外部人工信标。

1.被动定位

以GPS为代表的室外被动定位方法几乎应用到了生活的方方面面,GPS通过多颗卫星实现三角定位。对于一些定位精度要求特别高的场合,会在地面搭建信辅助基站来提高GPS的定位精度,即差分GPS。

当卫星信号受到遮挡时,GPS就无法使用了。因此在室内通常会借助移动网络或者WiFi进行定位,在定位精度要求更高的场合会使用UWB进行定位。这些室内定位方法其实与室外卫星定位方法的原理是一样的,都是通过外部基站提供的信标进行三角定位。在一些像物流仓储这样的特殊场合,会在环境中放置很多人工信标(比如二维码、RFID、磁条等),机器人移动过程中检测到这些信标时就能获取相应位姿信息。

这些被动定位技术通常会再结合IMU、里程计等进行融合以获得更稳定更精确的定位效果。

2.主动定位

被动定位有诸多缺点,一方面是搭建提供人工信标的基站价格高昂,另一方面是许多场合不具备基站搭建条件(比如宇宙中的其他星球表面、地下深坑、岩洞等),这时候主动定位就凸显优势了。

所谓主动定位,就是机器人依靠自身传感器对未知环境进行感知并获取定位信息,也就是说主动定位不需要依赖外部人工信标。目前主动定位技术以SLAM为主要代表,即同时进行建图和定位。关于SLAM部分的内容请参考前面相关章节,本章讨论的侧重点在导航上面。SLAM导航方案由建图(mapping)、定位(localization)和路径规划(path planning)3大基本问题组成,这3大问题互相重叠和嵌套又组成新的问题,也就是SLAM问题、导航问题、探索问题等,如图11-3所示。

一起自学SLAM算法:11.2 环境感知_第1张图片

图11-3  建图、定位与路径规划的关系

目前在商用场合中通常采用SLAM重定位模式来进行定位,即先手动遥控机器人进行SLAM环境扫描并将构建好的地图保存下来,然后载入事先构建好的离线地图并启动SLAM重定位获取机器人的实时位姿,大多数SLAM算法都支持这两种工作模式(SLAM建图模式和SLAM重定位模式)。比如Gmapping在SLAM建图模式时将构建出的地图保存为*.pgm和*.yaml文件,然后利用map_server功能包载入*.pgm和*.yaml文件并发布到ROS话题,最后SLAM重定位模式(这里通常为AMCL算法)利用当前传感器信息与地图信息的匹配程度来估计位姿。同样ORB-SLAM、Cartographer等也是类似的过程,只是各个算法在位姿估计问题的处理细节上有所不同。

但在外星球表面、荒野、岩洞等不便于人工手动遥控建图的情况下,就需要机器人自发进行探索、建图和定位了。单机器人对未知环境的探索过程,如图11-4所示。机器人在未知环境中启动时,依靠探测距离有限的传感器仅能获取一小片环境地图;接下来机器人依靠某种探索策略选择一个当前地图的边界点为目标,利用路径规划获取一条路径然后自主导航到该目标;通过这种方式机器人就能探索到区域越来越大的环境地图。为了提高超大范围的探索效率,通常会利用多个机器人进行协同探索。

一起自学SLAM算法:11.2 环境感知_第2张图片

 图11-4  对未知环境的探索过程

11.2.2 环境建模

环境建模其实就是在对环境状态进行描述,也就是构建环境地图。地图的一方面可以用于定位,另一方面可以用于避障,因此定位用到的地图与避障的地图并不一定相同。环境地图的表示方法有很多种,比如特征地图、点云地图、几何地图、栅格地图、拓扑地图等。视觉SLAM通常以构建特征地图和点云地图为主,而激光SLAM则以构建栅格地图为主。由于导航过程中需要避开障碍物,所以特征地图或点云地图必须被转换成栅格地图后才能导航,下面主要讨论一下二维栅格地图和三维栅格地图。

1.二维栅格地图

(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

2.三维栅格地图

(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

11.2.3 语义理解

(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

源码仓库

  • Github下载:github.com/xiihoo/Books_Robot_SLAM_Navigation

  • Gitee下载(国内访问速度快):gitee.com/xiihoo-robot/Books_Robot_SLAM_Navigation

参考文献

【1】 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.

你可能感兴趣的:(一起自学SLAM算法,机器人,自动驾驶,人工智能,算法)