Self-Driving Cars 专项课程 - Introduction to Self-Driving Cars-第二周

学习任务:


Lesson 1: Sensors and Computing Hardware

Sensors:

传感器就是任何可以测量 或检测环境某些属性的装置。或能够随时间改变环境属性的装置。传感器大致分为两种类型,取决于他们所记录的环境属性:如果他们记录环境的属性,他们是exteroceptive。Extero表示外在的 或 来自周围环境另一方面 如果传感器 记录了本身车辆的属性 

。他们是本体感应传感器 。Proprios指内在的 或是自身的。

exteroceptive:

(1)相机

                         其中Resolution:分辨率。Field of view:由相机的水平和垂直角度范围所定义 

并且可以通过选择镜头和变焦将其调整。Dynamic range:图像中最暗 和最亮色调的差异。高动态视觉范围对于自驾车至关重要。因为会遇到多变的光线条件,尤其是在夜间行驶时。

                        在相机和镜头选择之间 有一个重要的权衡。取决于视线范围和分辨率的选择、较宽的视野允许、在环境中有较大的可视区域 。但从一个特定对象吸收光的像素更少随着视线范围的增加。我们需要将分辨率提高到仍然能够以相同质量感知到可能遇到的多样的环境信息。

组合两台视线范围相互重叠统一图像平面的相机 称为立体相机。立体相机允许根据同步图像进行深度估计图片中的像素值可以与其他图片对比,提供一个场景的视差图。此视差可以然后被用来估计每个像素的深度。

(2)LIDAR(光学雷达)

LIDAR(光学雷达):代表光线检测和测距传感器,光学雷达感知涉及向环境中发射光束并测量反射回的信号。通过测量返回的光量和光束的飞行时间范围内的物体密度和反射物体都可以被估计。 光学雷达通常包括一个带有多个光源的旋转原件并输出三维点云图。这对于 评估场景几何十分有用。由于它是一个具有自身光源的有源传感器。光学雷达不受环境照明情况的影响。因此,光学雷达并不会面临 如同相机在恶劣或多变光线条件下所受到的挑战 。

重要比较指标 :

Number of beam(光源数量) 常见尺寸包含的8 16 32和64个光源.

Poinr per second(每秒可以收集的点数 )点数收集越快3D点云信息可以更详细.

Rotation rate(转速)转速越高3D点云的更新速度越快 .检测范围也很重要 并取决于光源的 输出功率 

Field of view(视野指标 )指光学雷达传感器的可视角度范围 

注:当前新的光学雷达类型 

        高分辨率固态光学雷达:没有传统光学雷达的旋转部件。这些传感器的成本极低且可靠归功于完全于芯片中集成实现。高分辨率固态光学雷达仍在开发中。

(3)RADAR(雷达)

雷达传感器已经可以超过光学雷达测距并能可靠检测环境中的大型物体 。

它们在恶劣的天气尤其有用 因为它们大多不受大降雨的影响

        选择雷达可基于 检测范围 视野范围 位置和速度 的测量精确性

雷达通常也可以被认为是 具有宽视野角度但视距范围较短或是视野狭窄但视距范围更大。

(3)超声波传感器

超声波传感器,声纳最初以 声音导航和测距命名。使用声波测量范围。声纳是在廉价测距设备中 测量短距离的传感器,这使它们适合停车场景 :其中本体车辆需要靠近其他车辆的情况下移动 。

声纳另一个优点是它们的成本很低 而且,就像雷达和光学雷达一样 声纳不受照明和降雨条件影响 。

声纳可基于 一些关键指标进行选择他们可以测量的最大范围检测视野及其成本。

(4)GNSS(全球导航卫星系统)

本体感应传感器:感应本体属性的传感器.这里最常见的 是全球导航卫星系统 

简称GNSS,例如GPS或Galileo(伽利略).惯性测量装置 IMU.GNSS接收器用于测量本体车辆的位置,速度、有时测量车辆前进方向。精度很大程度上取决于实际定位方法和使用的校正方法。除此之外,IMU还测量旋转角速度、本体车辆的加速度以及组合的测量可用来估计车辆的3D方向前进方向,这个对于车辆控制是最重要的。

(5)车轮里程传感器

