這一篇我們介紹一下如何在我們的智能駕駛開發(fā)、測試平臺上面方便快捷地自定義功能。大家也可以借此機(jī)會學(xué)習(xí)了解一下QML。
QML模塊界面
當(dāng)我們在做任何的測試開發(fā)的工作的時候,我們都需要將各類數(shù)據(jù)采集下來,然后針對我們要做的測試或者開發(fā)對數(shù)據(jù)進(jìn)行分析和使用,然而對于人類而言,枯燥的數(shù)字總難以直觀方便的表現(xiàn)出我們想要獲取的信息,誠然,在現(xiàn)實條件限制下,人們有大的能動性可以去習(xí)得這個能力,正如黑客帝國中的數(shù)據(jù)終端一樣,直接從數(shù)字符號中讀取信息。然而如果我們可以簡單的實現(xiàn)數(shù)據(jù)的信息化轉(zhuǎn)換與呈現(xiàn),又有什么樣的理由去為難自己呢。
What is QML
首先簡單說一下什么是QML,在維基百科的QML英文界面稱作Qt Modeling Language,貌似曾經(jīng)的名稱是Qt Meta Language,我們姑且兼而用之吧,畢竟在www.qt.io網(wǎng)站上沒有找到對于QML語言的明確定義(也可能是因為沒有仔細(xì)的去找)。
QML是一種聲明式語言(declarative language),它通過用戶界面的可視組件以及它們之間的相互交互和關(guān)聯(lián)的關(guān)系來描述用戶界面。它是一種高度可讀的語言,旨在使組件能夠以動態(tài)方式互連,并且允許在用戶界面中輕松重用和自定義組件。QML基于JavaScript,屬于QtQuick的一部分。在QML文檔中描述了一個關(guān)于QML元素的對象樹,Qt附帶的QML元素有一組復(fù)雜的基礎(chǔ)構(gòu)建模塊(如矩形、圖像)和行為(如狀態(tài)、過渡、動畫等)構(gòu)成。
使用QtQuick模塊,通過QML元素的組合,設(shè)計人員和開發(fā)人員可以輕松地在QML中構(gòu)建從簡單按鈕、滑塊到支持Internet功能的復(fù)雜程序。
而這也是為什么我們選擇在ViCANdo中集成QML的原因。通過QtQuick模塊任何人都可以很方便的實現(xiàn)自定義的用戶界面的開發(fā)。如下面的截圖展示了一個通過QML實現(xiàn)的CAN報文發(fā)送界面。
Hello World
在ViCANdo中加在QML模塊的容易,一個簡單的QML模塊代碼展示如下:
有興趣的讀者可以將上面的代碼拷貝到一個文本文檔中,然后保存成擴(kuò)展名qml的文件,然后打開ViCANdo創(chuàng)建一個工程,在軟件的Presentation菜單中,選擇QML Quick 2.x presenter,然后在彈出的對話框中選擇剛剛保存的QML文件。
在ViCANdo的主窗口中就會呈現(xiàn)出來剛剛添加的QML模塊:Hello World。
Hello World is easy,但是現(xiàn)在你已經(jīng)有能力在ViCANdo內(nèi)創(chuàng)建任何需要的QML組件了。
細(xì)心的讀者有可能已經(jīng)發(fā)現(xiàn)截圖的軟件窗口和菜單和你們正在使用的有所不同,是的當(dāng)前使用的是MAC版的ViCANdo軟件,ViCANdo不僅僅支持Windows、Linux操作系統(tǒng),也同樣的支持蘋果的macOS,即便是新的Catalina。抓緊拿出手里的電腦,下載軟件嘗試一下吧。(下載地址:www.zuragon.com)
VideoView
在智能駕駛相關(guān)的功能測試中,視頻、攝像頭數(shù)據(jù)是重要的一環(huán),因此能夠在ViCANdo的界面針對視頻數(shù)據(jù)進(jìn)行處理操作是必要且必須的,比如如下的截圖所展示的。我們同時監(jiān)控兩個攝像頭數(shù)據(jù),并在視頻顯示窗口疊加顯示標(biāo)尺,標(biāo)尺可以根據(jù)需要任意調(diào)整。這在典型的測距、間距檢測應(yīng)用中是十分方便的(這里沒有顯示視頻的數(shù)據(jù),因為想要給大家保留顯示出視頻時的驚喜)。
對于這樣的界面顯示實現(xiàn)是簡單的。首先我們在Qt中建立一個工程,通過拖拽控件的方式建立如下圖所示的界面(或者任意想要的界面形式)。
然后我們在代碼編輯界面對剛才創(chuàng)建的工程的代碼進(jìn)行簡單的完善,如下圖所示,保存之后的qml文件就可以如hello world的例子一樣加載進(jìn)入ViCANdo工程中了。
“ 篇幅關(guān)系,我們沒有附上所有的代碼,如果有需要可以在公眾號留言并留下郵箱我們會提供本例子中的完整代碼給大家?!?/div>
其他的數(shù)據(jù)源
除了剛剛提到的視頻數(shù)據(jù),我們更多接觸到的是總線上傳輸?shù)母鞣N信號,同樣的在ViCANdo的QML功能中,我們可以方便的處理各種需要的信號。
如下的實例中我們創(chuàng)建了一個展示車輛各種信息的組件??梢苑奖愕娘@示當(dāng)前的車輛狀態(tài)、速度等。
如下的實例中:
我們可以以前視、俯視、側(cè)視等不同的角度顯示傳感器的識別信息和視頻信息(前視)。
好了,關(guān)于ViCANdo的QML集成功能就給大家介紹到這里了,更多的有意思的功能大家可以自己去探索一下。
QML插件是ViCANdo二次開發(fā)的一個強(qiáng)大的功能,而對于更加復(fù)雜的、隨心所欲的實現(xiàn)任意的功能的方式,就不能囿于QML,我們還提供開放的SDK可以更靈活的實現(xiàn)各種定制的功能。
ViCANdo
ViCANdo Suite是針對智能駕駛功能的開發(fā)和測試平臺,能夠同步的采集所需的各類數(shù)據(jù),同時工具集成OpenCV,工程師可以直接使用OpenCV的相關(guān)函數(shù)來進(jìn)行開發(fā)。
ViCANdo具有一個開放的SDK,允許創(chuàng)建自定義接口,還允許將正在開發(fā)中的算法用作ViCANdo本身的一部分,以高的性能執(zhí)行。通過使用ViCANSim中的 Matlab/Simulink擴(kuò)展,或者利用內(nèi)置仿真引擎進(jìn)行網(wǎng)絡(luò)仿真或視頻算法開發(fā)
ViCANdo Suite直接支持的數(shù)據(jù)源
? 示例應(yīng)用:
在VICANdo內(nèi)實時車道線識別與實時顯示,通過在ViCANdo內(nèi)部直接集成車道線識別算法,方便直觀的展示車道線識別算法的識別情況,并利用ViCANdo的擴(kuò)展功能將識別的車道線、航向等信息與視頻疊加展示,可以方便的進(jìn)行算法的調(diào)試。
在上圖的工程中,我們添加了一路攝像頭采集道路信息,同時用兩路CAN通道采集車輛信息,通過圖像提取車道線信息,同時結(jié)合車輛的狀態(tài)信息,在圖像上實時疊加顯示識別的車道線信息和車輛的航線信息。
? 示例應(yīng)用:
環(huán)視攝像頭拼接與實時顯示,首先通過ViCANdo對LVDS攝像頭的支持,可以直接將一般的車載攝像頭的視頻數(shù)據(jù)接入到平臺中,對于開發(fā)的工程師而言不必要再去投入精力到不必要的驅(qū)動開發(fā)等工作中,在ViCANdo中直接集成基于OpenCV的視頻拼接算法,并將拼接結(jié)果直接的展示在ViCANdo界面中。
在上圖的工程中,我們通過LVDS板卡實時采集四路車載攝像頭的視頻信息(非后裝攝像頭,可以保證算法應(yīng)用的參數(shù)即為原車攝像頭的參數(shù)),在軟件中加載圖像拼接算法,并在軟件窗口中直接顯示,同時顯示車載魚眼攝像頭的原始圖像。
ViCANdo Suite 產(chǎn)品介紹
ViCANdo Suite是針對智能駕駛功能的開發(fā)和測試平臺軟件套裝。
軟件包含如下組件:
? ViCANdo:
ViCANdo是一款跨平臺的,針對AD/ADAS開發(fā)的數(shù)據(jù)記錄和分析工具,支持運(yùn)行在Windows、Linux、MacOS等操作系統(tǒng),支持X86、ARM等平臺。
? ViCANlog:
設(shè)計用于車端路試采集的軟件,可以運(yùn)行在任何基于linux的硬件設(shè)備上,無人值守采集數(shù)據(jù)。除了一般計算機(jī)外,也支持Nvidia TX-2、Xavier,Nexcom等設(shè)備。
? ViCANdroid:
安卓端的APP,可以采集CAN總線和視頻、音頻、GPS等數(shù)據(jù),內(nèi)建FTP服務(wù),可以自動的上傳數(shù)據(jù)到服務(wù)器。便于方便的對數(shù)據(jù)進(jìn)行處理分析。
? ViCANsim:
通過與OpenCV和Matlab/Simulink?等的集成,方便用戶部署自己的算法在ViCANsim上,于此同時也具有與Matlab/Simulink?的接口。
? ViCANbedded:
ViCANbedded的目標(biāo)是應(yīng)用于嵌入式環(huán)境,與ViCANdo 相同。它旨在輕松地將源代碼從 PC 平臺移植到到嵌入式環(huán)境。目前,它可支持 QTEmbedded 4.X及更高版本、QNX、Velocity、VxWorks等。
更多ViCANdo相關(guān)功能內(nèi)容,將在后續(xù)的文章中發(fā)布,敬請關(guān)注微信公眾號。
經(jīng)緯恒潤
北京市海淀區(qū)知春路7號致真大廈D座6層
郵箱:market_dept@hirain.com
網(wǎng)址:www.hirain.com