侵權(quán)投訴
訂閱
糾錯(cuò)
加入自媒體

未動科技:支持L3+自動駕駛的軟件架構(gòu)及產(chǎn)品架構(gòu)

2021-05-14 15:21
來源: 粵訊

L2 及以下級別的自動駕駛功能基本上都是屬于“駕駛輔助”性質(zhì)。各功能的場景,主要的駕駛行為是駕駛員主導(dǎo),自動駕駛系統(tǒng)只在非常限定的條件約束內(nèi)對車輛進(jìn)行操作。而且這些約束條件所形成的場景基本上是各自獨(dú)立的,這也就是各功能能夠由不同供應(yīng)商獨(dú)立開發(fā)的原因之一。

作為早期賦能自動駕駛行業(yè)的汽車智能化科技企業(yè),未動科技自成立以來始終專注于打造高級別汽車自動駕駛的視覺感知算法、高實(shí)時(shí)性與高可靠性的系統(tǒng)軟件平臺及異構(gòu)計(jì)算引擎。高級別自動駕駛即L3 開始逐步主導(dǎo)車輛的駕駛,與L2 有了根本性的變化。L3級別就要求在良好的路況環(huán)境下,大多數(shù)操作將由汽車為主導(dǎo),車輛將自動完成自適應(yīng)巡航、車道居中保持、自動變道、自動駛?cè)耄偝觯└咚僭训赖纫幌盗胁僮。駕駛員只需要在必要的時(shí)候?qū)ζ囘M(jìn)行干涉。當(dāng)然這就對自動駕駛系統(tǒng)的硬件算力,傳感器配置,各種感知、規(guī)劃、控制算法都提出了更高的要求。

未動科技作為一家汽車智能化科技企業(yè),在自動駕駛技術(shù)中,更加關(guān)注如何提高硬件的算力,尤其是能支持深度學(xué)習(xí)的算法能力,如何開發(fā)更好的感知算法等等,然而如何讓這些得到大大提升的各專項(xiàng)能力能協(xié)同工作卻很少被特別提及。我們需要的不僅僅是車輛運(yùn)行過程中,各種自動駕駛功能關(guān)聯(lián)的技術(shù)模塊能協(xié)同工作,還要考慮這些不同的技術(shù)模塊在開發(fā)階段如何能進(jìn)行有效的分解,因?yàn)椴煌夹g(shù)模塊往往是完全不同的技術(shù)領(lǐng)域,需要不同的專業(yè)團(tuán)隊(duì)(或供應(yīng)商)去完成。如果能把這些技術(shù)模塊“拆得開”又“裝得上”就是軟件架構(gòu)需要解決的問題。

正因?yàn)閺?L2 到 L3 的跨越難度太大,所以人們在 L2的軟硬件架構(gòu)上修修補(bǔ)補(bǔ),在不改變核心架構(gòu)邏輯的基礎(chǔ)上盡量增加一些新的功能,才有所謂的 L2.5。然而在L2原生架構(gòu)上的修補(bǔ)能力終有盡頭,必須有新的架構(gòu)來支持 L3及以上的自動駕駛。

L2 自動駕駛軟件架構(gòu)的瓶頸

多個(gè)獨(dú)立功能的自動駕駛控制器 + 域控制器的方案,多用于 L2 和 L2.5 的開發(fā),其在軟件架構(gòu)上的瓶頸至少有以下幾點(diǎn):

1. 多個(gè)獨(dú)立的控制器導(dǎo)致計(jì)算資源不能協(xié)調(diào)調(diào)度,導(dǎo)致算力浪費(fèi)與匱乏并存。比如全自動泊車輔助功能和 ACC/AEB 功能并不是同時(shí)啟用的,速度超過20公里后,泊車輔助功能停止執(zhí)行,ACC/AEB 可以啟用。但是泊車輔助系統(tǒng)的算力并不能用于 ACC/AEB功能。低速情況下又恰好相反。

2.自動駕駛域內(nèi)的通訊延遲。多控制器之間只能通過總線進(jìn)行通訊帶來一定的數(shù)據(jù)延遲。如果使用高速 Can 總線(1Mbps), 一個(gè)毫米波雷達(dá)每周期傳遞30個(gè)目標(biāo),就能達(dá)到總線負(fù)載的50%。