车轮里程传感器:该传感器跟踪车轮旋转速度,使用这些来估计本体车辆速度和前进方向的变化率。这同样是车辆上记录 行驶里程的传感器。

(6)核心处理器件

核心处理器件接收所有传感器数据并输出驾驶车辆所需的命令。大多数公司更喜欢设计自己的计算系统来匹配特定的传感器和算法需求。然而,存在一些硬件选项可以处理考虑外的自动驾驶计算任务。最常见的例子是Nvidia的Drive PX 和Intel&Mobileye的EyeQ。任何用于自动驾驶的计算大脑 都需要串行和并行计算模块。特别是对于图像和光学雷达处理进行分割、物体检测和地图映射。为此我们采用了GPU FPGA和自定义ASIC是为特定计算设计的专用硬件 。例如Drive PX单元包含多个GPU。而EyeQ的FPGA都将加速可并行计算任务。例如图像处理或神经网络推理。最后,快速讨论一些同步问题,因为我们要基于路面相关图片来做出驾驶决策 ,必须正确同步系统中不同模块并设立一个统一的时钟。幸运的是,GPS依赖于极其精确的计时功能,因此它可以在可用时作为适当的参考时钟。无论如何,传感器的测量必须确保时间一致,以便传感器融合能正常运行。

Lesson 2: Hardware Configuration Design

现在 让我们学习如何放置这些传感器来生成环境的完整视图。配置设计以满足无人驾驶车的传感器需求,我们将通过两个常见的场景 高速公路上驾驶和在城市环境中驾驶。在分析了这些场景之后我们将列出整体覆盖要求并讨论设计中的一些问题。

我们希望我们的传感器能够捕获ODD或者我们系统可以指定决策的ODD。我们应该有能力提供足够的输入为所有的决策在驾驶中可能存在很多可能的情况。但我们将仅考虑两种常见情况以了解这些要求如何推动我们的传感器选择。

对于高速公路,我们有快速移动的交通。通常是高容量,并且有很多车道要监控。但所有车辆都朝着同一方向移动。在高速公路上驾驶的另一个亮点是曲线和渐变的道路较少并且考虑出口和并道。另一方面在我们将考虑的城市情况下。我们有适度的容量和中等速度的交通,车道较少,但交通在各个方向特别是通过交叉路口

高速公路:

高速公路设置分解为三个基本的机动需求: 如果出现紧急情况我们可能需要踩刹车 、我们需要保持稳定的速度以匹配我们周围的交通流量以及我们可能需要改变车道 

在紧急停车的情况下,如果我们的道路上有堵塞,我们想要及时停车。因此纵向应用我们的停车距离方程。

(1)

我们需要能够感觉到我们前方110米处,在120km/h高速公路速度和激进的减速度下大多数自动驾驶系统的目的是在 车辆前方感测150至200米的范围 。

 

同样,为了避免横向碰撞或 改变车道以避免撞到我们车道上的障碍物我们需要能够感知至少我们相邻的车道。北美的车道在是3.7米宽 。为了在车辆跟踪期间保持速度。我们需要在自己的车道上感知车辆。它们的相对位置和速度对于保持安全的跟随距离很重要 。这通常以人类驾驶员的时间单位定义 ,标称条件下设定为2秒 它还可以评估用最大加速度估算。前方车辆的以及车辆反应时间。因此 在每小时120公里的情况下需要相对位置和速度测量到165米的范围并且典型系统使用100米来满足此要求 。

在横向上 我们需要知道在我们相邻车道的任何地方发生了什么,以防其他车辆试图合并到我们的车道或我们需要与其他交通合并需要160到180度的视野来跟踪相邻的车道 并且需要40到60米的范围来寻找车辆之间的空间。

最后 让我们讨论车道变换动作并考虑以下情况假设我们想要移动到相邻的车道 

纵向我们需要向前看 所以我们距离领先的车辆是安全的距离我们还需要向后看 

看看后方车辆在做什么从侧面看有点复杂。我们可能需要超越相邻的车道。例如 如果车辆试图 

与我们同时进入相邻车道怎么办?我们需要协调我们的变道操作这样我们就不会碰撞车道变换的传感器要求大致相当于维持速度方案中的要求。因为两者都需要管理自己车辆的前后 车辆以及每一侧的 

