自動駕駛系統入門學習(九) - 無人駕駛客戶端系統

1、無人駕駛客戶端系統

1.1 客戶端系統基礎解析

無人駕駛客戶端系統包括操作系統和計算平臺兩個重要部分;無人駕駛不是單獨的一項技術,而是多種技術的集成,技術的集成在由操作系統和硬件平臺組成的客戶端系統層面上完成。

自動駕駛系統入門學習(九) -  無人駕駛客戶端系統

圖1. 無人駕駛技術集成

首先,傳感器從環境中收集數據,並將這些數據提供給計算平臺進行感知和動作的計算,然後再將動作規劃發送到控制平臺進行執行。但是隻有硬件是不夠的,在硬件之上,還需要一個操作系統來協調這些組件之間所有的通信,並協調不同實時任務的資源分配。

1.2 客戶端系統需要具備的能力

1)系統需要具備足夠的計算能力,用於快速處理大量傳感器數據;

2)系統需要具有較高的魯棒性,即使系統一部分發生故障時,系統也能夠從故障中恢復;

3)系統需要在嚴格的能耗和資源約束下進行所有的計算。

2、操作系統

2.1 機器人操作系統ROS基礎解析

1)機器人操作系統(ROS),是針對機器人應用而量身定製的一個分佈式計算框架;

2)機器人操作系統ROS的特點

—— 分佈式 點對點 : 採用分佈式架構,通過點對點的設計讓機器人的進程可以分別運行,便於模塊化的修改和定製,提高了系統的容錯能力。

—— 多種語言支持 : ROS支持多種編程語言。C++ 、Python 已經在ROS中實現編譯,是目前應用最廣的ROS開發語言,Lisp、C#、Java等語言的測試庫也已經實現。

—— 開源社區:ROS具有一個龐大的社區ROS WIKI,此外,ROS遵從BSD協議,對個人和商業應用的修改完全免費;

3)無人駕駛系統集成包括多個軟件模塊:感知、定位、目標識別、目標跟蹤 、交通預測、路徑規劃、避障、導航等。每個模塊都需要滿足實時需求,以使無人駕駛車輛能夠正常運行。因此需要一個可以進行通信和資源分配的操作系統來管理所有組件,機器人操作系統便是一種能實現這些功能的軟件庫工具。

2.2 機器人操作系統ROS的通信機制

1)ROS主要組件可以分為ROS Master、 ROS Node 和 ROS Service 三種類型。

—— ROS Master 的主要功能是提供服務,它可以存儲啟動時所需的操作參數、上游節點和下游節點之間的連接名稱以及現有ROS服務的名稱。

—— ROS Node 會處理收到的消息,並將消息發送到下游節點。

—— ROS Service 是一種特殊的ROS Node,它相當於一個服務節點,可以接受請求並返回請求的結果。

2)ROS中最重要的概念包括節點、節點管理者、參數服務器、消息、主題、服務和任務。

—— 節點(Node):節點是用來執行任務的過程。

—— 節點管理者/主節點(Node manager/Master):作用即是管理其他節點。每個節點都需要向節點管理者註冊其信息,以便節點管理者協調他們之間的通信。

—— 參數服務器(Parameter Server):參數服務器用於集中存儲系統中節點操作所需的配置參數。

—— 消息(Message): 節點之間的通信內容稱為消息。消息是由類型域組成的簡單數據結構(消息也可以封裝成結構化文本數據或非結構化多媒體數據)。

—— 主題:是一種通信的發佈 - 訂閱機制。節點可以將消息發佈到某個主題,其他節點也可以訂閱相同的主題以接收發布的消息;

—— 服務:是一種一對一的交流機制。節點可以請求服務節點提供服務,從而在這兩個節點之間建立通信信道。

自動駕駛系統入門學習(九) -  無人駕駛客戶端系統

圖2. ROS的通信機制


3、計算平臺

計算平臺的設計直接影響無人駕駛系統的實時性能和魯棒性能。平臺設計的關鍵問題包括成本、功耗、散熱等;

3.1 計算平臺的設計

1)計算平臺達到量產要求的三個關鍵性能指標:

—— 每瓦的性能

—— 每瓦的成本

—— 平臺的生態系統,包括使用這個計算平臺的用戶群以及它的易用性;

2)無人駕駛的計算堆棧示例:

在計算平臺層,提出了一個SoC架構,此SoC架構中,有一個I/O子系統與前端傳感器交互;由DSP負責圖像預處理流以進行特徵提取;由GPU進行目標識別和其他深度學習任務;多核CPU用於規劃、控制和交互任務;由FPGA進行動態重構以分時共享的方式完成傳感器數據壓縮上傳、目標跟蹤和交通預測等工作。

