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 -
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
圖片新聞
最新活動更多
推薦專題
- 項(xiàng)目經(jīng)理(汽車內(nèi)飾&汽車電子) 伯恩光學(xué)(惠州)有限公司
- 產(chǎn)品工程師(汽車) 易思維(杭州)科技股份有限公司
- IE工程師(汽車智聯(lián)) 惠州碩貝德無線科技股份有限公司
- 結(jié)構(gòu)工程師-汽車電子事業(yè)部(J10116) 深圳奧尼電子股份有限公司
- 銷售總監(jiān)-汽車電子方向 深圳市智立方自動化設(shè)備股份有限公司
- 銷售經(jīng)理(汽車新能源行業(yè)) 廣州瑞松智能科技股份有限公司
- 高級軟件工程師 廣東省/深圳市
- 自動化高級工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市