一起自学SLAM算法:第11章-自主导航中的数学基础

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

通过计算机中复杂的决策算法,让机器人实现完全自主化是人类一直以来的梦想。所谓完全自主化,就是在完全没有外界指令的干预下,机器人能通过传感器和执行机构与环境自动发生交互,并完成特定的任务(比如自主语言交流、自主移动或自主导航、搬运物品、洗衣做饭带小孩等)。由于我们生活在一个三维空间环境中,在环境空间中移动是机器人与环境发生交互最基本的形式之一,因此自主导航也被誉为机器人自主化的“圣杯”。

从表面上看自主导航就是解决从地点A到地点B的问题,但实现起来非常复杂。所谓自主,是指机器人在不受外界指令干预的情况下通过传感器来感知自身及环境的各种状态,并利用这些状态信息做出相应决策来帮助机器人避开障碍物以及高效移动到目标地点。自主导航是一个非常大的课题,解决方案五花八门,且方案之间也没有明显的理论界限。不过本书讨论重点放在目前比较流行的一个方案,即SLAM导航方案。SLAM导航方案由建图(mapping)、定位(localization)和路径规划(path planning)3大基本问题组成,这3大问题互相重叠和嵌套又组成新的问题,也就是SLAM问题、导航问题、探索问题等。关于SLAM问题在第7~10章中已经详细讨论过了,下面将展开讨论基于SLAM的导航问题以及探索问题。


11.1 自主导航发展简史

11.2 环境感知

        11.2.1 实时定位

        11.2.2 环境建模

        11.2.3 语义理解

11.3 路径规划

        11.3.1 常见的路径规划算法

        11.3.2 带约束的路径规划算法     

        11.3.3 覆盖的路径规划算法

11.4 运动控制

        11.4.1 基于PID的运动控制

        11.4.2 基于MPC的运动控制

        11.4.3 基于强化学习的运动控制

11.5 强化学习与自主导航

        11.5.1 强化学习

        11.5.2 基于强化学习的自主导航


本章首先对自主导航发展历史进行了回顾,并给出了自主导航问题的本质,即“我在哪”、“我将到何处去”和“我该如何去”。然后通过讨论环境感知、路径规划和运动控制这几个核心技术,以帮助带领大家了解自主导航中的数学基础。由于强化学习在自主导航的未来发展中将起到非常重要的作用,因此本章后半部分花了大量篇幅对整个强化学习领域的知识进行了系统性梳理。如果大家能将本章的强化学习和10.3节中的机器学习结合起来学习,那么效果会更佳。

这里需要回答两个大家可能比较关心的问题。是不是导航中必须要用栅格地图?计算机本质上是基于离散数学的数值计算,这就导致环境状态空间要进行离散化描述以及规划算法离散化实现。如果你能找到11.5.1节中提到的用函数逼近来描述连续空间的方法,那么也就不一定非要栅格地图了。显然,栅格地图是目前工程上最好用的导航地图度量方法。另一个问题是SLAM在导航中发挥什么作用?SLAM主要有两大作用,一个是为导航算法中的路径规划提供机器人定位信息,另一个是为导航提供可动态更新的全局地图(这个功能非必须)。

与SLAM类似,自主导航也是一个理论性和工程性都很强的课题,还需要结合实际项目示例将自主导航系统用起来。所以接下来的章节将通过讲解目前主流的一些自主导航框架以及导航算法,让大家真正将自主导航用起来,并能根据实际需求修改和完善开源导航代码。

参考文献

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

 

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