Local EPUB Text
上层控制系统:路径规划和道路导航
只负责汽车基本运转的底层控制也许可以很快地完成任务,但上层控制系统的工作时间则要长得多,有时可能在整个出行的过程里都需要运行。如果将底层控制系统比喻为“条件反射活动”,那么上层控制系统就类似于“高级心智活动”,即传统上而言的“脑力活动”。上层控制系统的基础是路径规划和导航,而两者都需要通过搜索算法(Search Algorithms)的应用来实现。
搜索算法是基于规则的符号型人工智能的典型应用:如果需要搜索算法迅速解决上层控制中遇到的问题,就必须为这个算法程序提供充足的计算能力。因为大多数问题都有着多个可能解,有多种因素影响最佳路线的制定,所以需要对所有路线进行评估。因此搜索算法会占用大量的系统资源。搜索算法有着广泛的应用领域,现如今它们的覆盖范围可以从国际象棋(检索所有棋子可能性移动后的结果,并进行优劣排列)到导航。为了规划路径,无人驾驶汽车要利用搜索算法罗列出两地之间所有可能的备选路线,并按照优劣等级进行排序。
搜索算法中最为常用的一个是A*算法,是由尼尔斯·尼尔森(Nils Nilsson)及其同事于1968年发明。几乎所有涉及将备选方案排序并筛选最佳答案的问题,都会尝试用A*算法来解决。这个算法为全世界的GPS导航设备提供了智能判断,并且它还应用于当今很多不同领域的软件程序中,如棋牌类对弈和工厂任务调度。
就像阿根廷探戈舞一样,A*算法做的事情也是看似简单实则复杂。在这个算法发明出来之前,早期的人工智能研究者一直困惑于如何让搜索更高效。解决办法就是为这个搜索加入一个巧妙的代价函数(cost-function)。A*算法之所以能提升搜索速度,就在于它使用的代价函数将已经检索路径占用的成本与达到目标位置还需要付出的乐观预计成本相结合,即得出最终需要支付的代价。这个算法的代价函数巧妙地移除了前期搜索过程中的大量重复计算,借助数学方法实现对最短路线的精准搜索。
虽然A*算法是一种通用型搜索算法,但它尤其适用于驾驶活动中的上层控制功能。只要软件研发人员适当调整算法中的代价函数,使其重新运行算法,它就可以用于评估各种各样的驾驶行为需要支付的成本,例如信号灯等待时长、道路拥堵情况、道路维修工程、信号灯数量,甚至需要等待的左转弯的数量都可以计算检索。
尼尔森和他的同事在发明这个算法之初,就开放了其源代码,这一慷慨之举大大加速了数字导航软件的研发进程。自从这个算法诞生以来,它已经成为人工智能研究中最有影响力的算法之一。几年前,我在瑞士的一个小型研讨会上见到了尼尔森,当时大家在庆祝人工智能概念诞生的第50个纪念日。尼尔森目睹了当今人工智能研究领域对每一个细小进展都授予专利的趋势,不无取笑地说:“如果每个用GPS导航的人每次付给我一美分,那么我早就是亿万富翁了。”
今天,上层控制系统和底层控制系统技术都已经比较成熟,并且经过时间的考验后得以广泛应用。然而,它们的成熟却又引发出一个有趣的问题:为什么无人驾驶汽车还没有开始真正在市场中销售?答案就在于莫拉维克悖论,即看似简单的移动和感知过程,其实十分难以自动化。
正如我们前文提到的,无人驾驶汽车相比其他移动版机器人的一大优势就在于它们是建立在四个轮子上的,无须借助躯干肢体运动。事实上也是如此,由于汽车可以滚动前进,无人驾驶汽车的设计师可以回避类似CHIMP等灾难恢复机器人在自动化过程中所遇到的大量计算难题。但是,莫拉维克悖论的第二个方面,即有关知觉和反应的问题,几十年来仍然难以实现自动化。识别周围环境并做出针对性反应,能够赋予无人驾驶汽车这些能力的软件始终都是机器人操作系统中最关键的部分。