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

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

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

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

    • 在線課堂

    • 電車測(cè)試

自動(dòng)駕駛 vs 機(jī)器人技術(shù)

2021-01-09 01:10:33·  來(lái)源:中興開發(fā)者社區(qū)  作者:金明、鄭衛(wèi)軍  
 
備注 | 本文是金明(01+03章)、鄭衛(wèi)軍(02章)在2017年8月中興開發(fā)者社區(qū)連載的三篇有關(guān)自動(dòng)駕駛vs機(jī)器人技術(shù)的文章,相關(guān)的思考節(jié)點(diǎn)也是基于2017年當(dāng)時(shí)的技術(shù)
備注 | 本文是金明(01+03章)、鄭衛(wèi)軍(02章)在2017年8月“中興開發(fā)者社區(qū)”連載的三篇有關(guān)“自動(dòng)駕駛vs機(jī)器人技術(shù)”的文章,相關(guān)的思考節(jié)點(diǎn)也是基于2017年當(dāng)時(shí)的技術(shù)發(fā)展現(xiàn)狀

01  自動(dòng)駕駛技術(shù)和機(jī)器人技術(shù)的對(duì)比

機(jī)器人技術(shù)的核心是運(yùn)動(dòng)控制,包括定位、導(dǎo)航、感知、決策、跟蹤等,可廣泛應(yīng)用在家庭服務(wù)機(jī)器人、工業(yè)自動(dòng)化機(jī)器人等領(lǐng)域。自動(dòng)駕駛是人工智能領(lǐng)域最炙手可熱的方向,互聯(lián)網(wǎng)巨擎(谷歌、Uber、百度等)、傳統(tǒng)汽車大廠商、 Tier1供應(yīng)商以及很多初創(chuàng)公司都紛紛投入到這場(chǎng)全新的交通運(yùn)輸生態(tài)的創(chuàng)建中。截止2017年6月18日以來(lái),共有34家公司獲得美國(guó)加州路測(cè)資格,其中中國(guó)背景的公司就有9家。


圖片來(lái)自互聯(lián)網(wǎng)

通過(guò)對(duì)自動(dòng)駕駛的深入了解,發(fā)現(xiàn)自動(dòng)駕駛技術(shù)與機(jī)器人運(yùn)動(dòng)控制技術(shù)在框架構(gòu)成、硬件平臺(tái)、應(yīng)用理解、軟件核心算法上都基本契合。本文以百度的自動(dòng)駕駛Apollo技術(shù)為例,比較自動(dòng)駕駛和機(jī)器人運(yùn)動(dòng)控制技術(shù)的異同點(diǎn)。

注:目前自動(dòng)駕駛技術(shù)百度公開的最為徹底,它所用的思想代表了目前做自動(dòng)駕駛的主流路線。

技術(shù)框架對(duì)比

▍機(jī)器人運(yùn)動(dòng)控制的技術(shù)棧



機(jī)器人運(yùn)動(dòng)控制分為四層技術(shù)棧:

1. 基礎(chǔ)運(yùn)動(dòng)平臺(tái)

一個(gè)機(jī)器人必須有可以運(yùn)動(dòng)的實(shí)體,一般來(lái)說(shuō),對(duì)于低速移動(dòng)的機(jī)器人,差分輪式運(yùn)動(dòng)底座是比較普遍的選擇。它有兩個(gè)主動(dòng)輪,可以分別控制轉(zhuǎn)速和轉(zhuǎn)向, 前面有一個(gè)被動(dòng)萬(wàn)向輪。運(yùn)動(dòng)底座向上提供的基本接口包括:線速度,角速度或曲率控制, 查詢當(dāng)前里程計(jì)信息,完成上層對(duì)運(yùn)動(dòng)底座的控制和信息查詢。

2. 硬件平臺(tái)

運(yùn)算單板是硬件部分,與運(yùn)算單板同層的其它模塊,都是感知單元,感知單元涵蓋了目前主流的環(huán)境感知技術(shù),可按照實(shí)際需求進(jìn)行選取。

3. 軟件平臺(tái)

軟件平臺(tái)包括操作系統(tǒng)和上層算法。目前主流的機(jī)器人操作系統(tǒng)是ROS,ROS是Willow Garage公司在2010年發(fā)布的開源機(jī)器人操作系統(tǒng),由于其具有點(diǎn)對(duì)點(diǎn)設(shè)計(jì),不依賴于編程語(yǔ)言,分布式架構(gòu),強(qiáng)大的硬件抽象,廣泛的社區(qū)參與貢獻(xiàn),豐富的可復(fù)用,知名的開源庫(kù)資源,已經(jīng)成為機(jī)器人設(shè)計(jì)的不二選擇。對(duì)于低速運(yùn)動(dòng)場(chǎng)景,原生的ROS環(huán)境完全滿足設(shè)計(jì)要求。

感知、定位、避障、地圖、路徑規(guī)劃、導(dǎo)航、跟蹤是封裝的軟件算法模塊,軟件算法與感知單元采集的數(shù)據(jù)配合,完成機(jī)器人的各種功能。

4. 云服務(wù)平臺(tái)

云服務(wù)平臺(tái)包括仿真、安全、數(shù)據(jù)平臺(tái)、訓(xùn)練平臺(tái)、語(yǔ)音和全局地圖功能,數(shù)據(jù)平臺(tái)位于云端,通過(guò)深度學(xué)習(xí)和訓(xùn)練,使機(jī)器人獲得更高的智能水平。仿真平臺(tái)是做機(jī)器人測(cè)試的必要工具,用戶可以不依賴于真實(shí)的機(jī)器人和測(cè)試環(huán)境,而是在仿真平臺(tái)中建立機(jī)器人模型和測(cè)試環(huán)境,進(jìn)而驗(yàn)證自己的算法。

▍百度自動(dòng)駕駛Apollo技術(shù)框架


圖片來(lái)自互聯(lián)網(wǎng)

百度的自動(dòng)駕駛分為四層技術(shù)棧:

1. 參考汽車平臺(tái)

一輛汽車, 必須可以實(shí)現(xiàn)電子化的控制,也就是線控。百度目前的參考設(shè)計(jì)使用的是Lincoln MKZ, enhanced by Autonomous Stuff, 為用戶提供了一個(gè)無(wú)障礙的自動(dòng)車輛平臺(tái)。該平臺(tái)為用戶提供了一整套硬件和軟件解決方案。用戶可以直接獲得車輛某些模塊控制權(quán)限,如檔位,速度和指示燈,如下圖:



2. 參考硬件平臺(tái)

為了實(shí)現(xiàn)高性能穩(wěn)定的計(jì)算,百度采用的是工業(yè)級(jí)PC作為運(yùn)算單元, 配置6th-Gen Intel® Core™ i7/i5 LGA1151 CPU 和NVIDIA® GeForce® GTX 1050* GPU,可以工作在-25°到60°的工作范圍。



