上一讲《Coursera自动驾驶课程第1讲:Welcome to the self-driving cars specialization》对本课程进行了整体概述,同时回顾了自动驾驶汽车的发展历史
。
从本讲我们开始进入正式的学习,我们将首先了解到如何划分自动驾驶汽车等级
、以及自动驾驶三大模块:感知、决策和执行
。
B站视频链接:https://www.bilibili.com/video/BV1WE411D74g?p=1
文章目录
- 1.Taxonomy of Driving Automation
- 1) Terms and Definitions
- 2) How to classify driving system automation?
- 3) Autonomous Capabilities (重点)
- 2.Requirements for Perception
- 1)Overview
- 2)What is perception
- 3)Goals for perception(理解)
- 1)Static objects
- 2)Dynamic objects(on-road)
- 4)Challenges to perception
- 3.Driving Decisions and Actions
- 1)Overview
- 2)Example:Turning left at an intersection
- 3)Reactive Planning
- 4.Module Summary
1.Taxonomy of Driving Automation
1) Terms and Definitions
这里介绍了一些专业术语,可以将整个汽车驾驶任务划分三个子任务
:
- 第一个子任务是“
环境感知
”。包括跟踪汽车的运动,以识别我们周围世界的各种元素,例如路面,路标,车辆,行人等。 - 第二个子任务是“
运动计划
”。例如,可以想象从家中开车去办公室。因此,只需要考虑应该走哪条路,何时应该改变车道或过十字路口等。 - 最后,我们需要通过“
车辆控制
”来控制汽车。因此,有时需要做出适当的转向,加减速决策,以控制车辆在道路上的位置和速度。这三个子任务构成了主要的驾驶任务,需要在驾驶车辆时不断执行。
同时还将介绍了操作设计域
概念或简称ODD
。 ODD构成了给定系统在其下运行的工作条件。它包括环境,一天中的时间,道路和其他性能,这些性能将使汽车可靠运行。明确定义自动驾驶汽车的工作条件,对于确保系统安全至关重要。因此,需要事先仔细计划ODD。
2) How to classify driving system automation?
在划分自动驾驶系统时需要思考几个问题:
- 首先
需要多少驾驶员注意力
?例如,驾驶员可以在开车上班时看电影吗?还是需要始终保持对方向盘的关注?定义自主级别时,驾驶员的注意力是要考虑的关键问题之一。 - 其次,
实际上需要多少驾驶员操作
?例如,您需要操纵吗?汽车会控制速度还是驾驶员自己控制速度?是否需要更改车道,或者汽车可以在没有任何干预的情况下停留在当前车道上?当我们说汽车可以自动驾驶时,我们到底需要期待什么? 到底什么组成了驾驶任务
?下图给出了描述自动化程度不断提高的驾驶任务的方法。
- 首先,我们有
侧向控制功能
,这是指在道路上进行侧向操纵和导航的任务。向左,向右转,笔直或跟踪曲线等。 - 接下来,我们进行
纵向控制
。这是我们通过制动或加速之类的动作来控制汽车在道路上的位置或速度的任务。 - 然后我们称
对象和事件检测与响应
为OEDR
。OEDR本质上就是检测立即影响驾驶任务的对象和事件并对它们做出适当反应的能力。 OEDR实际上涵盖了自动驾驶的很大一部分。因此,与特定的操作设计域结合使用,以对当前的自动驾驶系统进行分类。 - 接下来是
规划
。规划是驾驶的另一个重要方面。由于即时响应已成为OEDR的一部分,因此计划主要涉及到目的地或执行操作(例如倾斜变更和交叉路口)所需的长期和短期计划
。 - 最后,人们在开车时还要完成一些其它任务。其中包括诸如打电话,听歌等。
3) Autonomous Capabilities (重点)
关于自动驾驶能力的划分,可以从以下几方面来考虑:
- 首先,该
系统可以处理转向任务或横向控制吗
? - 第二,它
可以执行加速,制动和速度操纵任务还是纵向控制
? - 第三,系统
能否执行对象和事件的检测和响应,并且达到什么程度
? - 最后,系统
可以在所有场景和所有条件下执行吗
? 还是它可以安全处理的ODD或操作条件有限?
这里介绍了SAE对自动驾驶等级划分,标准如下:
- 0级。在此级别中,没有任何驾驶自动化,一切都由驾驶员完成。
- 1级。系统可以通过
执行横向或纵向控制
任务来辅助驾驶员。在·自适应巡航控制或ACC·中,系统可以控制汽车的速度。 但是它需要驾驶员进行转向。 因此它可以执行纵向控制,但需要人工执行横向控制。 同样,车道保持辅助系统·也是1级。 - 2级。在第二级中,系统在特定的驾驶场景中
同时执行横向和纵向控制任务
。 例子有GM 的Super Cruise和日产的Pro Pilot Assist。 这些可以控制横向和纵向运动
,但始终需要驾驶员对系统进行监控。 - 3级。在三级或有条件自动化级别中,系统
除了可以执行控制任务之外,还可以在一定程度上执行“对象和事件检测”
。 但是,在发生故障的情况下,控制权必须由驾驶员承担。
第二级和第三级之间的主要区别在于,驾驶员无需在某些特定情况下注意车辆行驶状态,因为车辆可以及时提醒驾驶员进行干预。但这是一个有争议的自动化水平
, 因为系统不一定总能知道何时发生故障。 三级系统的一个例子是奥迪A Luxury Sedan,它是一种自动驾驶系统,可以在交通缓慢时不受监控地导航。 - 4级。系统可以
自行处理紧急情况,但仍可能要求驾驶员接管
。 截至2018年秋季,Waymo车队可以在特定的一组工况下,在定义的地理区域内完成驾驶任务,而无需人工驾驶。 - 5级。 系统可以在任何必要的条件下运行。目前还没有任何有关第5级的示例。
2.Requirements for Perception
1)Overview
任何驾驶任务大致都可以分为两个部分。
首先,我们需要了解周围发生的事情以及我们所处的位置。 因此,我们需要感知周围的环境
。
其次,我们需要做出驱动决策
。 例如,在行人要进入车道之前,我们应该加速还是停车? 任何驾驶任务都需要某种OEDR,也就是说,我们需要某种方式来识别周围的物体,识别在我们附近发生的事件并对其做出响应。
2)What is perception
正如我们所讨论的:我们希望能够了解周围的环境与我们之间所处的关系
。
我们想了解它的运动
,如汽车,骑自行车的人,公共汽车等。它是否以某种可以告诉我们下一步将要做什么的方式前进。作为人类,我们真的很擅长以上运动模式。但是,计算机系统仍然很难像我们一样快地识别出我们周围的这些相同模式。我们可以指向一辆直行的汽车,然后说:“哦,将来它会在这个位置上处于这个位置。”这就是使驾驶成为可能的原因。 **因此,这种预测移动物体轨迹的能力对于感知而言确实很重要。**如果我们可以正确地进行此预测,则可以做出明智的决策
。例如,如果我知道我前面的汽车下一步将要做什么,那么我可以以实现我们两个目标的方式决定下一步要做什么。
3)Goals for perception(理解)
1)Static objects
让我们讨论一下我们需要为感知任务识别的各种元素。
- 我们需要确定静态目标。这些元素包括
道路和车道标记,分隔斑马线等道路区域的内容以及重要信息
,例如前方学校。 这些都在道路区域。 - 然后还有
路边
,它们定义了我们可以行驶的边界。 有一些道路交通信号会定期更改并发出信号,指示您是允许向前行驶,向左行驶还是向右行驶,或者只是保持停车状态。 然后有各种各样的路标
,例如那些告诉您限速,指示方向,是否要上医院或要上学的路标等等。 - 最后,还有
道路障碍物
。
2)Dynamic objects(on-road)
我们需要识别道路上的其他车辆
,例如卡车,公共汽车,汽车等四轮车,然后还需要识别并预测两个轮车
的运动,如摩托车,自行车等。这些都是比四轮车拥有更大自由度的移动系统,因此很难预测。
最后,我们还应该能够识别和预测我们周围行人
的运动。行人的行为方式与车辆的行为截然不同,因为众所周知,行人的运动方式比车辆更不稳定,因为人类在行进中具有固有的自由度。感知的另一个关键目标是自我定位
。
我们需要能够估计我们在任何时间点的位置以及前进的方向。了解我们的位置以及我们在环境中的运转方式对于做出明智而安全的驾驶决策至关重要。用于自我运动估计的数据来自GPS,IMU和里程传感器
,并且需要组合在一起以生成我们位置的连续轨迹。
4)Challenges to perception
环境感知挑战大致可以以下几个部分:
-
首先,进行强有力的环境感知是一个巨大的挑战。可以使用现代机器学习方法来进行检测和分割。大型数据集对于此工作至关重要。有了更多的训练数据,我们的分割和检测模型将表现得更好,更强大,
但是针对所有可能的车辆类型,天气状况和路面收集和标记数据是一个非常昂贵且耗时的过程
。 -
其次,环境感知受传感器影像很大。在很多情况下,能见度可能很具有挑战性,或者GPS测量值被破坏,或者LIDAR和Radar返回的位置值很嘈杂。
依赖于这些传感器的每个子系统都必须考虑不确定的测量
。这就是为什么在每个感知任务中设计能够适应传感器不确定性和损坏的测量结果的子系统至关重要的原因。然后在相机或LIDAR数据中会产生诸如遮挡和反射
的影响。这些会使感知方法与含糊不清的信息混淆,这些信息难以解析为对象位置的准确估计。还有一些影响,例如剧烈的照明变化和镜头眩光
,或GPS在隧道和车库中信号弱
,使某些传感器数据完全不可用。
感知方法需要多个冗余信息源来克服传感器数据丢失。最后,天气和降水
会对传感器输入数据的质量产生不利影响。因此,至关重要的是,至少要有一些不受不同天气条件影响的传感器,例如雷达。
3.Driving Decisions and Actions
1)Overview
在做出驾驶决策时,常见的三种决策是:
-
1.
长期决策
。例如,如何从纽约到洛杉矶或从家中去上班?通过回答这个问题,我们制定了任务计划,这是整个驾驶任务的高级计划。在今天使用的地图应用程序能够提供以下驾驶说明:要走的道路,要进入的车道等等。 -
2.
短期决策
。可能会存在以下问题:现在换车道安全吗?或者什么时候应该在交叉路口左转? -
3.
即时决策
。这些决策涉及控制和轨迹规划。例如,如何在这条弯曲的道路上行驶?应该使用什么转向输入?应该加速还是刹车等等?。
2)Example:Turning left at an intersection
下面讨论一个非常简单的驾驶任务示例,并尝试考虑涉及哪种决策。假设你正在回家的路上接近交叉路口。长期规划
的话你需要在这个交叉路口向左转。看看这一过程会发生什么?
- 首先,由于汽车是左转弯,因此必须确定
是否需要将车道更改为左转车道
。然后,当接近交叉路口时,可以选择减速并平稳地行驶,以使乘客不会感到不适。 - 然后,在人行横道前停车。
但这些关于换道和停车位置的决策都是短期计划决策。此外还需要思考和应对过程中出现的情况。我们仍然需要对象和事件检测与响应。如果车辆驶入前面的转弯车道怎么办?如果没有标记停止线怎么办?这是驾驶员必须大致判断隐含的停车线在哪里,然后在人行横道之前停车。如果后面还有其他车辆,甚至在十字路口停了车怎么办?左转弯的决策如何根据正常驾驶中可能迅速出现的许多可能情况而变化?
可以看见以上所有这些决策都属于即时决策
,由于要考虑的可能性很多,不难发现决策在驾驶中是很复杂的。
3)Reactive Planning
让我们继续讨论可能的结构,用软件来表示这些决策。解决多层次决策挑战的一种方法是Reactive Planning
。在被动规划
中,我们定义了几组规则,这些规则要考虑到自我车辆和环境中其他物体的当前状态并立即采取行动。因此,这些规则仅考虑当前状态,不考虑未来的预测。这样的规则的一些示例是,如果路上有行人,则停车。或者,如果速度限制发生变化,请调整速度以使其匹配。在这两个规则中,我们只观察当前发生的情况,然后根据即时可用的信息做出决定。
在预测性规划
中,我们对环境中的其他媒介(例如车辆和行人)如何随时间推移做出预测。我们使用当前状态和预测信息来定义所有决策。预测性规划中的一些规则示例是,汽车在过去10秒钟内停了下来。在接下来的几秒钟内可能会停止。因此,也许我可以安全地通过它。或有行人在马路上闲逛。当我靠近他们时,他们将进入我的车道。让我放慢脚步,让他们有机会通过我前面的马路。这是一种更自然的思考方式,与人类操作车辆的方式密切相关。在做出决策之前,我们会预测道路上其他物体可能的运动。但是,这种类型的规划依赖于环境中其他参与者的行为的准确预测,这给感知任务增加了相当大的复杂性。
尽管如此,预测性规划是自动驾驶汽车的主要方法
,因为它极大地扩展了车辆可以安全处理的场景。
4.Module Summary
快速回顾一下本周学到的知识。 在本模块中,我们:
- 探索了基本的
自动驾驶术语。 然后,我们讨论了
自动化的级别`,并提出了一种分类法来描述自动驾驶功能。 - 我们定义
驾驶任务
和驾驶的主要组成部分:感知,规划和执行
。 - 我们列出了需要识别和跟踪
感知的环境中的元素和主体
。 我们还讨论了为什么感知如此困难。 - 我们讨论了具有不同视野的
规划
,并研究了一些决策方法。