3. 各控制器的自動駕駛功能沒有一致性的架構(gòu)設(shè)計(jì),只能通過信號進(jìn)行數(shù)據(jù)通訊,通過域控制器進(jìn)行協(xié)調(diào)。當(dāng)堆疊更多功能后,復(fù)雜度難以維護(hù)。

4. 基于功能(ACC,LKA,TJP等等)的設(shè)計(jì)方式,難于應(yīng)對 L3 以上需要的基于場景調(diào)度,實(shí)現(xiàn)功能越多,功能的邊界越難定義,沒有一致的架構(gòu)設(shè)計(jì),并行運(yùn)行的功能會造成復(fù)雜度指數(shù)上升。

5. 各獨(dú)立控制器之間無法有效的進(jìn)行通用組件的共享,各自重復(fù)造輪子。

6. 各控制器的功能實(shí)現(xiàn)無法利用其它控制器計(jì)算的感知結(jié)果,造成資源的浪費(fèi)。

正是在這些問題的背景下,自動駕駛的域控制器越來越集中化,也就是要將這些控制器集中到一個(gè)高性能的域控制器中。即使域內(nèi)還有其他的控制器,那也基本上是低智能的,一般只做某個(gè)單項(xiàng)的感知,獲取原始數(shù)據(jù)。但是感知算法仍然在域控器內(nèi)完成。這樣高度集中后,高性能的域控制器就需要有新的軟件架構(gòu)。

L3+自動駕駛軟件架構(gòu)鳥瞰圖

未動科技創(chuàng)新的L3+軟件架構(gòu)基于滿足高性能域控制器的需求而提出。自動駕駛域控制器是一個(gè)非常復(fù)雜的系統(tǒng),其軟件架構(gòu)涉及非常多的方面,從一個(gè)單一的維度很難準(zhǔn)確理解整體結(jié)構(gòu)。下圖從三千米高空鳥瞰,從三個(gè)正交的維度描述整體的軟件架構(gòu)。

“正交”是一個(gè)數(shù)學(xué)概念,是垂直的泛化含義。這里表示兩個(gè)分類的維度是獨(dú)立不相關(guān)的。

未動科技:支持L3+自動駕駛的軟件架構(gòu)及產(chǎn)品架構(gòu)

圖1未動科技軟件架構(gòu)鳥瞰圖

2.1未動科技L3+軟件架構(gòu):“層級”維度

從左到右層級逐步升高,每一層依賴其左邊的那一層才能完成工作。雖然本文是講軟件架構(gòu),但把硬件也放在圖里方便理解,畢竟軟件依賴硬件。首先,從兩個(gè)角度理解每一層的作用:

1. 這一層做什么

2. 這一層不做什么

未動科技:支持L3+自動駕駛的軟件架構(gòu)及產(chǎn)品架構(gòu)

表格 1未動科技軟件架構(gòu)層級

2.2 未動科技L3+軟件架構(gòu):“實(shí)時(shí)域”和“性能域”的分工

自動駕駛中,越是到末端的,規(guī)劃和控制的實(shí)時(shí)性要求就越高。硬實(shí)時(shí)要求在確定的時(shí)間內(nèi)響應(yīng)、確定的時(shí)間內(nèi)完成。這需要由硬件和計(jì)算機(jī)OS一起提供基礎(chǔ)的保證。一般采用在 MCU上運(yùn)行相對簡單的實(shí)時(shí)系統(tǒng)來實(shí)現(xiàn)。MCU的計(jì)算能力有限,其算力資源對于基于機(jī)器學(xué)習(xí)的視覺算法需求差了幾個(gè)數(shù)量級。所以需要集成了高性能CPU和 AI 算力資源的 SoC來滿足高性能計(jì)算的需求。這樣就被劃分出來了“實(shí)時(shí)域”和“性能域”。在性能域,運(yùn)行的計(jì)算機(jī)OS一般達(dá)不到硬實(shí)時(shí)要求,而是盡量滿足軟實(shí)時(shí)要求。比如Linux 就有支持實(shí)時(shí)性的內(nèi)核補(bǔ)丁。但也并不是打了實(shí)時(shí)補(bǔ)丁就具備了實(shí)時(shí)性,還需要基于 Linux 的應(yīng)用程序利用實(shí)時(shí)補(bǔ)丁提供了的能力。