這些計算部件和I/O組件通過共享內存進行數據通信。在上面的計算平臺層,存在一個動態系統,通過OpenCL把不同的工作負荷分配到異構計算單元上執行,並由實時的執行引擎動態地完成務調度。在動態系統之上,我們部署的是機器人操作系統。ROS是一個分佈式操作系統,其中包含了多個ROS節點,每一個節點封裝了一個無人駕駛任務。

自動駕駛系統入門學習(九) -  無人駕駛客戶端系統

圖3. 無人駕駛系統的計算堆棧

3.2 現有的計算平臺解決方案

1)基於GPU的計算解決方案 —— 英偉達

—— Xavier是NVIDIA於2018年初最新發布的AI超級計算芯片,也是全球首個量產的高級自動駕駛的定製處理器,被業界稱為“世界上最強大的SoC(片上系統)。

—— DRIVE AGX Xavier 可實現每秒30萬億次運算,功耗僅為30瓦,搭載基於SoC的6個不同處理器,集成高性能GPU、定製8核CPU架構,可高效運行多種冗餘性深度學習算法;

自動駕駛系統入門學習(九) -  無人駕駛客戶端系統

圖4. 英偉達兩代自動駕駛專用計算芯片性能對比

2)基於DSP的計算解決方案 —— 德州儀器

德州儀器的TDA為無人駕駛提供了一個基於數字信號處理的解決方案。TDA2x SoC 擁有兩個浮點DSP內核C66x和4個專為視覺處理設計的完全可編程的視覺加速器。在任務上相比,ARMCortex-15 處理器視覺加速器可提供8倍的視覺處理加速且功效更低。

自動駕駛系統入門學習(九) -  無人駕駛客戶端系統

圖5. 德州儀器TDA2× 架構框圖(來源 - 德州儀器)

3)基於FPGA的解決方案 —— Altera/特斯拉

a、Altera公司的Cyclone V SoC芯片

Cyclone V SoC 是一種基於現場可編程門陣列(Field-Programmable Gate Array, FPGA)的無人駕駛解決方案,已經在奧迪產品中使用;Altera公司的FPGA為傳感器融合提供優化,結合了車輛中多個傳感器的數據,實現了高度可靠的目標檢測。

自動駕駛系統入門學習(九) -  無人駕駛客戶端系統

圖6. Cyclone V SoC 開發板接口框圖(來源 - Altera)

b、特斯拉自主研發的FSD芯片

FSD芯片,也屬於一款FPGA芯片,其採用三星14nm FinFET製程工藝,核心面積260平方毫米,2.5億個邏輯門,集成了60億個晶體管,32MB SRAM緩存和96×96乘加陣列; FSD芯片中包含了三個能夠提供計算性能的模塊,分別是CPU、GPU和NPU。圖CPU方面,採用的是Cortex-A72架構,三組、每組4個核心,一共有12個核心,最高運行頻率為2.2GHz,這部分處理器核心用於通用的計算和任務。

GPU方面,特斯拉設計了一個支持FP32和FP64的GPU模塊,主頻最高1GHz,最高計算能力約為600GFLPS。

NPU方面,特斯拉FSD芯片內包含了2個NPU,每個NPU中有一個96×96的MAC矩陣,包含了32MB的內置SRAM,整體工作頻率為2GHz。所以在理想的情況下,一個NPU的計算能力是96×96×2OPs×2GHz=36.86TOPS,兩個核心加起來就是73.73 TOPS。一個FSD系統有2個FSD芯片,整板計算能力就是144TOPS。

自動駕駛系統入門學習(九) -  無人駕駛客戶端系統

圖7. 特斯拉FSD芯片內部NPU的微架構框圖(來源 - 特斯拉)

4)基於ASIC的解決方案 —— 英特爾

英特爾(Mobileye) EyeQ5 是基於特定用途集成電路(Application Specific Integrated Circuit, ASIC)的無人駕駛解決方案。EyeQ5具有四種異構的、全編程加速器,分別對專有算法進行優化,包括計算機視覺、信號處理和機器學習任務。這種多樣性的加速器架構使應用程序可以通過使用最適合的內核來存儲計算時間和能量。

自動駕駛系統入門學習(九) -  無人駕駛客戶端系統

圖8. 自動駕駛計算平臺解決方案 - EyeQ5(來源 - Mobileye)

歡迎關注微信公眾號:筋斗雲與自動駕駛,瞭解更多自動駕駛相關技術乾貨內容!


分享到:


相關文章: