Coursera自动驾驶课程第2讲:The Requirements for Autonomy

上一讲《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

在这里插入图片描述
快速回顾一下本周学到的知识。 在本模块中,我们:

  • 探索了基本的自动驾驶术语。 然后,我们讨论了自动化的级别`,并提出了一种分类法来描述自动驾驶功能。
  • 我们定义驾驶任务和驾驶的主要组成部分:感知,规划和执行
  • 我们列出了需要识别和跟踪感知的环境中的元素和主体。 我们还讨论了为什么感知如此困难。
  • 我们讨论了具有不同视野的规划,并研究了一些决策方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439669.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一步步编写操作系统 51 加载内核4

咱们的内容都是连栽的,如果您没看过我之前的文章,本节您是看不懂的。 接上节。 介绍完内核初始化的函数kernel_init后,本节代码部分还差一点点没说啦,下面看代码: …略 179 ;在开启分页后,用gdt新的地址…

Coursera自动驾驶课程第3讲:Self-Driving Hardware and Software Architectures

在上一讲《Coursera自动驾驶课程第2讲:The Requirements for Autonomy》中我们了解到了如何划分自动驾驶汽车等级、以及自动驾驶三大模块:感知、决策和执行。 本讲我们将学习新的模块:自动驾驶汽车的硬件和软件架构。 B站视频链接&#xff…

一步步编写操作系统 54 CPL和DPL入门1

我们在工作中,公司都给员工配有员工卡,此员工卡就是员工身份的“标签”,用它来出入公司、食堂就餐等。给公司创造价值的是员工的生产力,不是员工卡,员工卡只是公司人事部门管理员工的一种手段而已。 现在说计算机&…

Coursera自动驾驶课程第4讲:Safety Assurance for Autonomous Vehicles

在上一讲《Coursera自动驾驶课程第3讲:Self-Driving Hardware and Software Architectures》中我们了解了自动驾驶汽车常用的传感器和硬件组件、软件系统。 本讲我们将学习新的模块,也是自动驾驶汽车最重要的模块之一:安全模块。 B站视频链…

【Codeforces - 1000C】Covered Points Count(思维,离散化,差分)

题干: You are given nn segments on a coordinate line; each endpoint of every segment has integer coordinates. Some segments can degenerate to points. Segments can intersect with each other, be nested in each other or even coincide. Your task i…

Coursera自动驾驶课程第5讲:Vehicle Dynamic Modeling

在上一讲《Coursera自动驾驶课程第4讲:Safety Assurance for Autonomous Vehicles》中我们了解了自动驾驶汽车中一个非常重要的模块:安全模块。 本讲我们将学习新的模块:汽车运动学和动力学模块。(这部分可能需要一定的理论力学和…

Java同步锁——lock与synchronized 的区别【转】

在网上看来很多关于同步锁的博文,记录下来方便以后阅读 一、Lock和synchronized有以下几点不同: 1)Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现,synchronized是在JVM层面…

Coursera自动驾驶课程第6讲:Vehicle Longitudinal Control

在上一讲《Coursera自动驾驶课程第5讲:Vehicle Dynamic Modeling》中我们了解了汽车运动学和动力学模块。 本讲我们继续学习新的模块:汽车纵向控制。具体地,我们将学习PID控制算法,看看该算法是如何在自动驾驶汽车中应用的。 B站…

Java并发:线程共享变量可见性原理

0、线程安全性:线程安全性包括两个方面,①可见性。②原子性。 0.1、线程之间的通信:线程的通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种共享内存和消息传递。 (1)在共…

Coursera自动驾驶课程第7讲:Vehicle Lateral Control

在上一讲《Coursera自动驾驶课程第6讲:Vehicle Longitudinal Control》中我们了解了如何使用PID算法进行汽车纵向控制。 本讲我们继续学习新的模块:汽车横向控制。具体地,我们将学习三种控制算法:Pure pursuit,Stanle…

Coursera自动驾驶课程第8讲:Basics of 3D Computer Vision

在上一讲《Coursera自动驾驶课程第7讲:Vehicle Lateral Control》中我们了解了如何对汽车进行横向控制。 本课程第一个篇章就暂时告一段落了,接下来我们开始学习新的篇章。 课程第二个篇章是状态估计和定位模块。不过在这里我做了一下调整,我…

Coursera自动驾驶课程第9讲:Visual Features Detection Description and Matching

在上一讲《Coursera自动驾驶课程第8讲:Basics of 3D Computer Vision》中我们学习了计算机视觉基本知识。 本讲我们将学习计算机视觉中的视觉特征模块。 B站视频链接:https://www.bilibili.com/video/BV1PE411D72p 文章目录1. Introduction to Image f…

Coursera自动驾驶课程第10讲:Feedforward Neural Networks

在上一讲《Coursera自动驾驶课程第9讲:Visual Features Detection Description and Matching》中我们学习了如何进行图像特征检测,特征匹配以及如何构建视觉里程计来估计相机的运动。 本讲我们将学习神经网络模块,关于神经网络或深度学习网上…

守护进程和守护线程

对于JAVA而言,一般一个应用程序只有一个进程——JVM。除非在代码里面另外派生或者开启了新进程。 而线程,当然是由进程开启的。当开启该线程的进程离开时,线程也就不复存在了。 所以,对于JAVA而言,线程是完全可以由自…

Coursera自动驾驶课程第11讲:2D Object Detection

在上一讲《Coursera自动驾驶课程第10讲:Feedforward Neural Networks》中我们学习了神经网络的基础知识,包括损失函数,梯度下降,正则化,卷积网络等。 本讲我们将学习深度学习的一个重要应用:图像目标检测。…

Coursera自动驾驶课程第12讲:Semantic Segmentation

在上一讲《Coursera自动驾驶课程第11讲:2D Object Detection》我们学习了深度学习的一个重要应用:目标检测。 本讲我们将学习深度学习的另一个重要应用:语义分割。这是图片像素级的一个重要应用。 B站视频链接:https://www.bili…

多线程知识梳理(2) - 并发编程的艺术笔记

layout: post title: 《Java并发编程的艺术》笔记 categories: Java excerpt: The Art of Java Concurrency Programming. <img src"http://upload-images.jianshu.io/upload_images/658453-a94405da52987372.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240…

Coursera自动驾驶课程第13讲:Least Squares

在上一讲《Coursera自动驾驶课程第12讲&#xff1a;Semantic Segmentation》我们学习了深度学习的另一个重要应用&#xff1a;语义分割。至此&#xff0c;本课程的视觉感知模块就介绍完了。 从本讲开始&#xff0c;我们将学习一个新的模块&#xff0c;也是本课程的第三个模块&…

Coursera自动驾驶课程第14讲:Linear and Nonlinear Kalman Filters

在上一讲《Coursera自动驾驶课程第13讲&#xff1a;Least Squares》我们学习了最小二乘法相关知识。 本讲我们将学习20世纪最著名的一个算法&#xff1a;卡尔曼滤波。具体包括线性卡尔曼滤波&#xff08;KF&#xff09;&#xff0c;扩展卡尔曼滤波(EKF)&#xff0c;误差状态卡…

详解两阶段3D目标检测网络 Voxel R-CNN:Towards High Performance Voxel-based 3D Object Detection

本文介绍一篇两阶段的3D目标检测网络&#xff1a;Voxel R-CNN&#xff0c;论文已收录于AAAI 2021。 这里重点是理解本文提出的 Voxel RoI pooling。 论文链接为&#xff1a;https://arxiv.org/pdf/2012.15712.pdf 项目链接为&#xff1a;https://github.com/djiajunustc/Voxe…