講一點點自動駕駛技術(1)概論

Johannes Quan發表於2020-10-01

講一點點自動駕駛技術(1)概論

作為一個自動駕駛小菜鳥工程師,小Q入門才兩三年時間,最近空閒時間比較多,利用這個平臺把自己對於無人駕駛技術所看所學的東西在這進行一個整理,一來自己看著方便,二來供大家交流學習(Xiao Xi)。
ps:如果大家覺得我裡面有什麼錯誤或者更新的話,歡迎來一起交流交流,感激不盡,感激不盡,感激不盡。重要的事情講三遍。
pps:這一個比較長的系列文章,小Q打算從概述開始,到定位系統,到感知,然後路徑規劃,以及決策,規劃和控制亂七八糟一大堆,最後說一說深度學習和平臺。但也不一定是這個順序,想到哪裡寫哪裡吧。
enmmmmm 先想到這些,之後想到的再加上去。
OK了, 今天開門見山第一章,概論。概論小Q會把所有的東西拎出來儘量用白話說個大概,比較適合作為小白入門讀物,和大神睡前催眠讀物。



前言(一些廢話)

從1885卡爾本茨(小Q校傑出校友,得瑟一下 )研製成功人類第一臺嚴格意義上的汽車,一舉奠定了汽車設計基調,即使現在的汽車也跳不出這個條條框框。隨著科技不斷髮展,汽車這種傳統技術受到了來自新的發展的科技的挑戰,傳統OEM廠商只關心自己的傳統硬體的技術積累:發動機的功率和節油經濟型,變速箱的穩定和順滑性等等傳統傳動件,到後來對於之後舒適性的挑戰:nvh等等。而後隨的時間發展車上面的結構越來越多,在20世紀70年代,電子技術大規模應用到汽車上面,之前從最開始的交流發電機,電子閃光,喇叭和電子點火到70年代末,積體電路和微處理器在汽車的電子構架的大規模推廣,這時出現了兩個比較經典和代表性的技術:電子汽油噴射技術和ABS,這時機械功能用電子技術進行控制已經達成了廣泛的共識。後來在80年代到90年代微處理器的應用日漸成熟並且逐漸智慧化。從倒車示警,TPI電子負荷調節到車上大哥大電話,都是在這個時期上車的。進入二十一世紀,多路傳輸,ASKS-32微處理器,從模擬到數字訊號,動力優化系統,自動駕駛和電子地圖,都在這時候出現。

有關一些其他的CNA bus到Flex ray一些些內容太多,以後有時間可以自己整理整理。

但是這些發展都在循規蹈矩仍然跳不出傳統OEM對於汽車的定義,直到特斯拉的這個行業"攪屎棍“的誕生。就像手機行業一樣,如果沒有Iphone的誕生, 諾基亞還在沉迷於自己家的落後於時代的塞班系統無法自拔,而索尼還在和三星在比拼的手機攝像頭的畫素。如果沒有特斯拉,也許我們在為寶馬i8的三缸加電機續航60公里的“綠色”跑車點贊。

