百度无人驾驶课程——无人驾驶

无人驾驶出现的需求

人驾驶车

  • 较高的交通事故
  • 需要从头学起如何驾车
  • 停车位的问题

自动驾车

  • 更加可靠的驾驶
  • 有可以学习的驾驶系统-更快的有效驾驶
  • 不必考虑停车位的问题

自动驾驶的6个等级

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

总结:

无人驾驶车辆由专用计算机和传感器组成。

自主计算单元比个人计算机快10倍,甚至快更多倍。在 Apollo 系统中,车辆车载计算单元受到大规模且强有力的云集群支持,任何给定的无人驾驶车辆都有许多先进的传感器,它们可执行感知和定位等任务,借助人工智能和这些传感器,车辆可以独立于任何人类驾驶员实现自主操作。

运作方式

名字叫做Carla

简单解析:就是一个简单的agent

感知:周围环境——通过计算机视觉和传感器。

计算:计算路径——定位,规划道路路径,避障

执行:执行器(效应器)-加速、制动、转向

5个核心部件:
 

百度无人驾驶课程——无人驾驶_第1张图片

  • 计算机视觉:通过摄像头图像弄清楚我们周围的世界是怎样的。
  • 传感器融合:合并来自其他传感器的数据,如激光和雷达,从而更加深入地了解我们周围的环境。
  • 定位:只要我们对周围的世界有了深刻的理解,就可以使用定位来精确地确定我们在那个世界所处的位置和环境。
  • 路径规划:绘制这个世界的路线,帮助我们到达我们想去的地方。
  • 控制:为了让汽车沿着我们在路径规划期间建立的轨道行驶,我们该如何转动方向盘、踩油门、踩制动器。

通过计算机视觉和传感器融合,我们就会得到一幅关于我们周围环境的丰富画面,并可以使用定位来精确地确定我们在这个世界所处的位置和环境,然后使用路径规划来绘制一条通过这个世界到达目的地的路径,通过控制转动方向盘、打开油门、然后踩制动器,沿着该轨迹行驶并最终移动车辆。

以下作为知识点补充。

软件和硬件平台

可通过电子控制的基础车辆——线控驾驶车辆。

Apollo 无人驾驶车

这款车有几个不同的传感器,传感器参数由参考硬件规格定义:

  • 控制器区域网络(CAN):是车辆的内部通信网络,计算机系统通过 CAN 卡链接汽车内部网络,发送加速、制动和转向信号。
  • 全球定位系统(GPS):通过绕地卫星接受信号。这些信号可帮助我们确定所处位置。
  • 惯性测量装置(IMU):测量车辆的运动和位置,是通过跟踪位置、速度、加速度和其他因素。
  • 激光雷达(LiDAR):由一组脉冲激光器组成,Apollo 使用的激光雷达可360度扫描车辆周围,这些激光束的反射,形成了软件可用于了解环境的点云。
  • 摄像头:捕获图像数据,我们可以使用计算机视觉来提取这些图像的内容并了解周围的环境。例如,因为摄像头可以感知颜色,我们用它们来检测和了解交通灯。
  • 雷达:也用于检测障碍物,雷达分辨率低,难以分辨雷达检测到了哪种障碍物,但雷达的优势在于经济实惠,适用于各种天气和照明条件。雷达特别擅长测量其他车辆的速度。

百度无人驾驶课程——无人驾驶_第2张图片

开源软件架构