在上面的三維度圖中,“分工”與“層級”這兩個(gè)坐標(biāo)軸是正交關(guān)系。也就是說“層級”軸上的每一段在“實(shí)時(shí)域”和“性能域”都有對應(yīng)的標(biāo)的物。每一個(gè)標(biāo)的物往往對應(yīng)于一個(gè)具體的軟件產(chǎn)品。下表列出了一些組合例子:

未動科技:支持L3+自動駕駛的軟件架構(gòu)及產(chǎn)品架構(gòu)

表格 2 產(chǎn)品劃分示例

Classic AutoSar 比較特殊,它屬于實(shí)時(shí)域,但是在層級軸上橫跨了兩層。

2.3 未動科技L3+軟件架構(gòu):切面

切面“Aspect”是軟件架構(gòu)中的一個(gè)概念。編程范式中有一個(gè)概念叫“面向切面的編程”(AOP, Aspect Oriented Program)。其基本含義在軟件架構(gòu)上把軟件的功能分為“核心業(yè)務(wù)”和“周邊業(yè)務(wù)”:

核心業(yè)務(wù)是指完成實(shí)際業(yè)務(wù)邏輯的功能體系,比如算法執(zhí)行,場景切換等等。

周邊業(yè)務(wù)是指那些即使沒有實(shí)現(xiàn),也不會影響核心業(yè)務(wù)執(zhí)行的功能。比如說性能統(tǒng)計(jì),信息安全等。并不是說這些功能不重要,而是說將它從核心業(yè)務(wù)邏輯中區(qū)分出來后,方便更好的理解和實(shí)現(xiàn)核心業(yè)務(wù)。同時(shí)可以把相同切面的的周邊業(yè)務(wù)能夠以更全局的視角進(jìn)行統(tǒng)籌設(shè)計(jì)和實(shí)現(xiàn),能為對應(yīng)切面設(shè)計(jì)合適的專有架構(gòu),再與核心業(yè)務(wù)整合。

在上面的三維度圖中,D 軸和 L 軸 構(gòu)成的平面中的每一個(gè)交叉點(diǎn)是一個(gè)產(chǎn)品,這個(gè)交叉在A 軸上映射就是這個(gè)產(chǎn)品在對應(yīng)切面需要實(shí)現(xiàn)的功能。比如 D.R + L.HW 代表的硬件MCU,在 A.FuSa 平面需要達(dá)到 ASIL-D 等級。因?yàn)?D 軸和 L 軸的每一個(gè)交叉點(diǎn)涉及的軟件技術(shù)差別很大,其投影在 A 軸上每一個(gè)平面上的需求點(diǎn),采用的技術(shù)方案也差別非常大。

所以在系統(tǒng)開發(fā)時(shí)(V 模型左上角的系統(tǒng)開發(fā)階段),可以對某一個(gè)切面提出整體的設(shè)計(jì)要求。但是落實(shí)到每一個(gè) DL軸交叉點(diǎn)時(shí),應(yīng)該由該交叉點(diǎn)對應(yīng)的產(chǎn)品開發(fā)團(tuán)隊(duì)分別實(shí)現(xiàn)。不可能由一個(gè)團(tuán)隊(duì)實(shí)現(xiàn)一個(gè)完整切面的所有功能。

ROS/ROS2 與“中間件”

因?yàn)?ROS/ROS2 經(jīng)常用來自動駕駛系統(tǒng)的原型開發(fā),所以結(jié)合上面的三維度圖,我們討論一下 ROS/ROS2 的位置,以及它能否用于自動駕駛量產(chǎn)的問題。

