大家好,疫情肆虐Q首先企盼早日云开雾散。此时此d应号召,安静地看一看文章,Z久后马力全开的工作,U蓄更多的技术储备?
q一我们介l一下如何在我们的智能驾驶开发、测试^C面方便快捷地自定义功能。大家也可以借此Z学习了解一下QML?
QML模块界面
当我们在做Q何的试开发的工作的时候,我们都需要将各类数据采集下来Q然后针Ҏ们要做的试或者开发对数据q行分析和用,然而对于hc而言Q枯燥的数字总难以直观方便的表现出我们想要获取的信息Q诚Ӟ在现实条仉制下Qh们有极大的能动性可以去习得q个能力Q正如黑客帝国中的数据终端一P直接从数字符号中d信息。然而如果我们可以简单的实现数据的信息化转换与呈玎ͼ又有什么样的理由去为难自己呢?
What is QML
首先单说一下什么是QMLQ在l基癄的QML英文界面UCQt Modeling LanguageQ貌似曾l的名称是Qt Meta LanguageQ我们姑且兼而用之吧Q毕竟在www.qt.io|站上没有找到对于QML语言的明定义(也可能是因ؓ没有仔细的去找)?
QML是一U声明式语言Qdeclarative languageQ,它通过用户界面的可视组件以及它们之间的怺交互和关联的关系来描q用L面。它是一U高度可ȝ语言Q旨在ɾlg能够以动态方式互q,q且允许在用L面中L重用和自定义lg。QMLZJavaScriptQ属于QtQuick的一部分。在QML文中描qC一个关于QML元素的对象树QQt附带的QML元素有一l复杂的基础构徏模块Q如矩Ş、图像)和行为(如状态、过渡、动ȝQ构成?
使用QtQuick模块Q通过QML元素的组合,设计人员和开发h员可以轻村֜在QML中构Z单按钮、滑块到支持Internet功能的复杂程序?
而这也是Z么我们选择在ViCANdo中集成QML的原因。通过QtQuick模块M人都可以很方便的实现自定义的用户界面的开发。如下面的截囑ֱCZ一个通过QML实现的CAN报文发送界面?
Hello World
在ViCANdo中加在QML模块非常的容易,一个简单的QML模块代码展示如下Q?
有兴的读者可以将上面的代码拷贝到一个文本文中Q然后保存成扩展名qml的文Ӟ然后打开ViCANdo创徏一个工E,在Y件的Presentation菜单中,选择QML Quick 2.x presenterQ然后在弹出的对话框中选择刚刚保存的QML文g?
在ViCANdo的主H口中就会呈现出来刚刚添加的QML模块QHello World?
Hello World is easyQ但是现在你已经有能力在ViCANdo内创ZQ何需要的QMLlg了?
l心的读者有可能已经发现截图的Y件窗口和菜单和你们正在用的有所不同Q是的当前用的是MAC版的ViCANdo软gQViCANdo不仅仅支持Windows、Linux操作pȝQ也同样的支持苹果的macOSQ即便是新的Catalina?
VideoView
在智能驾驶相关的功能试中,视频、摄像头数据是非帔R要的一环,因此能够在ViCANdo的界面针对视频数据进行处理操作是必要的,比如如下的截图所展示的。我们同时监控两个摄像头数据Qƈ在视频显C窗口叠加显C标,标尺可以Ҏ需要调整。这在典型的距、间距检应用中是十分方便的Q这里没有显C频的数据Q因为想要给大家保留W一ơ显C出视频时的惊喜Q?
对于q样的界面显C实现是非常单的。首先我们在Qt中徏立一个工E,通过拖拽控g的方式徏立如下图所C的界面Q或者Q意想要的界面形式Q?
然后我们在代码编辑界面对刚才创徏的工E的代码q行单的完善Q如下图所C,保存之后的qml文g可以如hello world的例子一样加载进入ViCANdo工程中了?
?幅关系Q我们没有附上所有的代码Q如果有需要可以在公众Laq留下邮我们会提供本例子中的完整代码给大家。?
其他的数据源
除了刚刚提到的视频数据,我们更多接触到的是ȝ上传输的各种信号Q同L在ViCANdo的QML功能中,我们可以方便的处理各U需要的信号?
如下的实例中我们创徏了一个展CR辆各U信息的lg。可以方便的昄当前的R辆状态、速度{?
如下的实例中Q?
我们可以以前视、俯视、侧视等不同的角度显CZ感器的识别信息和视频信息Q前视)?
好了Q关于ViCANdo的QML集成功能q大家介绍到这里了Q更多的有意思的功能大家可以自己L索一下?
QML插g是ViCANdo二次开发的一个强大的功能Q而对于更加复杂的、随心所Ʋ的实现功能的方式,׃能囿于QMLQ我们还提供开攄SDK可以更灵zȝ实现各种定制的功能?
ViCANdo
ViCANdo Suite是针Ҏ能驾驶功能的开发和试q_Q能够同步的采集所需的各cL据,同时工具集成OpenCVQ工E师可以使用OpenCV的相兛_数来q行开发?
ViCANdoh一个开攄SDKQ允许创定义接口Q还允许正在开发中的算法用作ViCANdo本n的一部分Q以非常高的性能执行。通过使用ViCANSim中的 Matlab/Simulink扩展Q或者利用内|仿真引擎进行网l仿真或视频法开?
ViCANdo Suite直接支持的数据源
?nbsp; CZ应用Q?
在VICANdo内实时R道线识别与实时显C,通过在ViCANdo内部直接集成车道U识别算法,方便直观的展CR道线识别法的识别情况,q利用ViCANdo的扩展功能将识别的R道线、航向等信息与视频叠加展C,可以方便的进行算法的调试?
在上囄工程中,我们d了一路摄像头采集道\信息Q同时用两\CAN通道采集车辆信息Q通过囑փ提取车道U信息,同时l合车辆的状态信息,在图像上实时叠加昄识别的R道线信息和R辆的航线信息?
?nbsp; CZ应用Q?
环视摄像头拼接与实时昄Q首先通过ViCANdo对LVDS摄像头的支持Q可以直接将一般的车蝲摄像头的视频数据接入到^CQ对于开发的工程师而言不必要再L入精力到不必要的驱动开发等工作中,在ViCANdo中直接集成基于OpenCV的视频拼接算法,q将拼接l果直接的展C在ViCANdo界面中?
在上囄工程中,我们通过LVDS板卡实时采集四\车蝲摄像头的视频信息Q非后装摄像_可以保证法应用的参数即为原车摄像头的参敎ͼQ在软g中加载图像拼接算法,q在软gH口中直接显C,同时昄车蝲鱼眼摄像头的原始囑փ?
ViCANdo Suite 产品介绍
ViCANdo Suite是针Ҏ能驾驶功能的开发和试q_软g套装?
软g包含如下lgQ?
?nbsp; ViCANdoQ?
ViCANdo是一ƾ跨q_的,针对AD/ADAS开发的数据记录和分析工P支持q行在Windows、Linux、MacOS{操作系l,支持X86、ARM{^台?
?nbsp; ViCANlogQ?
设计用于车端路试采集的YӞ可以q行在基于linux的硬件设备上Q无人值守采集数据。除了一般计机外,也支持Nvidia TX-2、XavierQNexcom{设备?
?nbsp; ViCANdroidQ?
安卓端的APPQ可以采集CANȝ和视频、音频、GPS{数据,内徏FTP服务Q可以自动的上传数据到服务器。便于方便的Ҏ据进行处理分析?
?nbsp; ViCANsimQ?
通过与OpenCV和Matlab/Simulink™等的集成,方便用户部v自己的算法在ViCANsim上,于此同时也具有与Matlab/Simulink™的接口?
?nbsp; ViCANbeddedQ?
ViCANbedded的目标是应用于嵌入式环境Q与ViCANdo 相同。它旨在L地将源代码从 PC q_UL到到嵌入式环境。目前,它可支持 QTEmbedded 4.X及更高版本、QNX、Velocity、VxWorks{?
更多ViCANdo相关功能内容Q将在后l的文章中发布,敬请x微信公众受?
l纬恒润
北京市v淀区知春\7可真大厦D??br />
邮箱Qmarket_dept@hirain.com
|址Qwww.hirain.com