定位采用的是GPS+IMU的融合方案,精度能達(dá)到厘米級(jí)別。在Apollo 1.0 中沒(méi)有公開攝像頭、Lidar(雷達(dá))和Radar(毫米波雷達(dá))信息,不過(guò)根據(jù)百度以前無(wú)人駕駛車的信息可以看到,它包含一個(gè)Velodyn 64線HDL64E雷達(dá),配套一個(gè)長(zhǎng)距毫米波雷達(dá)和中距毫米波雷達(dá),一個(gè)魚眼攝像頭和一個(gè)攝像機(jī)鏡頭。

3. 開源軟件平臺(tái)

開源軟件平臺(tái)包括操作系統(tǒng)和上層算法。Apollo 采用 ROS 操作系統(tǒng)。其中ROS是做了定制化修改的,使得其能更適合自動(dòng)駕駛的要求,后面的連載文章中會(huì)詳細(xì)介紹。

算法模塊的構(gòu)成與前面運(yùn)動(dòng)控制中的算法基本類似,多了端對(duì)端和HMI。HMI是百度自動(dòng)駕駛提供的人機(jī)交互界面,方便操作者統(tǒng)計(jì)和調(diào)試。端對(duì)端算法是一種所見(jiàn)即行動(dòng)的思想,通過(guò)深度學(xué)習(xí),將感知直接轉(zhuǎn)化為控制,這是一種實(shí)驗(yàn)性質(zhì)的算法,目前還不是主流應(yīng)用。

4. 云服務(wù)平臺(tái)

主要有三個(gè)作用, 訓(xùn)練模型, 自動(dòng)駕駛仿真, 高精地圖提供。

▍兩個(gè)技術(shù)棧的對(duì)比

根據(jù)上述對(duì)機(jī)器人運(yùn)動(dòng)控制技術(shù)和自動(dòng)駕駛技術(shù)棧的描述,可以看到兩者之間有頗多相似的地方,同時(shí)也有一些差異點(diǎn),具體分析如下:

1. 運(yùn)動(dòng)底座 vs 參考汽車平臺(tái)

二者都是運(yùn)動(dòng)的控制主體,為上層算法提供控制接口進(jìn)行驅(qū)動(dòng),提供查詢接口進(jìn)行反饋。運(yùn)動(dòng)底座和汽車進(jìn)行控制時(shí)都要滿足非完整約束,即不向前移動(dòng)的情況下,無(wú)法單獨(dú)完成橫向位移。相比于運(yùn)動(dòng)底座,汽車平臺(tái)的動(dòng)力學(xué)模型會(huì)更加復(fù)雜,除了速度不是一個(gè)量級(jí) ,慣性因素也會(huì)使得控制更加復(fù)雜。汽車的橫向位移(轉(zhuǎn)彎)靠前輪的朝向與前后輪形成直線的夾角的變化,屬于自行車模型。機(jī)器人運(yùn)動(dòng)控制多采用差分輪運(yùn)動(dòng)底座,橫向位移靠?jī)蓚€(gè)輪子相互反方向旋轉(zhuǎn),靠不同的旋轉(zhuǎn)速度比,來(lái)滿足不同曲率的要求,在控制算法的選取中,會(huì)有不同。

2. 運(yùn)算單元

運(yùn)動(dòng)控制平臺(tái)采用的是嵌入式異構(gòu)計(jì)算單板, 滿足低速簡(jiǎn)單運(yùn)動(dòng)場(chǎng)景的感知、決策、控制算法的計(jì)算要求。汽車應(yīng)對(duì)的是高速、絕對(duì)可靠安全的場(chǎng)景,運(yùn)算量不是一個(gè)量級(jí),目前多采用工業(yè)級(jí)PC的方案來(lái)滿足感知對(duì)于運(yùn)算量的要求。各芯片廠商也紛紛推出自己的芯片方案,后續(xù)運(yùn)算單元平臺(tái)將是百花爭(zhēng)艷的局面。

3. 感知單元

運(yùn)動(dòng)控制平臺(tái)和自動(dòng)駕駛采用的傳感器大多重疊,也有幾個(gè)不同地方, 如深度攝像頭可以在運(yùn)動(dòng)控制平臺(tái)的室內(nèi)場(chǎng)景中使用,深度主要靠結(jié)構(gòu)光技術(shù),抗干擾能力差,目前在室外場(chǎng)景下不可靠。自動(dòng)駕駛多采用雙目攝像頭來(lái)完成深度識(shí)別。運(yùn)動(dòng)控制平臺(tái)采用超聲和紅外完成被動(dòng)障礙感知, 自動(dòng)駕駛采用汽車電子方面非常成熟的毫米波雷達(dá)方案。

4. 操作系統(tǒng)

兩者都使用 ROS操作系統(tǒng),汽車對(duì)于實(shí)時(shí)性、 帶寬、分布式要求會(huì)更加嚴(yán)苛。原生的ROS 對(duì)于這三方面都無(wú)法達(dá)到自動(dòng)駕駛的要求,雖然 ROS 2.0 會(huì)在這三個(gè)方面有很大的提升,但是仍然處于實(shí)驗(yàn)階段。大部分自動(dòng)駕駛廠商,包括百度,都是在ROS基礎(chǔ)上作深度定制。

5. 上層算法

兩者的軟件算法分類基本相同,所采用的算法實(shí)現(xiàn)有很多相互借鑒的地方, 在后面的連載文章中會(huì)詳細(xì)介紹。

6. 仿真

運(yùn)動(dòng)控制平臺(tái)的場(chǎng)景相對(duì)簡(jiǎn)單,在一些相對(duì)高配置的PC上基本能滿足要求。自動(dòng)駕駛一般要自動(dòng)駕駛廠商自己搭建仿真平臺(tái), 汽車要仿真的環(huán)境非常復(fù)雜,計(jì)算量消耗很大,一般要采用云技術(shù)分布式平臺(tái)。

7. 地圖

運(yùn)動(dòng)控制平臺(tái)的地圖創(chuàng)建所描繪的場(chǎng)景比較簡(jiǎn)單, 一般2D 場(chǎng)景地圖即可滿足要求,在運(yùn)算單元上可以完成創(chuàng)建和使用。自動(dòng)駕駛需要高精地圖, 三維點(diǎn)云,精確到厘米級(jí)別, 其特點(diǎn)是需要花費(fèi)巨大成本提前用采集車采集,生成的高精地圖要隨時(shí)更新,消耗大量的存儲(chǔ),一般要放在云端,自動(dòng)駕駛車通過(guò)高速無(wú)線網(wǎng)絡(luò)下載當(dāng)時(shí)位置的高精地圖滿足實(shí)時(shí)決策要求。

8. 訓(xùn)練

