客服:
技术:
QQ:
地址:
邮箱:

博马娱乐城

主动驾驶作为一个宏大且庞杂的工程,究竟波及了哪些技巧?
自动驾驶作为一个庞大且复杂的工程,究竟涉及了哪些技术?

原题目:自动驾驶作为一个庞大且复杂的工程,究竟涉及了哪些技术?

编者按:本文来来自微信大众号“量子位”(ID:QbitAI),作者:陈光 上汽团体 | 高精度舆图&情况建模工程师,36氪经受权宣布。

Google从2009年开始做自动驾驶,到当初已有8个年初。8个年头的技术积聚还无奈将自动驾驶技术量产落地,可见自动驾驶技术并不简略。

自动驾驶是一个宏大并且庞杂的工程,涉及的技巧良多,年夜局部答主仅从软件方面停止了先容,而且太细致致。我从硬件和软件两方面谈一谈自动驾驶汽车所波及的技术。

一. 硬件

分开硬件谈自动驾驶都是耍地痞。

先看个图,下图基础包含了自动驾驶研究所需要的各类硬件。

但是…

这么多传感器并纷歧定会同时呈现在一辆车上。某种传感器存在与否,取决于这辆车需要完成什么样的义务。如果只要要完成高速公路的自动驾驶,类似Tesla 的 AutoPilot 功效,那基本不需要使用到激光传感器;假如你需要实现城区路段的自动驾驶,不激光传感器,仅靠视觉是很艰苦的。

自动驾驶系统工程师要以任务为导向,停止硬件的抉择和本钱控制。

1、汽车

既然要做自动驾驶,汽车当然是必不成少的货色。

从我司做主动驾驶的教训来看,做开辟时,能不选纯汽油车就别选。

一方面是全部自动驾驶系统所耗费的电量宏大,混动和纯电动在这方面存在显明上风。另一方面是是发念头的底层控制算法比拟于电机复杂太多,与其花大批时间在标定和调试底层上,不如直接选用电动车研究更高层的算法。

海内也有媒体专门就测试车辆的取舍做过调研。

调研文章地址:

http://www.sohu.com/a/139046349_120865

2、控制器

在后期算法预研阶段,推举使用工控机(Industrial PC,IPC)作为最直接的控制器处理计划。因为工控机相比于嵌入式装备更稳固、牢靠,社区支撑及配套的软件也更丰盛。百度开源的Apollo推荐了一款包含GPU的工控机,型号为Nuvo-5095GC,如下图。

当算法研讨得较为成熟时,就可以将嵌入式体系作为控制器,比如Audi和TTTech独特研发的zFAS,今朝曾经利用在最新款Audi A8上量产车上了。

3、CAN卡

工控机与汽车底盘的交互必须经过专门的言语--CAN。从底盘获取以后车速及方向盘转角等信息,需要解析底盘发到CAN总线上的数据;工控机经过传感器的信息盘算失掉标的目的盘转角以及冀望车速后,也要经过 CAN卡 将新闻转码成底盘能够辨认的旌旗灯号,底盘进而做出呼应。

CAN卡可以直接安装在工控机中,而后经过内部接口与CAN总线相连。

Apollo应用的CAN卡,型号为ESD CAN-PCIe/402,如下图。

4、寰球定位系统(GPS)+惯性丈量单位(IMU)

人类开车,从A点到B点,需要晓得A点到B点的地图,以及自己以后所处的位置,如许能力知道行驶到下一个路口是右转仍是直行。

无人驾驶系统也一样,依附GPS+IMU就可以知道自己在哪(经纬度),在野哪个方向开(航向),当然IMU还能提供诸如横摆角速度、角减速度等更丰富的信息,这些信息有助于自动驾驶汽车的定位和决策控制。

Apollo的GPS型号为NovAtel GPS-703-GGG-HV,IMU型号为NovAtel SPAN-IGM-A1。

5、感知传感器

信任大师对车载传感器都耳熟能详了。

感知传感器分为许多种,包含视觉传感器、激光传感器、雷达传感器等。

视觉传感器就是摄像头,摄像头分为单目视觉,双目(平面)视觉。比拟着名的视觉传感器供给商有以色列的Mobileye,加拿大的PointGrey,德国的Pike等。

激光传感器分为单线,多线一直到64线。每多一线,成本上涨1万RMB,当然响应的检测效果也更好。比较知名的激光传感器提供商有美国的Velodyne和Quanergy,德国的Ibeo等。国内有速腾聚创和禾赛科技。

雷达传感器是车厂Tier1的强项,因为雷达传感器曾经在汽车上失掉了普遍使用。著名的供给商当然是博世、德尔福、电装等。

