当了十年IT程序员,我转型做自动驾驶开

自动驾驶战场的火热,吸引了无数开发者和从业者融入其中。然而与传统互联网存在很大的不同,自动驾驶是汽车产业与人工智能、物联网、云计算等新一代信息技术深度融合的产物,因此,当很多开发者初入其中甚至在观望时,眼花缭乱的新兴技术、匮乏的底层工具、繁杂的知识点等痛点难题不得不让其向现实低了头,止步于当下。

在《新程序员》中,我们邀请到了扎根于互联网0载的资深技术人,立足于他从互联网后端转型做自动驾驶车端基础架构研发的亲身经历,深度分享转型做自动驾驶的软硬件、入门与成长经验,也希望本文能够对更多的同行有所裨益。

作者

卡林仙人(笔名)出品

《新程序员》编辑部

作为一个年就进入IT行业、从事后端研发超过十年的互联网程序员,我在五年前经过慎重考虑,转向了自动驾驶车端基础架构研发领域,决定在一个全新的行业和一个全新的技术方向重新开始。

当我从每天面对着终端和浏览器,变成与各类嵌入式开发板、各种型号的传感器打交道,经常需要实车上路调试,最终亲眼看到一辆汽车按照代码预期自主行驶的时候,确实能感受到和之前工作完全不同的体验和成就感。

从进入自动驾驶行业至今,已有数款我参与研发配备辅助驾驶系统(ADAS,AdvancedDriverAssistanceSystems)的量产车型上市,在此,我也希望把这几年来的心得总结出来,给有意参与自动驾驶研发,但是还在观望犹豫的同行们参考,帮助大家更快找到适合自己的定位。

自动驾驶技术入门,必知的分工与岗位职能

车辆的自动驾驶系统运行环境与互联网服务有很大区别,既没有服务器集群那么丰富的系统资源,也没有浏览器和移动端那么多样性的开发工具。

自动驾驶系统需要工作在车辆已有的数据和控制接口之上,先读取车身和传感器的各项输入,经过系统处理之后,再转化为对底盘控制接口输出的纵向(加减速)和横向(转向)控制指令,最后车辆执行这些指令,完成动作。

按照自底向上的顺序,首先将自动驾驶汽车广泛地分为硬件方向和软件方向。

自动驾驶之硬件平台

车辆平台

对于车辆自身的车身、驾舱、底盘的控制器和软件系统,当前汽车行业已经具备非常成熟的ECU(ElectronicControlUnit)控制器产业链和汽车开放系统架构(AutomotiveOpenSystemArchitecture,简称AUTOSAR)软件体系。

它们负责处理车辆底层控制逻辑,为上层自动驾驶系统提供数据和控制接口,是自动驾驶系统能够控制车辆的基础。

自动驾驶硬件平台

自动驾驶系统的算力需求远高于汽车行业常用的低功耗芯片,需要专用的高算力低功耗嵌入式计算平台。目前行业普遍使用64位ARM架构芯片(aarch64),自动驾驶还依赖了各种型号的摄像头和各个频段的雷达传感器,都需要专业人员来负责各类硬件和传感器的驱动适配,以及GPU、FPGA、DSP等专用运算加速设备的算子开发,这部分工作都是由嵌入式硬件工程师来负责。

因为行业背景知识差异比较大,互联网背景的程序员通常不会选择参与硬件方向工作,所以我们需要


转载请注明:http://www.xxcyfilter.com/zyfz/zyfz/17195.html