版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务1.6MDC集成开发环境-MDS学生手册任务1.6MDC集成开发环境-MDS【任务导入】智能驾驶是当今科技领域的热门话题,它不仅是汽车行业的未来发展方向,也是人工智能和大数据技术的典范应用。作为无缝对接MDC的一款面向智能驾驶的应用软件,MDCDevelopmentStudio(MDS)集成了哪些应用开发的能力呢?又该如何使用呢?【学习目标】素质目标通过学习MDC集成开发环境的基本概念,培养学生精益求精、严谨认真的学习态度;通过MDS的安装部署,培养学生的团队合作能力和沟通表达能力;激发学生的奋斗精神和科技进步的社会责任感。知识目标了解MDC集成开发环境基本概述[K14];了解MDC集成开发环境的安装要求、工具的安装部署[K15];理解MDS基于ADSF的MDC应用[K16]。能力目标能讲解MDC集成开发环境的基本概念[A12];学会使用MDS开发基于ADSF的MDC应用[A13]。【知识准备】MDS功能介绍及使用MDCDevelopmentStudio(以下简称MDS)是一款面向智能驾驶应用软件的集成开发环境。集成了MDCSDK,提供工程管理、代码编辑、工程编译构建、远程图形化调试、UT测试用例编写、应用调优等功能,无缝对接MDC,提供一站式应用开发能力,如图1-6-1所示。图1-6-1MDS组件此外,MDS还有一个很重要的功能,是以MDC平台的配置工具MMC输出的ARXML文件作为输入,通过代码自动生成功能生成MDC平台软件与智能驾驶应用软件之间的通信框架代码,智能驾驶功能软件和应用软件再基于生成的通信框架代码进行独立开发,如图1-6-2所示(MindStudio该版本不支持)。图1-6-2MDC平台工具链MDS功能概述MDS支持以软件为中心的快速迭代开发模式,具备工程管理、应用开发、功能验证三大主要功能,如图1-6-3所示。图1-6-3MDS主要功能提供工程管理功能用于MDC工程的资源管理(工程创建、工程参数配置等),快速生成MDC工程模板,并且提供各种资源的管理。在不熟悉MDC工程的情况下,使用MDS可以快速了解MDC的工程的构成部分,目录结构以及各个目录的功能等等。应用开发阶段MDS提供了代码自动生成、Coding、编译功能,帮助开发人员高效完成应用开发。功能验证阶段MDS提供软件打包运行、调试、单元测试功能,可以快速完成应用到运行环境的部署,帮助开发者聚焦于应用的功能验证工作。MDS开发流程使用MDS开发MDC应用,一般流程为“创建工程->应用开发->编译->部署”,在“应用开发”的Coding部分,有基于ADSF的开发和基于AP的开发两种方式,如图1-6-4所示。图1-6-4MDC开发基础流程基于ADSF的开发方式ADSF框架的开发方式,特点是让开发者更加专注于算法的开发,而不需要关注AP通信信息,适用于初学者或者需要快速开发功能的开发者。基于AP的开发方式AP的开发方式,特点是可以灵活的定义AP通信接口与通信过程,如果开发者比较熟悉AP开发,并且对这个消息的处理过程有自己的诉求,就比较推荐使用这种开发方式。使用MDS进行ADSF开发ADSF框架ADSF框架是一个智能驾驶功能软件通信框架,内置了AP通信的配置,还有一些通信框架代码,利于开发者更关注于业务逻辑的开发,免去繁琐的配置过程。ADSF框架组成ADSF提供自动驾驶服务的子框架,包括:感知相关框架(如Cam目标检测框架、Lidar目标检测框架、多传感器融合框架)融合定位框架Planning规划框架Control控制框架每个框架提供了对上层通信服务的相关接口(如Init()初始化服务、Stop()停止服务、Get()/Send()消息收发服务等),定义了常用的数据结构(如camera数据image),帮助用户聚焦应用层APP算法核心业务,如图1-6-5所示。图1-6-5ADSF应用框架图ADSF框架开发示例-Camera感知更多的接口说明参阅参见“MDC610产品文档-ADSFI自动驾驶服务框架”。使用说明基于ADSF使用Camera目标检测框架,需要组合“adsf/camera_det_base.h”中定义的CameraDetBase类的实例,调用Init()接口进行初始化、调用GetImage()接口获取数据、调用SendObject()接口发送数据、调用Stop()接口停止运行程序,如图1-6-6所示。主线程中依次调用:Init()函数初始化资源。在独立的线程中分别调用GetImage()获取数据,当上游没有数据下发时,对应的线程为阻塞状态。SendObject()接口发送数据。Stop()退出所有阻塞的线程并释放资源。图1-6-6Camera目标识别框架接口编程创建MDC工程,生成MDC应用标准模板;在模板CMakeLists中引入ADSF依赖库,以及所需的第三方库,如图1-6-7所示。图1-6-7Camera目标识别框架接口配置ADSF的控制参数(Config.yaml),比如日志的存储路径、日志的模式、loglevel等;编写算法核心业务代码,如图1-6-8所示。此处的代码逻辑,在进行Init()初始化后,进行一个循环的读写,通过IsStop()检测摄像头有无停止获取数据,如果没有停止,就通过GetImage()拉取img数据,然后将数据放到ImageInference()函数中处理,处理完成后,通过SendObject()将数据发送给下游。图1-6-8编写代码编译工程编译MDS中使用CMake和Make工具实现工程的编译,该过程将源文件编译为MDC上可运行的目标文件,如图1-6-9所示:MDS通过build按钮完成对工程的编译;MDS可以通过解析CMakeLists来识别工程下可编译成目标Target的应用,从而实现编译单应用;编译后的目标二进制文件以应用名称来命名,保存在build目录下,方便进行部署配置;编译过程的日志可以通过Console视图查看。图1-6-9工程编译自定义编译参数MDS中通过工程属性相应的配置页也可自定义编译参数,并对不同配置进行管理,如图1-6-10所示。可通过CMake导航菜单和Toolchains导航菜单进入编译参数相关配置页面进行配置;CMake页主要配置cmake命令参数(如指定编译类型、指定源码路径和二进制路径等) 和make命令(如在构建选项中修改使用的CPU核心数);Toolchains页主要配置编译过程中使用到的工具链,如使用的交叉编译环境、CMake工具 路径、Make工具路径等。图1-6-10编译参数配置编译常见错误在编译过程中可能会遇到一些问题,其中最常见的是找不到依赖库,一般分为以下情况。找不到依赖库,ADSF框架库文件libadb.so、libadsf.so缺失。-解决:MDS在CMakeLists中的target_link_libraries中添加缺失的库,如图1-6-11所示。图1-6-11添加依赖库依赖的库不在交叉编译环境中,未在CmakeLists中引入相关库。-解决:查询缺失的依赖库所在路径;link_directories需在add_executable之前声明;在target_link_libraries中添加缺失依赖。图1-6-12添加依赖库所在路径第三方库缺失-解决:查找交叉编译环境中是否存在对应包,若不存在,则配置yum源自行下载完成第三方的安装。在link_directories、target_include_directories和target_link_libraries中分别加入缺失三方库的目录所在路径、头文件路径、库名称,如图1-6-13所示。图1-6-13添加缺失依赖库头文件缺失,未在CMakeLists中引入相关头文件目录。-解决:查找交叉编译环境中头文件路径;在target_include_directories添加头文件路径,如图1-6-14所示。图1-6-14添加头文件路径上板调试MDS中提供了远程运行和调试的功能,帮助用户快速完成应用到MDC的部署,聚焦验证工作,如图1-6-15所示。部署配置可视化配置界面配置部署验证信息。一键切换不同应用的部署验证配置,一份配置同时支持运行、调试两种验证模式;满足不同场景的验证:点击“”开启应用的运行,“”开启应用的调试;调试功能提供更专业化的验证能力,开发人员可以根据场景需要设置断点、查看函数调用栈、查看变量信息等。图1-6-15MDS上版调试配置流程远程调试常见错误运行所需文件不存在-原因:找不到ADSF的配置文件config.yaml,未设置运行前命令进入到工程目录下。-解决:将运行控制参数配置文件Config.yaml拷贝至MDC上的应用目录下;MDS运行、调试配置中设置执行前命令进入到MDC上的应用目录中,如图1-6-16所示。图1-6-16添加运行所需文件CM初始化错误-原因:运行通信配置文件未指定。-解决:将运行期通信相关文件拷贝至应用目录下;MDS执行前配置增加命令,将通信期文件所在路径添加到环境变量中,如图1-6-17所示。图1-6-17指定通信配置文件MDS安装及开发环境部署MDS的组网方式MDS支持多种组网方式:直连:PC/上位机直连MDC。多对一:通过一个交换机来连接多台PC和一台MDC,实现团队协同开发,多人共用MDC,如图1-6-18所示。图1-6-18多对一组网方式MDS的环境配置及安装软件MDS安装需要的推荐配置,见表1-6-1所示。表1-6-1推荐配置项目要求操作系统X86_64Ubuntu20.04(桌面版)内存建议4G以上空闲磁盘空间建议40GB以上MDS的软件获取列表,见表1-6-2所示。表1-6-2软件获取下载项名称MDS软件包MDC_Development_Studio-Ubuntu20-*.*.*-*.tar.gz交叉编译环境包MDC_SDK-*.*.*-*.tar.gz示例工程包MDC_Sample-*.*.*-*.tar.gz三方库软件包MDC_AOS_rpmlist-*.*.*_*.tar.gz手册MDCDevelopmentStudio用户指南手册MDC610ADSFI&ADB使用指南手册MDC610Sample示例工程使用指南MDS的安装及打开方式安装命令,见表1-6-3所示。(注意:交叉编译解压、安装时需要使用root权限)表1-6-3安装命令命令功能$sudotar-xfMDC_SDK-*.*.*-*.tar.gz-C/usr/local/解压交叉编译环境包$cd/usr/local/ubuntu_crossbuild_devkit&&sudobashinstall.shall安装交叉编译环境$tar-xfMDC_Development_Studio-Ubuntu18-*.*.*-*.tar.gz解压MDS软件包打开方式:方式一:进入DMS安装目录,双击mdc_development_studio,如图1-6-19所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 比例尺-地图的阅读教学设计六年级下册数学青岛版
- 2026年重庆理工职业学院单招职业技能测试题库含答案详解
- 2026年陕西省宝鸡市单招职业倾向性考试题库及参考答案详解一套
- 网络客户行为追踪分析服务协议
- 新能源电动汽车充电站合作合同范本
- 黄梅县大河镇招聘社区网格员备考题库附答案详解
- 陶瓷瓷砖产品销售渠道合同
- 2026年资本充足率动态分析与报告协议
- 文案策划2026年项目合作协议
- 法库县依牛堡子乡招聘社区网格员考试试题附答案详解
- 湖南初二地理生物会考真题试卷+解析及答案
- 医疗器械经营企业管理记录表格
- TCIDADS00013-2023物联网云组态应用界面设计指南
- 物业管理基础知识培训课件
- 中石油政治职称考试题库及答案
- GB/Z 115-2025齿轮蜗杆副承载能力计算
- 中考语文二轮复习热点题型专项训练(辽宁专用):专题10非连续文本阅读
- GB/T 12236-2025石油、化工及相关工业用钢制旋启式止回阀
- 2025年医疗设备管理专员岗位招聘面试参考题库及参考答案
- 学校教师请假管理办法(2025修订版)
- DB32∕ 4120-2021 建筑物移动通信基础设施建设标准
评论
0/150
提交评论