Apollo核心模块

Apollo核心模块

  • 1. 无人驾驶等级
  • 2. 高精地图
    • 2.1 导航地图与高精地图
    • 2.2 地图与定位、感知与规划
    • 2.3 Apollo 高精度地图
    • 2.4 Apollo 高精度地图构建
  • 3. 定位
    • 3.1 GNSS RTK
    • 3.2 惯性导航
    • 3.3 LiDAR 定位
    • 3.4 视觉定位
  • 4. 感知
    • 4.1 计算机视觉
    • 4.2 LiDAR 图像
    • 4.3 机器学习
    • 4.4 神经 络
    • 4.5 卷积神经 咯
  • 4.6 检测和分类
    • 4.7 跟踪
    • 4.8 分隔
    • 4.9 传感器数据的优缺点比较
      • 4.9.1 雷达与激光雷达
    • 4.10 传感器融合策略
  • 5. 预测
    • 5.1 预测方式
    • 5.2 障碍物状态
  • 6. 规划
  • 7. 控制

在开始前,需要对无人驾驶技术架构有一个整体了解:

  • 定位
    该模块提供定位服务。默认情况下有以下两种方法:
    1 . 结合 GPSIMU 信息的 RTK(Real Time Kinematic) 实时运动方法
    2 . 融合 GPSIMU、激光雷达信息的多传感器融合方法。
  • 感知
    该模块用来检测和分类障碍物。
  • 预测
    预测模块从感知模块接收障碍物,其基本感知信息包括位置、方向、速度、加速度,并生成不同概率的预测轨迹。
  • 路由
    路由模块根据请求生成高级导航信息。路由模块依赖于路由拓扑文件,通常称为Apollo中的routing_map.*。路由地图可以通过命令来生成。输出为路由导航信息。
  • 规划
  • 控制
    该模块基于规划和当前汽车状态,使用不同的控制算法来生成舒适的驾驶体验。

1. 无人驾驶等级

L0:基本等级,驾驶员为系统的唯一决策者—-驾驶员控制方向盘、油门、制动器和所有其他车辆控制装置。
L1:驾驶员辅助(Driver Assistance),在该等级中,车辆为驾驶员提供转向或加速支持。例如,巡航控制。在该等级中,驾驶员必须保持充分参与,但可以放弃对自动驾驶系统的一些控制。
L2:部分自动化(Partial Automation),在该等级中,车辆自动控制几项功能,如自动巡航控制和车道保持。但是驾驶员仍然必须执行自动驾驶系统没有处理的任何功能。
L3:有条件的自动化(Conditional Automation),车辆自主驾驶,但驾驶员必须准备在必要的时候随时接管。
L4:高度自动化(No Human Interference),在该等级中,车辆控制驾驶体验的所有方面,并且不期望驾驶员的介入。事实上,在该等级中,车辆可能根本没有方向盘或任何驾驶员控制装置。但是,在该等级中,车辆可能被限制在某些区域,通常这被称为“地理围栏”,车辆可以在特定的地理围栏内完全自主地运行,但是在地理围栏之外,车辆不能自主操作,或者根本无法操作。
-L5:完全自动化(Full Automation),在该等级中,车辆可以在人类可以驾驶的任何地方完全自主地运行。五级自动化在所有情况下应与人类驾驶员的水平一样高或比其更高

2. 高精地图

2.1 导航地图与高精地图

高精地图包含大量的驾驶辅助信息,最重要的信息是,道路 的精确三维表征。例如:交叉路口布局和路标位置。高精地图还包含很多语义信息,地图上可能会 告交通灯上不同颜色的含义,它也可能指示道路的速度限制,以及左转车道开始的位置。高精地图最重要的特征之一是精度,手机上的导航地图只能达到米级精度。假设你把车停在路边,如果车辆偏离一两米,则可能会阻塞交通或人行道,并有可能发生碰撞。高精地图使车辆能够达到厘米级的精度,这对确保无人驾驶的安全性至关重要。

2.2 地图与定位、感知与规划

