自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為自動駕駛保駕護航—談談主流中間件設計

人工智能 無人駕駛
隨著自動駕駛等級從L2向L2++甚至L3/L4過渡,對于數(shù)據(jù)傳輸要求越來越高。

隨著國內外新勢力車廠的快速崛起,汽車智能化水平不斷提升。整車中央計算平臺,自動駕駛域控制器持續(xù)走熱。

談起自動駕駛,可能更多的人想到的是AI技術、如Mobileye視覺感知、地圖、各類規(guī)劃算法、控制、大數(shù)據(jù)。目前越來越多的主機廠聚焦于數(shù)據(jù)如何更高效和準確的通信,隨著自動駕駛等級從L2向L2++甚至L3/L4過渡,對于數(shù)據(jù)傳輸要求越來越高。中間件開發(fā)和應用一下子被推到了風口浪尖。 談到中間件,我們不得不先講一下操作系統(tǒng)OS。

操作系統(tǒng)有廣義和狹義之分。

狹義的操作系統(tǒng)大家都比較熟悉,手機設備上的ios、Android、車載系統(tǒng)中Linux、QNX都是狹義的操作系統(tǒng),通常包括內核、文件系統(tǒng)、驅動以及部分協(xié)議棧整合在內核中。

廣義的操作系統(tǒng)一般包含操作系統(tǒng)內核、硬件驅動層和中間件。在各家新能源車廠高談軟件定義汽車時代已到來時,真正能全面掌握芯片、操作系統(tǒng)、中間件、算法以及常用常新的應用才能走在技術最前沿。其中廣義操作系統(tǒng)是核心中的核心,已成為國內外主機廠自主研發(fā)比拼的方向。 

圖1廣義和狹義OS框圖 

回頭再來談談中間件。中間件是什么,按字面意思翻譯過來就是中間一層組件。實際是介于操作系統(tǒng)/底層軟件和應用軟件之間的橋梁。整個系統(tǒng)軟件可以通過中間件在不同的處理器架構和芯片間共享數(shù)據(jù)。

一套成熟的中間件給開發(fā)帶來的收益往往是指數(shù)級別的進步,大大縮短開發(fā)周期和系統(tǒng)穩(wěn)定度、屏蔽底層硬件差異性做到統(tǒng)一的API接口。 

圖2自動駕駛中間件應用

那么自動駕駛需要怎樣的中間件?低時延、高帶寬和多并發(fā)。

從整車功能域角度出發(fā),自動駕駛是收集外部傳感器數(shù)據(jù)量最大的模塊,為了持續(xù)探測到車身四周各種復雜環(huán)境信息,需要毫米波、攝像頭和激光雷達配合以達到360度無死角感知。并且為了保證安全,所有數(shù)據(jù)都需要接近實時的速度處理,為了保證大量數(shù)據(jù)的實時處理,較低的數(shù)據(jù)延遲需要由高性能的計算單元和高帶寬的網絡通信,數(shù)據(jù)可輕易在不同內核中共享。


圖3 自動駕駛360度傳感器感知示意圖 

傳感器類型

典型帶寬需求

3D毫米波

2M/s

4D毫米波

100M/s

8M攝像頭

2G/s - 3G/s

100線激光雷達

1G/s

 表1 傳感器典型帶寬

從上表中可以知道隨著自駕功能不斷升級,對于傳感器的傳輸數(shù)據(jù)帶寬和傳輸延遲要求也在不斷提升。為了滿足此需求,業(yè)界各家自駕公司也在開發(fā)自己的自動駕駛中間件以滿足要求。 

ICEORYX: 

博世在量產ADAS領域裝配率長期占據(jù)市場前三的份額,他們對于如何將自動駕駛數(shù)據(jù)高效流轉的需求更為迫切,為此在大神Michael P?hnl帶領下,專門為自動駕駛開發(fā)了一套中文名叫“冰羚”,英文名ICEORYX的中間件。 