特斯拉如何顛覆汽車行業,在網上有太多的解讀和文章了,都是高人的理解, 我就簡簡單單以軟體方面來說點我自己的。對於汽車而言,大多數人都認為所謂的汽車就是一個發動機,傳動軸,變速箱加四個輪子加上其他的系統。總而言之,大眾亦或是整車廠而言對於汽車僅僅是停留在硬體製造的概念上。其他的 we dont care, 而現在的汽車,亦或是對於新能源汽車而言,它不僅僅是一個硬體的製造,而是把它升維當作一個電子數碼產品:這就意味著核心的零部件從發動機變速箱轉而為中控螢幕,晶片和感測器。所以在軟體層面,汽車的電子構架會從分散式ECU轉向集中式構架進,而發展迅速且成熟的網際網路軟體機器智慧裝置的整合式裝置系統對目前的汽車電子構架實現的降維打擊。並且和現代的智慧電子裝置相似的是,在服務和應用場景甚至輔助駕駛功能都可以通過OTA進行遠端升級和更新系統,這就開啟了一個潘多拉的魔盒,智慧電子裝置如手機可以作為我們日常支付,通訊,生活的核心裝置,那汽車也可以成為我們涉及出行,家,辦公地點,生活娛樂場所等等各種服務和應用的入口。
所以這就是所謂談及的軟體驅動汽車產業升級,汽車從原來的賣硬體到賣軟體賣服務的轉型。核心的價值和利潤從傳統的發動機,車身,底盤,品牌溢價,變成了軟體系統,晶片,電池,大資料和服務。這是一個傳統車企完全沒有經驗和技術積累的戰場,所以對於傳統車企的轉型:that will be actually very bloody,不轉型基本只有一個死在前面等著。所以不管是後知後覺還是先知先覺,movement should be taken somehow:豐田宣佈他們在改變自己的公司定位:從傳統的汽車公司轉型為汽車出行公司,表示自己的潛在競爭對手從BBA大眾等老牌車企轉到Apple,google,BAT等網際網路科技企業;大眾將自己的軟體部門拆分重組成立“Car.software"全新汽車開發部門,這個部門涵蓋互聯車輛&裝置平臺,智慧車身&數字化座艙,自動駕駛,車輛車型&能源,數字化服務及移動出行。
在這個來臨的高潮當中,100%的國內車企相信早已經看到,這是自己相對於國外oem一個彎道超車的絕好機會,對於傳統汽車來講,國外的車企有著近百年的技術積累和專利壁壘,在短時間內國內車企追平甚至超越可以說是天方夜譚。但是我們也看到,國內的車企也是相對意義的傳統車企,轉型勢必也一樣,疼,非常疼。
扯多了,回正題:軟體。
實際在傳統上面,如上面所講的,汽車各個電子系統都發展的非常迅速,以分散式的構架(及每個子系統都會有他自己獨立的晶片,軟體亦或是處理器),但是汽車的各個部件的通訊仍然是一個難題,這裡套用Alex Voigt 那片非常有名的部落格《Wir haben geschafen es wird blutig》(很多人誤以為作者是Peter Mertens,Ex-leader F&E Audi AG)裡面的比喻非常形象:Die Deutsche Automobilindustrie ist wie ein unkoordiniterter Okopus, 德國的汽車工業就像一隻毫無章法的章魚,這是一個隱含的比喻。
接下來我翻譯其中幾段:
“當你把章魚的觸手當作汽車的中不同功能和子系統,你會很明確的發現所有的子系統已經被明確的定義了,因為內燃機這個技術已經非常成熟,真正的創新已經不會出現了。”
“如果你在開著一輛傳統OEM廠商製造的車輛,大約會有幾百枚晶片各自執行這而組成一個非常複雜的網路。但這些從來都沒有整合或者集中過。因為是成千上萬個供應商參與,有時候他們合作開發,有時候獨立開發。但是他們都有一個共同點:所有的子系統都只會在自己的小黑盒裡面工作,並且不會和CPU----也就是我們類比的章魚的中央大腦進行溝通。”

所以軟體勢必成為未來車企的重中之重,在未來的汽車行業中,大部分“血液裡面充滿的汽油”的高階管理人員必將淘汰出核心區域,取而代之的是“血液中有電和程式碼“的的人。不瞭解什麼是軟體什麼是系統的人坐在高位去應對這一場革命,勢必會在這場風暴面前安排得明明白白。

嘮叨了一些廢話,不是特別有邏輯,但是以後有時間了會補充,修改。不對的大家請斧正,蝦蝦儂們

我們迴歸總正題,這一篇我們來說無人駕駛技術的概述吧。


一、無人駕駛概述

說實在自動駕駛不是一個單一的技術,而是由很多各子系統組成的高度複雜的系統。小Q這裡主要把它按照三個方面來講: 演算法(感測,感知和決策);客戶端(作業系統和硬體平臺);雲(高精地圖,模型訓練,模擬等等)
一個非常簡單的系統構架如圖所示:

在這裡插入圖片描述圖片來自:https://www.sohu.com/a/143562859_633698

這個圖很重要,小Q會根據這張圖一項項在下面的系列文章一個個講。

圖上所看到的子系統通過從感測器原始資料中提取資訊來探測環境,以此為參考對下一步的行為做出決策。而客戶端系統將這些演算法合成在一起,同時滿足實時性和可靠性需求。這裡的雲平臺可以提供的功能如圖所示:高精地圖的日常OTA,上傳並儲存資料然後對識別,決策和跟蹤模型進行更好的訓練反過來對車輛的識別,決策和跟蹤功能進行更新。

下面一個一個的走一遍個大概。然後在接下來的系列文章裡面,我會剖開來一個個細說。

1.自動駕駛的演算法

所謂自動駕駛的演算法,重要的事情說無數遍:感測,感知和決策。

感測呢,就是從感測器獲取的資料當中過濾出有用的環境資訊供下一步使用;
感知分為兩個方面:1,車輛定位,2,周圍環境資訊的理解;
決策部分就是根據感測和感知的資料進行相對應的操作來應對外部環境。

1.1感測

感測,最主要的硬體其實就是車載感測器,我這裡主要說四種。

GPS/IMU

GPS(GlobalPositioningSystem):指美國國防部研製的全球定位系統。使用者裝置通過接收GPS訊號,得到使用者裝置和衛星的距離觀測值,經過特定演算法處理得到使用者裝置的三維座標、航向等資訊。使用不同型別的觀測值和演算法,定位精度為釐米級到10米級不等。GPS的優點是精度高、誤差不隨時間發散,缺點是要求通視,定位範圍無法覆蓋到室內。

IMU(Inertial measurementunit):指慣性測量單元。包括陀螺儀和加速度計。陀螺儀測量物體三軸的角速率,用於計算載體姿態;加速度計測量物體三軸的線加速度,可用於計算載體速度和位置。IMU的優點是不要求通視,定位範圍為全場景;缺點是定位精度不高,且誤差隨時間發散。

MM(Map matching):指地圖匹配。該技術結合使用者位置資訊和地圖資料,推算使用者位於地圖資料中的哪條道路及道路上的位置。

引自 https://www.cnblogs.com/amap_tech/p/11381689.html

GPS和IMU是兩個互補的定位技術。GPS屬於相對精度較高但重新整理率較慢,一般只有10Hz左右,對於自動駕駛的車輛0.1s一個迴圈是遠遠不夠的,而IMU能達到200Hz以上的重新整理頻率,但是IMU會隨著時間而積累歷史誤差,導致到後面誤差越來越大。所以融合GPS和IMU兩種技術,可以達到高精度且高實時性的位置更新。

但是GPS的精度對於自動駕駛釐米級的精度要求遠遠是不夠的,所以在主流的技術當中,GPS+IMU+高精地圖+鐳射雷達或者GPS+IMU+視覺定位是主要的解決方法。這是後話,在之後的定位的章節中我們攤開細說。

鐳射雷達

鐳射雷達(LIDAR)是軍轉民的高精度雷達技術。鐳射雷達的應用一開始主要為軍事領域,受到了各國軍事部門的極大關注。相比普通雷達,鐳射雷達可提供高解析度的輻射強度幾何影像、距離影像、速度影像。在民用領域中,鐳射雷達因其在測距測速、三維建模等領域的優越效能也被廣泛應用。

在這裡插入圖片描述

轉自 https://blog.csdn.net/weixin_42229404/article/details/81408909?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf

鐳射雷達可以用於HD Mapping,localization等等用處。工作原理是發射鐳射束,接收表面反射,然後測量反射時間來確定距離。精度可以達到釐米級別。鐳射雷達分為兩種,機械式鐳射雷達和固態鐳射雷達。
機械式鐳射雷達顧名思義,它帶有控制鐳射發射角度的旋轉部件,由光電二極體,MEMS反射鏡,鐳射發射接收裝置組成,其中機械旋轉部分是指可360度旋轉的MEMS發射鏡。下面是機械鐳射雷達的原理圖:


圖片源自 https://blog.csdn.net/qq_38403231/article/details/100021569

下面是固態鐳射雷達。

固態鐳射雷達主要是依靠波的反射或接收來探測目標的特性,大多源自三維影像感測器的研究,實際源自紅外焦平面成像儀,焦平面探測器的焦平面上排列著感光元件陣列,從無限遠處發射的紅外線經過光學系統成像在系統焦平面的這些感光元件上,探測器將接受到光訊號轉換為電訊號並進行積分放大、取樣保持,通過輸出緩衝和多路傳輸系統,最終送達監視系統形成影像。
根據解決方案不同目前主流可以分為三種:

1.MEMS微電機系統
2.OPA光學相控陣技術
3.Flash

在這裡插入圖片描述圖片源自http://mp.ofweek.com/laser/a145663427086

是不是雲裡霧裡的,但是無所謂,其實我也不太懂,這裡只是一個大概,詳細的資訊會在以後文章裡面等我查文獻揉碎了討論討論。

攝像頭

攝像頭,這個感測器的主要工作使用與目標識別和目標跟蹤任務,舉幾個例子:車道偏離預警(LDW)、前向碰撞預警(FCW)、交通標誌識別(TSR)、 車道保持輔助(LKA)、行人碰撞預警(PCW)、全景泊車(SVP)、駕駛員疲勞預警等眾多功能都可藉助攝像頭實現。目前所有的自動駕駛系統級別的硬體解決方案都會有攝像頭,因為相對於鐳射雷達和毫米波雷達,攝像頭的成本會很低,所以價效比非常高,所以目前做到無人駕駛(L4 L5)要在周圍安裝至少8個1080p的高清攝像頭(xRxL8V到xRxL12V方案)去觀測前方,後方,左右兩側的車輛行人以及物體。通常攝像頭會以60Hz的頻率工作,當所有攝像頭同時工作,每秒會產生以GB為單位的資料,這會對後續的處理單元硬體會有很高要求。

圖就不放了,誰沒見過攝像頭嗎??

毫米波雷達和超聲波雷達

這裡先解釋名詞,毫米波是指波長1mm到10mm之間的電磁波,即頻率介於30GHz到300GHz之間的,目前主流的毫米波雷達頻率為42GHz和70GHz,其中70GHz產品為新一代產品,且目前只有毫米波雷達頭部企業如bosch,Conti,Denso和Delphi幾家公司掌握。
超聲波即頻率大約為40kHz, 48kHz 和 58kHz 三種的電磁波,沒打可說的。

先看看圖看看長啥樣子吧。

在這裡插入圖片描述
這是一個博士的第五代毫米波雷達,77GHz的,小Q曾經參加過這個雷達在國內的本地測試。

在這裡插入圖片描述
這是一個超聲波雷達,其實你自己去看看自己的愛車,帶倒車報警的車輛在一般在前翼子板和後面保險槓附近都會發現一個小圓圈的東西,其實就是這個玩意(倒車時候嗶嗶聲就是這些小東西在替你探測距離)。

大概說一下這兩個雷達吧。
所謂的毫米波雷達,就是指工作頻段在毫米波頻段的雷達,測距原理跟一般雷達一樣,也就是把無線電波(雷達波)發出去,然後接收回波,根據收發之間的時間差測得目標的位置資料。毫米波雷達就是這個無線電波的頻率是毫米波頻段。

毫米波雷達的頻帶很寬,適用於各種寬頻訊號處理;並且可以在小的天線孔束下形成極窄的窄波束,指向性優良,跟蹤精度很高;多普勒分辨力好,所以測速精度高;它對目標形狀的細節敏感,素以可以提高目標分辨和目標識別能力與成像質量;抗干擾效能好,所以可以全天候工作。

超聲波雷達的工作原理其實和毫米波雷達差不多,也是通過超聲波發射裝置向外發出超聲波,到通過接收器接收到傳送過來超聲波時的時間差來測算距離。目前,常用探頭工作頻率有 40kHz, 48kHz 和 58kHz 三種。一般來說呢,頻率越高,靈敏度越高,但水平與垂直方向的探測角度就越小,所以在大部分的主流採用 40kHz 的探頭。超聲波雷達防水、防塵,即使有少量的泥沙遮擋也不影響。探測範圍在 0.1-3 米之間,而且精度較高,非常非常適合應用於泊車。

這兩類雷達主要用於組成避障的最後一道防線。毫米波雷達和超聲波雷達產生的資料顯示的車輛道路前方最近物體的距離和速度。一旦我們發現遠處有一個物體可能有碰撞的危險,那麼無人駕駛車輛就應該制動或者轉向(決策層,後面說)避開障礙物。因此,雷達的資料不需要太多複雜處理輸出給控制器,所以轉向,制動或者安全帶預緊這類的“緊急”功能並不需要著重於計算流程。

1.2 感知

感知這這一部分就是感測的下一站,感測器過濾後的資料被送入感知系統,通過這些資料車輛會理解當前所處的環境和自己的位姿。理解環境和本車位姿即感知系統的三個主要任務:定位,目標識別和目標跟蹤。
一個一個來簡單說一下。
定位,一般來講,在我們上面感測的段落裡面我們已經知道,GPS和IMU是專門用於定位的感測器,GPS的精度高但更新速率慢,IMU更新快但是誤差會累積越來越大,這時候我們就要結合兩者的優點,這就是在無人駕駛當中一個非常重要的技術手段:sensor fusion,在這裡我們是使用卡爾曼濾波融合兩種感測器訊號,提供較為精確的定位資訊。
卡爾曼濾波是一個定位技術裡面非常重要的一個手段,一般會有EFK(擴充卡爾曼濾波), UFK(無損卡爾曼濾波)等等多種變形。

聽起來聽高深莫測,一個例子就能解決:
假設你有兩類不同的感測器去測量一個值,這裡是我們車輛的位置資訊,但它們每次的讀數都不一樣,怎麼辦?我們本能的會想到一個方法——取平均。然後呢你其實知道其中一個感測器更精準,一個差一些。那有比取平均更好的辦法嗎?——加權平均。假設你知道這兩個感測器測量值的正態分佈的方差,用這兩個方差值你可以得到一個“最優”的權重。簡單直白的把平均值裡面的精準資訊表現更突出一些。
這裡,兩個感測器就是IMU和GPS。
下面是找的一張IMU和GPS做融合的原理圖。

順便提一句,如果只有一個感測器,但是我有一個數學模型,一個給的是觀測出來的值(感測器),一個給出的是模型算出來的值就是預測值,這樣可不可以用卡爾曼濾波?
答案是非常可以,就是在t時間的觀測值x(t)加上必要的噪音和t-1時候求出的t時間的預測值X(t)加權平均求出t+1時間的預測值,然後在t+1時間更新到觀測值x(t+1)進行對比更新相關引數再和t時間的求得預測值X(t+1)加上必要的噪音推匯出t+2時間的預測值X(t+2)再往後面接著用,逐漸迭代更新。
這個方法我在這裡就提這麼幾句,以後會在鐳射雷達定位和視覺定位裡面用到這種一個觀測值一個預測值的卡爾曼濾波演算法。
回到正題,GPS和IMU在 fusion之後得出來的定位資訊準確且實用嗎??
答案是並不,因為他們融合之後的精度只有米級,並且GPS訊號在開闊的地方可以,如果在有遮擋的地方就訊號強度就可以洗洗睡吧,並且GPS存在多路徑問題,如果附近高樓林立,它會受到物體的反射干擾造成噪音幾何倍增大。

所以怎麼辦? 還有其他感測器能用嗎?
怎麼沒有?
第一個當然是又便宜又好用的攝像頭了,就是所謂的視覺定位,在這裡視覺定位我們要用的一般是雙目相機,或者單目加紅外的相機,因為我們需要影像的深度資訊,而大部分只有雙目(經過計算)和紅外(直接測量)才能的搞這個資訊。

簡單說一下流程:首先就是通過雙目或者單目紅外或者其他的手段獲取的立體圖進行三角測量的到含有每個點深度資訊的視差圖,然後在相鄰frame裡面進行特徵點的匹配,通過這些匹配點在不同frame的關聯性(一般就是一個矩陣方程),反推出連續連個frame裡面車輛做出的位置變化。
學過機器人的看官們看到這就知道了啥意思了,其實這就是SLAM裡面的Visual Odometry, 立體視覺里程計,一般用於機器人定位。所以,在SLAM裡面有的缺點他在無人駕駛裡面也有,就是這種定位對照片質量非常敏感,一但光線條件不好,基本也可以洗洗睡。
下面是一張特徵點匹配的圖。
在這裡插入圖片描述
圖來自高翔SLAM十四講

還有呢,就是鐳射雷達了。鐳射雷達我們在上面講到,也可以使用卡爾曼濾波進行融合,但是同樣因為外界干擾太多會導致卡爾曼濾波處理的鐳射雷達資料不精確,所以我這裡要提另外一種濾波形式,particle filter,粒子濾波。

怎麼能通俗的理解粒子濾波呢,我試試。

假如你一個人參加了一個真人吃雞比賽,你拿著吃雞遊戲的地圖(Global Map)被人蒙著眼睛一腳從飛機上踹了下來,落地開局一個人一張地圖,你也不知道你在哪,這時候你發現你開啟了一個作弊器有了影分身的功能,所以你影分身出來N個你(Particle)隨機均勻分佈(在車輛位置估計有時候是正態分佈)在這個小島上面,然後發現你旁邊有一個二層小樓,看了看地圖,這個地圖上面有20個二層小樓,所以我可能就在這個20 個小樓當中一個旁邊,所以我讓所有分身都集中到20個二層小樓旁邊,然後我往旁邊走(Motion Model),走了幾百米就發現一座橋,所以所有分身在走的時候他們也在走,發現從二層小樓走著走著不遠旁邊有橋的地方有五個,所以我讓所有得分影分身都往這個5個地方靠,然後再往前走又發現了一輛蹦蹦停在路邊,然而這次滿足條件的只有一處,那我就可以判定我的位置大概率就在地圖滿足條件的那個位置了。
說的不是很嚴密,請大神們見諒。大概意思就這。

OK,粒子濾波差不多就這意思,為什麼會用到鐳射雷達上面呢,因為,鐳射雷達它產生的結果是點雲圖,這些點雲狀圖對周圍的環境進行了描述,但是單個的點非常難以區分,所以我們需要粒子濾波器將這些屬於同一個物體的點進行劃分,將特定觀察到的形狀和已知的地圖進行比較,以減少不確定性。而鐳射雷達的精度可以達到10cm級別,對於無人駕駛已經基本滿足要求。

所以,根據以上我們講到的,我們其實需要將所有有關定位的感測器進行融合,即GPS+IMU+高精度地圖+鐳射雷達資訊融合或者GPS+IMU+視覺定位的方法之後得出位置資訊。
大概就是下面的意思。在這裡插入圖片描述

1.3 目標識別和跟蹤

目標識別和目標跟蹤,目前主流的解決方案都是通過計算機視覺解決,而早期我們使用的是鐳射雷達,因為鐳射雷達能提供和精確的深度方面資訊。但是一個東西如救世主般地出現,深度學習技術,尤其是卷積神經網路(CNN)在計算機視覺上面的應用,使得使用視覺感測器進行目標識別和跟蹤成為可能,也順手拯救了英偉達等一眾顯示卡廠商的股價。
目標檢測就是在影像和視訊中掃描和搜尋目標,就像下面的圖一樣:
在這裡插入圖片描述
卷積神經網路是個非常非常大的題目,小Q之前做過相關的玩意,這裡是簡介,以後有時間攤開講點東西。
一般的卷積神經網路結構有以下幾個層:第一部分是輸入層.第二部分由n個卷積層和池化層的組合組成。第三部分由一個全連結的多層感知機分類器構成。

目標識別之後就會有了目標跟蹤,一句話解釋就是在目標移動的時候對他的軌跡進行一個估計,也就是跟蹤目標物件的軌跡。一般在無人駕駛上面用來追蹤移動車輛和過馬路的行人。深度學習在目標追蹤這個方面有時是很突出的。具體來說,通過使用輔助的自然影像可以離線訓練一個堆疊的自動編碼器,學習魯棒性更好的通用影像特徵,對抗視角和車輛位置的變化,訓練好的離線模型可以用於線上的實時目標跟蹤。

1.4 決策

當車輛對目前環境的理解已經夠深刻,我們根據這些資訊預測環境物體的運動並且對本車的路徑做一個規劃去避開障礙,就是這個意思。我分成行為預測,路徑規劃兩個方面講:

1.4.1 行為預測

一輛車行駛在車水馬龍之中的時候,最難的時候是應對其他車輛的動作,這是影響自身駕駛路線的直接原因。所以,在十字路口或者叉路口的時候,難度會呈幾何式上升。為了確定車輛可以在這些複雜環境中安全行駛,決策單元會對本車附近的部分車輛進行行為預測,並基於這些預測做出一個行為規劃。所以為了預測其他車輛的行為,可以生成一個其他參與者可到達位置的模型。
這其實是實現全自動無人駕駛最具挑戰的問題一直,舉一個例子來說:前Google無人車專案的Chris Urmson曾經在演講中就提到了google無人車專案最大的障礙就是怎麼樣理解並預測周圍道路參與者的行為。
這一段小Q也處於知識積累不全的一個點,等下面系列文章輪到了行為預測我會查一查相關資料再好好嘮一嘮。在這裡插入圖片描述

1.4.2 路徑規劃

我們上面已經知道了在動態環境當中去理解每個佳通參與者的行為動作並且預測,根據預測的軌跡資訊我們的車會為自己規劃路徑,就是讓目標在規定範圍內的區域找到一條起點到終點無碰撞安全的路徑。
當然瞭如何規劃出一條安全途徑,最簡單的方法就是搜尋所有可能的路徑,用代價函式確定最佳路線,但是這樣的方法需要用大量的計算資源並且會有一定的延遲性。
所以為了規避發雜的計算,使用概率性模型可以非常有效的提供實施的路徑規劃。

1.5 自動駕駛客戶端系統

所謂的客戶端系統其實就是我們第一個圖上面看到的最下面淡藍色的兩層面,一個是作業系統還有一個是計算(硬體)平臺。
作業系統
老生常談,客戶端系統需要具備的能力:
1)系統需要具備足夠的計算能力,用於快速處理大量感測器資料;
2)系統需要具有較高的魯棒性,即使系統一部分發生故障時,系統也能夠從故障中恢復;
3)系統需要在嚴格的能耗和資源約束下進行所有的計算。
首先呢,我們看一看作業系統。
目前來說作業系統當中開源且主流並且經典的系統就是Robot Operating System,ROS。它是針對機器人量身定做的一個分散式的計算框架。ROS的特點有以下三個:
1.分散式。點對點的分散式架構,通過做這樣的設計讓機器人的程式可以分別執行,便於模組化的修改和制定,提高了系統容錯能力。
2.多種語言支援 : ROS支援多種程式語言。C++ 、Python 已經在ROS中實現編譯,是目前應用最廣的ROS開發語言,Lisp、C#、Java等語言的測試庫也已經實現。
3.開源社群:ROS具有一個龐大的社群ROS WIKI,此外,ROS遵從BSD協議,對個人和商業應用的修改完全免費。

但目前來說ROS還存在下三個問題:
1.可靠性較低,ROS只有一個控制器,沒有監督機制去恢復失敗的節點,
2.效能,當點對面的廣播訊息發出去之後,系統會多次複製這條訊息,導致效能降低,
3.安全性,他的人認證和加密機制較差。
目前市場內對這三個問題各自有各自的解決辦法,就不一一贅述了,有形的可以去查一查。
硬體平臺
現有的計算平臺解決方案有以下幾種:

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

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

基於FPGA的解決方案 —— Altera/特斯拉
在這裡插入圖片描述
基於ASIC的解決方案 —— 英特爾
在這裡插入圖片描述

有關硬體平臺的知識小Q儲存不足,所以就不在這裡獻醜了,等到以後的系列文章裡面提到時候,小Q會查足資料在這裡嘮嘮。
或者可以看看知乎大神的一篇文章介紹:
自動駕駛系統入門(九)- 無人駕駛客戶端系統
雲平臺
另一個要說的是無人駕駛雲平臺,自動駕駛汽車作為可移動的系統,需要雲端計算平臺提供支援。雲平臺由分散式計算和分散式儲存兩大主要功能。另外雲平臺可被應用與測試演算法的模擬模擬,高精度地圖的生成以及深度學習模型的訓練。

得了,大概就這麼些,說的很淺顯,保持中心思想:這是概論。
非常歡迎大神們前來指正,我會一個個看一個個改。

下面看看自己的時間,如果找到其他感興趣的話題的話,我會先寫其他的,如果沒找到,我會接著概論往下攛掇,重點講一篇無人駕駛的定位系統,就會比較深入了。

ck-reference
[2]: https://mermaidjs.github.io/
[3]: https://mermaidjs.github.io/
[4]: http://adrai.github.io/flowchart.js/

相關文章