总的来说,这为我们提供了高速公路驾驶场景的覆盖要求。我们需要纵向传感器和横向传感器以及宽视场和窄视场传感器来进行这三种操作: 紧急停止、保持速度和车道变换。从这一小组ODD要求中我们看到了各种各样的传感器要求 

城市情景 

之前讨论的城市场景是一个中等容量中等交通情况车道较少,但行人的复杂性增加。这里有六种类型的基本动作。显然 我们仍然可以执行紧急停车、保持速度和车道变换。但我们也有一些情景,如超车停车、交叉路口左转和右转以及通过交叉路口等更复杂的机动。实际上 对于前三种基本操作覆盖率分析与高速公路分析几乎相同。但由于并不需要快速移动,因此对远程感应的需求不同。

我们来讨论下一次的超车机动,更具体地说,考虑一个你必须超车一辆停放的车的情况。从纵向上看我们肯定需要感知停放的汽车以及迎面而来的交通。因此我们需要传感器宽距离传感器来检测停放的汽车,并且需要缩小远程传感器来识别迎面而来的交通是否接近 。

从横向来看,我们需要观察车道外的相邻车道 像高速公路案例中那样 

对于交叉路口,我们需要对可能发生的各种运动进行近乎全方位的传感。如:正靠近的车辆、附近的行人,车辆正在转弯等等 

最对于环形交叉口,我们需要一个宽范围的短距离传感器。因为交通缓慢,但我们还需要一个纵向的宽范围短距离传感器。因为环形交叉口周围的移动方式,我们需要感知所有进入交通流,通过环形交叉口以做出正确的决定。因此,我们最终得出了城市案例的整体覆盖图。主要区别相对于高速公路覆盖在于我们需要感知,在交叉路口和环形交叉路口进行移动以及超车操作。事实上,高速公路案例几乎完全由城市要求所涵盖。

让我们总结一下覆盖率分析 ,对于我们所做的所有操作,我们需要长距离传感器 其通常具有较短的视场角和宽角度视场传感器。其通常具有中到短距离感测随着场景变得越来越复杂。我们看到了全360度传感器覆盖的需要短规模到大约50米并且在纵向上需要更长的距离我们还可以添加甚至更短距离的传感器 如声纳,这可以用于 停车场,因此 最终我们的传感器配置看起来像上图 

总之, 我们对传感器的选择应该由我们想要执行的操作的要求驱动。它应该包括用于纵向危险的远程传感器和用于全向感知的宽视场传感器配置的最终选择还取决于我们对运行条件的要求。由于故障和预算导致的传感器冗余对于无人驾驶车而言无需单独回答哪些传感器 。

Lesson 3: Software Architecture

我们将讨论以下五个软件模块: 环境感知 环境绘图 运动规划 车辆控制 最后是系统监控。

 让我们来看看高级软件架构针对自动驾驶汽车软件栈。正如在前面的视频中所讨论的汽车使用各种传感器观察周围的环境。

原始传感器测量结果被传递到两组模块中专用于了解汽车周围的环境 

        环境感知模块具有两个关键功能 第一识别在空间上无人驾驶车当前所处的位置。第二 分类和定位用于驾驶任务环境的重要元素。这些元素的例子包括汽车 自行车 行人 道路 道路标记和道路标志以及任何直接影响驾驶行为的物体。

        环境地图模块创建一组地图,其定位无人驾驶车周围环境中的对象,用于一系列不同用途。用途包括从碰撞避免到运动跟踪和运动计划 

        运动规划模块做出采取什么动作;以及在何处驾驶的所有决定。其基于所有信息由感知模块和绘图模块提供。运动规划模块的主要输出是安全、高效和舒适规划路径。使车辆朝向其目标移动。

        控制器模块得到路径并确定最佳转向角 油门位置 制动踏板位置和档位设置 以精确地遵循规划路径 

        系统监控。系统监控器监控软件堆栈的所有部分以及硬件输出。以确保所有系统都能按预期工作。系统监控还负责向安全驾驶员通知驾驶系统中发现的任何问题。

环境感知

