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

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

性能

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

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

仿真和調(diào)試

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

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

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

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

容錯(cuò)性和安全性

系統(tǒng)診斷和監(jiān)測(cè):在系統(tǒng)開(kāi)發(fā)和運(yùn)行期間,攻城獅和用戶(hù)可立即了解系統(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è)處理器構(gòu)成的自監(jiān)控對(duì),其不間斷的檢查功能的正確性并可診斷出故障處理器,從而建立故障抑制區(qū)防止故障蔓延。ROS并沒(méi)有特定的功能來(lái)實(shí)現(xiàn)鎖步,然而模塊化架構(gòu)及標(biāo)準(zhǔn)接口有助于鎖步系統(tǒng)的開(kāi)發(fā)以提高系統(tǒng)可靠性。

應(yīng)用及支持

坐標(biāo)轉(zhuǎn)換系統(tǒng):在多傳感器系統(tǒng)中會(huì)定義多個(gè)坐標(biāo)系統(tǒng),如攝像頭、車(chē)本身或全局坐標(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庫(kù))。

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

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

3、總結(jié)

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

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

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

END -

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

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

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

暫無(wú)評(píng)論

暫無(wú)評(píng)論

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

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