開發(fā)駕駛者監(jiān)控系統(tǒng)AUTOSAR自適應(yīng)軟件
本文敘述選擇一個(gè)駕駛者監(jiān)控系統(tǒng)的原型來進(jìn)行研究及證明,經(jīng)由以模型為基礎(chǔ)的設(shè)計(jì),如何可以加速端到端的AUTOSAR自適應(yīng)軟件系統(tǒng)開發(fā)。
由Elektrobit(EB)開發(fā)的嵌入式軟件被執(zhí)行在全世界超過一百輛車上至少一億個(gè)裝置。這些EB開發(fā)的嵌入式軟件大多使用標(biāo)準(zhǔn)的V模型(V-model)和ASPICE流程來開發(fā)和驗(yàn)證。雖然這些裝置運(yùn)作情況良好,但因?yàn)槭謩?dòng)編寫程序代碼和其他需要大量勞力的手動(dòng)任務(wù),讓應(yīng)用軟件開發(fā)速度變得緩慢。
我們團(tuán)隊(duì)要來證明以模型為基礎(chǔ)的設(shè)計(jì)可以加速端到端的AUTOSAR自適應(yīng)(AUTOSAR Adaptive)軟件系統(tǒng)開發(fā)。選擇一個(gè)駕駛者監(jiān)控系統(tǒng)的原型來進(jìn)行這項(xiàng)項(xiàng)目,該系統(tǒng)會(huì)在駕駛閉上眼睛,而且沒有馬上再睜開時(shí)發(fā)出警報(bào),因?yàn)檫@可能代表駕駛者睡著了(圖1)。
圖1 : 駕駛者監(jiān)控系統(tǒng)的仿真,可以看到從串流影片偵測(cè)到的人臉和眼睛。
為了要展現(xiàn)以模型為基礎(chǔ)的設(shè)計(jì)來開發(fā)的效率,設(shè)定下一個(gè)野心勃勃的期限:要在三個(gè)月之內(nèi)完成設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、以及整個(gè)系統(tǒng)的驗(yàn)證。如果使用傳統(tǒng)的設(shè)計(jì)方法來進(jìn)行同樣的項(xiàng)目,可能會(huì)要花上至少一年的時(shí)間。
定義需求及劃分設(shè)計(jì)
我們從定義需求來開始這項(xiàng)項(xiàng)目。高層級(jí)的需求包含即使是在駕駛者帶著眼鏡時(shí)也要偵測(cè)到閉眼,將錯(cuò)誤警報(bào)率維持在3%以下,以及透過自適應(yīng)AUTOSAR (Adaptive AUTOSAR)發(fā)送警報(bào)給EB的人機(jī)界面(human machine interface;HMI)。
在初期,與MathWorks工程師合作開發(fā)系統(tǒng)架構(gòu),并且將我們的需求映像到架構(gòu)內(nèi)的功能模塊(圖2)。
圖2 : 駕駛者監(jiān)控系統(tǒng)的頂層Simulink模型。
在設(shè)計(jì)的頂層有兩個(gè)主要的模塊。第一個(gè)是計(jì)算機(jī)視覺組件,它負(fù)責(zé)處理從攝影機(jī)來的輸入資料,并且依串流影片產(chǎn)生訊號(hào)—例如偵測(cè)到人臉、偵測(cè)到眼睛、閉眼。第二個(gè)模塊是AUTOSAR自適應(yīng)函式模塊,它負(fù)責(zé)過濾這些訊號(hào),并且決定是否要啟動(dòng)警報(bào)。這個(gè)模塊包含一個(gè)連接到EB corbos AdaptiveCore軟件架構(gòu)的接口,這個(gè)架構(gòu)是用來整合模塊與HMI。
設(shè)計(jì)的建模與驗(yàn)證
將設(shè)計(jì)劃分成具備清楚定義接口之組件(圖3)可獨(dú)立處理每一個(gè)組件。在Simulink建立計(jì)算機(jī)視覺組件,它使用一個(gè)預(yù)先訓(xùn)練的深度學(xué)習(xí)網(wǎng)絡(luò)以及計(jì)算機(jī)視覺工具箱(Computer Vision Toolbox)來偵測(cè)人臉及眼睛。
為了要驗(yàn)證這個(gè)模型,我們讓模型處理預(yù)先錄制好的駕駛者臉部影片來執(zhí)行模擬。這些影片是從各種角度和不同的周遭照明條件來錄制。影片也包含駕駛者帶著眼鏡及不戴眼鏡的條件,以確保系統(tǒng)可以在各種操作場(chǎng)景下偵測(cè)閉眼。
圖3 : 計(jì)算機(jī)視覺組件的Simulink模型(上)和過濾組件(下)。
過濾組件以計(jì)算機(jī)視覺組件的輸出數(shù)據(jù)作為輸入。它追蹤「?jìng)蓽y(cè)到眼睛」和「閉眼」的訊號(hào)值,過濾掉短時(shí)間的眨眼,并且當(dāng)訊號(hào)顯示駕駛者眼睛閉上的時(shí)間太長(zhǎng)時(shí)透過AUTOSAR自適應(yīng)啟動(dòng)警訊,與EB AdaptiveCore軟件架構(gòu)溝通。從頂層的Simulink模型產(chǎn)生了一個(gè)單元測(cè)試模型,可以執(zhí)行系統(tǒng)驗(yàn)證與評(píng)估設(shè)計(jì)是否符合ISO 26262。
程序代碼生成與硬件部署
透過模擬驗(yàn)證設(shè)計(jì)之后,我們把設(shè)計(jì)部署到原型硬件設(shè)置來測(cè)試它。這個(gè)設(shè)置包含兩塊Raspberry Pi 3 B+板,其中一個(gè)作為DMS系統(tǒng),另一個(gè)做為測(cè)試設(shè)置用,包含HMI、駕駛者輸入數(shù)據(jù)、以及環(huán)境。兩塊板子都透過以太網(wǎng)絡(luò)來連接(圖4)。
圖4 : 硬件測(cè)試設(shè)置。
我們將計(jì)算機(jī)視覺組件和過濾組件轉(zhuǎn)換為符合MISRA的C/C++程序代碼。在計(jì)算機(jī)視覺組件的程序代碼完成之后,直接把它部署到第一塊Raspberry Pi板。
至于過濾組件,將產(chǎn)生出包含ARXML檔案的程序代碼匯入到EB corbos Studio。在corbos Studio編譯組件,并且將它當(dāng)作一個(gè)AUTOSAR軟件組件部署到同一塊Raspberry Pi上。計(jì)算機(jī)視覺與過濾組件透過一個(gè)行程間通訊(interprocess communication;IPC)接口來連接。第二塊Raspberry板子是用來執(zhí)行基礎(chǔ)EB corbos AdaptiveCore軟件和EB GUIDE HMI來當(dāng)作一個(gè)車輛儀表板。
當(dāng)程序代碼執(zhí)行在兩塊板子上,透過實(shí)時(shí)的攝影機(jī)串流影片測(cè)試系統(tǒng),并且驗(yàn)證HMI正確地在影片中的人閉上眼睛時(shí)發(fā)出「閉眼」警報(bào)。
從概念驗(yàn)證到現(xiàn)實(shí)世界應(yīng)用
由于駕駛者管理系統(tǒng)是一個(gè)作為概念驗(yàn)證的原型,它在開發(fā)階段不要求完全符合ISO準(zhǔn)則。然而,項(xiàng)目的準(zhǔn)備則確實(shí)需要符合ISO,因此我們使用Model Advisor來檢查模型是否涵蓋了所有的要求,并且符合ISO 26262、ISO 61508和MISRA C:2012等標(biāo)準(zhǔn)。
在以模型為基礎(chǔ)的設(shè)計(jì)展現(xiàn)出能夠加快自適應(yīng)AUTOSAR軟件開發(fā)速度的實(shí)力之后,我們現(xiàn)在打算擴(kuò)大使用它。我們團(tuán)隊(duì)計(jì)劃將安全性功能以及處理器循環(huán)(processor-in-the-loop)測(cè)試納入工作流程,也正在幫助EB其他工作地點(diǎn)的同事開始使用以模型為基礎(chǔ)的設(shè)計(jì)。
(本文由鈦思科技提供;作者Thomas Kleinhenz、Seyed Nourbakhsh、Stefan Zurbes任職于Elektrobit公司)
評(píng)論