6、硬件部门总结

组装一套可以完成某项功能的自动驾驶系统需要及其丰硕的经验,并且要对各传感器的机能鸿沟及控制器计算才能一目了然。优良的系统工程师能在满意功能的请求下将成本控制在最低,使其量产、落地的可能性更大。

二. 软件

大部分答主已对软件停止了论述,我也从我的角度介绍以下软件的开发。

软件部分的内容已在我的答复:无人驾驶,团体如何研究? 中停止了介绍。

《无人驾驶,团体若何研究?》文章链接:

https://www.zhihu.com/question/20210846/answer/215490332

以下内容前半段为搬运。

软件包括四层:感知、融合、决策、控制。

各个层级之间都需要编写代码,去完成信息的转化,更细化的分类如下。

1、采集

传感器跟我们的PC或许嵌入式模块通信时,会有不同的传输方法。

好比我们采集来自摄像机的图像信息,有的是经过千兆网卡完成的通讯,也有的是直接经过视频线停止通信的。再比方某些毫米波雷达是经过CAN总线给下流发送信息的,因而咱们必需编写解析CAN信息的代码。

不同的传输介质,需要使用不同的协定去解析这些信息,这就是上文提到的“驱动层”。

艰深地讲就是把传感器采集到的信息全体拿到,而且编码成团队可以使用的数据。

2、预处理

传感器的信息拿到后会发明不是一切信息都是有用的。

传感器层将数据以一帧一帧、固定频率发送给下游,但下游是无法拿每一帧的数据去停止决策或许融合的。为什么?

因为传感器的状况不是100%无效的,如果仅依据某一帧的信号去断定后方能否有障碍物(有可能是传感器误检了),对下游决策来说是极不负义务的。因此上游需要对信息做预处置,以保障车辆后方的障碍物在时光维度上是始终存在的,而不是一闪而过。

这里就会使用到智能驾驶领域常常使用到的一个算法--卡尔曼滤波。

3、坐标转换

坐标转换在智能驾驶范畴非常主要。

传感器是装置在分歧处所的,比如超声波雷达(上图中橘黄色小区域)是安排在车辆四周的;当车辆右方有一个阻碍物,间隔这个超声波雷达有3米,那么我们就以为这个障碍物距离车有3米吗?

并不必定!由于决议掌握层做车辆活动计划时,是在车体坐标系下做的(车体坐标系个别当前轴核心为O点),所以终极一切传感器的信息,都是须要转移到自车坐标系下的。

因此感知层拿到3m的障碍物位相信息后,必须将该障碍物的地位信息转移到自车坐标系下,才干供规划决策使用。

同理,摄像机普通安装在挡风玻璃上面,拿到的数据也是基于摄像机坐标系的,给下游的数据,异样需要转换到自车坐标系下。

什么是自车坐标系?

请拿出你的右手,以大拇指 → 食指 → 中指 的次序开端念 X、Y、Z。

然后把手握成如下外形:

把三个轴的交点(食指根部)放在自车坐标系后轴中央,Z轴指向车顶,X轴指向车辆行进方向。

各个团队可能界说的坐标系方向不分歧,只有开发团队外部同一即可。

4、信息融合

信息融合是指把雷同属性的信息停止多合一操作。

比如摄像机检测到了车辆正后方有一个障碍物,毫米波也检测到车辆后方有一个障碍物,激光雷达也检测到后方有一个障碍物,而实践上后方只要一个障碍物,所以我们要做的是把多传感器下这辆车的信息停止一次融合,以此告知下游,后面有一辆车,而不是三辆车。

5.决策规划

这一档次重要设计的是拿到融合数据后,如何准确做规划。规划包含纵向控制和横向控制。

纵向控制即速度控制,表现为 什么时分减速,什么时分制动。

横向把持即行动节制,表示为 什么时分换道,什么时分超车等

6、软件长什么样子?

自动驾驶系统中的部分软件看起来和上面类似。


软件的名字反应了该软件的实践感化--

app_driver_camera 摄像机驱动

app_driver_hdmap 高精度地图驱动

app_driver_ins 惯导驱动

app_driver_lidar 激光传感器驱动

app_driver_mwr 毫米波传感器驱动

app_fusion_freespace 自在行驶区域融会

app_fusion_lane 车道线融合

app_fusion_obstacle 障碍物融合

app_planning&decision 规划决策

但是实践上攻城狮们会编写一些其余软件用于本人的调试任务,比如记载数据跟回放数据的东西。

还有效于传感器信息显示的可视化顺序,相似下图的后果。