Advertisement

自动驾驶入门技术(9)—— 无人驾驶客户端系统

阅读量:

1、无人驾驶客户端系统

1.1 客户端系统基础解析 无人驾驶客户端系统由运算操作系统与计算平台两大核心组成部分构成;无人驾驶并非单一的技术手段,而是多种技术手段的整合工作,在基于运算操作系统与硬件平台构建的客户端系统层面实现。

在这里插入图片描述

图1. 无人驾驶技术集成
首先, 传感器模块从环境中采集各种数据信息, 并将这些数据输入至计算平台用于感知与决策. 接着, 生成的动作指令经由控制平台完成执行流程. 然而, 单靠硬件设备无法满足需求, 需要一个操作系统来整合各系统间的通信协作, 并合理分配系统资源以确保各项任务有序运行.

1.2 客户端系统需要具备的能力
1)客户端系统必须能够快速处理大量的传感器数据;
2)客户端系统必须表现出高度的容错能力;
3)客户端系统必须能够在严格条件下完成所有计算任务。

2、操作系统

2.1 机器人操作系统ROS基础解析
1)机器人操作系统(ROS),是一种专为机器人技术设计的分布式计算平台;
2)机器人操作系统ROS的主要特点包括:
—— 分布式通信模式:基于分布式架构设计的点对点通信模式允许各个运行中的进程独立执行,并具备模块化修改与自适应能力,从而增强了系统的容错性能;
—— 多语言开发环境:支持多种编程语言的开发环境,在ROS平台中提供了现成的C++和Python编译工具包,并广泛应用于自动驾驶领域;
—— 开源社区优势:拥有庞大的官方文档资源库 ROS WIKI,并严格遵循BSD开源协议,在个人及商业项目修改方面均提供免费许可;
3)无人驾驶系统集成涵盖了多个功能模块:包括感知系统、定位技术、目标识别与跟踪系统、路径规划算法等。各功能模块均需满足实时性要求以保证无人驾驶车辆的有效运行。因此一套能够协调组件间通信并分配资源的操作系统对于无人驾驶系统的正常运转至关重要。而机器人操作系统正是能够实现此类功能的关键软件库工具。

2.2 机器人操作系统(ROS)的通信机制
1)ROS主要组件可分为Ros Master Ros Node 和 Ros Service 三类。
—— ros master 的主要职责是存储运行所需的必要参数接收来自上层节点及下层节点之间的连接名称并管理现有的ros服务名称。
—— ros node 负责接收并转发消息至相应的目标节点。
—— ros service 类似于一个服务节点它能够接收客户端请求并返回相应的响应结果。
2)ros中最关键的概念包括node node manager parameter server message topic service和task等概念。
—— node 是指负责执行特定任务的过程。
—— node manager master 或者主节点的作用是管理其他子节点每个子node都需要向主node注册相关信息以便协调它们之间的通信关系。
—— parameter server 用于集中存储系统中各node所需的配置参数信息以支持node的操作需求。
—— message 是指两方通信过程中所传递的具体内容消息通常由类型域构成一种简单的数据结构但也可能以结构化文本或非结构化媒体形式进行封装与传输。
—— topic 则是一种基于发布订阅机制的通信方式nodes可以将消息发布至某个特定topic而其他nodes则可订阅该topic以便接收并处理发布的内容;
—— service 是一种一对一式的交流通道当客户端发送请求给一个服务node时该service node会返回相应的响应从而建立起两个node之间的通信连接;

在这里插入图片描述

图2. ROS的通信机制

3、计算平台

计算平台的设计对无人驾驶系统的表现产生了显著影响。其核心问题主要涉及成本、能耗以及散热等因素。

3.1 计算平台的设计
1)计算平台达到量产要求的三个关键性能指标:
—— 每瓦的性能
—— 每瓦的成本
—— 平台的生态系统,包括使用这个计算平台的用户群以及它的易用性;
2)无人驾驶的计算堆栈示例:
在计算平台层,提出了一个SoC架构,此SoC架构中,有一个I/O子系统与前端传感器交互;由DSP负责图像预处理流以进行特征提取;由GPU进行目标识别和其他深度学习任务;多核CPU用于规划、控制和交互任务;由FPGA进行动态重构以分时共享的方式完成传感器数据压缩上传、目标跟踪和交通预测等工作。
这些计算部件和I/O组件通过共享内存进行数据通信。在上面的计算平台层,存在一个动态系统,通过OpenCL把不同的工作负荷分配到异构计算单元上执行,并由实时的执行引擎动态地完成务调度。在动态系统之上,我们部署的是机器人操作系统。ROS是一个分布式操作系统,其中包含了多个ROS节点,每一个节点封装了一个无人驾驶任务。

在这里插入图片描述

图3. 无人驾驶系统的计算堆栈

3.2 当前存在的计算平台解决方案

在这里插入图片描述

表1. 英伟达两代自动驾驶专用计算芯片性能对比

德州仪器由其TDA2x SoC方案提供了一个基于数字信号处理技术的无人驾驶计算平台。该方案集成了两个高性能浮点型DSP核心(C66x)以及四个视觉处理专用模块。相较于ARMCortex-15处理器配备的视觉加速器系统,在任务执行效率上可实现8倍级提升的同时能耗显著降低。

在这里插入图片描述

图4. 德州仪器TDA2× 架构框图(来源 - 德州仪器)

3)基于 FPGA 的解决方案——Altera/特斯拉
a、Altera 公司的 Cyclone V SoC 芯片
Cyclone V SoC 是一种基于 Field-Programmable Gate Arrays(FPGAs)的无人驾驶解决方案,并已被广泛应用于奥迪的产品中;Altera 公司提供的 FPGA 技术优化了传感器融合系统,在整合了车辆内部多组传感器采集的数据后,显著提升了目标检测的准确性和可靠性。

在这里插入图片描述

图5. Cyclone V SoC 开发板接口框图(来源 - Altera)

b、特斯拉自主研发的先进自研FPGA平台

在这里插入图片描述

图6. 特斯拉FSD芯片内部架构框图(来源 - 特斯拉)

在这里插入图片描述

图7. 特斯拉FSD芯片内部NPU的微架构框图(来源 - 特斯拉)

4)基于ASIC的解决方案——英特尔
Intel(Mobileye)EyeQ5是一种基于专用集成电路(Application Specific Integrated Circuit, ASIC)的无人驾驶方案。该系统采用四种异构、全编程加速器,并分别对计算机视觉、信号处理和机器学习等任务进行了专门优化。这种多样化的加速器架构允许应用程序选择最适合的内核来完成计算任务,并通过这种架构设计的应用程序在完成计算任务时能够最大化地节省时间和能源消耗。

在这里插入图片描述

图8. 英特尔(mobileye)自动驾驶计算平台解决方案 - EyeQ5(来源 - Mobileye)

注:文章发布于官方平台「筋斗云与自动驾驶」公众账号,请通过扫描下方二维码关注并访问主页面左侧下方的「福利」区域以获取 rich 40+ 篇国外自动驾驶与EE架构参考技术文献

在这里插入图片描述

全部评论 (0)

还没有任何评论哟~