摘要:在汽車行業(yè),AUTOSAR是一個(gè)由汽車原始設(shè)備制造商(OEM)、供應(yīng)商和其他行業(yè)成員組成的國(guó)際聯(lián)盟,他們于2003年發(fā)布了第一個(gè)參考架構(gòu)AUTOSAR Classic,它的重點(diǎn)不在于獨(dú)立于底層硬件的動(dòng)態(tài)應(yīng)用,但是隨著SOA和自動(dòng)駕駛的日益重要,2018年發(fā)布的第二個(gè)標(biāo)準(zhǔn)Adaptive AUTOSAR則解決了這些需求。 然而汽車行業(yè)并不是第一個(gè)面臨向動(dòng)態(tài)和靈活的通信模式轉(zhuǎn)變的行業(yè),在物理系統(tǒng)和機(jī)器人技術(shù)的環(huán)境中,也發(fā)生了類似的演變,在這個(gè)背景下,廣泛使用的ROS1(一套開(kāi)源的庫(kù)和工具集,用于軟件架構(gòu)開(kāi)發(fā))無(wú)法滿足實(shí)時(shí)性、安全性和跨平臺(tái)互操作性的需求,其繼任者ROS2以及EDMS等中間件解決了這些缺點(diǎn),并實(shí)現(xiàn)了面向服務(wù)的通信。這些中間件在研究環(huán)境中被廣泛使用,用于實(shí)現(xiàn)軟件封裝和通信,也在汽車電氣/電子架構(gòu)的背景下得到了應(yīng)用?,F(xiàn)在甚至有經(jīng)過(guò)認(rèn)證的解決方案,滿足電氣和/或電子系統(tǒng)的功能安全標(biāo)準(zhǔn)(ISO26262)和必要的汽車安全完整性級(jí)別(ASIL),關(guān)于ADAS功能和高度連接的車輛背景下的面向服務(wù)的架構(gòu)(SOAs),仍有許多問(wèn)題有待解決。
01.
AP?AUTOSAR以及ROS的概念
1、AP?AUTOSAR的概念
Adaptive AUTOSAR是一個(gè)官方定義的術(shù)語(yǔ),將其描述為 “用于自適應(yīng)應(yīng)用程序(ARA)的AUTOSAR運(yùn)行時(shí)。提供兩種類型的接口,即服務(wù)和API,該平臺(tái)由功能集群組成,這些功能集群又分組在服務(wù)中,并且構(gòu)成了自適應(yīng)AUTOSAR基礎(chǔ)” 。實(shí)際上,它是另一個(gè)機(jī)器人框架,由以下所稱的功能集群組成:該框架的規(guī)范由AUTOSAR聯(lián)盟開(kāi)發(fā)。然后由Vector、ETAS、Elektrobit、東軟睿馳、Mathworks、Aubass等公司進(jìn)行實(shí)際實(shí)現(xiàn),開(kāi)發(fā)工作由聯(lián)盟成員完成,只有規(guī)范是公開(kāi)發(fā)布的,Adaptive AUTOSAR基于用于在單核微控制器上編程應(yīng)用程序的經(jīng)典AUTOSAR。
汽車的電子/電氣(E/E)架構(gòu)作為一個(gè)系統(tǒng),包括軟件(SW)和硬件(HW)組件以及機(jī)械部件。傳統(tǒng)的分布式架構(gòu)的特點(diǎn)是HW和SW緊密耦合在許多電控單元(ECU)上。相反面向服務(wù)的架構(gòu)使應(yīng)用軟件和執(zhí)行硬件相互獨(dú)立,為了實(shí)現(xiàn)這種松耦合的架構(gòu),操作系統(tǒng)(OS)和中間件起著關(guān)鍵作用。中間件層主要負(fù)責(zé)ECU之間的通信,因此,中間件的要求包括在整個(gè)車輛架構(gòu)內(nèi)或與云和后端基礎(chǔ)設(shè)施進(jìn)行抽象和虛擬化通信的執(zhí)行,這些系統(tǒng)組件之間的通信在系統(tǒng)開(kāi)發(fā)期間可能是未知的,因此,在互連系統(tǒng)中,通信是動(dòng)態(tài)的,需要在運(yùn)行時(shí)靈活地建立鏈接,在連接車輛中產(chǎn)生的大量數(shù)據(jù)和面向服務(wù)的架構(gòu)導(dǎo)致了新協(xié)議在E/E架構(gòu)中的集成。作為自適應(yīng)AUTOSAR規(guī)范中指定的動(dòng)態(tài)通信的汽車參考架構(gòu),將功能應(yīng)用程序和一個(gè)符合POSIX標(biāo)準(zhǔn)的操作系統(tǒng)與名為自適應(yīng)應(yīng)用程序運(yùn)行環(huán)境(ARA)的模塊化層分開(kāi)。
在ARA中,定義了接口和服務(wù),用于指定操作系統(tǒng)訪問(wèn)和一個(gè)通信中間件,以基于以太網(wǎng)實(shí)現(xiàn)面向服務(wù)的架構(gòu)。自適應(yīng)AUTOSAR的首個(gè)版本中,指定了可擴(kuò)展的面向服務(wù)的IP中間件(SOME/IP)作為相應(yīng)的標(biāo)準(zhǔn)化架構(gòu)的中間件協(xié)議。 2、ROS的概念 ? ROS框架是一個(gè)由軟件工具、庫(kù)、協(xié)議和API組成的集合,旨在簡(jiǎn)化為復(fù)雜的多傳感器、多執(zhí)行器系統(tǒng)開(kāi)發(fā)軟件的任務(wù)。在大多數(shù)情況下,機(jī)器人框架的使用決定了開(kāi)發(fā)軟件的一般架構(gòu)原則。例如軟件是集中式還是分散式,實(shí)時(shí)還是非實(shí)時(shí)等,關(guān)鍵組成部分是中間件,它是將機(jī)器人框架的眾多組件粘合在一起的關(guān)鍵,中間件的最基本任務(wù)是提供自主車輛中軟件節(jié)點(diǎn)之間的通信基礎(chǔ)設(shè)施。
ROS框架的典型用例是提供系統(tǒng)的上層(軟件)和低層(硬件)組件之間的基本接口。這些接口和組件包括各種操作系統(tǒng)(OS)特定的驅(qū)動(dòng)程序,單個(gè)開(kāi)發(fā)人員開(kāi)發(fā)這些驅(qū)動(dòng)程序可能需要很長(zhǎng)時(shí)間。ROS的架構(gòu)如下圖所示:
02
博世智能駕駛架構(gòu)平臺(tái)EDMS的概念? ??
1、EDMS的概念 ? 自適應(yīng)AUTOSAR規(guī)范和ROS兩者的關(guān)鍵區(qū)別在于ROS采用“先編碼,再規(guī)范“的方法,因?yàn)镽OS在機(jī)器人領(lǐng)域已經(jīng)使用和驗(yàn)證了12年,自適應(yīng)AUTOSAR部分是從零開(kāi)始編寫(xiě)的,部分采用了經(jīng)過(guò)驗(yàn)證的技術(shù),如SOME/IP3、DLT4和UDS5,自適應(yīng)AUTOSAR遵循” 先規(guī)范,再生成代碼“的方法。
EDMS?(ETAS Deterministic?Middleware Solution)是博世智能駕駛架構(gòu)平臺(tái)對(duì)標(biāo)ROS開(kāi)發(fā)的中間件。
在大型社區(qū)和數(shù)據(jù)記錄、回放、可視化和調(diào)試等工具方面,EDMS表現(xiàn)出色,它還可以與其他語(yǔ)言(如Python和Java)進(jìn)行綁定,EDMS利用常見(jiàn)的開(kāi)源工具,而不是由各個(gè)AUTOSAR供應(yīng)商提供的工具,因此用戶群規(guī)模較小,自適應(yīng)AUTOSAR使用面向服務(wù)的SOME/IP,而EDMS使用面向數(shù)據(jù)的DDS,前者只能在UDP和TCP之間切換,而后者具有QoS(服務(wù)質(zhì)量)。由于DDS的存在,EDMS中的數(shù)據(jù)傳輸非常高效快速,這得益于共享內(nèi)存(SHM)和零拷貝實(shí)現(xiàn)。
首先,標(biāo)準(zhǔn)平臺(tái)軟件支持 EDMS AD 中間件。由 POSIX 操作系統(tǒng)(QNX 或 Linux)加上特定的硬件加速器、CUDA、Nvsci 等以及 DDS 或 SOME/IP 等標(biāo)準(zhǔn)通信堆棧組成。
除了 AD 中間件,平臺(tái)軟件在 EDMS中由博世的 VRTE AUTOSAR 自適應(yīng)實(shí)現(xiàn)完成。AUTOSAR Adaptive 非常有用,因?yàn)樗捎糜谥苯油泄軐?duì)安全性和確定性沒(méi)有強(qiáng)烈要求的非 AD 功能。因此,EDMS可以為此類“標(biāo)準(zhǔn)”uP 應(yīng)用程序提供完整的 AUTOSAR Adaptive API(具有標(biāo)準(zhǔn)中定義的所有功能)。
此外,EDMS還使用 VRTE 為 EDMS運(yùn)行時(shí)提供基本服務(wù),例如日志記錄或診斷。因此,EDMS應(yīng)用程序可以在 EDMS VCU 中與 AUTOSAR 自適應(yīng)應(yīng)用程序一起無(wú)縫運(yùn)行。
EDMS可以提供額外的設(shè)施來(lái)支持和加速 AD/ADAS 開(kāi)發(fā),同時(shí)還可以在同一臺(tái)機(jī)器上啟用 AUTOSAR 自適應(yīng)應(yīng)用程序,這兩個(gè)元素都構(gòu)建在一個(gè)通用的基礎(chǔ)架構(gòu)框架上,可以在 EDMS應(yīng)用程序和自適應(yīng)應(yīng)用程序之間實(shí)現(xiàn)快速高效的通信。
EDMS提供AD 中間件和全面的工具和元素。EDMS運(yùn)行時(shí),也稱為“中間件”,是 EDMS在 ECU 上運(yùn)行的方面。作為中間件,運(yùn)行時(shí)位于體系結(jié)構(gòu)中的操作系統(tǒng)和硬件之上。它提供 EDMS部署、構(gòu)建和重新計(jì)算工具使用的執(zhí)行控制、通信服務(wù)和數(shù)據(jù)記錄服務(wù),以支持 AD/ADAS 應(yīng)用程序的開(kāi)發(fā)和執(zhí)行。EDMS中間件 API是 為 AD 應(yīng)用程序設(shè)計(jì)的“簡(jiǎn)約”API,可改進(jìn)涵蓋通信、執(zhí)行和數(shù)據(jù)捕獲的穩(wěn)健應(yīng)用程序開(kāi)發(fā)。
2、?EDMS的特點(diǎn)
EDMS是一個(gè)獨(dú)立的軟件包,但在實(shí)際項(xiàng)目中它將與 AUTOSAR Adaptive 并行存在,因?yàn)橛袔讉€(gè)功能不是 EDMS的一部分(例如ECU間通信、診斷通信、持久性、密碼學(xué)等) ? 主要特點(diǎn): ·確定性行為可實(shí)現(xiàn)高效開(kāi)發(fā)和基于仿真的驗(yàn)證 ·高性能通信中間件 ·支持高達(dá) ASIL-D 的功能安全 ·實(shí)現(xiàn)高效的 ADAS/AD 軟件開(kāi)發(fā) ·與 AUTOSAR 中間件解決方案一起工作 客戶價(jià)值 ·加速 ADAS/AD 開(kāi)發(fā)周期 ·無(wú)縫集成到不同的 DevOps 環(huán)境中 ·通過(guò)取證重新計(jì)算加快調(diào)試速度通過(guò)可重現(xiàn)的基于仿真的驗(yàn)證 ·大幅減少物理測(cè)試?yán)锍?/p>
EDMS旨在解決 AD 問(wèn)題域,因此確定的要求——硬件獨(dú)立性、需要快速迭代開(kāi)發(fā)的開(kāi)放世界問(wèn)題解決、支持收集驗(yàn)證和驗(yàn)證證據(jù)等,旨在由 EDMS解決。
EDMS通過(guò)利用多種技術(shù)解決了AD/ADAS開(kāi)發(fā)的問(wèn)題。EDMS亮點(diǎn)包括: ·高性能面向服務(wù)的通信——零拷貝 IPC 提供 AD/ADAS 中使用的大數(shù)據(jù)集所需的恒定時(shí)間縮放和高帶寬 (>10GB/s) ·從 HW 和 OS 抽象——一種與 HW 無(wú)關(guān)的開(kāi)發(fā)方法將功能開(kāi)發(fā)與部署到平臺(tái)分開(kāi)——這支持 SW 重用和重新定位以及靈活和可擴(kuò)展的部署——EDMS中間件可以部署到嵌入式微處理器,以便在實(shí)驗(yàn)室中運(yùn)行應(yīng)用程序,在測(cè)試車,并在生產(chǎn)中 ·高性能數(shù)據(jù)記錄輔助可重復(fù)執(zhí)行的時(shí)間和數(shù)據(jù)確定性?收集安全和驗(yàn)證證據(jù)的分析 通過(guò)重新計(jì)算V&V 的確定性重新計(jì)算,記錄可以從試駕數(shù)據(jù)中調(diào)試問(wèn)題。在這里,通過(guò)重新計(jì)算支持優(yōu)化開(kāi)發(fā)周期,允許通過(guò)重新計(jì)算活動(dòng)中一組可運(yùn)行對(duì)象的歷史執(zhí)行進(jìn)行驗(yàn)證,并在試駕或?qū)嶒?yàn)室設(shè)置中記錄數(shù)據(jù)。 ? 03.
EDMS的完整工具鏈? ? ?
1、開(kāi)發(fā)環(huán)節(jié) YAAA 是一種基于文本的域特定語(yǔ)言(DSL),專為 AD 開(kāi)發(fā)而設(shè)計(jì)。使用 DSL 意味著模型易于人類閱讀,因此可以輕松審查,此外,通用源代碼控制機(jī)制可用于合并更改或以與管理項(xiàng)目源代碼完全相同的方式控制訪問(wèn)。 YAAA 不僅支持活動(dòng)和可運(yùn)行對(duì)象的規(guī)范,還支持?jǐn)?shù)據(jù)如何在可運(yùn)行對(duì)象之間流動(dòng),例如可運(yùn)行對(duì)象 A 產(chǎn)生的數(shù)據(jù)由可運(yùn)行對(duì)象 B 使用。
YAAA 還可以指定 SW 中的活動(dòng)如何被觸發(fā)—是定期觸發(fā)還是由數(shù)據(jù)觸發(fā)——以及runnables的執(zhí)行預(yù)算?;谠撃P停梢噪x線驗(yàn)證時(shí)序約束,或者可以在運(yùn)行時(shí)監(jiān)控違規(guī)情況。
基于 DSL,YAAA 支持與編譯器一樣的工具鏈集成。實(shí)際上,EDMS中就包含了這樣一個(gè)編譯器 YAAAC,它基于 YAAA 模型為 EDMS提供代碼生成。
YAML-as- architecture方法的基礎(chǔ)是將代碼和架構(gòu)放在一起,以便它們可以作為一個(gè)整體進(jìn)行管理;架構(gòu)即代碼的方法。所有工件都是在基于文本的環(huán)境中使用基于 YAML 的模板定義的,例如您最喜歡的編輯器。
EDMS包括編輯器插件等便利功能,可通過(guò)語(yǔ)法高亮顯示等 “必備“ 功能簡(jiǎn)化流程。一個(gè)例子是廣泛使用的 Visual Studio Code 的編輯器擴(kuò)展插件;這既支持通常的自動(dòng)完成編碼支持,YAAA DSL 的語(yǔ)法高亮顯示,也支持通過(guò) GNU 調(diào)試器 (GDB) 進(jìn)行的調(diào)試支持。
雖然 YAAA 非常適合確保開(kāi)發(fā)人員將代碼和架構(gòu)作為一個(gè)整體來(lái)管理——從而確保它們保持同步——但有時(shí)獲取架構(gòu)的圖形視圖還是很有用的。對(duì)于可視化, EDMS提供了YAAA-Vis ,它使用由 YAAAC 生成的可點(diǎn)擊的基于 Web 的架構(gòu)可視化。
?2、部署和編譯環(huán)節(jié)
YAAA-Vis 可視化由YAAA 代碼生成器 (YAAAC) 支持。 YAAAC 是一個(gè)命令行工具,它生成所有中間件相關(guān)的源代碼和配置文件,這些源代碼和配置文件是構(gòu)建和部署由 YAAA 模型和功能用戶代碼描述的 YAAA 應(yīng)用程序所必需的。
生成的文件取決于所選的中間件類型/版本。YAAA-Vis 支持只是 YAAAC 的輸出之一。其他包括,特別是對(duì)于 CARMA 中間件,各種代碼工件: ·發(fā)布-訂閱通信機(jī)制所需的代理和骨架頭文件 ·建?;顒?dòng)、ECU 本地調(diào)度組件和 ECU 間通信網(wǎng)關(guān)的主要文件 ·運(yùn)行時(shí)配置的清單文件和啟動(dòng)腳本 生成的源代碼和功能用戶代碼隨后針對(duì)選定的目標(biāo)架構(gòu)進(jìn)行編譯和鏈接。生成的可執(zhí)行文件已準(zhǔn)備好部署到目標(biāo)硬件并在其上執(zhí)行。
如前所述,代碼生成只是 YAAAC 的任務(wù)之一。它還用于使其他外部工具可以訪問(wèn)加載的 YAAA 模型的內(nèi)部表示,方法是將模型導(dǎo)出為基于文本的表示,或者通過(guò) Python API 提供對(duì)模型的動(dòng)態(tài)訪問(wèn)。在任何一種情況下,外部工具都可以訪問(wèn)完整的模型內(nèi)容,例如所描述的軟件架構(gòu)、硬件架構(gòu)或部署信息。YAAA-VIS 只是此類外部工具的一個(gè)示例,正如我們所見(jiàn),它用于生成軟件和硬件架構(gòu)的圖形表示,可以是靜態(tài) SVG 圖像,也可以是交互式 HTML 頁(yè)面。
3、駕駛環(huán)節(jié)
EDMS中間件稱為 CARMA,由支持 EDMS執(zhí)行(包括調(diào)度、高帶寬通信和訪問(wèn) HWA)的客戶端庫(kù)和通信/運(yùn)行時(shí)庫(kù)組成。 EDMS中間件旨在在實(shí)驗(yàn)室、測(cè)試車和生產(chǎn)中無(wú)縫部署。同樣的中間件也可以部署到開(kāi)發(fā)人員 PC/計(jì)算集群,以及在微處理器上測(cè)試運(yùn)行后重新計(jì)算相同的應(yīng)用程序,而無(wú)需修改應(yīng)用程序代碼。為此,我們需要 EDMS中的應(yīng)用程序模型。
EDMS應(yīng)用程序包含活動(dòng)——這些活動(dòng)可以是任何任務(wù),例如作為 AD/ADAS 應(yīng)用程序的一部分執(zhí)行的圖像感知?;顒?dòng)由時(shí)間或數(shù)據(jù)觸發(fā),并且包含由 EDMS工具中定義的依賴項(xiàng)連接的可運(yùn)行鏈,作為應(yīng)用程序架構(gòu)設(shè)計(jì)的一部分。
ADAM(Awesome Decentralized Activation Management)的庫(kù),它負(fù)責(zé)以時(shí)間和數(shù)據(jù)驅(qū)動(dòng)模式激活活動(dòng),以支持確定性和并發(fā)性。該庫(kù)不直接由應(yīng)用程序使用,而是提供一個(gè) EDMS內(nèi)部客戶端 API,該 API 在 EDMS生成的代碼中使用,以生成反映活動(dòng)設(shè)計(jì)的活動(dòng)可執(zhí)行文件。
ADAM 是一個(gè)去中心化的激活庫(kù),這意味著在并行運(yùn)行的不同活動(dòng)之間沒(méi)有同步(按設(shè)計(jì))。ADAM 支持?jǐn)?shù)據(jù)驅(qū)動(dòng)激活(連接注冊(cè)的Iceoryx接收器以在數(shù)據(jù)到達(dá)時(shí)激活活動(dòng))和時(shí)間驅(qū)動(dòng)激活(允許設(shè)置周期時(shí)間和偏移量)。
?4、 通信環(huán)節(jié)
高效、高帶寬的通信對(duì)于 AD/ADAS 至關(guān)重要。傳統(tǒng)的汽車軟件具有適度的通信需求——例如,引擎控制軟件的消耗通??赡苓h(yuǎn)低于 1MB/s——當(dāng)我們考慮駕駛輔助或自動(dòng)駕駛軟件時(shí),所需的帶寬范圍為 100MB/s-1GB/s 或更高。
EDMS通信使用Iceoryx 。Iceoryx 使用真正的零拷貝、共享內(nèi)存方法,允許將數(shù)據(jù)從發(fā)布者傳輸?shù)接嗛喺?,而無(wú)需中間件中的任何副本。這確保了數(shù)據(jù)傳輸具有恒定的延遲,無(wú)論有效負(fù)載的大小如何。
在 EDMS中使用具有恒定開(kāi)銷的真正零拷貝通信具有許多有趣且重要的屬性。特別是,通信的擴(kuò)展性非常好,隨著消息大小的增加,帶寬也會(huì)增加——這是因?yàn)槲ㄒ坏某杀臼枪潭ǖ拈_(kāi)銷,因此無(wú)論消息大小如何,成本都是一樣的!
EDMS中間件包括通信管理服務(wù)器。這為中間件處理了兩個(gè)關(guān)鍵任務(wù);首先作為連接發(fā)布者/訂閱者的代理,其次,作為共享內(nèi)存管理器控制器段分配以支持零拷貝。
值得注意的是,VRTE 還將 ARA::COM 連接到 Iceoryx,因此 EDMS/VRTE 支持 EDMS應(yīng)用程序和 AUTOSAR 自適應(yīng)應(yīng)用程序之間的快速高效通信。
最后,EDMS還支持將 Iceoryx 綁定到 ROS,稱為 ROS 網(wǎng)關(guān)。用戶可以在定義 ROS 和 Iceoryx 之間的綁定的網(wǎng)關(guān)中定義對(duì)象(在任一方向,因此到或從 Iceoryx)。當(dāng) ROS 運(yùn)行時(shí)處于活動(dòng)狀態(tài)時(shí),根據(jù)網(wǎng)關(guān)對(duì)象的配置,傳入的 ROS 消息將傳入/傳出 Iceoryx。
5、 記錄和存儲(chǔ)環(huán)節(jié)
日志記錄對(duì)于 AD/ADAS 開(kāi)發(fā)非常重要——這同樣適用于開(kāi)發(fā)階段和現(xiàn)場(chǎng)。
EDMS提供了一個(gè)數(shù)據(jù)記錄庫(kù),它采用涵蓋數(shù)據(jù)測(cè)量和記錄的 “整體 “記錄方法。為了啟用取證分析,EDMS日志記錄支持無(wú)干擾、確定性執(zhí)行和可靠的數(shù)據(jù)傳輸。
EDMS Logging 涵蓋了多種信息,超越了傳統(tǒng)的日志框架: ?·基于文本的日志消息,附帶消息參數(shù)和嚴(yán)重性(致命、錯(cuò)誤、警告、信息……), ·附加跟蹤上下文(數(shù)據(jù)流、執(zhí)行順序……)的跟蹤消息, ·附加時(shí)間上下文(時(shí)間點(diǎn),跨度標(biāo)識(shí)符,...)的分析消息, ·事件,可能沒(méi)有附加數(shù)據(jù)(即事件標(biāo)識(shí)符)和 ·具有超高帶寬(>1GB/秒)能力的標(biāo)記有效負(fù)載消息(數(shù)據(jù)測(cè)量系統(tǒng)) ? “整體“日志記錄方法要求所有這些類型的數(shù)據(jù)都可以在一個(gè)共同的邏輯時(shí)間軸中使用,以用于取證分析目的。這使開(kāi)發(fā)人員能夠使用特殊的回放和(圖形)分析工具重現(xiàn)和跟蹤系統(tǒng)行為。
EDMS工具不僅僅是設(shè)計(jì)和部署, EDMS產(chǎn)品的很大一部分是重新計(jì)算和模擬支持——關(guān)閉 AD 開(kāi)發(fā)周期的外觀。
TaPe (Trace Player)通過(guò)重新計(jì)算活動(dòng)內(nèi)一組可運(yùn)行對(duì)象的歷史執(zhí)行來(lái)啟用驗(yàn)證,并在試駕或?qū)嶒?yàn)室設(shè)置期間記錄數(shù)據(jù)。可運(yùn)行程序可以在開(kāi)發(fā)人員機(jī)器或嵌入式目標(biāo)上的重新計(jì)算中執(zhí)行。支持使用調(diào)試器(例如gdb )調(diào)試單個(gè)可運(yùn)行對(duì)象的功能代碼。
TaPe允許通過(guò)快速驗(yàn)證加速 AD 開(kāi)發(fā)周期——例如,當(dāng)現(xiàn)場(chǎng)記錄的執(zhí)行可以帶回實(shí)驗(yàn)室并逐步詳細(xì)分析 SW 響應(yīng)時(shí),調(diào)試會(huì)變得更加高效。
EDMS Open Loop ( DoL ) Player 允許通過(guò)將記錄或模擬數(shù)據(jù)輸入可運(yùn)行、(多個(gè))活動(dòng)、ECU 或完整的 AD 系統(tǒng)來(lái)進(jìn)行驗(yàn)證和驗(yàn)證。它可以在開(kāi)發(fā)人員 PC、嵌入式目標(biāo)或云端執(zhí)行。
EDMS DoLPlayer支持虛擬發(fā)布和新開(kāi)發(fā)代碼的輕松確定性執(zhí)行,從可運(yùn)行級(jí)別到完整的 AD 系統(tǒng),用于調(diào)試和回歸測(cè)試。EDMS DoLPlayer驗(yàn)證也可以集成到 CI/CD 系統(tǒng)中以提供快速驗(yàn)證。
除了數(shù)據(jù)記錄,EDMS Flow Tracing庫(kù)還可以記錄系統(tǒng)中的所有可運(yùn)行和活動(dòng)執(zhí)行——包括執(zhí)行之間交換的消息的元信息。 ? 記錄工具代碼生成過(guò)程中的可運(yùn)行對(duì)象和活動(dòng)(因此由 EDMS工具支持)。 Flow Tracing 庫(kù)為代碼生成提供了必要的代碼模板,并提供了一個(gè)庫(kù)來(lái)處理執(zhí)行期間記錄數(shù)據(jù)的聚合和發(fā)布。
Flow Tracing 數(shù)據(jù)用于 EDMS工具Robolyzer應(yīng)用程序中的分析,以及用于TaPe中的重新計(jì)算和確定性開(kāi)環(huán) ( DoL ) 播放器。
對(duì)于高效記錄,數(shù)據(jù)采集是在沒(méi)有轉(zhuǎn)換為通用數(shù)據(jù)表示的開(kāi)銷的情況下完成的。這意味著直接捕獲原始內(nèi)存內(nèi)容,在某些情況下甚至在嵌入式目標(biāo)上使用零拷貝機(jī)制(例如通過(guò)使用 DMA)。通過(guò)這樣做,數(shù)據(jù)布局正是目標(biāo)上使用的內(nèi)存布局,所有填充和數(shù)據(jù)大小都由目標(biāo) ABI 產(chǎn)生。由于只傳輸不透明的二進(jìn)制數(shù)據(jù)塊,因此目標(biāo)上不會(huì)發(fā)生數(shù)據(jù)的成員序列化,也不需要復(fù)雜的傳輸協(xié)議。使用這種寫(xiě)入優(yōu)化的方法,“序列化”負(fù)載完全轉(zhuǎn)移到數(shù)據(jù)攝取過(guò)程(因此稱為延遲延遲方法)。Serialize 庫(kù)(即libserialize )用于理解特定源 ABI 并將它們翻譯(即反序列化)為 ABI 和處理系統(tǒng)的表示。之后,數(shù)據(jù)位于內(nèi)存中的本地消費(fèi)者布局中,并且可以進(jìn)一步處理,就好像它是在消費(fèi)機(jī)器上本地生成的一樣。
6、分析環(huán)節(jié)
記錄數(shù)據(jù)后,現(xiàn)在需要對(duì)其進(jìn)行分析——為此,EDMS提供了Robolyzer。 Robolyzer使開(kāi)發(fā)人員和架構(gòu)師能夠分析自動(dòng)駕駛應(yīng)用程序的多 ECU 系統(tǒng)中的執(zhí)行行為和數(shù)據(jù)流。該應(yīng)用程序既可以在開(kāi)發(fā)人員機(jī)器上使用來(lái)分析本地?cái)?shù)據(jù),也可以部署到數(shù)據(jù)存儲(chǔ)和處理后端以連續(xù) 分析來(lái)自試駕的大數(shù)據(jù)集?;?Web 的用戶界面顯示統(tǒng)計(jì)數(shù)據(jù),例如執(zhí)行時(shí)間和激活間隔,以提供完整系統(tǒng)行為的概覽。為了評(píng)估軟件組件的演變,可以隨時(shí)間比較多個(gè)測(cè)量。
Robolyzer提供甘特圖可視化,提供對(duì)記錄行為的詳細(xì)調(diào)查到單個(gè)執(zhí)行的級(jí)別和執(zhí)行之間的數(shù)據(jù)流。
正如我們之前在談?wù)摴ぞ邥r(shí)所看到的,EDMS支持通過(guò)TaPe播放器進(jìn)行重新計(jì)算。回想一下, TaPe是一種輕量級(jí)重放解決方案,專注于取證重放,用于調(diào)試各個(gè)Runnable的功能行為,而不考慮 EDMS中間件以及初始化完整系統(tǒng)或時(shí)序模擬的需要。 Robolyzer和TaPe集成在一起,允許在開(kāi)發(fā)人員機(jī)器或嵌入式目標(biāo)上方便地選擇和重新計(jì)算執(zhí)行( TaPe也可以通過(guò)交互式命令行界面單獨(dú)使用)。
04.
EDMS總結(jié)??
EDMS(汽車操作系統(tǒng))是一個(gè) EDMS SDK,用于開(kāi)發(fā)和運(yùn)行 ADAS/AD 應(yīng)用程序,包括基于 μP/POSIX 的平臺(tái)和開(kāi)發(fā)工具的運(yùn)行時(shí)。它使軟件工程師能夠開(kāi)發(fā)在安全性、性能、效率、可維護(hù)性和可用性方面具有最高標(biāo)準(zhǔn)的AD應(yīng)用程序。 EDMS SDK 的主要目標(biāo)是: ·與硬件無(wú)關(guān)的功能開(kāi)發(fā) ·快速高效的開(kāi)發(fā)周期 ·安全性和驗(yàn)證證據(jù) 這些目標(biāo)將通過(guò)協(xié)調(diào)所謂的“AD 開(kāi)發(fā)周期”來(lái)實(shí)現(xiàn),該周期允許迭代和數(shù)據(jù)驅(qū)動(dòng)的開(kāi)發(fā)。EDMS SDK 為該 AD 周期中的不同開(kāi)發(fā)步驟提供了貢獻(xiàn),完全或部分參見(jiàn)虛線。完整的 AD 周期可以通過(guò)其他博世產(chǎn)品進(jìn)行補(bǔ)充:
? 上述 EDMS-Circle確定了以下階段: 設(shè)計(jì)和開(kāi)發(fā):對(duì)于此步驟,EDMS提供了架構(gòu)建模語(yǔ)言 (YAAA) 和圖形架構(gòu)可視化 YAAA-Vis。
部署:代碼生成 (YAAAC),用于將 ADAS/AD 應(yīng)用程序綁定到運(yùn)行時(shí)。
編譯:使用 EDMS cmake 參考實(shí)現(xiàn)從所有自動(dòng)生成和手動(dòng)提供的源創(chuàng)建可執(zhí)行文件??梢愿鶕?jù)項(xiàng)目需要進(jìn)行擴(kuò)展。
驅(qū)動(dòng):在此步驟中,EDMS提供 Carma 運(yùn)行時(shí)以及在車輛或其他物理目標(biāo)環(huán)境中執(zhí)行的 ADAS/AD 應(yīng)用程序。
測(cè)量:提供對(duì)正在運(yùn)行的軟件的測(cè)量(和校準(zhǔn))訪問(wèn)。 該步驟可以由相應(yīng)的數(shù)據(jù)采集系統(tǒng)補(bǔ)充。
記錄:保存在車輛或其他物理目標(biāo)中運(yùn)行軟件時(shí)測(cè)量的數(shù)據(jù),以便立即或稍后分析。
數(shù)據(jù)鏈接:此步驟包含博世產(chǎn)品,用于存儲(chǔ)數(shù)據(jù)以進(jìn)行聯(lián)合分析。
驗(yàn)證、驗(yàn)證、重播、重新計(jì)算、模擬、分析:對(duì)于此步驟,EDMS提供了兩個(gè)元素:用于取證的 TaPe。DoL 用于FreeCompute和Credible ReCompute。這可以通過(guò)其他博世產(chǎn)品進(jìn)行擴(kuò)展,以實(shí)現(xiàn)進(jìn)一步的模擬用例,例如 HoL、SiL、SoL。
編輯:黃飛
?
評(píng)論
查看更多