初识华为MDC智能驾驶计算平台

初识华为MDC智能驾驶计算平台

前言

世界智能大会下的世界智能驾驶挑战赛组织方推荐:“华为MDC是面向自动驾驶领域的计算平台。MDC拥有自研CPU和AI芯片,联合车规级AUTOSAR平台,促进自动驾驶领域的快速发展。”

Autoware的代码看得博主头疼,换换口味,这篇博客不讲技术工程实现细节,谈些宏观些的概念。其实抬头看看也是很重要的,虽然技术细节才是理论化为实践的关键,但一直埋头干技术细节,大方向跑偏了最后也是失败

系统架构

MDC智能驾驶计算平台总体包含四个部分:第一个部分是硬件平台,第二个部分是平台软件,第三个部分是工具链,第四个部分是安全平台,分为功能安全和信息安全,功能安全指的是“自动驾驶车硬件出现问题后,避免车辆失控,能保证安全停车”,信息安全指的是“车联 数据传输过程中的信息安全” 。不同的解决方案合作伙伴(就是在硬件和底层驱动及服务的基础上开发感知决策等应用模块的开发者)可以基于华为的MDC智能驾驶计算平台去部署不同的应用软件,去满足不同应用场景的要求。

这里面有几个概念跟大家详细介绍一下:

  • BIOS:大家应该都有印象,是电脑启动时加载的第一个软件,它是一组固化到计算机内主板上一个ROM芯片上的程序,保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,可从CMOS中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制
  • 微控制单元(Microcontroller Unit;MCU) :通常我们叫单片机
  • 工具链:工具链是一系列用于制作软件的工具。
    举个例子,就好比我们做作业,要用ppt看题目,用matlab跑仿真,然后将结果写成 告要用word,所以ppt、matlab、word就构成了工具链,题目从ppt转移到matlab变成代码,接着从matlab输出结果被你截图到word里面变成提交的作业,就是这些加工的工具形成一个链条完成写作业的任务。

数据传输

不同传感器接口不同,根据硬件的设计,传感器的数据传输路径分为三大部分,首先是CAN和UART(串口)的接口,这类接口的传感器比如说毫米波雷达,车身底盘和GPS,一般是通过CAN或者串口接入到MCU,,再由MCU子系统封装成SOME/IP消息发布到host子系统,(防盗标记:zhengkunxian)业务是部署在host子系统中的,比如说决策规划、感知识别等模块的算法。Host是ARM(Advanced RISC Machine)架构服务器级的CPU(Central Processing Unit)Kunpeng鲲鹏920,具有强大的计算能力。Host子系统内部各个节点之间的通讯方式为DDS。

接着看ETH(车载以太接口,换种说法就是 口),以太接口是可以直通到host子系统的,目前使用以太接口的传感器主要还是激光雷达,因为激光雷达的数据量比较大,并且业务应用可以直接获取到激光雷达的裸数据,所以不用封装成SOME/IP的消息发布后再去读取数据,直接用socket就行了。

最后是GSML接口,主要是接入摄像头,摄像头数据一般是原始图像数据,需要经过ISP的处理之后才能给自动驾驶算法使用。而且考虑到图像数据占据的储存空间还有传输时需要的带宽都比较大,为了提升传输的性能降低延时,目前MDC是使用DDS这种传输方式发布给业务应用的。

MDC(Mobile Data Center)可用于二次发开的芯片有Host(Kunpeng鲲鹏920)和Mini(Ascend昇腾 310)。Host是ARM(Advanced RISC Machine)(防盗标记:zhengkunxian)架构服务器级的CPU(Central Processing Unit),具有强大的计算能力;Mini是Ascend架构的图形处理芯片,MDC有4个Mini,分别是Mini0、Mini1、Mini2、Mini3。需要使用GPU加速的功能软件(如图像处理节点)应部署在Mini上,其他节点可部署在Host上。

通过下面两个业务应用的流程图可以知道,MDC的host子系统内基于AP(AUTOSAR Adaptive Platform)的通信方式有两个,DDS和SOME/IP(Scalable Service-OrientedMiddleware over IP)。

工具链

工具链的概念之前跟大家介绍过了。为什么提供这个工具链呢是因为自动驾驶研发的门槛确实是比较高的,从设计开发整个流程对人员的要求很高,为降低门槛,华为提供了完整的工具链。MDC工具链旨在提供个性化、标准化、多元化的开发工具集合。后面会详细介绍工具链怎么使用。

工具链组

使用MDC工具链进行开发时,各个工具之间需要进行如图所示的组 ,首先需要有一台linux的服务器,在服务器上可以部署Mind Studio的服务端,以及安装MDC的交叉编译环境。(交叉编译是在一个平台上生成另一个平台上的可执行代码。)然后本地开发环境上需要准备一个windows开发的环境和一个ubuntu系统(防盗标记:zhengkunxian)的开发环境。Windows系统上的开发环境可以安装MMC和MDS,以及使用浏览器查看Mind Studio的界面,在ubuntu环境上可以安装MDS和交叉编译环境以及同样的使用浏览器查看Mind Studio的界面。目前MMC还未推出ubuntu版本。然后linux服务器、windows开发环境、ubuntu开发环境,与MDC单板连接在一个小的局域 内。这样使用MDS进行远程运行调试的时候就可以直接将应用部署到MDC单板上去运行。

MDC平台应用软件集成方式

最后了解下在MDC平台上使用MDC工具链进行应用软件集成的方式:

  1. 首先在配置工具MDC Manifest Configurator中去进行配置工程的创建、然后导入MDC提供的配置模板、在模板的基础上进行业务应用的配置、完成应用配置以及应用间的通信配置后,生成Arxml文件,并将其导入MDS中。
  2. 如果是开发AI应用,那么同时还可以在Mind Studio中对自己在tensorflow或者caffe平台训练好的模型进行AI模型转换,以及AI应用编排,最后编译生成AI应用的动态库。
  3. 完成了配置和AI动态库的开发后,在MDS这个集成开发环境中将已配置好的Arxml文件使用代码自动生成功能,生成通信框架代码,然后编写业务代码,如果此时业务为调用AI模块进行图像识别等,则可直接调用Mind Studio编译生成的so动态库,业务代码编写完毕后,进行编译构建生成可执行文件,接着通过运行调试功能将可执行二进制文件和配置文件打包部署到MDC智能驾驶平台上。

这张图展示的应用ABCD,可以认为是使用上述开发流程开发完成的智能驾驶应用。P:发布;R:接收。

初识华为MDC智能驾驶计算平台

至此初识MDC结束,这个东西就是个工具,重要的还是业务代码,就是决策规划、感知识别这些的功能模块的实现

继续研究Autoware去了~

补充:虽然是工具,但是却是非常重要的,没有工具怎么实现功能,尤其我们国家崛起被西方各种堵截,啥都得能自给自足才行呀。吾辈当自强!

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年2月22日
下一篇 2020年2月22日

相关推荐