日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測(cè)試網(wǎng)

  • 公眾號(hào)
    • 汽車測(cè)試網(wǎng)

    • 在線課堂

    • 電車測(cè)試

自動(dòng)駕駛思考:基礎(chǔ)架構(gòu)篇

2019-07-15 23:18:00·  來源:DataFunTalk  作者:王方浩  
 
周末參加了小馬智行的線下分享,獲益良多。很羨慕北京的環(huán)境,大部分的線下都是在北京,難得有在深圳的。深圳雖然被譽(yù)為最有創(chuàng)新價(jià)值的城市,但關(guān)于技術(shù)方面的交
周末參加了小馬智行的線下分享,獲益良多。很羨慕北京的環(huán)境,大部分的線下都是在北京,難得有在深圳的。深圳雖然被譽(yù)為最有創(chuàng)新價(jià)值的城市,但關(guān)于技術(shù)方面的交流簡直少的令人發(fā)指。

下面根據(jù)這次分享的內(nèi)容,依次介紹下我的一些思考。

首先分享的是無人駕駛的基礎(chǔ)架構(gòu)。如果說之前自動(dòng)駕駛秀肌肉,都是通過 demo 演示下雨天真實(shí)路況穿越隧道。那么之后會(huì)逐步轉(zhuǎn)變?yōu)樾慊A(chǔ)架構(gòu)。我覺得現(xiàn)在如果哪個(gè)無人駕駛公司對(duì)基礎(chǔ)架構(gòu)還不夠重視,基本上就已經(jīng)掉出第一梯隊(duì)了。那么我們需要哪些基礎(chǔ)架構(gòu)呢?
 

下面根據(jù)各個(gè)模塊的內(nèi)容,逐個(gè)分析下有哪些應(yīng)用場(chǎng)景,為什么我們需要這些系統(tǒng)。

存儲(chǔ)

首先我們看下存儲(chǔ),在自動(dòng)駕駛中如何應(yīng)用,有哪些應(yīng)用場(chǎng)景?

- 文件系統(tǒng)

- 數(shù)據(jù)庫

- 數(shù)據(jù) meta

自動(dòng)駕駛每天會(huì)產(chǎn)生大量的數(shù)據(jù),之所以有這么多數(shù)據(jù)是因?yàn)闊o人車配置了多種傳感器,這些傳感器包括攝像頭,激光雷達(dá),GPS 等。每秒鐘會(huì)生產(chǎn)大量的數(shù)據(jù),30分鐘的數(shù)據(jù)量就有幾百 G,如果是一天的時(shí)間一輛車可能就產(chǎn)生幾T的數(shù)據(jù)。由于數(shù)據(jù)量太大,我們有3種處理方式,第一種,緩存最近2分鐘的數(shù)據(jù),其他的數(shù)據(jù)處理完之后丟棄,這也是無人車正常情況下的做法,但是這種場(chǎng)景只適合正常運(yùn)行的無人車,如果我的需求是采集地圖,或者收集訓(xùn)練數(shù)據(jù),那么就不太合適了。為了解決上述問題,后面的2種方法就是考慮如何把數(shù)據(jù)保存下來。第二種,保存到硬盤,之后再回傳到數(shù)據(jù)中心,這種方法是目前普遍的方法,由于磁盤讀寫速率要求太大,普通的機(jī)械硬盤根本滿足不了需求,只能采用 SSD 硬盤,1T 的 SSD 硬盤1200多塊錢,還是很燒錢的。最后一種就是通過網(wǎng)絡(luò)傳輸,目前 4G 的網(wǎng)速肯定是支持不了這么大數(shù)據(jù)的,5G 目前看是有可能,但也禁不起這么大流量,合理的做法是小數(shù)據(jù)通過網(wǎng)絡(luò)傳輸,大數(shù)據(jù)落盤,把車的位置信息通過網(wǎng)絡(luò)實(shí)時(shí)回傳到數(shù)據(jù)中心,實(shí)現(xiàn)所有無人車的管理,其他的信息落到硬盤,記錄運(yùn)行情況。
介紹了自動(dòng)駕駛的數(shù)據(jù)生產(chǎn)場(chǎng)景,那么再接下來看我們需要什么樣的存儲(chǔ),首先我們需要一個(gè)分布式的文件系統(tǒng),大數(shù)據(jù)時(shí)代已經(jīng)被廣泛證明了分布式文件系統(tǒng)的好處,最主要的好處就是容量可以水平擴(kuò)展,而且可靠性高。這樣每天產(chǎn)生的幾十T的數(shù)據(jù)都可以通過分布式文件系統(tǒng)保存下來。

接下來就是數(shù)據(jù)庫的要求,這里主要分析下自動(dòng)駕駛場(chǎng)景和傳統(tǒng)互聯(lián)網(wǎng)的區(qū)別,分享的老師也提到了,互聯(lián)網(wǎng)的數(shù)據(jù)生產(chǎn)方式是幾億用戶,每人產(chǎn)生幾條數(shù)據(jù),合起來幾個(gè)T,而無人車是一輛車,每天產(chǎn)生幾T數(shù)據(jù),這里的差別很大?;ヂ?lián)網(wǎng)中針對(duì)幾億用戶,一般是選擇 key-value 結(jié)構(gòu)的數(shù)據(jù)庫,例如 Hbase。但是如果把 Hbase 照搬到自動(dòng)駕駛的場(chǎng)景就很別扭,因?yàn)?Hbase 的單條數(shù)據(jù)最好是 10M 以內(nèi),否則會(huì)影響讀寫性能。這時(shí)候有人說我們可以把數(shù)據(jù)做拆分,把幾個(gè) T 的數(shù)據(jù),根據(jù)地理位置信息或者時(shí)間做拆分,把地理位置信息或者時(shí)間作為 key,當(dāng)時(shí)的數(shù)據(jù)作為 value,這樣就可以實(shí)現(xiàn)一條數(shù)據(jù)很小,拆分成很多 key-value 的小數(shù)據(jù)了。我們?cè)倩剡^頭去看下互聯(lián)網(wǎng)的應(yīng)用場(chǎng)景,互聯(lián)網(wǎng)場(chǎng)景下是拿用戶的 ID 作為 key,如果同時(shí)頻繁的命中相鄰的 ID,被稱為單點(diǎn)問題,即容量上不去,每次訪問都到一臺(tái)機(jī)器上面去了。而按照地理位置或者時(shí)間的方式剛好又導(dǎo)致了這個(gè)問題,因?yàn)閿?shù)據(jù)讀取的時(shí)候就是按照地理位置順序讀取的,每次都命中到一臺(tái)機(jī)器,導(dǎo)致整個(gè)系統(tǒng)的容量上不去。如果我們把 key 做哈希散列,把地理位置信息打散,這樣容量是提高上去了。而這恰恰又和我們的應(yīng)用場(chǎng)景有沖突,我們需要的不是高并發(fā)讀取,即同時(shí)幾十萬的并發(fā),而是一個(gè)用戶連續(xù)讀取大量數(shù)據(jù),這樣反而是單臺(tái)讀取的性能最高,因?yàn)闀?huì)對(duì)數(shù)據(jù)做預(yù)取。所以我一度懷疑,自動(dòng)駕駛的大數(shù)據(jù)需求都是偽需求,雖然說數(shù)據(jù)幾 T 幾 T 的,但是根本不是大數(shù)據(jù),就是數(shù)據(jù)量大而已,根本不需要數(shù)據(jù)庫,只需要文件系統(tǒng)就可以了。如果需要管理結(jié)構(gòu)化的數(shù)據(jù),還不如用數(shù)據(jù)庫存儲(chǔ)文件路徑,而文件本身放到文件系統(tǒng)中。
 
所以以后自動(dòng)駕駛的公司再提到大數(shù)據(jù),別以為有多了不起,就是一個(gè)人虛胖了而已。但有一點(diǎn)我認(rèn)為很重要,就是數(shù)據(jù) meta,為什么需要數(shù)據(jù) meta 呢?數(shù)據(jù) meta 是詳細(xì)的記錄了數(shù)據(jù)信息的數(shù)據(jù),比如采集的時(shí)間,地點(diǎn),天氣,采集的人,當(dāng)時(shí)的情況等信息,對(duì)數(shù)據(jù)做分類管理。類似你到了一個(gè)圖書館,圖書館的書都是按照類目分門別類,然后你找書的時(shí)候直接按照索引來找就行了,試想一下,如果你去了一個(gè)圖書館,沒有分類,書是按照出版時(shí)間來放置的,那么讓你找一本烹飪類的但是不知道出版時(shí)間的書,試問你如何找到呢?由于自動(dòng)駕駛的數(shù)據(jù)極其不具備可視化,就是一大堆二進(jìn)制文件,沒有什么可視化的信息。而且自動(dòng)駕駛的場(chǎng)景多樣,路況,時(shí)間,天氣都不一樣,數(shù)據(jù)量巨大,版本更新快。如果不分門別類,做好信息的 meta,那么后面假如你需要找所有下雨天的數(shù)據(jù)來進(jìn)行測(cè)試,你如何去找呢?還得每個(gè)包確認(rèn)下是否下雨?另一種應(yīng)用場(chǎng)景就是測(cè)試數(shù)據(jù)的管理,每天測(cè)試的大量數(shù)據(jù),什么時(shí)候因?yàn)槭裁丛蚪庸艿?,這在后面回歸測(cè)試和仿真中很關(guān)鍵,如果沒有這些 meta 信息,假如我需要查找所有紅綠燈引起的問題,來回歸測(cè)試,我怎么怎么去查找呢?數(shù)據(jù) meta 對(duì)自動(dòng)駕駛的數(shù)據(jù)管理尤為關(guān)鍵,甚至目前我覺得自動(dòng)駕駛只需要數(shù)據(jù) meta 和文件系統(tǒng)就可以了。
 
當(dāng)然有一個(gè) Hbase 的 Committer 加入了小馬,我覺得 Hbase 可能主要應(yīng)用在他們的打車服務(wù)上,比如 routing 路線的記錄,車和用戶的信息管理等??梢钥吹贸鰜硇●R對(duì)基礎(chǔ)建設(shè)這塊還是很重視的,也希望更多的人能夠提出更多更好的基礎(chǔ)建設(shè)。
 
計(jì)算
有了數(shù)據(jù)之后,需要計(jì)算才能得到結(jié)果,這就要用到計(jì)算平臺(tái)。計(jì)算可以分為2塊,一塊是離線計(jì)算,一塊是在線計(jì)算。離線計(jì)算就是數(shù)據(jù)的處理,這一塊應(yīng)該是可以完全借鑒互聯(lián)網(wǎng)的分布式計(jì)算平臺(tái),因?yàn)闊o人車收集的數(shù)據(jù)需要分類,清洗,以及一些處理。一部分的應(yīng)用場(chǎng)景是高精度地圖的制作,需要把采集到的地理位置信息離線計(jì)算生成高精度地圖;另一部分的應(yīng)用場(chǎng)景是離線計(jì)算好一些數(shù)據(jù)給到在線,利用空間換時(shí)間。比如 planning 模塊 reference line 的生成;routing 線路事先計(jì)算保存;感知的 ROI 區(qū)域;定位的點(diǎn)云數(shù)據(jù)處理等。主要的需求是能夠更快的處理數(shù)據(jù),這一部分用 spark 就可以解決了。
 
在線計(jì)算主要是無人車的實(shí)時(shí)計(jì)算,感知車當(dāng)前的環(huán)境,控制車輛前進(jìn)。這一部分目前主要是一些異構(gòu)計(jì)算,通用的計(jì)算放在 CPU 上,神經(jīng)網(wǎng)絡(luò)的計(jì)算放在 GPU 上,控制部分有單獨(dú)拿處理器做的,這一塊可以參考下博世等廠家。目前看好的趨勢(shì)是拿 FPGA 做一些定制的算法開發(fā),好處是比純軟件快,而且靈活,并且 FPGA 可以和硬件傳感器深度定制。比如4路 camera,之前遇到一個(gè)問題是關(guān)于4個(gè) camera 如何保持同步,即每個(gè)攝像頭拍照的時(shí)間戳如何同步,看起來很難處理,你怎么保證它們同時(shí)拍攝呢,其實(shí)攝像頭有一個(gè) trigger 功能,即每次拍照類似按下快門,如果每次拍照的時(shí)候同時(shí)按下4個(gè)攝像頭的快門,這樣就能保證攝像頭的同步了,高級(jí)點(diǎn)的攝像頭都帶有這個(gè)功能,可以預(yù)見 FPGA 和硬件算法的融合,會(huì)在在線計(jì)算中扮演越來越重要的角色。在線計(jì)算還需要低時(shí)延,這一塊在自動(dòng)駕駛平臺(tái)中再介紹,我們到底需要一個(gè)什么樣的自動(dòng)駕駛平臺(tái)?
 
基礎(chǔ)服務(wù)

有了計(jì)算和存儲(chǔ),我們可以搭建基礎(chǔ)的自動(dòng)駕駛服務(wù),但是如果要提供更多的服務(wù),我們還需要以下幾個(gè)部分。

- RPC

- 消息隊(duì)列

- 配置中心

- 容器

基本就是互聯(lián)網(wǎng)服務(wù)的編排,部署和運(yùn)維了。主要的應(yīng)用場(chǎng)景比如打車服務(wù),需要用到微服務(wù)架構(gòu),需要消息隊(duì)列,需要配置中心,需要容器編排,這些都是比較成熟的架構(gòu)了,網(wǎng)上有大量資料,就不展開了。

下面我們主要講下實(shí)時(shí)計(jì)算平臺(tái),也就是無人車的自動(dòng)駕駛平臺(tái),聽到小馬說我們是自己研發(fā)的一套自動(dòng)駕駛操作系統(tǒng),我還是感到有點(diǎn)震驚的,后面仔細(xì)想想其實(shí)可以把問題轉(zhuǎn)換一下,看起來也就不是那么遙不可及了,當(dāng)然如果要自研一套這樣的系統(tǒng),肯定是需要一個(gè)穩(wěn)定成熟的團(tuán)隊(duì)。首先看下我們需要一個(gè)什么樣的自動(dòng)駕駛平臺(tái)呢?我們由自動(dòng)駕駛需要哪些模塊來進(jìn)行展開。

下面我們看下各個(gè)模塊是如何工作的,我們以激光雷達(dá)來舉例子,激光雷達(dá)實(shí)時(shí)的拍攝了一幀數(shù)據(jù),然后放到了系統(tǒng)內(nèi)存,這時(shí)候感知和定位模塊都需要處理激光雷達(dá)的數(shù)據(jù),一個(gè)不好的方式的是把數(shù)據(jù)拷貝一份分別給感知和定位模塊,因?yàn)榇髷?shù)據(jù)的拷貝很耗時(shí)間,影響系統(tǒng)性能。我們需要換一種方式,以傳遞內(nèi)存地址的方式把數(shù)據(jù)給感知和定位模塊,減少內(nèi)存的拷貝,分享的老師也強(qiáng)調(diào)了這點(diǎn)。接下來我們把剛才的過程抽象一下,即來了一份激光雷達(dá)的數(shù)據(jù)之后,系統(tǒng)分別調(diào)用定位和感知的函數(shù),并且把數(shù)據(jù)在內(nèi)存中的地址作為參數(shù)傳遞進(jìn)去。接著我們把模塊抽象一下,我們有3個(gè)模塊,系統(tǒng)平臺(tái)需要把 A 模塊的數(shù)據(jù)傳遞給 B 和 C 模塊,這樣一來,我們需要的是一個(gè)能夠同時(shí)發(fā)送消息給多個(gè)模塊的功能,即一個(gè)分布式的消息隊(duì)列。
 

也就是說自動(dòng)駕駛平臺(tái)實(shí)際上實(shí)現(xiàn)2個(gè)功能就可以了,一個(gè)是分布式消息隊(duì)列,一個(gè)是各個(gè)模塊的調(diào)度執(zhí)行。所以我們把研發(fā)一個(gè)自動(dòng)駕駛操作系統(tǒng),轉(zhuǎn)換為研發(fā)分布式消息隊(duì)列和進(jìn)程調(diào)度的問題了,這樣看起來就簡單了很多,因?yàn)槎加鞋F(xiàn)成的例子可以借鑒,回過頭來看 Apollo 的 cyber 也就是實(shí)現(xiàn)了這2件事。最后還分享了一下研發(fā)效率提升的一些基礎(chǔ)建設(shè),包括代碼管理,代碼 review,內(nèi)存泄露檢測(cè),代碼掃描等,這些都代表了開發(fā)質(zhì)量和生產(chǎn)力。

業(yè)務(wù)場(chǎng)景

上面主要是分享了一下基礎(chǔ)的建設(shè),那么如何和業(yè)務(wù)場(chǎng)景聯(lián)系呢,我們接下來看目前的一些業(yè)務(wù)場(chǎng)景:

- 打車服務(wù) - 小馬主打 L4 的自動(dòng)駕駛,目前主要是運(yùn)營打車業(yè)務(wù),類似一個(gè)滴滴提供的服務(wù)。

- 地圖服務(wù) - 主要是提供高精度地圖服務(wù)。

- 人機(jī)交互 - 主要是人和車如何交互,如何知道車當(dāng)前的狀態(tài),所處的環(huán)境等。比如坐車的時(shí)候可以通過界面知道車當(dāng)前的狀態(tài),自己所處的位置,有沒有異常等。不僅僅應(yīng)用在乘客,還可以應(yīng)用在內(nèi)部測(cè)試和研發(fā)。這一部分我覺得主要是夸平臺(tái),免得二次開發(fā),目前來看大部分的公司采用的都是 web 服務(wù)。

- 車輛管理 - 類似現(xiàn)在的美團(tuán)外賣,實(shí)時(shí)知道外賣員的位置和派單信息,用算法來動(dòng)態(tài)調(diào)度,無人車還需要多一個(gè)功能就是實(shí)時(shí)監(jiān)控?zé)o人車的健康狀態(tài),可以理解為監(jiān)控滿大街在跑的服務(wù)器?

- 數(shù)據(jù)采集 - 主要是針對(duì)測(cè)試和采集地圖的場(chǎng)景,需要一套全自動(dòng)的采集流程,并提供可視化的交互,如果全部手工完成工作量太大了。

- 測(cè)試平臺(tái) - 主要是針對(duì)無人車的各項(xiàng)測(cè)試,包括硬件和軟件,這涉及到各個(gè)模塊,我覺得主要是流程的維護(hù)和測(cè)試項(xiàng)的定義,保證質(zhì)量。

- 仿真平臺(tái),仿真是介紹的重點(diǎn)之一,在版本發(fā)布之前,都需要在仿真平臺(tái)測(cè)試,目前宣稱的測(cè)試?yán)锍淌?30W 公里,這一塊肯定用到了分布式計(jì)算,否則沒法實(shí)現(xiàn)。另外我覺得這個(gè)流程也挺有意義,在無人車路測(cè)之前進(jìn)行仿真,可以減少故障,類似發(fā)布之前的集成測(cè)試。由于不需要真車,可以跑大量的測(cè)試,對(duì)工程化是很重要的一環(huán)。關(guān)于仿真還有另外的用途就是復(fù)現(xiàn)場(chǎng)景,比如一次撞車或者接管事故,現(xiàn)場(chǎng)不可能再去復(fù)現(xiàn),成本太高,而通過仿真去模擬復(fù)現(xiàn)這些問題就變得容易多了,另外一個(gè)應(yīng)用是訓(xùn)練模型,對(duì)于需要大量數(shù)據(jù)的訓(xùn)練,仿真可以虛擬和合成大量的數(shù)據(jù),提高效率。關(guān)于仿真可以參考。
總結(jié)

以上就是根據(jù)上次宣講憑記憶整理出來的一些思考和體會(huì),有錯(cuò)誤或者疏漏的地方歡迎指正,另外也期待更多的關(guān)于基礎(chǔ)架構(gòu)的介紹和分享,后面會(huì)接著介紹硬件和感知的分享和體會(huì)。
分享到:
 
反對(duì) 0 舉報(bào) 0 收藏 0 評(píng)論 0
滬ICP備11026917號(hào)-25