首先先澄清一下OS的概念,ROS 是機(jī)器人操作系統(tǒng),雖然名字中有 OS的字母,但此 OS 非彼OS。一般來講 OS,狹義上是專指計(jì)算機(jī)操作系統(tǒng),如 Windows, Linux, MacOS, RTOS 等等。為避免歧義,本文中都不用簡寫,都完整地寫作“計(jì)算機(jī)OS”或“計(jì)算機(jī)操作系統(tǒng)”。廣義的OS,為某一個(gè)專業(yè)領(lǐng)域提供了一套軟件的解決方案和應(yīng)用接口,該專業(yè)領(lǐng)域的用戶可以基于此接口簡化領(lǐng)域相關(guān)的開發(fā),那么可以把這個(gè)解決方案軟件體系稱為領(lǐng)域特定的OS。ROS 就是用于解決機(jī)器人軟件開發(fā)的領(lǐng)域特定OS。但實(shí)際上,使用ROS或ROS2寫的應(yīng)用程序只是運(yùn)行在計(jì)算機(jī)OS之上的進(jìn)程,但是鏈接了 ROS/ROS2 提供的庫。ROS/ROS2也提供了方便機(jī)器人開發(fā)的軟件包,比如某些算法或者坐標(biāo)轉(zhuǎn)換的工具庫。

因?yàn)橐惠v自動駕駛的汽車,從某種意義上來說,也是一個(gè)自動駕駛的機(jī)器人,所以可以使用 ROS/ROS2 來做自動駕駛的原型開發(fā),而且ROS/ROS2 的生態(tài)中有很多方便的工具能夠給開發(fā)提供很多便利。

在上面的三維度圖 中,ROS/ROS2的位置在 (D.P + L.BSW) 的交叉區(qū)域內(nèi)并向(D.P + L.FW) 區(qū)域有一定擴(kuò)展。但是,它只是覆蓋了這個(gè)兩個(gè)區(qū)域的一小部分。而且在 A 軸上幾乎沒有實(shí)現(xiàn)什么特性。

3.1 ROS/ROS2 在 (D.P + L.BSW)中的地位

在上表中詳細(xì)描述了 L.BSW(車載控制器基礎(chǔ)軟件)層需要做的工作,與通訊網(wǎng)絡(luò)設(shè)備的概念相映射,很大一部分是管理平面的工作,然后還很重要的一點(diǎn)就是要提供通訊的能力。一般還會提出基于 L.BSW的功能開發(fā)應(yīng)用的框架形式的規(guī)范。ROS/ROS2 實(shí)際上主要提供了 L.BSW 層中的通訊支持能力,通過發(fā)布訂閱模式能讓各個(gè)應(yīng)用節(jié)點(diǎn)解耦合。車載控制器需要的基礎(chǔ)管理能力 ROS/ROS2中都很少有實(shí)現(xiàn)。

有些人以為 ROS2 不能用于工業(yè)化量產(chǎn)的車載控制器是因?yàn)橥ㄓ崒?shí)時(shí)性不夠。這是一個(gè)理解上的誤區(qū)。ROS2本來就不是為實(shí)時(shí)域設(shè)計(jì)的,如果一定要把實(shí)時(shí)性要求高的車輛控制算法運(yùn)行在 ROS2中,那是軟件設(shè)計(jì)的錯(cuò)誤(原型系統(tǒng)沒關(guān)系,量產(chǎn)不行),而不是ROS2的問題。ROS2能否用于量產(chǎn)的智能駕駛控制器?答案是可以,前提是補(bǔ)齊 L.BSW層所需要完成的所有功能,補(bǔ)齊 A 軸所有切面要求的特性。這實(shí)際上是基于 ROS2的架構(gòu)去實(shí)現(xiàn)一套 AP AutoSar 規(guī)范。這可以成為一個(gè)單獨(dú)的產(chǎn)品,投入時(shí)間+人+錢可以開發(fā)出來,只是看有沒有必要,值不值得。

3.2 ROS/ROS2 在 (D.P + L.FW)中的地位