運(yùn)動(dòng)控制平臺(tái)會(huì)對(duì)某些物體或人有簡(jiǎn)單的識(shí)別要求,模型可以提前在服務(wù)器端訓(xùn)練,訓(xùn)練數(shù)據(jù)相對(duì)不多。汽車有海量的數(shù)據(jù)要進(jìn)行訓(xùn)練,如果要滿足高可靠性的物體識(shí)別任務(wù),要在云端進(jìn)行訓(xùn)練。

9. 運(yùn)動(dòng)控制平臺(tái)的多機(jī)協(xié)作 vs 車聯(lián)網(wǎng)

運(yùn)動(dòng)控制平臺(tái)涉及多機(jī)協(xié)作的要求,如多個(gè)AGV小車互聯(lián)互通共同完成調(diào)度任務(wù),是車車通信的一種方式。車聯(lián)網(wǎng)方案是自動(dòng)駕駛的一條路徑,在百度Apollo框架中并沒(méi)有提及。包含V2V(車車通信)、V2I( 車路通信)、 V2P(車人通信),完成信息共享后的汽車決策和控制算法。目前通信標(biāo)準(zhǔn)主要是歐美主推的DSRC(專用短程通信)和中國(guó)主推的5G標(biāo)準(zhǔn)LTE-V。

02  自動(dòng)駕駛 vs 機(jī)器人環(huán)境感知

自動(dòng)駕駛和機(jī)器人共同的三大關(guān)鍵技術(shù)為:

環(huán)境感知是其中最重要、最基礎(chǔ)的一環(huán)。


自動(dòng)駕駛和機(jī)器人主要通過(guò)傳感器來(lái)獲取周圍環(huán)境信息,同時(shí)也會(huì)通過(guò)高精度地圖和IoT技術(shù)來(lái)擴(kuò)展環(huán)境感知能力。


下面我們來(lái)了解一下每類傳感器的特性,以及在機(jī)器人和自動(dòng)駕駛汽車中的使用差異。

▍一、攝像頭

攝像頭是機(jī)器人或自動(dòng)駕駛汽車的眼睛,分類如下:

1. 普通單目攝像頭

通過(guò)圖像匹配進(jìn)行目標(biāo)識(shí)別,再通過(guò)目標(biāo)在圖像中的大小去估算目標(biāo)距離,準(zhǔn)確識(shí)別是準(zhǔn)確估算距離的第一步。


2. 單目結(jié)構(gòu)光深度攝像頭

由一個(gè)RGB攝像頭、結(jié)構(gòu)光投射器(紅外)和結(jié)構(gòu)光深度感應(yīng)器(CMOS)組成,通過(guò)投影一個(gè)預(yù)先設(shè)計(jì)好的圖案作為參考圖像(編碼光源),將結(jié)構(gòu)光投射至物體表面,再通過(guò)深度感應(yīng)器接收該物體表面反射的結(jié)構(gòu)光圖案。

這樣,同樣獲得了兩幅圖像,一幅是預(yù)先設(shè)計(jì)的參考圖像,另一幅是相機(jī)獲取的物體表面反射的結(jié)構(gòu)光圖案。

由于接收?qǐng)D案會(huì)因物體的立體形狀而發(fā)生變形,因此可以通過(guò)該圖案在攝像機(jī)上的位置和形變程度來(lái)計(jì)算物體表面的空間信息。

單目結(jié)構(gòu)光 Kinect一代

同樣是進(jìn)行圖像匹配,這種方法與雙目匹配比較好處在于,參考圖像不是獲取的,而是經(jīng)過(guò)專門設(shè)計(jì)的圖案,因此特征點(diǎn)是已知的,而且更容易從測(cè)試圖像中提取。

3. 雙目深度攝像頭

雙目攝像頭的測(cè)距方式則是通過(guò)對(duì)圖像視差進(jìn)行計(jì)算,直接對(duì)前方景物進(jìn)行距離測(cè)量。雙目攝像頭的原理與人眼相似,人眼能夠感知物體的遠(yuǎn)近,是由于兩只眼睛對(duì)同一個(gè)物體呈現(xiàn)的圖像存在差異,也稱“視差”。
物體距離越遠(yuǎn),視差越小,反之視差越大。視差的大小對(duì)應(yīng)著物體與眼睛之間距離的遠(yuǎn)近,這也是3D電影能夠使人有立體層次感知的原因。

優(yōu)點(diǎn)

1) 雙目系統(tǒng)成本比單目系統(tǒng)要高,但尚處于可接受范圍內(nèi),并且與激光雷達(dá)等方案相比成本較低。

2) 沒(méi)有識(shí)別率的限制,因?yàn)閺脑砩蠠o(wú)需先進(jìn)行識(shí)別再進(jìn)行測(cè)算,而是對(duì)所有障礙物直接進(jìn)行測(cè)量。

3) 精度比單目高,直接利用視差計(jì)算距離。

4) 無(wú)需維護(hù)樣本數(shù)據(jù)庫(kù),因?yàn)殡p目沒(méi)有樣本的概念。

難點(diǎn)

1) 計(jì)算量大,對(duì)計(jì)算單元的性能要求非常高,這使得雙目系統(tǒng)的產(chǎn)品化、小型化的難度較大。

2) 匹配,雙目匹配采用三角測(cè)量原理,完全基于圖像處理技術(shù),通過(guò)尋找兩個(gè)圖像中相同的特征點(diǎn)得到匹配點(diǎn),從而得到深度值。

雙目測(cè)距中光源是環(huán)境光或者白光這種沒(méi)有經(jīng)過(guò)編碼的光源,圖像識(shí)別完全取決于被拍攝的物體本身的特征點(diǎn),對(duì)表面顏色和紋理特征不明顯的物體失效,匹配的精度和正確性很難保證,因此出現(xiàn)了結(jié)構(gòu)光技術(shù)來(lái)解決匹配問(wèn)題。

因?yàn)榻Y(jié)構(gòu)光光源帶有很多特征點(diǎn)或者編碼,因此提供了很多的匹配角點(diǎn)或者直接的碼字,可以很方便的進(jìn)行特征點(diǎn)的匹配。

4. TOF深度攝像頭

TOF是Time of flight的簡(jiǎn)寫,直譯為飛行時(shí)間的意思。

所謂飛行時(shí)間法3D成像,是通過(guò)給目標(biāo)連續(xù)發(fā)送光脈沖,然后用傳感器接收從物體返回的光,通過(guò)探測(cè)光脈沖的飛行(往返)時(shí)間來(lái)得到目標(biāo)物體的距離。這種技術(shù)跟3D激光傳感器原理基本類似,只不過(guò)3D激光傳感器是逐點(diǎn)掃描,而TOF相機(jī)則是同時(shí)得到整幅圖像的深度信息。

TOF相機(jī)與普通機(jī)器視覺(jué)成像過(guò)程也有類似之處,都是由光源、光學(xué)部件、傳感器、控制電路以及處理電路等幾部單元組成。

