自动驾驶简介
Posted 机器学习研究组订阅号
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动驾驶简介相关的知识,希望对你有一定的参考价值。
技术简析自动驾驶
技术分级
自动驾驶技术分为多个等级,目前国内外产业界采用较多的为美国汽车工程师协会(SAE)和美国高速公路安全管理局(NHTSA)推出的分类标准。
按照SAE的标准,自动驾驶汽车视智能化、自动化程度水平分为6个等级:无自动化(L0)、驾驶支援(L1)、部分自动化(L2)、有条件自动化(L3)、高度自动化(L4)和完全自动化(L5)。两种不同分类标准的主要区别在于完全自动驾驶场景下,SAE更加细分了自动驾驶系统作用范围。详细标准见下图:
技术路线
在自动驾驶技术方面,有两条不同的发展路线:
第一种是“渐进演化”的路线,也就是在今天的汽车上逐渐新增一些自动驾驶功能,例如特斯拉、宝马、奥迪、福特等车企均采用此种方式,这种方式主要利用传感器,通过车车通信(V2V)、车云通信实现路况的分析。
第二种是完全“革命性”的路线,即从一开始就是彻彻底底的自动驾驶汽车,例如谷歌和福特公司正在一些结构化的环境里测试的自动驾驶汽车,这种路线主要依靠车载激光雷达、电脑和控制系统实现自动驾驶。
从应用场景来看,第一种方式更加适合在结构化道路上测试,第二种方式除结构化道路外,还可用于军事或特殊领域。
硬件需求
自动驾驶作为新技术要与汽车旧有载体做加法,那么它需要哪些硬件配套呢?所有离开硬件光谈自动驾驶都是耍流氓。
各类传感器
各类传感器并不一定会同时出现在一辆车上。某种传感器存在与否,取决于这辆车需要完成什么样的任务。如果只需要完成高速公路的自动驾驶,类似Tesla 的 AutoPilot 功能,那根本不需要使用到激光传感器;如果你需要完成城区路段的自动驾驶,没有激光传感器,仅靠视觉是很困难的。
自动驾驶系统工程师要以任务为导向,进行硬件的选择和成本控制。
控制器
控制器是汽车的大脑,算法研究得较为成熟时,就可以将嵌入式系统作为控制器,比如Audi和TTTech共同研发的zFAS,目前已经应用在最新款Audi A8上量产车上了。
CAN卡
工控机与汽车底盘的交互必须通过专门的语言——CAN。从底盘获取当前车速及方向盘转角等信息,需要解析底盘发到CAN总线上的数据;工控机通过传感器的信息计算得到方向盘转角以及期望车速后,也要通过 CAN卡 将消息转码成底盘可以识别的信号,底盘进而做出响应。
CAN卡可以直接安装在工控机中,然后通过外部接口与CAN总线相连。
全球定位系统(GPS)+惯性测量单元(IMU)
人类开车,从A点到B点,需要知道A点到B点的地图,以及自己当前所处的位置,这样才能知道行驶到下一个路口是右转还是直行。
无人驾驶系统也一样,依靠GPS+IMU就可以知道自己在哪(经纬度),在朝哪个方向开(航向),当然IMU还能提供诸如横摆角速度、角加速度等更丰富的信息,这些信息有助于自动驾驶汽车的定位和决策控制。
软件需求
软件包含四层:感知、融合、决策、控制。
各个层级之间都需要编写代码,去实现信息的转化,更细化的分类如下。
采集
传感器跟我们的PC或者嵌入式模块通信时,会有不同的传输方式。
比如我们采集来自摄像机的图像信息,有的是通过千兆网卡实现的通信,也有的是直接通过视频线进行通信的。再比如某些毫米波雷达是通过CAN总线给下游发送信息的,因此我们必须编写解析CAN信息的代码。
不同的传输介质,需要使用不同的协议去解析这些信息,这就是上文提到的“驱动层”。
通俗地讲就是把传感器采集到的信息全部拿到,并且编码成团队可以使用的数据。
预处理
传感器的信息拿到后会发现不是所有信息都是有用的。
传感器层将数据以一帧一帧、固定频率发送给下游,但下游是无法拿每一帧的数据去进行决策或者融合的。因为传感器的状态不是100%有效的,如果仅根据某一帧的信号去判定前方是否有障碍物(有可能是传感器误检了),对下游决策来说是极不负责任的。因此上游需要对信息做预处理,以保证车辆前方的障碍物在时间维度上是一直存在的,而不是一闪而过。
这里就会使用到智能驾驶领域经常使用到的一个算法——卡尔曼滤波。
坐标转换
坐标转换在智能驾驶领域十分重要。
传感器是安装在不同地方的,比如超声波雷达(上图中橘黄色小区域)是布置在车辆周围的;当车辆右方有一个障碍物,距离这个超声波雷达有3米,那么我们就认为这个障碍物距离车有3米吗?
并不一定!因为决策控制层做车辆运动规划时,是在车体坐标系下做的(车体坐标系一般以后轴中心为O点),所以最终所有传感器的信息,都是需要转移到自车坐标系下的。
因此感知层拿到3m的障碍物位置信息后,必须将该障碍物的位置信息转移到自车坐标系下,才能供规划决策使用。
信息融合
信息融合是指把相同属性的信息进行多合一操作。
比如摄像机检测到了车辆正前方有一个障碍物,毫米波也检测到车辆前方有一个障碍物,激光雷达也检测到前方有一个障碍物,而实际上前方只有一个障碍物,所以我们要做的是把多传感器下这辆车的信息进行一次融合,以此告诉下游,前面有一辆车,而不是三辆车。
决策规划
这一层次主要设计的是拿到融合数据后,如何正确做规划。规划包含纵向控制和横向控制。
纵向控制即速度控制,表现为 什么时候加速,什么时候制动。
横向控制即行为控制,表现为 什么时候换道,什么时候超车等
想要了解更多资讯,请扫描下方二维码,关注机器学习研究会
以上是关于自动驾驶简介的主要内容,如果未能解决你的问题,请参考以下文章