自动驾驶技术架构和简述

简介: 首先自动驾驶技术从业务流程上分为3个核心的流程,分别是环境感知定位、决策规划、执行控制。

概述
首先自动驾驶技术从业务流程上分为3个核心的流程,分别是环境感知定位、决策规划、执行控制。这3个核心流程的具体价值如下:

环境感知定位:主要是通过传感器技术和摄像头、GPS等技术获取汽车行驶过程中的环境指标,并且将数据采集

决策规划:通过收集的数据,对车辆的下一步行为作出判断和指导

执行决策:目前大部分车辆都采用线控设计,如何将决策通过信号指令控制汽车的油门、制动等相关系统

以上3个流程,每一个步骤都包含了许多核心技术和功能点,在接下来的系列文章中我将一一讲解,本篇文章作为综述,核心体现的是下面这种自动驾驶技术架构图,这张架构图包含了每个流程的核心功能。
image.png

环境感知定位

环境感知和定位其实是由3个模块组成,分别是环境感知、定位、V2X组成。

1.环境感知

环境感知模块主要是通过摄像头和各种雷达实现对道路和行驶路线的识别。而且通常理想情况下,环境的感知需要多种传感器的配合来实现。
image.png

1.1摄像头

摄像头是最接近于人眼的一种环境感知设备。常见的车载摄像头包含单目摄像头、双目摄像头、环视摄像头。单目摄像头一般一般至于车的顶端,负责监控前方的路障,但是对距离感知不太敏感。

而双目摄像头,可以利用视距差,通过三角测距技术获取障碍物到车辆的距离。比如下图P1和P2为两个摄像头,P为障碍物。可以通过三角测距获取P到车辆的距离。
image.png
而环视摄像头至少需要4个,可以360度的监控全车周边的情况。
image.png

采用摄像头识别的问题在于需要依赖大量的图像数据积累,并且训练生成视觉模型才能识别,整个的技术成长周期比较长。除了摄像头,还可以通过雷达实现环境感知。雷达分为激光雷达、毫米波雷达和超声波雷达。

1.2 激光雷达

其中激光雷达又称LiDAR,他的核心原理是通过发送一道光,这个光遇到障碍物会反弹回收,通过两者的时间差来判断距离。
image.png

另外,通过激光雷达的数据采集,可以绘制出点云图,从而实现对障碍物的形状、大小、距离的描绘,典型的点云图如下:
image.png

激光雷达的一个主要问题就是容易受到天气的影响,比如降雨天气下,水珠就容易对激光雷达的效果产生影响。

1.3毫米波雷达

毫米波雷达也能起到车辆和物体的测距效果,通过发射信号和接收信号之间频率的转变实现速度的推送。毫米波雷达相较于激光雷达相比,穿透灰尘和烟的能力较强,在非常极端的天气条件下也可以正常工作。

1.4超声波雷达

超声波雷达是辅助驾驶领域应用比较多的一种雷达,常常安装到车后方的保险杠,用于倒车辅助功能。
image.png

原理是发出和接收相同频率的声波,然后通过时间差测量距离。超声波雷达不太适合远距离测距。

目前自动驾驶领域通常是摄像头和激光雷达、毫米波雷达配合使用。单一模式的环境识别都会存在一定的劣势。

2.定位

环境感知技术主要是帮助车辆获取道路状况信息,定位服务可以帮助车辆获取到车辆所在的具体坐标,为车辆的决策规划提供依据。常见的定位系统有卫星定位、差分定位和惯性导航定位等。

2.1 卫星定位
卫星定位是日常大家非常熟悉的定位方式,常见的卫星定位服务有美国的GPS、欧洲的伽利略、中国的北斗导航等。这里多说一句,因为自动驾驶系统一旦商用,所有车辆运行轨迹将被定位系统监控,所以出于国家安全考虑,各国大概率将采用本国的卫星定位系统。

卫星定位的基本原理就是通过三角定位的方案,至少3颗卫星同时跟地面车辆连接,就可以计算出准确的车辆坐标。
image.png

2.2 差分定位

差分定位原理是确定一个参考站,参考站跟卫星发生通信,得到当前位置的误差,也叫做差分校正量。然后流动站就是汽车,通过差分校正量为汽车的真实定位做校正。差分定位是一种提升GPS定位准确率的技术方案。

image.png

2.3 惯性定位

惯性定位不依赖任何光电技术。仅依赖于汽车当前的加速度,通过积分可以获得车的下一时间段的位移,当车速较快的时候,惯性定位会是卫星定位的很好地补充。

3.V2X
V2X(Vehicle to Everything)技术指的是车用无线通信技术,通过通信去连接其他应用,从而衍生出V2R(Vehicle to Road)、V2I(Vehicle to Infrastruction)、V2P(Vehicle to Prestrian)。

3.1 V2R
V2R技术指的是车辆间的通信,比如有一辆车要转向了,那么通过与后方车辆的通信,让后方车辆可以提前做避让。

image.png

3.2 V2I\V2P
这两个可以放到一起介绍,V2I指的是跟一些红绿灯等设施的通信。V2P可能是与一些行人的手表、手机相关的通信。

决策规划

环境感知和定位主要起到的是确定外界环境状态的作用,为路径的决策和规划提供依据。在决策规划模块,主要解决的问题是车辆该怎么走的问题。这里面又分为两个方面,分别是路径的规划和行为的决策。

1.路径规划
路径规划其实是高精度地图领域的技术。传统的人驾驶模式,如果地图导航出现了失误其实可以通过人肉修正。而自动驾驶时代,地图的准确性以及导航的准确性,将直接关乎安全性,所以自动驾驶时代的高精度地图技术非常重要。

image.png

那么如何在高精度地图领域做路径规划,其实就是求两点间最短路径问题。因为在自动驾驶技术成熟后,很可能乘客上车设置一个目的地就开始睡觉了,剩下路怎么走相关问题就依赖于汽车的路径规划。

常用的求最短距离的算法有Dijkstra、Floyd、A*、RRT算法等。在后续的文章将会逐步介绍这些算法。

2.行为决策
因为车辆自动驾驶问题不是单一变量问题,车辆在形式的过程中既包含车本身的行为,也包含道路上其它行人、汽车的行为。所以行为决策主要包含两个方面,一个是车辆自己的形式决策,另一个是对于其它行驶车辆的行为的预测。

2.1 对交通参与方的预测
对于交通参与方的预测可以通过多种算法来实现,构建一套运动模型的方式。但是有的人会问?道路上其它车辆加速转弯等行为是存在很大不确定性的,这种情况怎么构建预测模型呢。

比较常用的解法是通过高斯噪声来代表交通参与者运动的不确定性,因为大部分参与方的行为一定是服从正态分布的,所以整个模型构建可以看作是一个高斯过程。对于交通参与方的行为和意图的预测,可以看作是一个动态的时序过程,可以用深度学习LSTM这样的循环神经网络解决相应的问题。
image.png

2.2 车辆自身的行为决策
说回车辆自身,需要决策的指令集包含:行驶、跟车、转弯、换道、停车等。车辆如何做决策,或者做什么样的决策,需要放到一个场景下去判别。

image.png

整体流程应该分为4个步骤,首先感知环境的变化,比如前方有车并道了,然后做场景判断,前方有车并道场景该调取什么样的模型做预测,最终的行为输出可能是减速或者自己并到另一个道路。这中间的判断过程还要考虑其它车辆行为,以及是否符合道路规章制度。

每次行为的整体决策链路非常长,而且每一步决策相互影响,所以这种自动驾驶车辆行为决策的功能可以看成是一系列概率的加成,可以看成是马尔科夫决策过程。

执行控制

经过环境感知和决策规划之后,就到了执行控制的环节。如何将决策传递给车辆的功能部件,把油门、制动、转向、换挡指令落实,是制动控制的关键,也是标准的动力学原理。
image.png

自动驾驶汽车目前比较可行的方案是通过CAN电力总线去控制每个部件的行为,将指令通过电子信号传达到每个部件,这也是目前电动汽车的主要传感方式。CAN总线的关键环节是如何通过电信号将指令发送以及接收,另外就是时间响应问题。这一套技术随着电动汽车的发展,相对比较成熟,就不过多介绍。

目录
相关文章
|
2月前
|
机器学习/深度学习 边缘计算 自动驾驶
【初探GSConv】轻量化卷积层直接带来的小目标检测增益!摘录于自动驾驶汽车检测器的架构
【初探GSConv】轻量化卷积层直接带来的小目标检测增益!摘录于自动驾驶汽车检测器的架构
68 0
【初探GSConv】轻量化卷积层直接带来的小目标检测增益!摘录于自动驾驶汽车检测器的架构
|
机器学习/深度学习 监控 自动驾驶
|
10天前
|
API 数据库 开发者
构建高效可靠的微服务架构:后端开发的新范式
【4月更文挑战第8天】 随着现代软件开发的复杂性日益增加,传统的单体应用架构面临着可扩展性、维护性和敏捷性的挑战。为了解决这些问题,微服务架构应运而生,并迅速成为后端开发领域的一股清流。本文将深入探讨微服务架构的设计原则、实施策略及其带来的优势与挑战,为后端开发者提供一种全新视角,以实现更加灵活、高效和稳定的系统构建。
18 0
|
24天前
|
负载均衡 测试技术 持续交付
高效后端开发实践:构建可扩展的微服务架构
在当今快速发展的互联网时代,后端开发扮演着至关重要的角色。本文将重点探讨如何构建可扩展的微服务架构,以及在后端开发中提高效率的一些实践方法。通过合理的架构设计和技术选型,我们可以更好地应对日益复杂的业务需求,实现高效可靠的后端系统。
|
24天前
|
监控 持续交付 API
构建高效可扩展的微服务架构
在当今快速迭代和竞争激烈的软件市场中,构建一个高效、可扩展且易于维护的后端系统变得尤为重要。微服务架构作为一种流行的分布式系统设计方式,允许开发者将应用程序划分为一系列小型、自治的服务,每个服务负责执行特定的业务功能。本文将探讨如何利用现代技术栈搭建一个符合这些要求的微服务架构,并讨论其潜在的挑战与解决方案。我们将涵盖服务划分策略、容器化、服务发现、API网关、持续集成/持续部署(CI/CD)以及监控和日志管理等关键主题,以帮助读者构建出既可靠又灵活的后端系统。
|
8天前
|
Kubernetes 安全 Java
构建高效微服务架构:从理论到实践
【4月更文挑战第9天】 在当今快速迭代与竞争激烈的软件市场中,微服务架构以其灵活性、可扩展性及容错性,成为众多企业转型的首选。本文将深入探讨如何从零开始构建一个高效的微服务系统,覆盖从概念理解、设计原则、技术选型到部署维护的各个阶段。通过实际案例分析与最佳实践分享,旨在为后端工程师提供一套全面的微服务构建指南,帮助读者在面对复杂系统设计时能够做出明智的决策,并提升系统的可靠性与维护效率。
|
19天前
|
存储 监控 Kubernetes
探索微服务架构下的系统监控策略
在当今软件开发领域,微服务架构因其灵活性、可扩展性和容错性而日益受到青睐。然而,这种架构的复杂性也为系统监控带来了新的挑战。本文旨在探讨在微服务环境下实现有效系统监控的策略,以及如何利用这些策略来确保系统的健壮性和性能。我们将从监控的关键指标入手,讨论分布式追踪的重要性,并分析不同的监控工具和技术如何协同工作以提供全面的系统视图。
|
19天前
|
监控 Java 开发者
构建高效微服务架构:后端开发的新范式
在数字化转型的浪潮中,微服务架构以其灵活性、可扩展性和容错性成为企业技术战略的关键组成部分。本文深入探讨了微服务的核心概念,包括其设计原则、技术栈选择以及与容器化和编排技术的融合。通过实际案例分析,展示了如何利用微服务架构提升系统性能,实现快速迭代部署,并通过服务的解耦来提高整体系统的可靠性。
|
25天前
|
消息中间件 敏捷开发 运维
构建高效可靠的微服务架构:策略与实践
随着现代软件开发的复杂性增加,微服务架构逐渐成为企业解决大型应用系统分解、敏捷开发和持续部署问题的有效手段。本文深入探讨了构建一个高效且可靠的微服务架构的关键策略,包括服务的合理划分、通信机制的选择、数据一致性保障以及容错处理。通过分析这些策略在具体案例中的应用,我们旨在为开发者提供一套可行的微服务设计及实施指南。
128 6
|
25天前
|
监控 数据管理 API
构建高效微服务架构:后端开发的新趋势
在现代软件开发领域,随着业务需求的不断复杂化以及敏捷迭代的加速,传统的单体应用架构逐渐暴露出其局限性。微服务架构作为一种新的解决方案,以其高度模块化、独立部署和可扩展性,正成为后端开发领域的新趋势。本文将探讨微服务架构的核心概念,分析其优势与面临的挑战,并提供实施高效微服务的策略和最佳实践,帮助读者理解如何利用这一架构模式提升系统的可靠性、灵活性和可维护性。
135 5

热门文章

最新文章