單目TOF Kinect二代

各種攝像頭性能和成本比較:


由上表對(duì)比可知,無(wú)論是結(jié)構(gòu)光還是TOF方案,都需要增加主動(dòng)光,因此,其檢測(cè)距離受到了光強(qiáng)度的限制,無(wú)法適用于遠(yuǎn)距離的檢測(cè),一般只用于機(jī)器人的感知,而普通單目和雙目攝像頭除了在機(jī)器人上應(yīng)用,還可以用于ADAS和自動(dòng)駕駛汽車上。

▍二、激光雷達(dá)

激光雷達(dá)以激光作為信號(hào)源,由激光器發(fā)射出的脈沖激光,打到對(duì)面物體上,引起散射,一部分光波會(huì)反射到激光雷達(dá)的接收器上,根據(jù)激光測(cè)距原理計(jì)算,就得到從激光雷達(dá)到目標(biāo)點(diǎn)的距離,脈沖激光不斷地掃描目標(biāo)物,就可以得到目標(biāo)物上全部目標(biāo)點(diǎn)的數(shù)據(jù),用此數(shù)據(jù)進(jìn)行成像處理后,即可得到精確的目標(biāo)物體圖像。



激光雷達(dá)分為單線和多線,常見(jiàn)的多線激光雷達(dá)有4線,8線,16線,32線和64線。

• 
單線激光雷達(dá)掃描的區(qū)域可以簡(jiǎn)單定義為一個(gè)平面,是一個(gè)二維掃描方案。

•  
4線、8線雷達(dá)縱向掃描范圍從3.2°到6.4°,這個(gè)范圍不能稱為一個(gè)3D的掃描,一般定義為2.5D掃描方案。

•  
64線雷達(dá)掃描的整個(gè)范圍面就比較大,縱向甚至可以一直到30多度,講究對(duì)整個(gè)環(huán)境、3D的點(diǎn)云數(shù)據(jù)收集,單位時(shí)間內(nèi)收集到的反饋點(diǎn)數(shù)多,數(shù)據(jù)量大。


SICK單線激光雷達(dá)


單線二維激光雷達(dá)掃描圖


Velodyne多線激光雷達(dá)


64線三維激光雷達(dá)掃描圖

激光雷達(dá)普遍用于定位、障礙物檢測(cè)、物體分類、動(dòng)態(tài)物體跟蹤等應(yīng)用,在機(jī)器人和自動(dòng)駕駛汽車上都有使用。

•  
由于機(jī)器人的工作環(huán)境相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,而且迫于成本壓力,一般采用單線激光雷達(dá),用于定位和檢測(cè)周邊障礙物。

•  
自動(dòng)駕駛汽車一般采用32線或64線的三維激光雷達(dá)置于車頂,完成對(duì)車輛四周較遠(yuǎn)物體的檢測(cè)分類和跟蹤。

另外,在車燈或者保險(xiǎn)杠附近的位置還需要安裝4線和8線激光雷達(dá),主要對(duì)車頂三維激光雷達(dá)進(jìn)行補(bǔ)盲,對(duì)近距離的車輛、行人以及地線、馬路牙、路肩、路欄等進(jìn)行識(shí)別。

缺點(diǎn)


激光雷達(dá)容易受到大氣條件以及工作環(huán)境的煙塵的影響,要實(shí)現(xiàn)全天候的工作環(huán)境是非常困難的事情。

▍三、毫米波雷達(dá)

毫米波是指波長(zhǎng)在 1-10mm 之間的電磁波,換算成頻率后,毫米波的頻率位于30-300GHz 之間。

毫米波的波長(zhǎng)介于厘米波和光波之間,因此毫米波兼有微波制導(dǎo)和光電制導(dǎo)的優(yōu)點(diǎn):

1. 同厘米波導(dǎo)引頭相比, 毫米波導(dǎo)引頭具有體積小、質(zhì)量輕和空間分辨率高的特點(diǎn)。

2. 與紅外、激光等光學(xué)導(dǎo)引頭相比, 毫米波導(dǎo)引頭穿透霧、煙、灰塵的能力強(qiáng),傳輸距離遠(yuǎn),具有全天候全天時(shí)的特點(diǎn),在雨天、大雪天氣下,毫米波雷達(dá)是非常不錯(cuò)的選擇。

3. 性能穩(wěn)定,不受目標(biāo)物體形狀、顏色等干擾。毫米波雷達(dá)很好的彌補(bǔ)了如紅外、激光、超聲波、攝像頭等其它傳感器在車載應(yīng)用中所不具備的使用場(chǎng)景。

目前車載雷達(dá)的頻率主要分為24GHz頻段和77GHz頻段,其中77GHz頻段代表著未來(lái)的趨勢(shì),這是國(guó)際電信聯(lián)盟專門劃分給車用雷達(dá)的頻段。

嚴(yán)格來(lái)說(shuō)77GHz的雷達(dá)才屬于毫米波雷達(dá),但是實(shí)際上24GHz的雷達(dá)也被稱為毫米波雷達(dá)。

毫米波雷達(dá)在測(cè)量目標(biāo)的距離、速度和角度上展現(xiàn)的性能和其它傳感器還是略有區(qū)別的。

•  
視覺(jué)傳感器得到的是二維信息,沒(méi)有深度信息,而毫米波雷達(dá)則是具備深度信息的,可以提供目標(biāo)的距離。

•  
激光雷達(dá)對(duì)于速度并不敏感,而毫米波雷達(dá)則對(duì)速度非常敏感,可以直接獲得目標(biāo)的速度,因?yàn)楹撩撞ɡ走_(dá)會(huì)有很明顯的多普勒效應(yīng),通過(guò)檢測(cè)其多普勒頻移可將目標(biāo)的速度提取出來(lái)。

•  
毫米波雷達(dá)最基本的探測(cè)技術(shù)是使用FMCW連續(xù)線性調(diào)頻波去探測(cè)前方物體的距離,毫米波雷達(dá)發(fā)射的是連續(xù)波,在后端處理上要比激光雷達(dá)的運(yùn)算量大。

毫米波雷達(dá)在ADAS領(lǐng)域是很難被取代的傳感器,雖然有一些缺點(diǎn),但是是唯一的全天候工作的傳感器。

其測(cè)速、測(cè)距的精度要遠(yuǎn)高于視覺(jué),與激光雷達(dá)相比,其測(cè)速精度會(huì)高一些,穿透力會(huì)更好。

而對(duì)于機(jī)器人的應(yīng)用場(chǎng)景,利用毫米波雷達(dá)來(lái)探測(cè)障礙物,顯得有點(diǎn)奢侈了,一般采用更低成本的超聲波雷達(dá)來(lái)替代,但對(duì)于一些特殊應(yīng)用場(chǎng)景的機(jī)器人(譬如消防,大型物流),由于需要在復(fù)雜環(huán)境下支持全天候、全天時(shí)作業(yè),就必須采用毫米波雷達(dá)來(lái)實(shí)現(xiàn)避障。

▍四、超聲波雷達(dá)

超聲波雷達(dá)是利用傳感器內(nèi)的超聲波發(fā)生器產(chǎn)生 40KHz的超聲波,再由接收探頭接收經(jīng)障礙物反射回來(lái)的超聲波,根據(jù)超聲波反射接收的時(shí)間差計(jì)算與障礙物之間的距離。

超聲波雷達(dá)成本較低,探測(cè)距離近,精度高,且不受光線條件的影響,因此常用于泊車系統(tǒng)中。

超聲波最大的缺點(diǎn)就是檢測(cè)角度太小,一輛車需要在不同角度安裝好幾個(gè),除此以外,都比上面幾種方案更好。

優(yōu)點(diǎn)

•  
防水,防塵,少量的泥沙遮擋也無(wú)妨

•  
有金屬材質(zhì)的探頭,可以與車體外殼結(jié)合的很好

•  
通常適合3m內(nèi)的檢測(cè),由于其空氣損耗大,檢測(cè)角度又小,因此車輛之間的干擾較小

•  
最小的監(jiān)測(cè)距離可達(dá)到0.1-0.3m

•  
成本不高

對(duì)于較常見(jiàn)的40KHz超聲波傳感器,其測(cè)距精度大約是1~3cm左右(取決于后端電路和數(shù)據(jù)處理性能),這個(gè)范圍也能滿足倒車?yán)走_(dá)的要求,所以在倒車?yán)走_(dá)的各個(gè)方案中,超聲波是最容易被用戶接受的。

另外,超聲波雷達(dá)由于成本低,檢測(cè)距離適中,因此在機(jī)器人的避障中應(yīng)用也很廣。汽車相對(duì)于絕大部分室內(nèi)應(yīng)用的機(jī)器人來(lái)說(shuō),對(duì)防護(hù)等級(jí)要求較高,因此,汽車上用的都是高防護(hù)等級(jí)的收發(fā)一體化的超聲波雷達(dá)。

▍五、紅外

紅外線的工作原理是利用高頻調(diào)制的紅外線在待測(cè)距離上往返產(chǎn)生的相位移推算出光束度越時(shí)間△t,從而根據(jù)D=C△t/2得到距離D。紅外傳感器的測(cè)距基本原理為發(fā)光管發(fā)出紅外光,光敏接收管接收前方物體反射光,據(jù)此判斷前方是否有障礙物。根據(jù)發(fā)射光的強(qiáng)弱可以判斷物體的距離,它的原理是接收管接收的光強(qiáng)隨反射物體的距離而變化的,距離近則反射光強(qiáng),距離遠(yuǎn)則反射光弱。

目前,使用較多的一種傳感器紅外光電開關(guān),它的發(fā)射頻率一般為38 kHz左右,探測(cè)距離一般比較短,通常被用作近距離障礙目標(biāo)的識(shí)別。紅外只適合短距離測(cè)距,因此基本上只用于低速移動(dòng)的機(jī)器人上防碰撞。


各種傳感器的技術(shù)指標(biāo)對(duì)比:


▍六、IMU

IMU(慣性測(cè)量單元)是測(cè)量物體三軸姿態(tài)角(或角速率)以及加速度的裝置。一般一個(gè)IMU包含三個(gè)單軸的加速度計(jì)和三個(gè)單軸的陀螺,加速度計(jì)檢測(cè)物體在載體坐標(biāo)系統(tǒng)獨(dú)立三軸的加速度信號(hào),而陀螺檢測(cè)載體相對(duì)于導(dǎo)航坐標(biāo)系的角速度信號(hào),測(cè)量物體在三維空間中的角速度和加速度,并以此計(jì)算出物體的姿態(tài)。

慣性傳感器的定位誤差會(huì)隨著運(yùn)行時(shí)間增長(zhǎng),但由于其是高頻傳感器,在短時(shí)間內(nèi)可以提供穩(wěn)定的實(shí)時(shí)位置更新。IMU大多用在需要進(jìn)行運(yùn)動(dòng)控制的設(shè)備,如汽車和機(jī)器人上,在導(dǎo)航中有著很重要的應(yīng)用價(jià)值。

▍七、GPS

GPS由GPS接收機(jī)和衛(wèi)星天線組成,主要通過(guò)衛(wèi)星來(lái)計(jì)算我們當(dāng)前的位置和速度。通過(guò)測(cè)量從衛(wèi)星上接收信號(hào)的時(shí)間,設(shè)備能夠?qū)崿F(xiàn)精確度大約在10m左右的定位。

一個(gè)略為改進(jìn)過(guò)的定位系統(tǒng)上線了,我們可以把它稱為差分全球定位系統(tǒng)(DGPS),因?yàn)槭褂昧说孛婊鶞?zhǔn)站的關(guān)系,這個(gè)系統(tǒng)的精確度被提升到了1m。但這個(gè)精度對(duì)機(jī)器人和自動(dòng)駕駛汽車的使用場(chǎng)景來(lái)說(shuō),都是不夠的。因此,GPS一般需要融合IMU實(shí)現(xiàn)厘米級(jí)的定位。

另外,由于室內(nèi)無(wú)法接收到GPS信號(hào),因此,對(duì)于室內(nèi)機(jī)器人則無(wú)法使用GPS進(jìn)行定位。

▍八、信息交互

對(duì)于自動(dòng)駕駛汽車來(lái)說(shuō),還有一類技術(shù)雖然不是主動(dòng)式的探測(cè)元件,但是屬于協(xié)同式的全局?jǐn)?shù)據(jù)輔助,可以擴(kuò)展智能車的環(huán)境感知能力,在感知層同樣扮演著不可或缺的角色,包括高精度地圖、V2X車聯(lián)網(wǎng)技術(shù)。每種類型的感知技術(shù)都有自己的優(yōu)勢(shì)和弊端,它們相互補(bǔ)充融合,最終使智能車達(dá)到駕駛場(chǎng)景下非常高的安全性要求。

▍九、結(jié)語(yǔ)

傳感器是機(jī)器人和自動(dòng)駕駛汽車環(huán)境感知的基礎(chǔ),對(duì)于各個(gè)傳感器采集的數(shù)據(jù)還需要算法來(lái)處理,這樣才能進(jìn)行自身的定位和環(huán)境障礙的識(shí)別,因此,單個(gè)傳感器數(shù)據(jù)的處理以及多傳感器數(shù)據(jù)融合的算法非常關(guān)鍵。

03  自動(dòng)駕駛 vs 機(jī)器人操作系統(tǒng)

無(wú)論是自動(dòng)駕駛還是機(jī)器人運(yùn)動(dòng)控制的技術(shù)棧,都有很關(guān)鍵的一層,即操作系統(tǒng)層。該層與下層的硬件平臺(tái)接口,其上層為軟件算法單元,如下圖:



▍操作系統(tǒng)的選擇

機(jī)器人大多選擇ROS(robot operation system) indigo, 百度的自動(dòng)駕駛Apollo在ROS indigo的基礎(chǔ)上做了定制。

除了百度的Apollo,日本的tier IV公司也開源了自己的整套自動(dòng)駕駛算法Autoware, Autoware也是基于ROS。

另外在一些自動(dòng)駕駛初創(chuàng)公司的公開信息中可以看到,他們的操作系統(tǒng)同樣是基于ROS的。

作為對(duì)比,我們看到大的車商更傾向于專業(yè)的商業(yè)解決方案,如寶馬將操作系統(tǒng)和中間件的開發(fā)工作交給了Intel,我們都知道Intel是一家專業(yè)的計(jì)算芯片解決方案提供商,但是大部分人不知道2009年Intel 收購(gòu)了嵌入式操作系統(tǒng)解決方案提供商風(fēng)河公司。

風(fēng)河介紹

做過(guò)嵌入式系統(tǒng)開發(fā)的人,都對(duì)這個(gè)曾經(jīng)的霸主有所了解,雖然它在慢慢被人淡忘,因?yàn)楝F(xiàn)在嵌入式設(shè)備的操作系統(tǒng)是Linux 和基于Linux 的Anroid的天下。風(fēng)河公司在加入Intel之后一直沒(méi)閑著,只是一直隱藏在Intel背后。此前Intel和三星推出的Tizen操作系統(tǒng),風(fēng)河就一直參與其中。期望在汽車市場(chǎng)展開第二春的Intel,在軟件上的王牌就是風(fēng)河。

2014年,風(fēng)河成為谷歌開放汽車聯(lián)盟的一員,與谷歌共同開發(fā)Android For Automotive。風(fēng)河在汽車操作系統(tǒng)上有天然的優(yōu)勢(shì),它很早就涉足汽車娛樂(lè)信息系統(tǒng)、顯示屏和車聯(lián)網(wǎng)業(yè)務(wù),與車廠有長(zhǎng)期穩(wěn)定的合作關(guān)系,在此基礎(chǔ)上,它又提供自動(dòng)駕駛、高級(jí)輔助駕駛和汽車云服務(wù),無(wú)縫連接,更值得車廠的信任。

下圖是2017年1月風(fēng)河推出的面向汽車的軟件解決方案Helix Chassis產(chǎn)品,該產(chǎn)品依仗的就是其1987年即開發(fā)出來(lái)的實(shí)時(shí)操作系統(tǒng)Vxworks。



綜上所述,我們可以看到汽車操作系統(tǒng),基本分為兩個(gè)陣營(yíng):

•  傳統(tǒng)車商

他們的路線是商業(yè)產(chǎn)品,一直信賴平滑過(guò)渡的產(chǎn)品。

•  行業(yè)闖入者

這個(gè)陣營(yíng)如Google的Waymo,Tesla有實(shí)力及早布局自己的操作系統(tǒng)解決方案,其它大部分公司會(huì)選擇ubuntu+ROS 深度定制的方案,加快自己的開發(fā)效率。

▍操作系統(tǒng)主要做什么工作?

每個(gè)做計(jì)算機(jī)行業(yè)的人對(duì)操作系統(tǒng)的概念既熟悉又陌生。程序員的三大浪漫是操作系統(tǒng)、編譯系統(tǒng)和圖形學(xué)。評(píng)價(jià)一個(gè)牛人的標(biāo)準(zhǔn)之一就是:做過(guò)一個(gè)操作系統(tǒng)內(nèi)核,能看Linux 內(nèi)核代碼并做貢獻(xiàn)。實(shí)際中除非工作需要,軟件人員一般不會(huì)在操作系統(tǒng)上面下功夫, 一個(gè)原因是它的確很難,另一個(gè)原因是它像水和空氣一樣,非常重要,但大部分情況下是免費(fèi)的。

操作系統(tǒng)的價(jià)值

我們執(zhí)行一段程序,其實(shí)不僅僅是代碼編譯好的機(jī)器碼在執(zhí)行,而是在操作系統(tǒng)的協(xié)助下一起執(zhí)行,完成某項(xiàng)工作。操作系統(tǒng)會(huì)找到你要執(zhí)行的程序(磁盤管理),將程序碼導(dǎo)入內(nèi)存(內(nèi)存管理),分配進(jìn)程,分CPU時(shí)間片去調(diào)度。

你的程序若訪問(wèn)其它硬件資源如顯示器,操作系統(tǒng)會(huì)給你提供接口,把你的請(qǐng)求連接到顯示系統(tǒng)進(jìn)程中去,將請(qǐng)求翻譯成顯示屏上的像素值,達(dá)到顯示目標(biāo)。進(jìn)程間對(duì)相同資源的訪問(wèn),操作系統(tǒng)會(huì)透明地幫你安排好。

我們可以想象一下,沒(méi)有操作系統(tǒng),軟件開發(fā)者大部分會(huì)成為廢人,就算是一個(gè)高手,也要關(guān)注很多細(xì)節(jié)才能完成一個(gè)簡(jiǎn)單的任務(wù)。大部分操作系統(tǒng)都會(huì)有存儲(chǔ)管理、內(nèi)存管理、進(jìn)程管理等一般化的工作。對(duì)于不同的需求,也會(huì)衍生出不同的有針對(duì)性的操作系統(tǒng)。我們的PC工作站,對(duì)人機(jī)交互體驗(yàn)和進(jìn)程調(diào)用切換要求會(huì)更高一些,對(duì)于大部分嵌入式設(shè)備,CPU資源的占用敏感,實(shí)時(shí)性則是考慮重點(diǎn),而不需要考慮人機(jī)交互。
開源Linux 給操作系統(tǒng)領(lǐng)域帶來(lái)的震撼,改變了這個(gè)領(lǐng)域的發(fā)展格局,在Linux內(nèi)核的基礎(chǔ)上,各個(gè)領(lǐng)域的計(jì)算機(jī)應(yīng)用可以進(jìn)行高效地量體裁衣的定制。以Android為例,很多人可能會(huì)以為它是一個(gè)全新的操作系統(tǒng),事實(shí)上它是建筑在Linux內(nèi)核基礎(chǔ)上,它的應(yīng)用有自己的特點(diǎn),要無(wú)痛在各種硬件平臺(tái)架構(gòu)上無(wú)差異的執(zhí)行,無(wú)論是Arm,PowerPC,還是 X86。

移動(dòng)設(shè)備一般不會(huì)使用PC上的存儲(chǔ)設(shè)備,但Flash,SD卡高效存取是它要著重考慮的。移動(dòng)設(shè)備對(duì)能耗非常敏感,對(duì)人機(jī)交互要求很高,這一系列因素催生了我們所見(jiàn)到的Android的樣子。