感知栈有两个重要部分。即在空间中自我定位以及分类和定位环境的重要元素 。定位模块接收多个信息流,如当前GPS位置测量单元和车轮测距。然后定位模块将它们组合起来,输出准确的车辆位置。为了获得更高的准确性,一些定位模块还包含LIDAR和相机的数据。通过分类和定位的问题,在环境元素中 可以分为两个部分: 第一部分 检测环境的动态对象,第二部分检测环境中的静态对象。动态对象检测模块使用一组摄像机输入以及LIDAR点云来创建场景中。动态对象周围的3D边界框,3D边界对物体编码类型以及物体的确切位置,方向和大小。一旦检测到跟踪模块随时间跟踪动态对象 。跟踪器模块不仅提供动态物体的当前位置,还提供其通过环境的路径的历史路径的历史记录与路线图一起使用以便预测所有动态物体的未来路径。这通常由预测模块处理预测模块组合所有信息关于动态物体和 当前位置的从而预测所有动态物体的路径。静态对象检测模块还依赖于相机输入和LIDAR数据的组合来识别场景中的重要静态对象。这些重要数据包括无人驾驶车辆的当前车道以及如信号和交通信号灯等监管要素的位置 

环境地图

环境地图创建了集中不同表示类型,在无人驾驶车周围当前环境下我们简要讨论了三种类型的地图占据栅格图、定位图 以及细节道路图。

占据网格图是所有静态对象的地图在车辆周围环境中。LIDAR主要用于构建占据栅格图。首先将一组过滤器应用于LIDAR数据以使得可以用于占据栅格。例如,移除掉可以移动的表面点和动态对象点。占据栅格图将环境表示为一组网格单元并将每个单元被占用的概率相关联,这使我们可以处理测量数据中的不确定性并随时间改善地图。

由LIDAR构建的定位图或相机数据由定位模块使用 用以改进状态估计,在驾驶中将传感器数据与该地图进行比较以确定。汽车相对于定位图的运动,然后将该运动与其他本体感受式传感器的信息组合以准确地定位车辆。

细节道路图提供了路段的地图,其表示无人驾驶车当前驾驶的驾驶环境。该地图捕捉信号和车道标记可以用于运动规划中。该地图是传统结合了预先记录的数据和 从当前静态环境的输入信息由感知栈收集到的环境绘图和感知模块相互作用以显着提高这两个模块的性能。例如感知模块提供静态环境信息 可以用于更新细节道路图。细节道路图也能用于给预测模块创建更加准确的动态物体预测。

运动规划模块

接下来我们将仔细研究环境地图和感知模块的输出如何结合并且通过运动规划模块创建环境路径。

无人驾驶车的运动规划是一项具有挑战性的任务,在单一的集成过程中很难解决,相反如今大多数无人驾驶车都使用分解将问题分成若干抽象层如下所示:在最高级别任务规划部分处理长期计划并在驾驶任务的整个范围内定义任务。从当前位置通过道路网络到达最终目的地,为了找到完整的线路,任务计划部分确定最佳路线序列用于连接起点和终点之间然后将其传递到下一层。

行为规划部分是这下一级用以解决短期规划问题。行为规划部分负责建立一套安全行为行动和动作去执行在任务路径行进过程中行为规划部分决策的一个例子是车辆是否应该合并到相邻车道中。在给定期望速度和附近车辆的行为预测下。除了决策的操作之外,行为规划部分还提供了一组约束来执行每一个动作,例如在切换之前保持在当前通道中的时间 。

最后,局部规划部分执行即时或反应规划并负责定义要驾驶的特定路径和速度曲线。局部规划部分必须是平稳、安全和有效地在考虑环境和机动所施加的所有当前限制。为了创建这样的规划,局部规划部分结合所有信息:如行为规划部分、占据栅格图、车辆操作限制以及环境中其他动态物体的信息。局部规划器的输出是一条规划的轨迹,其是在 未来的小段时间内组合的期望路径和速度分布。

运动规划 

运动规划,接下来让我们看看典型的车辆控制器如何采用给定的轨迹并将其转换为一组精确的驱动命令以供车辆应用。典型的控制器将控制问题分为纵向控制和横向控制。 横向控制器输出转角用于 计划轨迹,而纵向控制器调节油门、齿轮和驻车系统来获得准确速度。两个控制器计算当前误差并跟踪局部规划的性能并调节当前驱动命令达到最小化前进误差 