ROS/ROS2 確實(shí)實(shí)現(xiàn)了一個(gè)機(jī)器人開發(fā)的應(yīng)用框架并提供了很多基礎(chǔ)組件,大大便利了機(jī)器人應(yīng)用的開發(fā)。但是目前的機(jī)器人應(yīng)用都是在一個(gè)很小的區(qū)域內(nèi)移動。一般范圍比較大的是倉庫機(jī)器人,運(yùn)動范圍也就在百米數(shù)量級,場景也比較單一。所以 ROS/ROS2對機(jī)器人開發(fā)的支持映射到智能駕駛,多體現(xiàn)在分形遞歸的 EPX 模型的最內(nèi)層。即短距離內(nèi)單一場景的感知、規(guī)劃和控制執(zhí)行。其并沒有對復(fù)雜的場景的調(diào)度(S)和多場景并行下的執(zhí)行仲裁(A)機(jī)制。畢竟還沒有機(jī)器人需要從北京走到廣州。

所以作為自動駕駛的軟件開發(fā)框架,ROS/ROS2仍然有很多欠缺,但是作為快速原型工具仍然是非常好的選擇。

3.3 關(guān)于L3+自動駕駛"中間件"

顧名思義,“中間件”一定是在兩層中間,為上層屏蔽底層的復(fù)雜性。計(jì)算機(jī)軟件架構(gòu)中有一句名言:“計(jì)算機(jī)科學(xué)領(lǐng)域的任何問題都可以通過增加一個(gè)間接的中間層來解決” 。這是軟件架構(gòu)設(shè)計(jì)的一個(gè)主要的設(shè)計(jì)哲學(xué),用在了無數(shù)地方,也解決了無數(shù)的問題。而且“中間”一詞也是相對的,當(dāng)有多層堆疊的時(shí)候,每一層都是其上下兩層的中間層。所以我們說“中間件”的時(shí)候,需要指明其上下文,否則容易出現(xiàn)表達(dá)與理解的不一致。

當(dāng)我們說 AP AutoSar 或 CP AutoSar 是中間件時(shí),這個(gè)中間件是很明確的 L.BSW 層語義。即處于計(jì)算機(jī)OS與車載ECU特定功能實(shí)現(xiàn)之間,為 ECU功能實(shí)現(xiàn)層屏蔽掉特定處理器和計(jì)算機(jī)OS相關(guān)的細(xì)節(jié),并實(shí)現(xiàn)與車輛網(wǎng)絡(luò)、電源等系統(tǒng)交互所需的基礎(chǔ)服務(wù)。

當(dāng)我們稱 “ROS/ROS2 為中間件”時(shí),其含義與 “AP AutoSar為 中間件”并不是對等的關(guān)系。ROS/ROS2 是作為機(jī)器人開發(fā)的應(yīng)用框架,在機(jī)器人應(yīng)用和計(jì)算機(jī)OS之間提供了通用的中間層框架和常用軟件模塊(ROS Package)。而且 ROS團(tuán)隊(duì)認(rèn)為這個(gè)框架做得足夠好,可以稱作操作系統(tǒng)(OS)了。

L.FW 層在 L.BSW 和 L.APK 層之間,它為自動駕駛功能或場景的開發(fā)提供軟件框架和基礎(chǔ)組件。對于其上層來說,它也是中間件。如果做得好,也可以稱為OS,那就是“自動駕駛OS”。Anyway,一切都是相對的。

為了避免歧義,本文一般不使用“中間件”術(shù)語,如果使用也會明確指出是代表哪兩層的中間。多數(shù)情況下,我們使用“車載控制器基礎(chǔ)軟件”代表任何汽車電子ECU都需要實(shí)現(xiàn)的基礎(chǔ)軟件功能,是計(jì)算機(jī)OS系統(tǒng)之上,ECU實(shí)際功能層(FW+APK)之下的中間層,代號 L.BSW。

未動科技對于自動駕駛中間件如何更好地支持上層應(yīng)用有準(zhǔn)確、透徹的理解,結(jié)合多年的視覺感知的研發(fā)落地積累,可以更好地配合主機(jī)廠進(jìn)行汽車本身功能的優(yōu)化,提升用戶駕乘體驗(yàn)。

聲明: 本文系OFweek根據(jù)授權(quán)轉(zhuǎn)載自其它媒體或授權(quán)刊載,目的在于信息傳遞,并不代表本站贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé),如有新聞稿件和圖片作品的內(nèi)容、版權(quán)以及其它問題的,請聯(lián)系我們。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個(gè)字

您提交的評論過于頻繁,請輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評論

暫無評論

文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號