▍為什么自動(dòng)駕駛需要操作系統(tǒng)?

一個(gè)汽車駕駛系統(tǒng)運(yùn)行的軟件包括感知、控制、決策、定位等一系列高計(jì)算消耗,邏輯十分復(fù)雜,對(duì)安全可靠性要求特別高的程序,簡(jiǎn)單的單片機(jī)肯定搞不定,需要建立在一個(gè)成熟的幾乎五臟俱全的通用操作系統(tǒng)基礎(chǔ)上,同時(shí)要滿足實(shí)時(shí)性、分布式、可靠性、安全性、通用性等要求。從頭搞一個(gè)操作系統(tǒng)是非常不明智的做法,所以對(duì)于沒(méi)有風(fēng)河Vxworks家底兒的玩家,首選是Linux,然后在Linux 基礎(chǔ)上使用中間件的形式去擴(kuò)展。

汽車行業(yè)的人可能會(huì)第一時(shí)間站出來(lái)表達(dá)不同意見(jiàn),因?yàn)楦闫囯娮拥淖钍煜さ那度胧较到y(tǒng)是類Unix的QNX, 以往的汽車電子行業(yè)的嵌入式開發(fā)集中在汽車娛樂(lè)系統(tǒng)控制, QNX 體積小速度快,非常穩(wěn)定和可靠,因此它占據(jù)了汽車電子近75%的份額。但是簡(jiǎn)單幾個(gè)問(wèn)題就能理解為什么它不可選:要做感知,目前公認(rèn)的解決方案是使用深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行識(shí)別,有現(xiàn)成的深度學(xué)習(xí)框架運(yùn)行在QNX上嗎,它能驅(qū)動(dòng)GPU加速嗎?

操作系統(tǒng)的選擇更要考慮開發(fā)的難度、后續(xù)的擴(kuò)展性和解決方案的開放性。Linux對(duì)于自動(dòng)駕駛及機(jī)器人運(yùn)動(dòng)控制而言,可以說(shuō)夠,也可以說(shuō)不夠。因?yàn)闄C(jī)器人和自動(dòng)駕駛汽車的自主運(yùn)動(dòng),有一個(gè)很大的共性:各種傳感、驅(qū)動(dòng)以及模塊是各自獨(dú)立運(yùn)作的,決策、感知等算法是完全獨(dú)立的模塊,各自工作,同時(shí)要互相交流,使用一種規(guī)格一致、統(tǒng)一的交流語(yǔ)言。每個(gè)模塊需要?jiǎng)e的模塊配合,也就是我們常說(shuō)的分布式協(xié)作系統(tǒng)。

如果把每個(gè)模塊放入一個(gè)個(gè)獨(dú)立的進(jìn)程中,進(jìn)程間通信將是一個(gè)十分重要的考慮因素。我們知道的Linux操作系統(tǒng)提供的一系列進(jìn)程間通信的手段:信號(hào)量、隊(duì)列、管道、共享內(nèi)存、套接字,可以去做,但這需要大量的技術(shù)編碼工作,而我們的注意力是算法,不是通信。那怎么解決這個(gè)問(wèn)題呢?

▍選擇ROS操作系統(tǒng)

ROS完全封裝了模塊之間的通信細(xì)節(jié),提供了優(yōu)雅的方式進(jìn)行各種類型的交互( 一對(duì)一、多對(duì)一、多對(duì)多、有返回、無(wú)返回、同步、異步),像這種通訊框架,會(huì)有很多其它現(xiàn)成的東西可以用。

ROS 巨大的價(jià)值不僅如此,因?yàn)樗錾砀哔F,前身是斯坦福人工智能實(shí)驗(yàn)室的機(jī)器人項(xiàng)目STAIR,后來(lái)由Willow garage 組織維護(hù)。它是免費(fèi)的開源框架,軟件架構(gòu)清晰一流,提供:

•  
多語(yǔ)言接口支持

•  廣泛的庫(kù)文件實(shí)現(xiàn)以機(jī)動(dòng)性、操作控制、感知為主的機(jī)器人功能

•  大量的工具組合用以配置、啟動(dòng)、自檢、調(diào)試、可視化、登錄、測(cè)試、終止分布式計(jì)算系統(tǒng)

ROS為常用的機(jī)器人和傳感器提供了硬件驅(qū)動(dòng)接口。從軟件架構(gòu)角度講,它是 一種基于消息傳遞通信的、分布式多進(jìn)程框架。ROS很早就被機(jī)器人行業(yè)使用,有很多知名的機(jī)器人開源庫(kù), 例如:

•  
基于Quaternion 的坐標(biāo)轉(zhuǎn)換

•  
3D點(diǎn)云處理驅(qū)動(dòng)

•  
規(guī)劃方面的MoveIt

•  
OpenRAVE 規(guī)劃庫(kù)

•  
控制方面的OROCOS 實(shí)時(shí)運(yùn)動(dòng)控制庫(kù)

•  
視覺(jué)圖像處理方面的OpenCV 和PCL開源庫(kù)

•  
定位算法SLAM等

這些良好的特性吸引了成千上萬(wàn)的機(jī)器人愛(ài)好者加入貢獻(xiàn),提供了機(jī)器人相關(guān)的各種算法包,各大硬件傳感器廠商,會(huì)缺省提供ROS的驅(qū)動(dòng)Wrapper。ROS的支持與發(fā)展依托著一個(gè)強(qiáng)大的社區(qū)。ros.org尤其關(guān)注兼容性和支持文檔,提供了一套“一站式”的方案使得用戶得以搜索并學(xué)習(xí)來(lái)自全球開發(fā)者數(shù)以千計(jì)的ROS程序包。這個(gè)生態(tài)是無(wú)價(jià)的,正因?yàn)檫@樣,ROS基本是科研單位和機(jī)器人相關(guān)行業(yè)的首選,更準(zhǔn)確的說(shuō)法是選擇Ubuntu+ROS。

如今是技術(shù)開放的時(shí)代,做技術(shù)框架選擇時(shí),不能一味硬著頭皮重復(fù)造輪子。在選擇上,除了看技術(shù)先進(jìn)性, 更要看技術(shù)的生態(tài)環(huán)境,參與到一個(gè)強(qiáng)大、開放、可擴(kuò)展的技術(shù)生態(tài)中,從中索取和貢獻(xiàn)是更明智的。選擇Linux, 是因?yàn)樯鷳B(tài),選擇ROS,更是因?yàn)樯鷳B(tài)。

▍ROS在自動(dòng)駕駛上有什么缺陷?

ROS在機(jī)器人運(yùn)動(dòng)控制中完全夠用,但是用于自動(dòng)駕駛工程實(shí)踐,其實(shí)是有很多問(wèn)題的。

1. 單點(diǎn)失敗問(wèn)題

