ROS:用于Automated Driving模塊化軟件架構
性能
實時性:在當前的系統(tǒng)架構下,由于缺失節(jié)點執(zhí)行和消息傳遞優(yōu)先級的時間保證,ROS并不具有實時特性。ROS最初設計的目標機器人是PR2,當時只是應用于科研領域因此不需要考慮實時性方面的問題,但伴隨ROS已走過11個年頭,其得到了極大的推廣和應用,盡管依然存在不少局限性但依然無法掩蓋它的鋒芒。已發(fā)布的ROS2已具有實時特性,并相比ROS1提高了系統(tǒng)的穩(wěn)定性、安全性及分布式處理能力,關于ROS1與ROS2的區(qū)別主要如下所示,后續(xù)樓主會專門寫一篇兩者的對比文章。
Node Pipelining:在自動駕駛汽車中,特定的任務以預先定義的恒定速率計算是有益的,例如基于視覺的定位,其輸入圖像以15Hz記錄,那位置的更新通常也應在15Hz速率下。如果是串行處理方式,那從圖像獲取到內(nèi)部處理再到結果輸出,其整個更新速率顯然不是15Hz。但如果將單個或多個處理步驟分解成更小的單元則可滿足期望的時間限制,這就是Node Pipelining的概念。
仿真和調(diào)試
離線處理:為了仿真和分析子系統(tǒng)及調(diào)試系統(tǒng)關鍵錯誤。對系統(tǒng)中傳遞的數(shù)據(jù)進行有選擇的記錄是ROS的基礎特性。
以一個簡化的視覺定位的案例具體說明下,如上圖所示,用于定位組件的輸入信息以Rosbag的形式記錄并存儲下來,存儲的數(shù)據(jù)會保留時間戳及消息內(nèi)容,以便及時準確的重放所有實時數(shù)據(jù)用于離線系統(tǒng)的仿真模擬或數(shù)據(jù)分析。另外,依賴于硬件設備,尤其是網(wǎng)絡帶寬和存儲的吞吐量,所有主題信息都可在車輛行駛時在線記錄以分析關鍵駕駛場景和決策,如路徑規(guī)劃和控制等。
仿真: ROS的模塊化消息架構允許數(shù)據(jù)輸入源的更換,因此節(jié)點可很容易的基于記錄的數(shù)據(jù)進行測試。如果在仿真時還需要用戶手工輸入一些信息,那么Rviz(一個強大的可視化調(diào)試和仿真工具)則提供了一系列交互式標簽以用于定位和定向障礙物等。
而對于整個系統(tǒng)的仿真及回歸測試,ROS則可與Gazebo無縫鏈接,Gazebo是一個功能強大的3D模擬仿真引擎,其具有完整的動力學和運動學特性。通過其強大的可擴展插件系統(tǒng),可支持真實傳感器的仿真并包括預定義的傳感器噪聲。定制化的傳感器模型也可通過Gazebo 的API進行添加(說太多沒什么用,只有你親自使用過才會體會它的強大,反正Gazebo很牛逼)。
容錯性和安全性
系統(tǒng)診斷和監(jiān)測:在系統(tǒng)開發(fā)和運行期間,攻城獅和用戶可立即了解系統(tǒng)的健康狀況,例如,所有傳感器都已連接并正向系統(tǒng)中發(fā)送數(shù)據(jù),且所有的組件都以預定的速率計算所需數(shù)據(jù)等。為了方便攻城獅為其組件添加診斷,ROS提供了一便于使用和集成的基礎框架,以用于向中央診斷管理器發(fā)送診斷信息,該中央診斷管理器以交通燈的顏色方案顯示系統(tǒng)運行狀況以便立即查明關鍵組件或數(shù)據(jù)完整性是否存在風險。
Lock Stepping鎖步:即由兩個處理器構成的自監(jiān)控對,其不間斷的檢查功能的正確性并可診斷出故障處理器,從而建立故障抑制區(qū)防止故障蔓延。ROS并沒有特定的功能來實現(xiàn)鎖步,然而模塊化架構及標準接口有助于鎖步系統(tǒng)的開發(fā)以提高系統(tǒng)可靠性。
應用及支持
坐標轉換系統(tǒng):在多傳感器系統(tǒng)中會定義多個坐標系統(tǒng),如攝像頭、車本身或全局坐標系統(tǒng),這就需要將數(shù)據(jù)在不同坐標系統(tǒng)中頻繁轉換,ROS則提供了基于時間的坐標轉換服務,可實現(xiàn)某一坐標系的數(shù)據(jù)向任意其他坐標系的轉換(強大的TF庫)。
多速率系統(tǒng):在自動駕駛汽車中,基于傳感器的信息通常以固定的速率交互。例如攝像頭的圖像信息以15Hz速率獲取并更新,而GNSS位置確定則只有在1Hz或5Hz速率下。當將多傳感器數(shù)據(jù)進行融合時,數(shù)據(jù)同步是非常重要的一方面。為了簡化多速率系統(tǒng)中的數(shù)據(jù)同步,ROS提供了基于時間戳的同步原理-消息過濾器(Message Filter),它從多個數(shù)據(jù)源采集不同類型的數(shù)據(jù),只有每個信息源的信息具有相同時間戳的時候才會將信息發(fā)布出去。
可視化:ROS提供了兩個擴展性極強的工具-rqt和rviz,其可幫助我們實現(xiàn)圖像顯示,3D畫圖(點云)、車輛狀態(tài)數(shù)據(jù)(里程)等。
3、總結
通過上面的敘述,最后以一張圖表的形式對三種軟件架構做個比較:
備注:上中下水平依次以++ o --代表
從上面的對比中,我們可清楚的看到ROS在自動駕駛領域進行應用開發(fā)時所具有的優(yōu)勢,尤其在原型設計方面。像百度早期的阿波羅、開源的Autoware都是基于ROS做的自動駕駛項目,很多Tier1的供應商及OEM,如BOSCH、BMW等也都會選擇ROS作為他們自動駕駛項目開發(fā)的一個有力組件和工具。
- END -
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
圖片新聞