高級駕駛輔助系統(tǒng)(ADAS)在汽車中的應(yīng)用日益增長,為了滿足工程師對于ADAS的分析、仿真和測試等功能的需求,CANoe從15.0版本開始提供ADAS Feature Set(ADAS功能集,簡稱AFS)。AFS作為CANoe基礎(chǔ)功能的一部分,不需要購買額外的Option即可使用。同時,CANoe本身的強大功能和開放接口使得結(jié)合總線通信,集成第三方工具,實現(xiàn)SIL/HIL等都變得更輕松。
功能概述
>
集成基于ASAM OSI規(guī)范的ADAS數(shù)據(jù)模型,可以通過CAPL/C#代碼輕松地訪問ADAS對象的信息,并實現(xiàn)與總線數(shù)據(jù)的交互;
>
能與第三方仿真環(huán)境通過MATLAB、C-API或FMU實現(xiàn)ASAM OSI數(shù)據(jù)流交互;
>
可通過Trace、Scene等分析窗口對ADAS對象進行可視化分析。
>
配合CANoe自帶的場景編輯器Scenario Editor可進行簡單場景仿真,也可以集成DYNA4或其他第三方工具用于更細致的場景仿真和車輛動力學(xué)仿真。
>
結(jié)合Communication Setup中的應(yīng)用模型(基于CAPL/C#)以及測試API可實現(xiàn)閉環(huán)HIL系統(tǒng)驗證。
>
可根據(jù)被測應(yīng)用的接口生成SIL Adapter,實現(xiàn)對純軟件級別的被測系統(tǒng)的訪問和數(shù)據(jù)交換,以便直接在開發(fā)環(huán)境中測試ADAS算法。
窗口介紹
1.
Communication Setup窗口
CANoe中ADAS對象是在Simulation -> Communication Setup窗口中通過vCDL(Vector Communication Description Language)文件添加的。在vCDL中使用語句導(dǎo)入ADAS模塊后,即可按需定義ADAS對象。之后可在Application Models或是測試模塊中通過CAPL、C#等編程語言訪問這些對象,以便進行分析、仿真或測試。

2.
Scene窗口
Scene窗口是一個可以顯示傳感器、檢測對象、真實目標(biāo)等ADAS對象的可視化窗口。CANoe運行過程中,ADAS對象的位置、大小等信息會以三維圖像的形式被繪制在窗口中,并與左側(cè)列表中的對象通過顏色進行對應(yīng),以便更直觀地觀測ADAS對象。
3.
Trace窗口
Trace窗口是CANoe用戶較為熟悉的一個分析窗口。針對ADAS應(yīng)用,Trace窗口也擴展了數(shù)據(jù)分析功能。選擇Layout為ADAS后,即可通過DO(Distributed Object)的方式顯示和解析傳感器和檢測對象的相關(guān)參數(shù)。
應(yīng)用舉例
1.
CAPL訪問ADAS對象
通過vCDL定義ADAS對象后,可以通過CAPL編程的方式來對其進行操作。
最常用的傳感器對象的成員通過接口ISensor描述,ISensor接口中包含Data和Methods,如圖所示:
Data中主要包含sensor_info,其中sensor_view_configuration和sensor_data主要是傳感器本身的一些信息(例如id、檢測范圍、安裝位置等),detected_objects則是傳感器檢測到的對象的列表;Methods中包含Create/Get/Set/Update/Remove等方法,可用于對檢測對象進行創(chuàng)建/獲取/設(shè)置/更新/移除等操作。
在使用CAPL設(shè)置ADAS對象時,通常情況下首先需要設(shè)置傳感器自身參數(shù),例如range表示檢測的距離,field_of_view_horizontal表示水平方向上檢測的角度,這些都可以在Scene窗口中直觀顯示出來。
然后,可使用GetOrCreateDetectedObject方法來添加指定trackingId的檢測對象或是獲取已有trackingId的檢測對象的信息,例如:
檢測對象根據(jù)定義可以是如下之一:
GetOrCreateDetectedObject方法的返回值為檢測對象對應(yīng)的名稱,為該名稱添加前綴后,可通過lookupDistObj在指定的檢測對象類型中查找,并最終返回具體的某個對象,例如:
之后,即可用類似訪問總線信號的方式,直接通過$符號來訪問對象中的數(shù)據(jù),例如:
2.
總線數(shù)據(jù)轉(zhuǎn)換
CANoe本身具有強大的總線數(shù)據(jù)處理的功能,可以非常便捷地獲取CAN/Ethernet等總線報文中包含的傳感器數(shù)據(jù),然后通過CAPL編程的方式將報文中的數(shù)據(jù)映射到ADAS對象上,以便更直觀地分析,或是進行進一步的測試等。
對于CAN總線上的數(shù)據(jù),可以通過事件捕獲目標(biāo)報文,在事件中使用讀取當(dāng)前報文中的信號,并將值賦給目標(biāo)ADAS對象,即可實現(xiàn)傳感器或檢測對象的數(shù)據(jù)從CAN報文到ADAS對象的轉(zhuǎn)換。這里需要注意的是,由于單個CAN報文的數(shù)據(jù)長度較小,同一對象的數(shù)據(jù)可能分散在多個報文中,無法在一個事件中完成賦值。這種情況可以通過ISensor接口的BeginUpdate()、SetDetectedObjectCompleted()以及Update()方法實現(xiàn)等待所有數(shù)據(jù)都賦值完成后才更新并發(fā)送ADAS對象信息。
對于Ethernet中的數(shù)據(jù),同樣可以通過、或是對于SOME/IP數(shù)據(jù)的OnSomeipProcessRxMessage()等事件/函數(shù)獲取所需的目標(biāo)數(shù)據(jù),以便賦值給ADAS對象用于后續(xù)分析、測試等。
3.
基于Scenario Editor的場景仿真
CANoe中自帶一個簡單的場景仿真工具Scenario Editor,可以通過圖形界面創(chuàng)建場景,實現(xiàn)加載地圖、定義車輛及行駛軌跡、定義傳感器等功能。場景中的車輛、傳感器可與vCDL中定義的ADAS對象直接對應(yīng),配合編程語言便于仿真一些簡單的測試場景。
場景中的車輛與vCDL中的IGeoObject接口對象直接通過名稱關(guān)聯(lián),如下圖黃色高亮所示,車輛上的傳感器則通過SensorID與ISensor接口對象關(guān)聯(lián),如下圖中紅框所示。完成映射后,ADAS對象會按照場景中設(shè)定的路徑、時間軸執(zhí)行相應(yīng)動作。
對于場景中的傳感器在場景中檢測到的對象,可以通過ISensor接口的GetDetectedObjects()方法直接獲取,與案例1類似,通過lookupDistObj()找到對應(yīng)的檢測對象后,即可通過<$>訪問檢測對象的屬性例如尺寸、速度等,用于后續(xù)的測試。
總結(jié)
CANoe中的AFS為用戶提供了ADAS分析、仿真、測試所需要的窗口、對象、接口等。除文中介紹的內(nèi)容外,還提供與其他工具交互、在虛擬環(huán)境中使用等功能,并且隨著CANoe版本的不斷更新還會添加新的功能并完善已有功能。
-
adas
+關(guān)注
關(guān)注
310文章
2257瀏覽量
210177 -
CANoe
+關(guān)注
關(guān)注
4文章
75瀏覽量
9182 -
駕駛輔助系統(tǒng)
+關(guān)注
關(guān)注
0文章
115瀏覽量
17011
發(fā)布評論請先 登錄

CANoe:網(wǎng)絡(luò)和ECU開發(fā)、測試和分析的專業(yè)工具
評估板EVAL-ADAS1000SDZ用于演示用于醫(yī)療儀器的ADAS1000集成ECG設(shè)備
ADAS技術(shù)介紹
ADAS最全功能介紹

ADAS有什么功能?ADAS的核心技術(shù)詳細介紹。你是否需要一個ADAS?
淺談CANoe實現(xiàn)SOA仿真測試

CANoe集成解決方案

新功能發(fā)布 | TSMaster新增CANoe自動化控制模塊,歡迎下載體驗!

Python與CANoe/CANoe4SW

CANoe仿真HTTP節(jié)點的實戰(zhàn)秘籍大公開

評論