如上面所說,大量自動駕駛相關的感知數(shù)據(jù)需要在整個系統(tǒng)內完成快速的流轉,這里就不得不提一下進程間通信(Inter ProcessCommunication)這個概念。拿大家最常用的Linux系統(tǒng)舉例,不同進程之間傳播或交換信息,由于不同進程地址空間相互獨立,傳遞數(shù)據(jù)時不停的來回拷貝數(shù)據(jù),建立和釋放堆棧,這個不生成任何價值的拷貝的過程浪費和占有了大量系統(tǒng)資源并產生了不期望的延遲。 

                

圖4 進程間通信 

ICEORYX為了解決上面的問題,設計了一種“零拷貝”的內存共享技術來優(yōu)化之前ADAS量產項目中遇到的困擾。 

這種“零拷貝”通過事前定義好的通用接口,將需要消費的數(shù)據(jù)(圖片原始RGB或者激光點云數(shù)據(jù))放入由ICEORYX申請好的內存空間,然后引入“記數(shù)器”這個概念,來記錄內存空間中各塊數(shù)據(jù)是否被調用還是釋放,當計數(shù)器為0時,就表示該塊數(shù)據(jù)可以被釋放。這樣所有的數(shù)據(jù)調用都發(fā)生在共用的內存區(qū)域中,免去了各進程將數(shù)據(jù)拷貝到自己私有存儲內,大大提高了數(shù)據(jù)通信的效率。 

下面套用一張博世官方介紹材料中的圖,基于共享內存的拷貝其實并不是一種創(chuàng)新的通信機制,但ICEORYX采用了發(fā)布/訂閱架構、服務發(fā)現(xiàn)、和計數(shù)器相結合的機制。通過添加避免復制的應用程序編程接口,實現(xiàn)了所說的真正的零拷貝——一種從發(fā)布者到訂閱者的端到端的方法,而無需創(chuàng)建一個拷貝。

 圖5 零拷貝通信(引用1) 

發(fā)布者將數(shù)據(jù)寫入事前申請好的內存塊中,訂閱者可以收到這些內存塊的實時狀態(tài),并且知道哪些內存塊正在處理中,哪些內存塊將被釋放。發(fā)布者可以在訂閱者讀取數(shù)據(jù)塊的時候同時再次寫入而不收到任何時間干擾和延遲,因為即使之前的內存塊在被讀取中,發(fā)布者也可以選擇之前已經分配好的新的內存塊中操作。 

ICEORYX是開源的,遵從Apache-2.0許可證。任何個人或者團隊都可以免費使用源代碼,但如果需要過ASIL-B或ASIL-D等級功能安全認證,那還需要從博世購買相關的安全服務。 

目前對于ICEORYX這套中間件來說最大的挑戰(zhàn)還是需要有主機廠快速搭載量產車上市,來真正檢驗其價值。另外由于自動駕駛感知信息種類越來越多,激光點云數(shù)據(jù)、攝像頭RGGB幀、3D毫米波雷達目標信息以及4D毫米波雷達點云信息,整車信號數(shù)據(jù)等,如何高效申請和分配內存塊也是實現(xiàn)真正“零拷貝”的前提,這少不了在實際項目中不斷打磨優(yōu)化。 

ROS2:

接下來我們再來看一下大名鼎鼎的ROS2。

說到ROS2不得不先聊一下ROS(Robot Operating System), ROS2正是從ROS發(fā)展升級過來的。ROS最早開發(fā)出來是去適配機器人的一套開源軟件系統(tǒng),里面包含3000多個基礎庫、靈活的進程間通信機制、底層驅動、硬件抽象等。

如前文所述,自動駕駛是非常復雜并對安全性要求很高,它包含了車道線檢測、目標物檢測、障礙物檢測、決策、控制模塊等;需要將這些功能各異的模塊集成到一起,形成一個端到端系統(tǒng)。所以要找到一個適合的中間件框架很不容易,ROS在學術界和機器人屆廣泛使用、消息機制靈活開發(fā)以及豐富調試工具恰恰符合自動駕駛開發(fā)的需求。我們看到國內自動駕駛黃埔軍校百度在早期Apollo1.0/2.0版本中正是選用了ROS框架。

