首页 > 其他分享 >AutoPilot智能汽车 5大主流车机OS

AutoPilot智能汽车 5大主流车机OS

时间:2023-04-19 15:34:50浏览次数:47  
标签:架构 操作系统 特斯拉 车机 驾驶 硬件 AutoPilot 软件 OS

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

相关文章

  • 浪潮信息联合 OpenCloudOS 完成技术兼容互认证
    近日,浪潮信息PCIeGen4SSD产品NS8500G2、NS8600G2与OpenCloudOS&TencentOS完成产品兼容性互认证明。测试期间,整体运行稳定,在功能、性能及兼容性方面表现良好。产品兼容性互认证明作为开源操作系统社区,OpenCloudOS沉淀了国内多家厂商在软件和开源生态的优势,在云原生、稳定性、性能......
  • osgb可以转3ds、obj、gltf或者dxf吗?然后在三维建模软件里对模型进行修改后再转回osgb?
     参考:https://blog.csdn.net/qq_35996394/article/details/125440542>>将模型/场景从Houdini导出到three.js?:https://www.wp2.cn/?p=51668>>houdini导入gltf提示noentries。。:https://www.shenyecg.com/Article/436412 怎么导入gltf模型呢?>>建模工具千千万,为何独选Houdini?:h......
  • centOS7下安装vim8.2
    请先安装nodejsyum安装设置Node.jsv16版本curl--silent--locationhttps://rpm.nodesource.com/setup_16.x|sudobash(setup_16里16是版本号,可根据自己需要修改)yum方式安装sudoyum-yinstallnodejs其它参考:以上命令安装不成功可执行:sudoyumcleanall若本地存......
  • Mac Os Python3安装与配置
    1.安装 使用brew命令安装,未安装Homebrew,详见官网安装方法 https://brew.sh/brewinstallpython3安装好后配置环境变量exportPATH=/Library/Frameworks/Python.framework/Versions/3.9/bin:$PATH测试安装是否成功python3--versionPytho......
  • 一千个需求如何快速排序?MoSCoW排序法用上了!【No.2】
    什么是MoSCoW排序法?莫斯科排序法是一种优先级排序法,用于管理需求、任务或功能列表。该方法可以帮助团队确定哪些需求、任务或功能是最重要的,并决定在特定时间段内是否需要完成它们。所以在对需求进行排序时,可以从以下维度考虑:能为业务目标产出高价值的需求优先做;节省时间、人......
  • 第五篇——通达信指标公式编写常用函数(一)——REF、MA、EMA、CROSS(从零起步编写通达信
    内容提要:本文主要介绍了编写通达信指标公式常用的函数REF、MA、EMA、CROSS以及这些函数的综合运用举例。 通达信的函数非常多,想全部熟练掌握,几乎是不可能的,而且没有必要,毕竟很多函数很少用到。 编写通达信指标公式常用的函数大概也就三四十个,对于这些函数,建议认真学习......
  • 在MacOS下使用Unity3D开发游戏
    第一次发博客,先发一下我的游戏开发环境吧。去年2月份买了一台MacBookPro2021M1pro(以下简称mbp),这一年来一直在用mbp开发游戏。我大致分享一下我的开发工具以及使用体验。1、Unity官网链接:https://unity.cn/releases我一般使用的Applesilicon版本的,支持M1芯片,无需转译。Un......
  • pycharm中运行js文件出现UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in
      在做有道翻译时发现python文件中调用js文件并读取,出现了UnicodeDecodeError:'gbk'codeccan'tdecodebyte0xafinposition205:illegalmultibytesequence报错。其实修改很简单,我们只需要将subprocess.py文件Popen类属性中的enconding='None',改为enconding='utf-8'就可......
  • centos7设置定时任务重启tomcat
    1、确认crontab是否安装crontab-l//返回nocrontabforroot,表示已安装2、生成重启tomcat文件vimtomcatStart.sh#!/bin/bash/etc/profileecho$JAVA_HOME#这里取jdk路径exportJAVA_HOME=/usr/java/jdk1.8.0_191#这里取tomcat路径tomcatPath="/data2/webapp/apache-tomcat-8......
  • CentOS7添加自定义脚本服务
    在CentOS7下,已经不再使用chkconfig命令管理系统开机自启动服务和条件自定义脚本服务了,而是使用管理unit的方式来控制开机自启动服务和添加自定义脚本服务。在/usr/lib/systemd/system目录下包含了各种unit文件,有service后缀的服务unit,有target后缀的开机级别unit等。如果想把自定......