ref: https://www.sohu.com/a/485790993_268260
https://github.com/teslamotors/buildroot
https://github.com/teslamotors/linux
They contain the buildroot material that is used to build the system image on our Autopilot platform, and the kernel sources for those boards as well as the NvidiaTegra-based infotainment system in Model S/X. It is expected to be amended with material for other systems in the car in the near future.
For further questions, please contact [email protected].
https://github.com/teslamotors/
Tesla AutoPilot OS:
特斯拉车辆操作系统
特斯拉有两个车辆操作系统 :
一个用于汽车底盘控制,动力系统的操作系统(显然如果信息娱乐系统崩溃,汽车必须保持完美运行)在,这是一个非常低级的实时操作系统,他们基于符合MISRA的C语言编写,比如他们理汽车驾驶相关系统的部分是基于VxWorks的RTOS(C)。
用于运行娱乐系统等的用户界面的操作系统是基于 Linux 的,特别是 Debian/Ubuntu,Linux操作系统主要是用 C 语言编写的,虽然核心操作系统显然是其他人的作品,但特斯拉似乎确实在维护自己的操作系统linux 分支和一些他们自己的 linux 实用程序和代码。
一、特斯拉Autopilot自动驾驶软件架构
E/E架构领先主流车企超过6年时间,率先达到中央计算平台架构阶段,实现跨域融合,完成从“功能机”到“智能机”的转变。
特斯拉抛弃了由传统特定的ECU执行特定功能的“功能机”设计,转为面向通用计算的“智能机”设计:以区控制器的形式协同不同功能域之间的信息决策,即一个CCM(Central Computing Module,中央计算模块)+三个区控制器。具体来看,CCM整合了自动驾驶和信息娱乐系统两大域,而区控制器则按位置划分为前车身、左车身、右车身控制器,并由CCM进行统一处理、决策,协调各域之间的操作控制。其中,CCM掌控了所有的摄像头、雷达传感器和车机;左车身控制器集成了内部灯光、转向柱控制等;右车身控制器则集成了自动泊车、座椅控制、扭矩控制等功能。此前日本经济新闻社(Nikkei Business Publications,简称日经BP社)在2019年拆解了特斯拉Model 3和Model S,得出了一个结论:以中央处理器为核心的集中式E/E架构的商业化应用要到2025年之后,而特斯拉在Model 3上已经实现了上述架构,其架构已经领先其同行超过6年。
该系统基于Ubuntu进行裁剪,对Linux内核进行了实时性改造,这个内核也开源在github上,深度学习框架基于PyTorch,实时数据处理基于开源流处理平台Kafka,拥有48个独立的神经网络进行多维度数据处理,并且具备强大的OTA升级能力。
其FSD(FullSelf-Driving)计算平台硬件集成了智能座舱域和自动驾驶域,操作系统通过OTA软件升级,充分利用数据、云计算生态,开创汽车产品价值和服务的新21模式。
而Autopilot与娱乐控制层掌控了所有的摄像头和雷达传感器。
在模块内部,Autopilot系统和娱乐系统这两大部分通过CAN和高速串行总线FPD-Link打通,两者之间甚至可以传递视频数据。Autopilot数据流处理机制如下图所示,融合自动驾驶与车内感知,实现服务驾驶闭环。
通过E/E架构的集中化,特斯拉将汽车的软件开发内化,将汽车底层硬件标准化和抽象化,此举让特斯拉通过软件定义汽车和创新变得更容易。
特斯拉的Autopilot进化沿着功能集中化、资源共享化的道路前进,体现了特斯拉软硬件解耦,通过软件定义汽车的实践。
特斯拉在打造Autopilot整体软件栈时采用的理念是站在巨人肩膀上进行创新,充分利用开源项目进行全栈开发,从开发(比如UI框架基于QT,前端也基于一些开源的库)、构建、到部署都采用了开源的方案,推动车端算力服务、调度机制,以及云端算力资源优化布局,培育智能驾驶新业务模式。
二、华为的MDC智能驾驶计算平台架构主要特点有:
1)提供软硬件解决方案,且高度解耦,可独立升级,硬件升级路线和软件升级路线分别独立:
2)对主流传感器的适配性好,支持主流GNSS、IMU、摄像头、激光雷达和毫米波雷达等传感器的数据接入,且支持摄像头和激光雷达点云的前融合;
3)对主流中间层软件的适配性很好,可兼容ROS和AUTOSAR,支持Caffe和TensorFlow等常用深度学习框架;
4)核心组件(芯片、操作系统内核)自主可控;
5)华为是业界唯一同时拥有CPU与AI芯片研发能力的厂家,MDC平台硬件集成具有CPU与AI计算能力的强大SoC芯片,为智能驾驶提供可扩展的异构算力;
6)功能软件基于SOA架构,遵循AUTOSAR规范,定义了智能驾驶基本算法组件(如感知算法组件、融合算法组件、定位算法组25件、决策算法组件、规划算法组件、控制算法组件等)的调用框架与组件之间的软件接口;上层场景应用可以灵活选择不同的算法组件组合,实现具体的场景应用功能;
7)提供安全可信,高效便捷,灵活开放的应用开发端到端工具集,支持可视化&拖拽式操作及自动代码生成,可一站式开发、测试、调优,帮助客户或生态合作伙伴快速开发满足AUTOSAR规范的智能驾驶应用。
因此可见,华为具有除一张沙发和四个轮子之外的所有智能汽车软硬件方案,而且该方案灵活可变,支持不同价格、不同级别、不同功能要求车的定制化调整。
三、大众中央集中式软件参考架构
大众汽车为了加速自动驾驶技术的应用,组建了庞大队伍自主开发汽车操作系统vw.OS,但大众在软件开发方面并非一翻风顺,刚开始,大众ID.3就因软件问题几次推迟交付时间。
vw.OS采用的是基于AdaptiveAUTOSAR面向服务的软件架构,其中,中央集中式软件参考架构如下图所示。
大众新一代EE架构的设计特点主要有:
1)采用高性能处理器、高速网络;
2)兼容POSIX的内核(Linux/QNX等)Linux+AdaptiveAUTOSAR操作系统;
3)应用软件和I/O功能解耦,减少整个系统的复杂性和应用之间的依赖性;
4)高效、快速地开发用户功能;
5)采用面向服务的通信。
目前大众ID.3已经搭载该车型在欧洲上市,国内将在成都车展亮相,后由上汽大众量产。
四、NVIDIADrive软硬齐全
1)软硬件解决方案,且高度解耦,可独立升级,硬件升级路线和软件升级路线分别独立;
2)硬件优势明显,是GPU设计、生产领域的领导者;
3)软件生态非常好,有业界最完善的官方开发套件,开发者社区相对完善;
4)软件层面开放程度较高,可在DriveWorks(功能软件层)开放API,也可在DriveAV和DriveIX(应用软件层)开放API;
5)系统软件层融合了第三方RTOS+AUTOSAR,设有Hypervisor层,第三方量产RTOS方案通过ASILD认证;
6)算法加速全部基于自身CUDA架构和TensorRT加速包,二者是NVIDIA独有,因此其软件开发生态不可脱离其硬件平台。
目前,小鹏P7车型就选择了Xavier硬件平台,能够实现L2级辅助驾驶功能。除此之外,还有不少传统车企选择在Xavier硬件平台上开发自己的自动驾驶系统。
五、百度Apollo开放平台架构百度
Apollo是一套软件平台,不具备硬件开发能力。
其依赖的计算平台硬件需要采用第三方的IPC,如下图所示。
百度自行研发了两款辅助性硬件ASU(Apollo传感器单元)和AXU(Apollo扩展单元),其中,ASU用于收集各传感器的数据,通过PCIe传输至IPC,此外,IPC对车辆的控制指令也需通过ASU向CAN发送;AXU用于满足额外算力、存储的需求,以GPU、FPGA形式接入已有硬件平台。
百度Apollo的主要特点有:
1)为网联云控(V2X)进行软硬件端到端的开发;
2)提出“认证平台”的概念,包括车辆认证、硬件认证;
3)很好地融入了云服务,其中包括众多百度自家的其他产品,如:基础百度云服务、在线仿真产品、高精度地图、小度助手(DuerOS),各产品间彼此受益;
4)由于开源,核心的算法模块在Github进行长时间优化后已充分产品化;
5)主要侧重系统软件的开发,包含定制优化的操作系统、系统中间件及算法功能模块,大部分硬件则采用第三方方案;
6)产品没有涉及到AUTOSAR架构的额外开发适配,也无需对车辆现有的ECU/MCU进行改变。
百度Apollo系统目前已搭载在威马W6上实现量产。
威马汽车官网显示:“该车是国内首款L4级无人驾驶量产车型,搭载AVP无人自主泊车系统,无论是面对家用停车位,还是公共场所停车位,只需按下一键泊车,就能实现自动停车”
该系统可以在本地及云端自动记忆行驶轨迹和预设车位的位置,实现无人情况下的自动泊车入位。
而当你召唤它时,它也能自己规避障碍,避让行人,自动接驾。
标签:架构,操作系统,特斯拉,车机,驾驶,硬件,AutoPilot,软件,OS From: https://www.cnblogs.com/bluestorm/p/17333489.html