但是在實際開發(fā)應用中,開發(fā)人員發(fā)現(xiàn)了ROS適配自動駕駛的不足之處。比如ROS通信延遲太大,數(shù)據(jù)從發(fā)布節(jié)點到訂閱節(jié)點之間需要進行拷貝,在機器人設計中可能還不是一個Block點,但在自動駕駛系統(tǒng)中很顯然會大大影響數(shù)據(jù)的傳輸效率。另外ROS的單Master節(jié)點機制也是一個瓶頸,所有的子節(jié)點通信都需要借助單一的通信主節(jié)點。萬一主節(jié)點出現(xiàn)故障,整個系統(tǒng)也會受到影響。為了解決ROS的明顯缺陷,百度Apollo在3.5版本后發(fā)布了自研的Cyber RT框架來取代ROS。  

圖6 以Master為中心的ROS交互機制 

ROS社區(qū)和組織也意識到了不足之處,并于2016年底正式發(fā)布了ROS2 beta版,新一代的ROS之中,帶來了整體架構的革新以解決前一代的不足。

ROS底層基于DDS(Data Distribution Service)通信機制,取消了ROS上Master模式。DDS遵從發(fā)布和訂閱模式,創(chuàng)建全局的數(shù)據(jù)塊。然后每一個數(shù)據(jù)的發(fā)布或者訂閱者都是數(shù)據(jù)的參與者,可以讀寫全局的數(shù)據(jù)。同時也保留了ROS中Topic數(shù)據(jù)結構概念。

圖7 基于Topic話題的發(fā)布/訂閱流程 

另外DDS一個重要特質是支持QoS(Quality ofService),滿足在不同場景對于不同數(shù)據(jù)傳輸?shù)膶崟r性要求。每個數(shù)據(jù)傳輸都可以通過QoS策略選擇不同的選項進行配置,ROS2中支持傳輸期限、可靠性傳輸、歷史信息等策略。     

圖8 支持QoS策略的DDS機制 

當然目前ROS2整體穩(wěn)定度和應用案例還遠不如ROS,但擁有了以上特性的ROS2系統(tǒng),我們拭目以待。

極氪軟件和電子中心,秉承平等、多元、共成長的價值觀,對產品持續(xù)極致追求,為用戶提供用心體驗。從中央計算、智能區(qū)域控制器、整車OTA、智能車身控制、整車軟件等領域出發(fā),打造行業(yè)頂級的電子電氣架構,為智能電動車保駕護航。 

目前我們一直在開發(fā)中央計算和區(qū)控制器內高效IPC通信并應用在量產項目中,除了會包含上面提到的共享內存和DDS技術外,還會用到SOME/IP協(xié)議來加強不同服務數(shù)據(jù)之間的傳輸效率。   

圖9 極氪中間件框圖 

另外ZEEKR OS也正在熱火朝天的開發(fā)測試中,作為中央計算SoC核心中間件,將管理整車服務(支持自動駕駛、車身電子控制、底盤、三電和智能座艙等功能持續(xù)迭代)、提供基礎平臺、高度分層解耦、分布式管理。 搭載ZEEKR OS的下一代3.0中央計算平臺將采用全棧自研,專注打造一套高效穩(wěn)定的整車軟件中間件,為自動駕駛、SOA和整車OTA服務提供核心競爭力并持續(xù)賦能。 

責任編輯:張燕妮 來源: 焉知智能汽車
相關推薦

2017-08-22 16:25:01

華為

2015-08-19 10:06:21

2012-09-12 09:40:36

云服務GIS技術彈性云計算

2011-12-16 11:11:24

戴爾

2010-06-14 23:32:04

綜合布線機場西蒙

2013-12-09 16:16:29

初志科技數(shù)據(jù)動車

2014-07-01 10:07:56

2012-06-25 16:57:07

2011-01-04 15:37:44

2015-04-30 15:43:10

eLTE第53屆世乒賽華為

2012-11-13 18:24:03

LinOTPApache2一次性密碼

2019-12-12 09:45:49

Docker容器漏洞攻擊

2012-05-21 09:38:43

2025-02-11 08:23:41

2015-12-16 17:54:33

E店寶

2014-05-22 10:29:11

eLTE無線華為

2013-09-09 12:29:28

企業(yè)郵箱海外通郵

2016-03-16 11:08:19

Zenlayer

2013-02-01 16:48:16

點贊
收藏

51CTO技術棧公眾號