高精地图是无人驾驶车平台的核心,这是因为许多其他无人驾驶车模块都有赖于高精度地图。

  1. 有了高精度地图,就可以在地图上进行自定位:
    首先,车辆可能会寻找地标,可以使用从各类传感器收集的数据,如摄像机图像数据,以及激光雷达收集的三维点云数据来查找地标,车辆将其收集的数据,与其高精度地图上的已知地标进行比较。这一匹配过程需要预处理、坐标转换和数据融合的复杂过程。
    消除了不准确或质量差的数据。
    将来自不同视角(前视图,侧视图等)的数据转换为同一的坐标系。
    可以将来自各种车辆和传感器的数据合并。
    整个定位过程取决于地图,正因为如此,车辆需要高精度地图,以便知道它处于什么位置。

  2. 高精地图也可以用来帮助感知:
    摄像机、激光雷达和雷达探测物体的能力在超过一定距离后都会受到限制。在恶劣的天气条件下或在夜间,传感器识别障碍物的能力可能会进一步受到限制。另外,当汽车遇到障碍物时,传感器无法透过障碍物来确定障碍物后面的物体—-在这种情况下,高精度地图有很大帮助,即使传感器尚未检测到交通信 灯,它也可以将交通信 灯的位置提供能软件栈的其余部分,这可以帮汽车做下一个决策。
    另一个好处在于,地图可帮助传感器缩小检测范围。例如,高精度地图可能会告知我们,在特定位置寻找停车标志,传感器就可以集中在该位置检测停车标志,这被称为 ROI(region of interest)。ROI可以帮助我们提高检测精确度和速度,并节约计算资源。

  3. 高精地图用于规划
    正如定位和感知软件依赖于高精度地图那样,规划软件也是如此。高精度地图可以帮助车辆找到合适的行车空间,它还可以帮助规划期确定不同路线选择(就是最容易被想到的导航功能),并帮助预测软件道路上其他车辆在将来的位置。例如,高精度地图可帮助车辆识别车道的确切中心线,这样车辆可以尽可能地靠近中心行驶。在具有低速行驶限制、人行横道或减速带的区域,高精度地图使车辆能够提前查看,并预先减速。更重要的是,如果前方有障碍物,车辆可能需要变道(这个功能有点困难吧,需要更新的东西有点多)。高精度地图可以帮助车辆缩小选择范围,以便选择最佳方案。

2.3 Apollo 高精度地图