ROS的框架示意圖如下,我們可以看到各個(gè)節(jié)點(diǎn)之所以可以互相認(rèn)識(shí),互相通信,是因?yàn)樗鼈冊(cè)趩?dòng)前,把自己的信息告知一個(gè)統(tǒng)一的ROS Master,ROS Master 是一個(gè)名字服務(wù)器。



這樣就會(huì)造成一個(gè)問(wèn)題, 這樣的架構(gòu)不是一個(gè)純粹的分布式架構(gòu),有單點(diǎn)失敗問(wèn)題,這個(gè)單點(diǎn)專指 ROS Master, 其它應(yīng)用節(jié)點(diǎn)的損失是互不影響的。這個(gè)問(wèn)題對(duì)于自動(dòng)駕駛這種要求高可靠性,甚至?xí)榇嗽O(shè)計(jì)冗余備份機(jī)制的場(chǎng)景來(lái)說(shuō)是完全不能接受的。 ROS 節(jié)點(diǎn)與節(jié)點(diǎn)之間的通信是Socket,即使一對(duì)多的情況, 也是分解成 N對(duì)Socket, 如果是多對(duì)多,讀者可以想象。

2. 帶寬擁塞

自動(dòng)駕駛有很多傳感器,如圖:



它對(duì)于帶寬資源是十分敏感的,以攝像頭傳感器為例,因?yàn)樽詣?dòng)駕駛要高速行駛,采樣率要高,至少每秒30幀, 以1080P的像素計(jì)算,大概為 180M/S,而且傳感器的數(shù)據(jù)不只一個(gè)節(jié)點(diǎn)感興趣,見(jiàn)下圖:



這個(gè)帶寬的占用是很恐怖的, 這還只是一個(gè)攝像頭,一般汽車配置多個(gè)攝像頭, 還有64線雷達(dá),數(shù)據(jù)量可想而知。當(dāng)這種訂閱者眾多的時(shí)候,在ROS當(dāng)前機(jī)制下帶寬資源消耗是巨大的。

3. 消息不支持向前兼容

ROS 傳遞的消息不支持向前兼容,也就是說(shuō)在后面應(yīng)用中,在已經(jīng)定義的消息類型中,增加一個(gè)字段,這樣新節(jié)點(diǎn)和老節(jié)點(diǎn)之間就這個(gè)消息進(jìn)行溝通就會(huì)發(fā)生錯(cuò)誤,準(zhǔn)確的講是md5校驗(yàn)失敗。接口兼容性問(wèn)題會(huì)對(duì)歷史數(shù)據(jù)的使用造成很大的影響,尤其是自動(dòng)駕駛領(lǐng)域,海量的歷史數(shù)據(jù)是寶庫(kù),不能用了,或者做大量的處理才可以用都是不可接受的。

4. 安全問(wèn)題

如果一個(gè)ROS node 被挾持,黑客可以通過(guò)這個(gè)node 將資源耗盡,進(jìn)而將這個(gè)系統(tǒng)搞垮。如果ROS node與node之間的消息被截獲或者偽造,那么自動(dòng)駕駛汽車可能會(huì)被黑客控制。

這四個(gè)主要問(wèn)題,原生的ROS 1.0 都是無(wú)法解決的,ROS 2.0 雖然解決了部分,但還在測(cè)試階段, 自動(dòng)駕駛玩家是沒(méi)有時(shí)間和耐心去等待ROS 2.0成熟的。

▍如何解決上述問(wèn)題?

1. 單點(diǎn)失敗問(wèn)題的解決


解決單點(diǎn)失敗一般有兩個(gè)思路, 一個(gè)思路如百度自動(dòng)駕駛Apollo 采用的一種叫RTPS 的服務(wù)發(fā)現(xiàn)協(xié)議,通過(guò)節(jié)點(diǎn)之間的自動(dòng)發(fā)現(xiàn),完成純粹意義上的p2p分布式拓?fù)浣Y(jié)構(gòu),見(jiàn)下圖:





ROS 2.0 其實(shí)也是用相同的思路去解決這個(gè)問(wèn)題,它采用工業(yè)級(jí)別的DDS 中間件,節(jié)點(diǎn)之間可以自動(dòng)發(fā)現(xiàn)。

另一個(gè)思路是ROS Master 這個(gè)關(guān)鍵節(jié)點(diǎn)采取備份機(jī)制,如果ROS Master 宕機(jī)了,備份節(jié)點(diǎn)會(huì)頂上,可以采用開源的分布式協(xié)調(diào)框架zookeeper 去完成這個(gè)功能,見(jiàn)下圖:

2. 帶寬擁塞問(wèn)題的解決

對(duì)于進(jìn)程通訊使用socket 造成帶寬的擁塞和CPU 的負(fù)擔(dān),方案很簡(jiǎn)單,進(jìn)程通信采用共享內(nèi)存機(jī)制,還是拿攝像機(jī)為例子,見(jiàn)下圖:

使用共享內(nèi)存的好處,相比于套接字,越是多對(duì)多,對(duì)帶寬利用的優(yōu)化越明顯。ROS 2.0 采用的DDS 中間件方案,已經(jīng)考慮了進(jìn)程間通信采用共享內(nèi)存。

3. 接口兼容問(wèn)題的解決

對(duì)于接口兼容問(wèn)題, 百度自動(dòng)駕駛Apollo 框架采用的方案是使用谷歌開源的protobuf(中間消息結(jié)構(gòu),類比XML,JSON,包括消息傳遞,序列化和反序列化機(jī)制)封裝成ROS msg,來(lái)代替原生的ROS msg, protobuf 提供了良好的消息向前兼容性。這樣修改不破壞原生ROS msg機(jī)制,而且仍然使用這個(gè)機(jī)制通信的其它ROS 節(jié)點(diǎn),是一個(gè)比較干凈的侵入修改方案。

4. 安全問(wèn)題的解決

安全方面的問(wèn)題,可以采用LXC(linux container) 這種輕量級(jí)虛擬化技術(shù),把每個(gè)ROS node放入沙盒,限制每個(gè)ROS node 權(quán)限。節(jié)點(diǎn)與節(jié)點(diǎn)的通信消息可以進(jìn)行加密解密處理,防止中間有人攻擊。

▍結(jié)語(yǔ)

以上,我們講述了為什么自動(dòng)駕駛和機(jī)器人運(yùn)動(dòng)控制都采用ubuntu+ROS 作為操作系統(tǒng)的背景和原因,總結(jié)了目前原生 ROS 1.0 在自動(dòng)駕駛場(chǎng)景使用的問(wèn)題及參考修改方案。希望通過(guò)本文的描述,大家會(huì)對(duì)機(jī)器人和自動(dòng)駕駛的軟件操作系統(tǒng)層面有一個(gè)大概的了解。 
分享到:
 
反對(duì) 0 舉報(bào) 0 收藏 0 評(píng)論 0
滬ICP備11026917號(hào)-25