未動(dòng)科技:支持L3+自動(dòng)駕駛的軟件架構(gòu)及產(chǎn)品架構(gòu)
L2 及以下級(jí)別的自動(dòng)駕駛功能基本上都是屬于“駕駛輔助”性質(zhì)。各功能的場(chǎng)景,主要的駕駛行為是駕駛員主導(dǎo),自動(dòng)駕駛系統(tǒng)只在非常限定的條件約束內(nèi)對(duì)車輛進(jìn)行操作。而且這些約束條件所形成的場(chǎng)景基本上是各自獨(dú)立的,這也就是各功能能夠由不同供應(yīng)商獨(dú)立開發(fā)的原因之一。
作為早期賦能自動(dòng)駕駛行業(yè)的汽車智能化科技企業(yè),未動(dòng)科技自成立以來始終專注于打造高級(jí)別汽車自動(dòng)駕駛的視覺感知算法、高實(shí)時(shí)性與高可靠性的系統(tǒng)軟件平臺(tái)及異構(gòu)計(jì)算引擎。高級(jí)別自動(dòng)駕駛即L3 開始逐步主導(dǎo)車輛的駕駛,與L2 有了根本性的變化。L3級(jí)別就要求在良好的路況環(huán)境下,大多數(shù)操作將由汽車為主導(dǎo),車輛將自動(dòng)完成自適應(yīng)巡航、車道居中保持、自動(dòng)變道、自動(dòng)駛?cè)耄偝觯└咚僭训赖纫幌盗胁僮。駕駛員只需要在必要的時(shí)候?qū)ζ囘M(jìn)行干涉。當(dāng)然這就對(duì)自動(dòng)駕駛系統(tǒng)的硬件算力,傳感器配置,各種感知、規(guī)劃、控制算法都提出了更高的要求。
未動(dòng)科技作為一家汽車智能化科技企業(yè),在自動(dòng)駕駛技術(shù)中,更加關(guān)注如何提高硬件的算力,尤其是能支持深度學(xué)習(xí)的算法能力,如何開發(fā)更好的感知算法等等,然而如何讓這些得到大大提升的各專項(xiàng)能力能協(xié)同工作卻很少被特別提及。我們需要的不僅僅是車輛運(yùn)行過程中,各種自動(dòng)駕駛功能關(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 的跨越難度太大,所以人們?cè)?L2的軟硬件架構(gòu)上修修補(bǔ)補(bǔ),在不改變核心架構(gòu)邏輯的基礎(chǔ)上盡量增加一些新的功能,才有所謂的 L2.5。然而在L2原生架構(gòu)上的修補(bǔ)能力終有盡頭,必須有新的架構(gòu)來支持 L3及以上的自動(dòng)駕駛。
L2 自動(dòng)駕駛軟件架構(gòu)的瓶頸
多個(gè)獨(dú)立功能的自動(dòng)駕駛控制器 + 域控制器的方案,多用于 L2 和 L2.5 的開發(fā),其在軟件架構(gòu)上的瓶頸至少有以下幾點(diǎn):
1. 多個(gè)獨(dú)立的控制器導(dǎo)致計(jì)算資源不能協(xié)調(diào)調(diào)度,導(dǎo)致算力浪費(fèi)與匱乏并存。比如全自動(dòng)泊車輔助功能和 ACC/AEB 功能并不是同時(shí)啟用的,速度超過20公里后,泊車輔助功能停止執(zhí)行,ACC/AEB 可以啟用。但是泊車輔助系統(tǒng)的算力并不能用于 ACC/AEB功能。低速情況下又恰好相反。
2.自動(dòng)駕駛域內(nèi)的通訊延遲。多控制器之間只能通過總線進(jìn)行通訊帶來一定的數(shù)據(jù)延遲。如果使用高速 Can 總線(1Mbps), 一個(gè)毫米波雷達(dá)每周期傳遞30個(gè)目標(biāo),就能達(dá)到總線負(fù)載的50%。
3. 各控制器的自動(dòng)駕駛功能沒有一致性的架構(gòu)設(shè)計(jì),只能通過信號(hào)進(jìn)行數(shù)據(jù)通訊,通過域控制器進(jìn)行協(xié)調(diào)。當(dāng)堆疊更多功能后,復(fù)雜度難以維護(hù)。
4. 基于功能(ACC,LKA,TJP等等)的設(shè)計(jì)方式,難于應(yīng)對(duì) L3 以上需要的基于場(chǎng)景調(diào)度,實(shí)現(xiàn)功能越多,功能的邊界越難定義,沒有一致的架構(gòu)設(shè)計(jì),并行運(yùn)行的功能會(huì)造成復(fù)雜度指數(shù)上升。
5. 各獨(dú)立控制器之間無法有效的進(jìn)行通用組件的共享,各自重復(fù)造輪子。
6. 各控制器的功能實(shí)現(xiàn)無法利用其它控制器計(jì)算的感知結(jié)果,造成資源的浪費(fèi)。
正是在這些問題的背景下,自動(dòng)駕駛的域控制器越來越集中化,也就是要將這些控制器集中到一個(gè)高性能的域控制器中。即使域內(nèi)還有其他的控制器,那也基本上是低智能的,一般只做某個(gè)單項(xiàng)的感知,獲取原始數(shù)據(jù)。但是感知算法仍然在域控器內(nèi)完成。這樣高度集中后,高性能的域控制器就需要有新的軟件架構(gòu)。
L3+自動(dòng)駕駛軟件架構(gòu)鳥瞰圖
未動(dòng)科技創(chuàng)新的L3+軟件架構(gòu)基于滿足高性能域控制器的需求而提出。自動(dòng)駕駛域控制器是一個(gè)非常復(fù)雜的系統(tǒng),其軟件架構(gòu)涉及非常多的方面,從一個(gè)單一的維度很難準(zhǔn)確理解整體結(jié)構(gòu)。下圖從三千米高空鳥瞰,從三個(gè)正交的維度描述整體的軟件架構(gòu)。
“正交”是一個(gè)數(shù)學(xué)概念,是垂直的泛化含義。這里表示兩個(gè)分類的維度是獨(dú)立不相關(guān)的。
圖1未動(dòng)科技軟件架構(gòu)鳥瞰圖
2.1未動(dòng)科技L3+軟件架構(gòu):“層級(jí)”維度
從左到右層級(jí)逐步升高,每一層依賴其左邊的那一層才能完成工作。雖然本文是講軟件架構(gòu),但把硬件也放在圖里方便理解,畢竟軟件依賴硬件。首先,從兩個(gè)角度理解每一層的作用:
1. 這一層做什么
2. 這一層不做什么
表格 1未動(dòng)科技軟件架構(gòu)層級(jí)
2.2 未動(dòng)科技L3+軟件架構(gòu):“實(shí)時(shí)域”和“性能域”的分工
自動(dòng)駕駛中,越是到末端的,規(guī)劃和控制的實(shí)時(shí)性要求就越高。硬實(shí)時(shí)要求在確定的時(shí)間內(nèi)響應(yīng)、確定的時(shí)間內(nèi)完成。這需要由硬件和計(jì)算機(jī)OS一起提供基礎(chǔ)的保證。一般采用在 MCU上運(yùn)行相對(duì)簡(jiǎn)單的實(shí)時(shí)系統(tǒng)來實(shí)現(xiàn)。MCU的計(jì)算能力有限,其算力資源對(duì)于基于機(jī)器學(xué)習(xí)的視覺算法需求差了幾個(gè)數(shù)量級(jí)。所以需要集成了高性能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ǔ)丁提供了的能力。
在上面的三維度圖中,“分工”與“層級(jí)”這兩個(gè)坐標(biāo)軸是正交關(guān)系。也就是說“層級(jí)”軸上的每一段在“實(shí)時(shí)域”和“性能域”都有對(duì)應(yīng)的標(biāo)的物。每一個(gè)標(biāo)的物往往對(duì)應(yīng)于一個(gè)具體的軟件產(chǎn)品。下表列出了一些組合例子:
表格 2 產(chǎn)品劃分示例
Classic AutoSar 比較特殊,它屬于實(shí)時(shí)域,但是在層級(jí)軸上橫跨了兩層。
2.3 未動(dòng)科技L3+軟件架構(gòu):切面
切面“Aspect”是軟件架構(gòu)中的一個(gè)概念。編程范式中有一個(gè)概念叫“面向切面的編程”(AOP, Aspect Oriented Program)。其基本含義在軟件架構(gòu)上把軟件的功能分為“核心業(yè)務(wù)”和“周邊業(yè)務(wù)”:
核心業(yè)務(wù)是指完成實(shí)際業(yè)務(wù)邏輯的功能體系,比如算法執(zhí)行,場(chǎng)景切換等等。
周邊業(yè)務(wù)是指那些即使沒有實(shí)現(xiàn),也不會(huì)影響核心業(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),能為對(duì)應(yīng)切面設(shè)計(jì)合適的專有架構(gòu),再與核心業(yè)務(wù)整合。
在上面的三維度圖中,D 軸和 L 軸 構(gòu)成的平面中的每一個(gè)交叉點(diǎn)是一個(gè)產(chǎn)品,這個(gè)交叉在A 軸上映射就是這個(gè)產(chǎn)品在對(duì)應(yīng)切面需要實(shí)現(xiàn)的功能。比如 D.R + L.HW 代表的硬件MCU,在 A.FuSa 平面需要達(dá)到 ASIL-D 等級(jí)。因?yàn)?D 軸和 L 軸的每一個(gè)交叉點(diǎn)涉及的軟件技術(shù)差別很大,其投影在 A 軸上每一個(gè)平面上的需求點(diǎn),采用的技術(shù)方案也差別非常大。
所以在系統(tǒng)開發(fā)時(shí)(V 模型左上角的系統(tǒng)開發(fā)階段),可以對(duì)某一個(gè)切面提出整體的設(shè)計(jì)要求。但是落實(shí)到每一個(gè) DL軸交叉點(diǎn)時(shí),應(yīng)該由該交叉點(diǎn)對(duì)應(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)常用來自動(dòng)駕駛系統(tǒng)的原型開發(fā),所以結(jié)合上面的三維度圖,我們討論一下 ROS/ROS2 的位置,以及它能否用于自動(dòng)駕駛量產(chǎn)的問題。
首先先澄清一下OS的概念,ROS 是機(jī)器人操作系統(tǒng),雖然名字中有 OS的字母,但此 OS 非彼OS。一般來講 OS,狹義上是專指計(jì)算機(jī)操作系統(tǒng),如 Windows, Linux, MacOS, RTOS 等等。為避免歧義,本文中都不用簡(jiǎn)寫,都完整地寫作“計(jì)算機(jī)OS”或“計(jì)算機(jī)操作系統(tǒng)”。廣義的OS,為某一個(gè)專業(yè)領(lǐng)域提供了一套軟件的解決方案和應(yīng)用接口,該專業(yè)領(lǐng)域的用戶可以基于此接口簡(jiǎn)化領(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自動(dòng)駕駛的汽車,從某種意義上來說,也是一個(gè)自動(dòng)駕駛的機(jī)器人,所以可以使用 ROS/ROS2 來做自動(dòng)駕駛的原型開發(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)就是要提供通訊的能力。一般還會(huì)提出基于 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)移動(dòng)。一般范圍比較大的是倉庫機(jī)器人,運(yùn)動(dòng)范圍也就在百米數(shù)量級(jí),場(chǎng)景也比較單一。所以 ROS/ROS2對(duì)機(jī)器人開發(fā)的支持映射到智能駕駛,多體現(xiàn)在分形遞歸的 EPX 模型的最內(nèi)層。即短距離內(nèi)單一場(chǎng)景的感知、規(guī)劃和控制執(zhí)行。其并沒有對(duì)復(fù)雜的場(chǎng)景的調(diào)度(S)和多場(chǎng)景并行下的執(zhí)行仲裁(A)機(jī)制。畢竟還沒有機(jī)器人需要從北京走到廣州。
所以作為自動(dòng)駕駛的軟件開發(fā)框架,ROS/ROS2仍然有很多欠缺,但是作為快速原型工具仍然是非常好的選擇。
3.3 關(guān)于L3+自動(dòng)駕駛"中間件"
顧名思義,“中間件”一定是在兩層中間,為上層屏蔽底層的復(fù)雜性。計(jì)算機(jī)軟件架構(gòu)中有一句名言:“計(jì)算機(jī)科學(xué)領(lǐng)域的任何問題都可以通過增加一個(gè)間接的中間層來解決” 。這是軟件架構(gòu)設(shè)計(jì)的一個(gè)主要的設(shè)計(jì)哲學(xué),用在了無數(shù)地方,也解決了無數(shù)的問題。而且“中間”一詞也是相對(duì)的,當(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為 中間件”并不是對(duì)等的關(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 層之間,它為自動(dòng)駕駛功能或場(chǎng)景的開發(fā)提供軟件框架和基礎(chǔ)組件。對(duì)于其上層來說,它也是中間件。如果做得好,也可以稱為OS,那就是“自動(dòng)駕駛OS”。Anyway,一切都是相對(duì)的。
為了避免歧義,本文一般不使用“中間件”術(shù)語,如果使用也會(huì)明確指出是代表哪兩層的中間。多數(shù)情況下,我們使用“車載控制器基礎(chǔ)軟件”代表任何汽車電子ECU都需要實(shí)現(xiàn)的基礎(chǔ)軟件功能,是計(jì)算機(jī)OS系統(tǒng)之上,ECU實(shí)際功能層(FW+APK)之下的中間層,代號(hào) L.BSW。
未動(dòng)科技對(duì)于自動(dòng)駕駛中間件如何更好地支持上層應(yīng)用有準(zhǔn)確、透徹的理解,結(jié)合多年的視覺感知的研發(fā)落地積累,可以更好地配合主機(jī)廠進(jìn)行汽車本身功能的優(yōu)化,提升用戶駕乘體驗(yàn)。
發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
最新活動(dòng)更多
-
11月19日立即報(bào)名>> 【線下論壇】華邦電子與恩智浦聯(lián)合技術(shù)論壇
-
12月19日立即報(bào)名>> 【線下會(huì)議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
精彩回顧立即查看>> 蔡司新能源汽車三電質(zhì)量解決方案
-
精彩回顧立即查看>> 蔡司新能源汽車三電質(zhì)量解決方案
-
精彩回顧立即查看>> 2024(第五屆)全球數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)大會(huì)暨展覽會(huì)
-
精彩回顧立即查看>> 【線下會(huì)議】全數(shù)會(huì)2024電子元器件展覽會(huì)
推薦專題
-
2 “寧王”再出手
- 1 從小鵬、理想、蔚來布局看自動(dòng)駕駛發(fā)展趨勢(shì)
- 2 被逼墻角的Mobileye,祭出 CAIS 大旗,挑戰(zhàn)端到端大模型智能駕駛
- 3 4 SiC、Chiplet、RISC-V,汽車半導(dǎo)體發(fā)展的三大動(dòng)力
- 5 676億地平線港股上市,要與英偉達(dá)、華為搶市場(chǎng)
- 6 輸給新勢(shì)力,賽力斯失去“華為溢價(jià)”
- 7 如何跑贏汽車智能化下半場(chǎng)?
- 8 智能汽車時(shí)代的“地平線”,下一個(gè)十年的“寧王”
- 9 激光雷達(dá)即將降價(jià),純視覺回到鄙視鏈底層?
- 10 “端到端”風(fēng)口已至?
- 銷售總監(jiān)-汽車電子方向 深圳市智立方自動(dòng)化設(shè)備股份有限公司
- 硬件開發(fā)工程師(前裝汽車電子) 深圳奧尼電子股份有限公司
- 銷售經(jīng)理(汽車新能源行業(yè)) 廣州瑞松智能科技股份有限公司
- IE工程師(汽車智聯(lián)) 惠州碩貝德無線科技股份有限公司
- 項(xiàng)目經(jīng)理(汽車內(nèi)飾&汽車電子) 伯恩光學(xué)(惠州)有限公司
- 現(xiàn)場(chǎng)技術(shù)支持工程師(汽車) 易思維(杭州)科技股份有限公司
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市