当前位置: 代码迷 >> 综合 >> 自动驾驶系统入门(九)- 无人驾驶客户端系统
  详细解决方案

自动驾驶系统入门(九)- 无人驾驶客户端系统

热度:75   发布时间:2024-03-10 02:18:06.0

1、无人驾驶客户端系统

1.1 客户端系统基础解析

无人驾驶客户端系统包括操作系统和计算平台两个重要部分;无人驾驶不是单独的一项技术,而是多种技术的集成,技术的集成在由操作系统和硬件平台组成的客户端系统层面上完成。

首先,传感器从环境中收集数据,并将这些数据提供给计算平台进行感知和动作的计算,然后再将动作规划发送到控制平台进行执行。但是只有硬件是不够的,在硬件之上,还需要一个操作系统来协调这些组件之间所有的通信,并协调不同实时任务的资源分配。

1.2 客户端系统需要具备的能力

1)系统需要具备足够的计算能力,用于快速处理大量传感器数据;

2)系统需要具有较高的鲁棒性,即使系统一部分发生故障时,系统也能够从故障中恢复;

3)系统需要在严格的能耗和资源约束下进行所有的计算。

2、操作系统

2.1 机器人操作系统ROS基础解析

1)机器人操作系统(ROS),是针对机器人应用而量身定制的一个分布式计算框架;

2)机器人操作系统ROS的特点

—— 分布式 点对点 : 采用分布式架构,通过点对点的设计让机器人的进程可以分别运行,便于模块化的修改和定制,提高了系统的容错能力。

—— 多种语言支持 : ROS支持多种编程语言。C++ 、Python 已经在ROS中实现编译,是目前应用最广的ROS开发语言,Lisp、C#、Java等语言的测试库也已经实现。

—— 开源社区:ROS具有一个庞大的社区ROS WIKI,此外,ROS遵从BSD协议,对个人和商业应用的修改完全免费;

3)无人驾驶系统集成包括多个软件模块:感知、定位、目标识别、目标跟踪 、交通预测、路径规划、避障、导航等。每个模块都需要满足实时需求,以使无人驾驶车辆能够正常运行。因此需要一个可以进行通信和资源分配的操作系统来管理所有组件,机器人操作系统便是一种能实现这些功能的软件库工具。

2.2 机器人操作系统ROS的通信机制

1)ROS主要组件可以分为ROS Master、 ROS Node 和 ROS Service 三种类型。

—— ROS Master 的主要功能是提供服务,它可以存储启动时所需的操作参数、上游节点和下游节点之间的连接名称以及现有ROS服务的名称。

—— ROS Node 会处理收到的消息,并将消息发送到下游节点。

—— ROS Service 是一种特殊的ROS Node,它相当于一个服务节点,可以接受请求并返回请求的结果。

2)ROS中最重要的概念包括节点、节点管理者、参数服务器、消息、主题、服务和任务。

—— 节点(Node):节点是用来执行任务的过程。

—— 节点管理者/主节点(Node manager/Master):作用即是管理其他节点。每个节点都需要向节点管理者注册其信息,以便节点管理者协调他们之间的通信。

—— 参数服务器(Parameter Server):参数服务器用于集中存储系统中节点操作所需的配置参数。

—— 消息(Message): 节点之间的通信内容称为消息。消息是由类型域组成的简单数据结构(消息也可以封装成结构化文本数据或非结构化多媒体数据)。

—— 主题:是一种通信的发布 - 订阅机制。节点可以将消息发布到某个主题,其他节点也可以订阅相同的主题以接收发布的消息;

—— 服务:是一种一对一的交流机制。节点可以请求服务节点提供服务,从而在这两个节点之间建立通信信道。

3、计算平台

计算平台的设计直接影响无人驾驶系统的实时性能和鲁棒性能。平台设计的关键问题包括成本、功耗、散热等;

3.1 计算平台的设计

1)计算平台达到量产要求的三个关键性能指标:

—— 每瓦的性能

—— 每瓦的成本

—— 平台的生态系统,包括使用这个计算平台的用户群以及它的易用性;

2)无人驾驶的计算堆栈示例:

在计算平台层,提出了一个SoC架构,此SoC架构中,有一个I/O子系统与前端传感器交互;由DSP负责图像预处理流以进行特征提取;由GPU进行目标识别和其他深度学习任务;多核CPU用于规划、控制和交互任务;由FPGA进行动态重构以分时共享的方式完成传感器数据压缩上传、目标跟踪和交通预测等工作。

这些计算部件和I/O组件通过共享内存进行数据通信。在上面的计算平台层,存在一个动态系统,通过OpenCL把不同的工作负荷分配到异构计算单元上执行,并由实时的执行引擎动态地完成务调度。在动态系统之上,我们部署的是机器人操作系统。ROS是一个分布式操作系统,其中包含了多个ROS节点,每一个节点封装了一个无人驾驶任务。

3.2 现有的计算平台解决方案

1)基于GPU的计算解决方案 —— 英伟达

—— Xavier是NVIDIA于2018年初最新发布的AI超级计算芯片,也是全球首个量产的高级自动驾驶的定制处理器,被业界称为“世界上最强大的SoC(片上系统)。

—— DRIVE AGX Xavier 可实现每秒30万亿次运算,功耗仅为30瓦,搭载基于SoC的6个不同处理器,集成高性能GPU、定制8核CPU架构,可高效运行多种冗余性深度学习算法;

2)基于DSP的计算解决方案 —— 德州仪器

德州仪器的TDA为无人驾驶提供了一个基于数字信号处理的解决方案。TDA2x SoC 拥有两个浮点DSP内核C66x和4个专为视觉处理设计的完全可编程的视觉加速器。在任务上相比,ARMCortex-15 处理器视觉加速器可提供8倍的视觉处理加速且功效更低。

3)基于FPGA的解决方案 —— Altera/特斯拉

a、Altera公司的Cyclone V SoC芯片

Cyclone V SoC 是一种基于现场可编程门阵列(Field-Programmable Gate Array, FPGA)的无人驾驶解决方案,已经在奥迪产品中使用;Altera公司的FPGA为传感器融合提供优化,结合了车辆中多个传感器的数据,实现了高度可靠的目标检测。

b、特斯拉自主研发的FSD芯片

FSD芯片,也属于一款FPGA芯片,其采用三星14nm FinFET制程工艺,核心面积260平方毫米,2.5亿个逻辑门,集成了60亿个晶体管,32MB SRAM缓存和96×96乘加阵列; FSD芯片中包含了三个能够提供计算性能的模块,分别是CPU、GPU和NPU。

CPU方面,采用的是Cortex-A72架构,三组、每组4个核心,一共有12个核心,最高运行频率为2.2GHz,这部分处理器核心用于通用的计算和任务。

GPU方面,特斯拉设计了一个支持FP32和FP64的GPU模块,主频最高1GHz,最高计算能力约为600GFLPS。

NPU方面,特斯拉FSD芯片内包含了2个NPU,每个NPU中有一个96×96的MAC矩阵,包含了32MB的内置SRAM,整体工作频率为2GHz。所以在理想的情况下,一个NPU的计算能力是96×96×2OPs×2GHz=36.86TOPS,两个核心加起来就是73.73 TOPS。一个FSD系统有2个FSD芯片,整板计算能力就是144TOPS。

4)基于ASIC的解决方案 —— 英特尔

英特尔(Mobileye) EyeQ5 是基于特定用途集成电路(Application Specific Integrated Circuit, ASIC)的无人驾驶解决方案。EyeQ5具有四种异构的、全编程加速器,分别对专有算法进行优化,包括计算机视觉、信号处理和机器学习任务。这种多样性的加速器架构使应用程序可以通过使用最适合的内核来存储计算时间和能量。