侵權(quán)投訴
訂閱
糾錯
加入自媒體

ROS:用于Automated Driving模塊化軟件架構(gòu)

性能

實(shí)時(shí)性:在當(dāng)前的系統(tǒng)架構(gòu)下,由于缺失節(jié)點(diǎn)執(zhí)行和消息傳遞優(yōu)先級的時(shí)間保證,ROS并不具有實(shí)時(shí)特性。ROS最初設(shè)計(jì)的目標(biāo)機(jī)器人是PR2,當(dāng)時(shí)只是應(yīng)用于科研領(lǐng)域因此不需要考慮實(shí)時(shí)性方面的問題,但伴隨ROS已走過11個年頭,其得到了極大的推廣和應(yīng)用,盡管依然存在不少局限性但依然無法掩蓋它的鋒芒。已發(fā)布的ROS2已具有實(shí)時(shí)特性,并相比ROS1提高了系統(tǒng)的穩(wěn)定性、安全性及分布式處理能力,關(guān)于ROS1與ROS2的區(qū)別主要如下所示,后續(xù)樓主會專門寫一篇兩者的對比文章。

Node Pipelining:在自動駕駛汽車中,特定的任務(wù)以預(yù)先定義的恒定速率計(jì)算是有益的,例如基于視覺的定位,其輸入圖像以15Hz記錄,那位置的更新通常也應(yīng)在15Hz速率下。如果是串行處理方式,那從圖像獲取到內(nèi)部處理再到結(jié)果輸出,其整個更新速率顯然不是15Hz。但如果將單個或多個處理步驟分解成更小的單元則可滿足期望的時(shí)間限制,這就是Node Pipelining的概念。

仿真和調(diào)試

離線處理:為了仿真和分析子系統(tǒng)及調(diào)試系統(tǒng)關(guān)鍵錯誤。對系統(tǒng)中傳遞的數(shù)據(jù)進(jìn)行有選擇的記錄是ROS的基礎(chǔ)特性。

以一個簡化的視覺定位的案例具體說明下,如上圖所示,用于定位組件的輸入信息以Rosbag的形式記錄并存儲下來,存儲的數(shù)據(jù)會保留時(shí)間戳及消息內(nèi)容,以便及時(shí)準(zhǔn)確的重放所有實(shí)時(shí)數(shù)據(jù)用于離線系統(tǒng)的仿真模擬或數(shù)據(jù)分析。另外,依賴于硬件設(shè)備,尤其是網(wǎng)絡(luò)帶寬和存儲的吞吐量,所有主題信息都可在車輛行駛時(shí)在線記錄以分析關(guān)鍵駕駛場景和決策,如路徑規(guī)劃和控制等。

仿真: ROS的模塊化消息架構(gòu)允許數(shù)據(jù)輸入源的更換,因此節(jié)點(diǎn)可很容易的基于記錄的數(shù)據(jù)進(jìn)行測試。如果在仿真時(shí)還需要用戶手工輸入一些信息,那么Rviz(一個強(qiáng)大的可視化調(diào)試和仿真工具)則提供了一系列交互式標(biāo)簽以用于定位和定向障礙物等。

而對于整個系統(tǒng)的仿真及回歸測試,ROS則可與Gazebo無縫鏈接,Gazebo是一個功能強(qiáng)大的3D模擬仿真引擎,其具有完整的動力學(xué)和運(yùn)動學(xué)特性。通過其強(qiáng)大的可擴(kuò)展插件系統(tǒng),可支持真實(shí)傳感器的仿真并包括預(yù)定義的傳感器噪聲。定制化的傳感器模型也可通過Gazebo 的API進(jìn)行添加(說太多沒什么用,只有你親自使用過才會體會它的強(qiáng)大,反正Gazebo很牛逼)。

容錯性和安全性

系統(tǒng)診斷和監(jiān)測:在系統(tǒng)開發(fā)和運(yùn)行期間,攻城獅和用戶可立即了解系統(tǒng)的健康狀況,例如,所有傳感器都已連接并正向系統(tǒng)中發(fā)送數(shù)據(jù),且所有的組件都以預(yù)定的速率計(jì)算所需數(shù)據(jù)等。為了方便攻城獅為其組件添加診斷,ROS提供了一便于使用和集成的基礎(chǔ)框架,以用于向中央診斷管理器發(fā)送診斷信息,該中央診斷管理器以交通燈的顏色方案顯示系統(tǒng)運(yùn)行狀況以便立即查明關(guān)鍵組件或數(shù)據(jù)完整性是否存在風(fēng)險(xiǎn)。

Lock Stepping鎖步:即由兩個處理器構(gòu)成的自監(jiān)控對,其不間斷的檢查功能的正確性并可診斷出故障處理器,從而建立故障抑制區(qū)防止故障蔓延。ROS并沒有特定的功能來實(shí)現(xiàn)鎖步,然而模塊化架構(gòu)及標(biāo)準(zhǔn)接口有助于鎖步系統(tǒng)的開發(fā)以提高系統(tǒng)可靠性。

應(yīng)用及支持

坐標(biāo)轉(zhuǎn)換系統(tǒng):在多傳感器系統(tǒng)中會定義多個坐標(biāo)系統(tǒng),如攝像頭、車本身或全局坐標(biāo)系統(tǒng),這就需要將數(shù)據(jù)在不同坐標(biāo)系統(tǒng)中頻繁轉(zhuǎn)換,ROS則提供了基于時(shí)間的坐標(biāo)轉(zhuǎn)換服務(wù),可實(shí)現(xiàn)某一坐標(biāo)系的數(shù)據(jù)向任意其他坐標(biāo)系的轉(zhuǎn)換(強(qiáng)大的TF庫)。

多速率系統(tǒng):在自動駕駛汽車中,基于傳感器的信息通常以固定的速率交互。例如攝像頭的圖像信息以15Hz速率獲取并更新,而GNSS位置確定則只有在1Hz或5Hz速率下。當(dāng)將多傳感器數(shù)據(jù)進(jìn)行融合時(shí),數(shù)據(jù)同步是非常重要的一方面。為了簡化多速率系統(tǒng)中的數(shù)據(jù)同步,ROS提供了基于時(shí)間戳的同步原理-消息過濾器(Message Filter),它從多個數(shù)據(jù)源采集不同類型的數(shù)據(jù),只有每個信息源的信息具有相同時(shí)間戳的時(shí)候才會將信息發(fā)布出去。

可視化:ROS提供了兩個擴(kuò)展性極強(qiáng)的工具-rqt和rviz,其可幫助我們實(shí)現(xiàn)圖像顯示,3D畫圖(點(diǎn)云)、車輛狀態(tài)數(shù)據(jù)(里程)等。

3、總結(jié)

通過上面的敘述,最后以一張圖表的形式對三種軟件架構(gòu)做個比較:

備注:上中下水平依次以++   o    --代表

從上面的對比中,我們可清楚的看到ROS在自動駕駛領(lǐng)域進(jìn)行應(yīng)用開發(fā)時(shí)所具有的優(yōu)勢,尤其在原型設(shè)計(jì)方面。像百度早期的阿波羅、開源的Autoware都是基于ROS做的自動駕駛項(xiàng)目,很多Tier1的供應(yīng)商及OEM,如BOSCH、BMW等也都會選擇ROS作為他們自動駕駛項(xiàng)目開發(fā)的一個有力組件和工具。

END -

<上一頁  1  2  
聲明: 本文由入駐維科號的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報(bào)。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評論

暫無評論

文章糾錯
x
*文字標(biāo)題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號