为与国际先进智能网联汽车技术水平保持同步发展,开发具有自主知识产权的智能网联汽车产品和技术,积极推进行业亟需的智能网联汽车技术规范与标准,在国家相关部委支持下,2013年,中国汽车工程学会联合包括汽车整车企业、科研院所、通信运营商、软硬件厂商等30多家单位共同发起成立“车联盟产业技术创新战略联盟”,2015年7月更名为“智能网联汽车产业技术创新战略联盟”。“联盟成立后,通过协同创新和技术共享,在智能网联汽车领域完善相关的标准法规体系,搭建共性技术平台,促进形成示范试点工程,推动建设可持续发展的智能网联汽车产业发展环境,为我国智能网联汽车产业发展奠定良好基础。”中国汽车工程学会副秘书长、智能网联汽车产业技术创新战略联盟副秘书长公维洁表示,联盟的成立也为各单位智能汽车的技术研发和共享提供了平台,节约了我国智能汽车研发的时间和成本。
MDC的开发过程的三大工具:MMC、MDS、Mind Studio,这三个工具完成了开发过程中的配置文件编写、代码编写以及AI模型的开发三个任务。除了开发,MDC还准备了两个调试工具,用于使用过程中数据的查看等。这一些调试工具分别对映射MDC中的几个比较重要的部分,如摄像头、激光雷达、MIND等内容
第一部分、MDC Application Visualizer
Application Visualizer主要是用于查看可视化的应用数据,从而提升应用的调测效率。MDC提供了基于AUTOSAR的可视化应用调测工具,即MDC Application Visualizer。该软件主要是由两部分组成:负责可视化显示客户端MViz和负责可视化通信库的viz-lib。二者的关系图示如下:
- 前期工作:a)查询版本或升级前根据实际情况配置好用于SSH登录MDC单板的IP地址和端口号PORT
- 默认IP:192.168.1.6 PORT:22,支持远程连接,PC端改成同网段IP即可)b)本升级工具已内置用于登录MDC的默认用户名和密码
- 打开可视化工具Xshell,软件(software)下的MDC_MDC下的文件MDCTool;同样文件加下的ubt107的mds;MindStudio\bin下的文件由于权限问题要使用sud来执行MindStudio文件内容,这里要先创建一个空的项目文件,这一些都是比较重要的内容,需要重点关注。
如果修改过MDC的默认登录用户名、登录密码、root密码,查询版本或升级前可通过<登录用户名><登录密码><root密码>按钮配置用于登录MDC的信息,注意这里的u_f文件下的stld=A1;node:MINI0,insID=11
[root@localhost]sshuser_1_6
root[@localhost]root
[root@localhost]vim /opt/cfg/conf_run/viz/viz_address.conf
[root@localhost]cd /opt/platform/mdc_platform/manual_service/camera_tool/conf/
root[@localhost] vim us_Conf.jso
[root@localhost]#cd..&&cd bin/ &&./camera_tool
Application Visualizer支持许多的数据类型,即可以可视化显示多种的数据,使用Application Visualizer主要是四个步骤,下面分别介绍一下四步:
①基于vis-lib,使用开发工具链,开发可视化应用
整个操作和使用jsp连接数据库的操作很像,都是建立连接、传输、释放连接和资源。
但是在这里之前我们需要先配置一下相关的资源内容信息,找到wksp-2/camra下的文件内容进行复制;之后重新登陆,来迷你零位置保存地址;然后在摄像机数据位置的instanid的值为11,模式文件为yov3
[root@localhost]scp -r camera_det/ sshuser@192.168.1.10:/home/sshuser
[root@localhost]sshu_1.10
[root@localhost]root
[root@localhost]vim /opt/cfg/conf_run/viz/viz_address.conf
[root@localhost]cd /home/sshuser/camera_det/
[root@localhost]vi Config.yaml
[root@localhost]./start.sh camera_det
开发应用时编码有点像JDBC的操作,使用C语言,引入对应的头文件,首先开启VIZ库功能,尝试连接服务端,之后向上位机发送可视化数据,之后调用Publish接口发送数据,最后关闭库功能,断开连接并释放资源。
②启动Application Visualizer
程序和前面的开发工具一样,都是免安装的,所以直接解压压缩包,解压后直接打开程序。之后要进行一定的配置,登录MDC后切换为root账户,配置好MViz需要使用的地址和端口号。
③远程部署到MDC单板上
这一步就是介绍MDS的时候的操作,按照远程连接的方式,将程序部署在MDC单板上。
④上位机查看MDC可视化应用数据
在RViz中通过Add来添加可视化topic。
第二部分、MDC Measure Cailbration Diagnosis
Measure Cailbration Diagnosis主要是负责调测,它是一个遵循ISO标准规范的调测工具,支持多种调测的功能:
Measure Cailbration Diagnosis也是不需要安装,在Ubuntu18的系统中解压即可使用,使用时可以选择直连MDC单板,也可以利用网络互连的方式。为了更好的连接,需要把解压的文件workspa/Lider,打开界面,复制到MDC板子的/home/sshuser
[root@localhost]scp -r * sshuser@192.168.1.6:/home/sshuser
[root@localhost]sshuser_1_6
[root@localhost]root
[root@localhost]cd /opt/cfg/conf_run/viz/ && vim viz_address.conf
[root@localhost]cd /home/sshuser/Lidar
[root@localhost]export CM_CONFIG_FILE_PATH=./LidarCmProcess && ./LidarC16Process
①设备管理
Measure Cailbration Diagnosis工具可以实时获取设备及传感器的各种信息、支持子设备的数据测量、支持以拓扑图形式显示设备接入情况并且可以动态刷新、支持MDC的主备倒换证书加载、支持设备和传感器接入的检测。
②软件维测
Measure Cailbration Diagnosis工具支持查询AP平台的软件节点等信息,支持查看平台软件服务状态及其数据、支持查看功能软件的管理,并且支持用户测量和查看时延数据,除此之外,工具还支持录制回放,利用录制回放可以对event进行回放,方便开发调测。。。这里为了进行回放,需要重新打开xluanc-ror进行设置并保存;然后打开softw-ubt-MDC_visi_1062,执行运行的文件./run.py -i选择适合自己的地址进行设置,然后add添加,把点云2加入进来,就可以了最后需要设置Fixed frname--velodyne值。然后选择合适大小的 点云即可。
第三部分、华为MDC Manifest Configurator
有Mind Studio提供的库,加上MMC的配置信息,最后由MDS编码并整合为可执行程序,运行在MDC计算平台上,这样就实现了整个MDC的一个开发流程。可以看出来,整个的可执行文件是需要在MDC平台上运行的,一旦离了这个黑盒子,整个程序是没法运行的(个人感觉华为在这波美国的芯片打压下学聪明了,即使没造出车也先占下坑)。。这里我们需要先打开软件sdft_MDS_V_s1072文件下的./mdc_development_studio,这是一个华为自己开发的软件,同时导入设备上商号给我们提供好的文件:workSpace/第二部分/imu/ADSF_simple_2_3;打开local.cpp,在这里加入常用的参数信息如下,这里设置的获取参数imuStatus、temperature、linearAcceleration.x也是比较常用的内容,
接下来,我们选哟查看我们写的代码是否还存在着错误信息,需要开始调试,如下所示:
选择项目---local Terminal--terminal打开一个终端,执行./get_target.sh,然后接下来我们把打包好的文件传入到MDC平台上,需要切换位置,并上传文件
[root@localhost]cd adsf_sample
[root@localhost]scp -r location/ sshuser@192.168.1.6:/tmp
之后,需要把执行我们代码编译的两个文件也传上来,这里先打开文件workspace/部分2/imu
[root@localhost]scp -r InsCmHostProcess/ ImuProcess sshuser@192.168.1.6:/tmp
最后我们打开指令窗口,把传上来的文件执行。
[root@localhost]sshuser_1_6
[root@localhost]root
[root@localhost]cd /tmp
[root@localhost]export CM_CONFIG_FILE_PATH=./InsCmHostProcess
[root@localhost]chmod 777 ImuProcess
到最后也没搞明白这两种校验到底有什么区别,感觉一个是标准层面的一个是代码层面的,校验的结果都会给出错误信息,但是改正的方法不一样,好像基于model的更方便一些,毕竟是以界面的形式呈现而不是以xml的形式,看起来也更加方便。
后面又听课时听到了一句这里的区别,基于schema是文本级的校验,二者本质上都是根据AUTOSAR的标准校验。
[root@localhost]sshuser_1_6
[root@localhost]root
[root@localhost]cd /tmp/location
[root@localhost] ./start.sh location
第四部分、MDC_Development_Studio工具
华为MDC还是一套开放的平台,具备组件服务化、接口标准化、开发工具化的特性,基于此平台可快速开发、调测、运行自动驾驶算法与功能。针对不同级别的自动驾驶算法,采用一套软件架构和不同硬件配置,支持L3~L5自动驾驶算法的平滑演进升级。举例来说,在一套能够实现L4级自动驾驶的架构中,通过增减激光雷达、摄像头等传感器数量和算力配置,来实现Robo-taxi、中高端车型、普通车型的需求。算力方面,可以根据实际需求增减MDC智能驾驶计算平台上昇腾310芯片的数量,来达到自动驾驶对算力的不同需求。
接下来我们一起使用一下该工具,首先需要找到文件夹soft_MDC_studio_107,然后执行打开./mdc_dev_studio,然后把编写好的文件内容woks/2/chassis\PLATFORM导入其中,这里有我们需要的内容,然后就需要开始编译右键--Ge_Fr_Arxml来自动生成代码,然后开始打开里面的主文件C++程序,修改里面的参数设置,改好之后就进行编译;然后开始把编译好的代码进行上传,选择outpcfg/HMe/mdcfd,右键打开终端terminal,这里需要的是把文件MdcCanFdProcess上传到1.6版本下的临时文件夹下;之后在上传二进制程序,找到build/./modules右键,build下-......- modules的虫子图标就是需要上传的内容scp -r canfd_abstract;接下来就是把硬件设备开启一下“执行”模块通电,遥控器切换到手动挡;开一个新的客户端,登陆到su;运行以下的代码:
[root@localhost]cd /tmp
[root@localhost]export CM_CONFIG_FILE_PATH=./MdcCanFdProcess
[root@localhost]chmod 777 canfd_abstract
[root@localhost]./canfd_abstract 7 1 00861E01#F0.06.88.08.00