开放式软件层分为三个子层:实时操作系统、运行时框架和应用程序模块层

  • 实时操作系统(RTOS):可确保在给定时间内完成特定任务,“实时”是指无人驾驶车的操作系统,能够及时进行计算,分析并执行相应的操作,以下操作需在汽车传感器收集到外界数据后的短时间内完成。实时性能是确保系统稳定性和驾驶安全性的重要要求。
  • Apollo RTOS:是 Ubuntu Linux 操作系统与 Apollo 内核相互结合的成果。Ubuntu 是业内顶级 Linux 发行版之一,也是最流行的云操作系统。然而,原始 Ubuntu 系统并非实时操作系统,通过加入 Apollo 设计的内核,我们可以使其成为一个 TOS。
  • 运行时框架:是 Apollo 的操作环境。
    • 它是 ROS 的定制版,即机器人操作系统。尽管 ROS 代表机器人操作系统,但它实际上是一个在 Apollo RTOS 上运行的软件框架。
    • ROS 根据功能将自治系统划分为多个模块,每个模块负责接收、处理和发布自己的消息。由于这些模块相互独立,只能通过运行时框架进行通信,因此调整任何单一模块都很容易。为使 ROS 适应无人驾驶车,Apollo 团队改进了共享内存的功能和性能、去中心化和数据兼容性。
      • 共享内存:降低了需要访问不同模块时的数据复制需求,对于一对多传输方案,共享内存支持“一次写入,多次读取”模式。
      • 去中心化:解决了单点故障问题。现成的 ROS 由许多节点组成,每个节点都有对应的功能,但是所有这些节点都需要由单个 ROS 主节点来控制,如果主节点发生故障,整个系统都会失效。为避免这个问题,Apollo 将所有节点放在一个公共域中,域中的每个节点都有关于域中其他节点的信息。
      • 数据兼容性:不同的 ROS 节点通过名为 ROS 消息的接口语言相互通信,ROS 消息需要使用通用接口语言,使每个节点都可以解读来自其他节点的消息数据。Protobuf 是一种结构化数据序列化方法,这对开发用于通过电线彼此通信或用于存储数据的程序非常有用。用户可以将新字段添加到消息格式中,而不会破坏后向兼容性,新的二进制文件可以在解析过程中接受旧的消息格式。向 ROS 添加 protobuf 格式有助于 Apollo 的长期发展。
    • 应用程序模块:Apollo 的软件平台具有各种模块,这些模块包括 MAP 引擎、定位、感知、规划、控制、端到端驾驶以及人机接口(或 HMI)。每个模块都有自己的算法库,模块之间的关系非常复杂,我们将在整个课程中对这些模块及其关联方式进行研究。

 

 

 

 

云服务

 

 

 

 

 

Apollo 云服务不仅仅是存储数据,它还提供了许多应用程序,其中包括可加快构建和训练无人驾驶车软件过程的工具。Apollo 云服务包含高精度地图、仿真环境、数据平台、安全、空中升级软件,以及被称为 DuerOS 的智能语音系统。这里将重点介绍仿真环境数据平台。

 

  • 仿真环境平台:是 Apollo 开放软件栈的重要工具,该平台允许每个人出于自身需要来构建仿真环境,还聚合了大量驾驶数据,使开发人员能够检验和验证无人驾驶软件系统。
  • 仿真环境使 Apollo 车辆不仅可以查看环境,还可以了解道路情况和场景。仿真环境平台具有许多功能,允许开发人员配置不同的驾驶场景,比如障碍物、路线和交通灯状态。执行模式为开发人员提供了一个在多个场景中运转的完整设置。
  • 执行模式中,开发人员可以在 Apollo 环境中上传和验证模块。当前的自动评分系统,从几个指标对场景进行评估,其中包括:碰撞检测、交通灯识别、速度限制、障碍物检测和路线逻辑。最后,三维可视化描述了实时路况,在显示无人驾驶车状态的同时,使模块输出可视化。
  • 数据平台:数据对无人驾驶车来说很重要,无人驾驶数据可能来自模拟场景或道路测试,Apollo 为这些类别提供了各种各样的数据。仿真场景数据有两个不同的来源:记录场景和虚拟场景。
    • 记录场景:重放我们在实际道路测试中已经观察到的传感器数据。

    • 虚拟场景:使用虚拟编辑器创建新的驾驶场景,这有助于快速检验和验证算法。

  • 为了训练像深度学习网络那样的机器学习模型,我们需要带标签的注释数据,其中包括交通信号灯数据,带边界框的障碍物数据以及语义分割数据。此外,Apollo 已向公众发布了 ApolloScape 数据集,ApolloScape 涵盖了各种复杂路况,ApolloScape 在单个图像中列入并注释了多达162辆车或80名行人,同时开放数据集使用。
  • 语义分割对图像进行逐像素标记,这使得 ApolloScape 成为世界上最为复杂又最精准的无人驾驶数据集。Apollo 云服务也提供了信息安全,DuerOS 和无线更新等其他模块内容。

 

 

 

 

 

你可能感兴趣的:(大三-大四小学期)