系统监控模块

系统监控模块是用以持续监控各个方面。在无人驾驶车内的并在子系统发生故障给定适当适当警告。系统监控模块有两个部分硬件管理程序和软件管理程序。硬件监控器持续监控所有硬件组件 

以检查是否存在任何故障,如传感器损坏、测量丢失或信息质量下降 。硬件监控器的另一个职责是连续 分析任何与硬件输出不能够匹配 无人驾驶车编程范围内的输出。例如其中一个摄像头传感器被纸袋挡住 、下雪时对LIDAR点云数据破坏。软件监控器负责验证软件栈以确保所有元素正常运行、按照正确的频率 并且提供完整的输出。软件监控器还负责分析所有模块的输出之间的不一致性 。

Lesson 4: Environment Representation(汽车周围环境而创建的地图)

我将概述传统上用于自动驾驶的三种不同地图类型, 

定位图。 

此地图是使用 一组连续的激光雷达点或 像机图像特征创建,当汽车在环境中移动。然后,该地图通过结合GPS、IMU和 车轮测距使用,通过定位模块。 以便始终准确地估计车辆的精确位置。

 

定位图使用记录的LIDAR点 或图像,这些点或图像被组合以形成环境的点云表示。当接收到新的LIDAR相机数据时,将其与定位图进行比较, 并通过将新数据对齐来创建车身位置的测量, 如同与现有地图。然后将该测量与其他传感器结合以估计自我运动并最终用于控制车辆。

占据栅格图。 

占据栅格图还使用一组连续的LIDAR点来构建环境地图,该地图指示所有静态或静止障碍物的位置。该地图用于规划安全无碰撞路径。

占据栅格是静态物体的2D或3D离散化地图围绕自我车辆的环境中。 创建此地图是为了识别所有无人驾驶车周围的静态物体, 使用点云作为输入。被分类为静态的物体包括树木、建筑物、 路缘石和所有其他不可移动物体。 例如,在此栅格图中,如果所有被占用的网格都被着色, 占据栅格图差不多就是这样的。由于占据栅格仅表示来自环境的静态物体, 因此必须首先移除所有动态物体。 这是通过找到的所有激光雷达点,在边界框内由感知栈检测到的动态物体。接下来,静态物体,那些不会干扰车辆的物体也将移除。如 和悬挂的树枝。通过这些步骤,仅保留静态物体的相关雷达点。这个方法滤波方法并不是很完美,因此 因此不可能盲目地相信剩下点是障碍。因此,占据栅格是通过可能性表示环境, 通过跟踪网格单元随时间占用。然后依赖该地图来创建无碰撞的车辆路径。 

细节路线图。 

它包含详细的位置,所有监管要素, 监管属以及和车道标记。 此地图用于规划从 当前位置到最终目标的路径。

细节路线图是完整道路网路地图, 该地图可以用来给无人驾驶车该地图包含有关道路车道的信息, 以及可能影响道路的任何交通管制要素。细节路线图用来规划一条安全和 有效地路径,用来给无人驾驶车。

细节路线图可以通过以下三种方法创建。 完全在线,完全离线, 或离线创建在线更新。完全在线创严重依赖静态物体比例。在感知栈中,以便准确标记和 正确定位所有相关的静态物体以创建地图。这包括当前驾驶环境中的所有车道边界, 任何规章元件,例如交通灯或交通标志, 车道的任何规章属性,例如右转标记或人行横道。很少使用这种方式来创建地图, 因为实时创建这样的地图是十分复杂。完全离线的地图通常是通过收集数据来完成的, 通常通过多次收集。 具有高精度传感器的专用车辆定期沿着道路行驶以构建离线地图。 一旦收集完成,信息将会进行标记,通过使用 自动标记的混合方法,通过静态物体感知和 人工注释和矫正。这种地图创建方法在生成非常详细和准确的地图的同时, 无法对变化的环境做出反应或适应。 创建细节路线图的第三种方法是离线创建它们, 然后使用新的相关信息在线更新它们。这种地图创建方法利用了这两种方法, 创建了一个可以在驾驶时更新的高度准确的路线图。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部