Apollo 高精度地图专为无人驾驶车设计。Apollo 地图包含道路定义、交叉路口、交通信 、车道规则、以及用于汽车导航的其他元素。高精度地图可在许多方面为无人驾驶车提供帮助。例如,高精度地图通常会记录交通信 灯的精确位置和高度,从而大大降低了感知难度(感觉用来做测距也会比较精确

2.4 Apollo 高精度地图构建

高精地图的构建由五个过程组成:、、、、:

3.1 GNSS RTK

GPS 即全球定位系统,是一种由美国政府开发,并在全球范围内运营的卫星导航系统,这类系统的通用名称为全球导航卫星系统或 GNSS(Global Navigation Statellite System)。GPS 是使用最广泛的 GNSS 系统,起初 GPS 只是用于军事导航,但现在任何人都可以使用 GPS 接收器。

从 GPS 卫星收集信 并使用该系统分为三部分:

  1. 卫星:在任何特定时间 大约有 30 颗 GPS 卫星在外层空间运行,它们各自距离地球表面约 2 万公里。
  2. 世界各地的控制站:控制站用于监视和控制卫星,其主要目的是让系统保持运行,并验证 GPS 广播信 的精确度。
  3. 3.4 视觉定位

    图像是要收集的最简单的数据类型,摄像头便宜且种类繁多,还易于使用。通过图像实现精确定位非常困难。实际上,摄像头图像通常与来自其他传感器的数据相结合,以准确定位车辆。但将摄像头数据与地图和 GPS 数据相结合比单独使用摄像头图像进行定位的效果好得多。假设一辆车正在路上行驶,它感知到右边有一棵树。但是地图显示道路右侧有几颗树全部位于不同的位置,我们如何知道车辆现在看到哪棵树可以用概率来解决这个问题,想象一下,我们位于道路上许多不同点中的任意一点处,使用概率来确定哪个点最可能代表我们的实际位置。我们知道在右边看到一棵树,我们假设从一些点可以看到右边有一棵树,而从另一些点则看不到。当然,我们很可能位于可以看到右边有一棵树的地方,我们可以排除在地图上无法看到右边那棵树的点。我们可以在开车的同时继续观察周边世界,想象一下,我们开车前行,然后观察到右边的另一棵树,在观察地图上的其余点之后,我们发现仅在少数几个位置会发现车辆右侧有成排的两棵树,我们当然最可能处于这些位置之一,所以我们可以排除所有其他位置。我们继续该过程,通过观察结果、概率和地图来确定我们最可能的位置,该过程称为粒子滤波,因为我们使用粒子或点来估计最可能的位置。当然,树木在许多道路上比较稀少,但是车道线在许多道路上却很常见,可以使用相同的粒子滤波原理对车道线进行拍照,然后使用拍摄的图像来确定车辆在道路中的位置。可以将道路摄像头图像与地图进行比较,我们的摄像头图像与地图的某些部分匹配得很好,但与地图的其他部分匹配得没那么好。

    视觉定位的优点在于,图像数据很容易获得;缺点在于,缺乏三维信息和对三维地图的依赖。

    4. 感知

    4.1 计算机视觉

    作为人类,你和我可以自动识别图像中的物体,甚至可以腿短这些物体之间的关系。但是,对于计算机而言,图像只是红色、绿色和蓝色值的集合,如何将这些颜色值翻译为解读有意义的图像内容并不明显。

    无人驾驶车有四个感知世界的核心任务:

    • 检测:找出物体在环境中的位置
    • 分类:明确对象是什么
    • 跟踪:随时间的推移观察移动物体
    • 语义分割:将图像中的每个像素与语义类别进行匹配,如道路、汽车或天空

    4.2 LiDAR 图像

    感知扩展到传感器而不仅仅是摄像头,激光雷达传感器创建环境的点云表征提供了难以通过摄像头图像获得的信息,如距离和高度。激光雷达传感器使用光线,尤其是激光来测量与环境中反射该光线的物体之间的距离。激光雷达发射激光脉冲并测量物体,将每个激光脉冲反射回传感器所花费的时间,反射需要的时间越长,物体传感器越远。激光雷达正是通过这种方式来构建世界的视觉表征。你可以在下图可视化视图中看到激光雷达的输出,激光雷达通过发射光脉冲来检测汽车周围的环境。蓝色表示反射激光脉冲的物体,中间的黑色区域是无人驾驶车本身占据的空间。由于激光雷达测量激光束反射,它收集的数据形成一团点或“点云”。

    4.3 机器学习

    机器学习是使用特殊算法来训练计算机从数据中学习的计算机科学领域。通常,这种学习结果存放在一种被称为“模型”的数据结构中。

    有很多种模型,事实上,模型只是一种用于理解和预测世界的数据结构。机器学习涉及使用数据和相关的真值标记来进行模型训练。

    1. 例如,可能会显示车辆和行人的计算机图像,以及告诉计算机哪个是哪个的标签。我可以让计算机学习如何最好的区分两类图像,这类机器学习也成为,因为模型利用了人类创造的真值标记。
    2. 你可以摄像一个类似的学习过程,但这次使用的是没有真值标记的车辆和行人图像。在这种方法中,我们会让计算机自行决定那些图像相似,哪些图像不同,这被称为。我们在这不提供真值标记,而是通过分析输入的数据,在这种情况下为摄像头图像,计算机拼接自行学习找到区别。
    3. 另一种方法被称为,它将监督学习和无监督学习的特点结合在一起。该方法使用少量的标记数据和大量的未标记数据来训练模型。
    4. 是另一种机器学习,强化学习涉及允许模型通过尝试许多不同的方法来解决问题,然后衡量哪种方法最为成功。计算机将尝试许多不同的解决方案,最终使其方法与环境相适应。例如在模拟器中,强化学习智能体可训练汽车进行右转,智能体将在初始位置发动车辆,然后进行实验性驾驶以多种不同的方向和速度。如果汽车实际完成了右转,智能体会提高奖励,即得分,这是针对导致成功结果的初始操作。起初,汽车可能无法找到执行转弯的方法,然而,就像人类那样,汽车最终会从一些成功的右转经验中学习,最终学会如何完成任务。

    4.4 神经 络

    人工神经 络用于无人驾驶车,受到构成人类神经系统的生物神经元启发,生物神经元通过相互连接,构成了神经元 络或神经 络。通过类似的方式,我们可以将人工神经元层连接起来,以创建用于机器学习的人工神经 络。人工神经 络是通过数据来学习复杂模式的工具,神经 络由大量的神经元组成,正如人体神经系统的神经元那样,人工神经元负责传递和处理信息,也可以对这些神经元进行训练。你可以将这些图像识别为车辆,无论它们是黑是白、或大或小,你甚至可能不知道自己如何知道它们是车辆。也许是某些特征触发了你的反应,如车轮、车灯和车窗。人工神经 络具有相似的运作方式,通过密集训练 计算机可以辨别汽车、行人、交通信 灯和电线杆。我们不总是很理解它们如何做出这样的辨别,但它们学习了用于执行任务的模型,只是我们可能很难直观地理解该数学模型。

    当看到该图像时你的大脑如何工作大脑可能会将图像分为几部分然后识别特征,如车轮、车窗和颜色。然后,大脑将使用这些特征对图像进行检测和分类。例如,在确定图像是否为汽车时,大脑可能不会认为颜色是关键特征,因为汽车有多种颜色,所以大脑会将更多权重放在其他特征上,并降低颜色的重要性。

    同样地,神经 络也会从图像中提取许多特征,但这些特征可能是我们人类无法描述或甚至无法理解的特征,但我们最终并不需要理解—-计算机将调整这些特征的权重,以完成神经 络的最终任务,这就是深层神经 络的思维方式。(端到端/p>

    4.5 卷积神经 咯

    卷积神经 络 (CNN) 是一种人工神经 络,它对感知问题特别有效。CNN 接受多维输入,包括定义大多数传感器数据的二维和三维形状。如果使用标准神经 络对图像进行分类,则需要通过一种方法将图像连接到 络的第一层(一维)。标准做法是通过将图像矩阵重塑为一个矢量,并在一个大行中连接所有列,将图像“展开”为一维像素阵列。

    人们通常不太清楚 CNN 如何解读图像,CNN 有时会侧重于图像中令人惊讶的部分,但这也是深度学习的神奇之处。CNN 根据其任务查找真正需要的特征,任务可能是图像检测、分类、分割或其他类型的目标。

    很赞,建议整小节背诵。

    4.6 检测和分类

    我们使用什么算法来对障碍物进行检测和分类p>

    1. 使用检测 CNN 来查找图像中的对象位置
    2. 4.9.1 雷达与激光雷达

      雷达已经在汽车上使用很多年,在各种系统中都需要雷达,如自适应巡航控制、盲点警告、碰撞浸膏和碰撞预防系统等。尽管雷达技术已经成熟,它仍在不断进步,作用不断提升。其他传感器测量速度的方法是计算两次读数之间的差距,而雷达则通过多普勒效应来直接测量速度。多普勒效应根据对象在远离还是接近你,测量出雷达的频率变化。就像消防车警 器一样,当车辆正在远离你和驶向你时,听起来声是不一样的。多普勒效应对传感器融合至关重要。因为它可以把速度作为独立的测量参数,从而提升了融合算法的收敛速度。雷达还可以生成环境的雷达地图,进而实现定位。因为雷达波在坚硬表面会回弹。因此,它可以直接测量对象距离,无需在视线范围内也可以。雷达可以看到其他车辆底部。并发现可能会被阻挡的建筑物和对象。在车上的所有传感器中,雷达是至不容易受雨雾影响的。而且视野宽阔,可达 150 度,距离可达200 多米。与激光雷达和摄像头相比,雷达分辨率较低,尤其是在垂直方向,分辨率非常有限。分辨率低意味着来自静态物体的反射可能产生问题。例如,街道上检修孔盖或汽水罐,可能产生很高的雷达反射率,但他们并不大。我们将其称为雷达杂波。因此,当前的车载雷达通常会忽视静态物体。

      激光雷达是激光探测与测量的简称,而雷达则是无线电探测与测量的简称。雷达使用无线电波,而激光雷达则使用红激光束来确定传感器和附近对象的距离。目前的激光雷达大多使用 900 纳米光波长度的光源。但部分激光雷达使用的光波长度更长,在雨雾中性能更好。当前的激光雷达使用旋转座架发射激光,扫描周边环境。激光室脉冲式的,脉冲被对象反射,然后返回一个点云,来代表这些物体。激光雷达的空间分辨率远远高于雷达。因为激光束越聚焦,垂直方向的扫描层数量就越多,因此每层的激光雷达的密度也越高。目前,激光雷达还不能直接测量对象的速度,必须使用两次或多次扫描之间的位置差来确定。激光雷达受天气和传感器清洁程度影响也很大,因此需要保持清洁。它们块头也比其他传感器更大,因此也很难安装,除非你只想在车顶安装一个大的激光扫描器。

      4.10 传感器融合策略

      Apollo 使用激光雷达和雷达来检测障碍物,用于融合输出的主要算法为卡尔曼滤波。卡尔曼滤波有两个步骤:第一步为预测状态;第二步为更新测量结果。假设我们正在跟踪一名行人,这里的状态表示行人的位置和速度。从已经掌握的行人状态开始,我们使用这些信息来执行卡尔曼滤波的第一步,即预测行人在将来的状态。下一步为误差结果更新,我们使用新的传感器来更新我们所认为的行人状态。卡尔曼滤波算法是预测和更新步骤的无限循环。实际上有两种测量结果更新步骤:同步和异步。同步融合同时跟新来自不同传感器的测量结果,而异步融合则逐个更新所收到的传感器测量结果。传感器融合可提高感知性能,因为各传感器相辅相成。融合也可以减少跟踪误差,这样我们可以更确性,对道路上其他物体位置的预测。

      假设我们的无人查来到一个 T 型路口,并且看到一辆车从左面行驶而来。此时,我们还不清楚这辆车是要右转还是直行。用基于模型的方法,我们可以为此场景构建了两个候选的预测模型:一个模型描述了该车进行右转弯,在上图中用绿色轨迹表示;另一个模型描述了该车继续直行,在上图中用蓝色轨道表示。在此刻,我们认为任意一种模式发生的概率都是相同的。所以我们有两个候选模型,每个模型都有自己的轨迹。我们继续观察移动车的运动,看它与哪一条轨迹更加匹配。

      如果我们看到车辆开始向左改变车道,我们会更加确定车辆最终会直行;另一方面,如果我们要看到车在右转弯车道保持直行,我们会更加倾向于预测对车辆右转。这就是基于模型预测方法的工作原理。
      数据驱动预测使用机器学习算法,通过观察结果来训练模型,一旦机器学习模型训练好,我们就可以在现实世界中利用此模型去做出预测。数据驱动方法的优点是,训练数据越多,模型效果越好。
      基于模型的方法的优点在于它的直观,并且它结合了我们现有物理知识以及交通法规还有人类行为多方面知识。

      5.2 障碍物状态

      为了预测物体的运动,我们也需要知道物体的状态:当我们行驶时,作为人类我们通过观察一个物体的朝向、位置、速度和加速度来预测它将会做什么。这同样是一辆无人驾驶汽车如何观察物体的状态,除了位置、速度、朝向和加速度之外,我们无人车还需考虑车道段内物体的位置。例如,预测模块会考虑从物体到车道线段边界的纵向和横向距离。预测模块还包含之前时间间隔的状态信息以便做出更准确的预测。

      6. 规划

      在规划中,Apollo 通过结合高精度地图、定位和预测来构建车辆轨迹。规划的第一步是路线导航,侧重于如何从地图上的 A 前往 B。在进行路线规划时,将地图数据作为输入,并输出可行驶路径。手机导航系统是路线规划的一个示例,在 Apollo 中,通过线路规划模块处理该任务,一旦我们构建了高水平的路线,我们就会放大至轨迹规划。通过轨迹规划,我们可以做出微妙的决策以避开障碍物,并为乘客创造平稳的乘车体验。

      轨迹规划的目标是,生成免碰撞和舒适的可执行轨迹,该轨迹由一系列点定义,每个点都有一个关联速度和一个指示何时应抵达那个点的时间戳。

      7. 控制

      文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树人工智能机器学习工具包Scikit-learn213223 人正在系统学习中

      声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月5日
下一篇 2020年10月5日

相关推荐