ROS:用于Automated Driving的模塊化軟件架構(gòu)
自動(dòng)駕駛對(duì)軟件架構(gòu)-Software Frameworks (SWFs)設(shè)計(jì)有著特殊的需求,若開(kāi)始一個(gè)自動(dòng)駕駛項(xiàng)目,作為開(kāi)發(fā)者,我們可能會(huì)有如下幾方面的訴求。
1、模塊化和可擴(kuò)展性
軟件可被明確劃分為獨(dú)立的子模塊,由于它們功能獨(dú)立,這些模塊可在Low Effort下被單獨(dú)測(cè)試和評(píng)估,從而提高維護(hù)性并實(shí)現(xiàn)高效的協(xié)作開(kāi)發(fā)。為了實(shí)現(xiàn)模塊化,需要定義通用的接口,具有良好接口定義的軟件架構(gòu),可便于功能的擴(kuò)展。
2、性能
在實(shí)時(shí)計(jì)算中,任務(wù)應(yīng)在確定的時(shí)間內(nèi)執(zhí)行。硬實(shí)時(shí)保證了每個(gè)計(jì)算響應(yīng)都在預(yù)期的時(shí)間內(nèi)以特定的速率進(jìn)行。而軟實(shí)時(shí)則僅保證平均響應(yīng)時(shí)間。在自動(dòng)駕駛領(lǐng)域,至少應(yīng)滿足軟實(shí)時(shí)的要求。
3、仿真和調(diào)試
自動(dòng)系統(tǒng)的離線仿真和調(diào)試是非常重要的一方面,因此軟件架構(gòu)應(yīng)提供運(yùn)行環(huán)境和支持工具以用于車(chē)輛不同抽象層的模擬,例如從高層級(jí)的預(yù)測(cè)到低層級(jí)的控制。
4、容錯(cuò)性和監(jiān)控
SWF應(yīng)能夠在運(yùn)行時(shí)從意外故障中恢復(fù),例如硬件或軟件相關(guān)的中斷,特別是通訊時(shí)的噪聲、抖動(dòng)、延遲等。為了實(shí)現(xiàn)容錯(cuò),監(jiān)控可實(shí)現(xiàn)冗余的邏輯校驗(yàn),以保證系統(tǒng)的可靠運(yùn)行。
5、應(yīng)用及支持
SWF應(yīng)為用戶或開(kāi)發(fā)者提供簡(jiǎn)易的監(jiān)測(cè)和數(shù)據(jù)可視化工具,提高其易用性,并可提供大量的文檔、示例和教程。
1、自動(dòng)駕駛軟件架構(gòu)介紹
在過(guò)去的這些年,自動(dòng)駕駛領(lǐng)域出現(xiàn)了很多不同的軟件架構(gòu)。在自動(dòng)駕駛項(xiàng)目開(kāi)始前期,軟件架構(gòu)的選擇和設(shè)計(jì)是至關(guān)重要的一步,下面我介紹兩種被人所熟知且被廣泛使用的自動(dòng)駕駛軟件架構(gòu)。
Real-time Database for Cognitive Automobiles(KogMo-RTDB)
KogMo-RTDB為對(duì)象的插入、更新和刪除提供了統(tǒng)一的接口,盡管KogMo-RTDB為數(shù)據(jù)對(duì)象提供了動(dòng)態(tài)內(nèi)存分配,但內(nèi)存需要在對(duì)象內(nèi)靜態(tài)分配。這在物體尺寸變化的場(chǎng)景可能會(huì)變的麻煩,如通過(guò)雷達(dá)掃描設(shè)備獲取的測(cè)量數(shù)據(jù)。對(duì)象可在共享內(nèi)存中保留一段時(shí)間、序列化并寫(xiě)入存儲(chǔ)中。然而在分布式系統(tǒng)中,KogMo-RTDB并不通過(guò)網(wǎng)絡(luò)協(xié)議進(jìn)行通訊。KogMo-RTDB需要額外的工具用于記錄和回放數(shù)據(jù),而且,最關(guān)鍵的是目前該項(xiàng)目的開(kāi)發(fā)者社區(qū)并不活躍,因此維護(hù)的很差。
時(shí)間觸發(fā)式架構(gòu)
EB基于和Audi的合作開(kāi)發(fā)經(jīng)驗(yàn)推出的模塊化ADAS開(kāi)發(fā)環(huán)境平臺(tái)—EB Assist Automotive Data and Time-Triggered Framework (ADTF)是目前用于ADAS系統(tǒng)開(kāi)發(fā)和測(cè)試的最常用軟件架構(gòu),可幫助ADAS軟件開(kāi)發(fā)者快速完成新功能的開(kāi)發(fā)。作為一種具有分布式進(jìn)程鏈的實(shí)時(shí)系統(tǒng),其可支持同步和異步數(shù)據(jù)的處理。各進(jìn)程鏈之間的通訊可通過(guò)事件、服務(wù)呼叫等方式實(shí)現(xiàn)。ADTF可通過(guò)自定義模塊進(jìn)行擴(kuò)展,同時(shí)也提供諸如設(shè)備驅(qū)動(dòng)和Matlab/simulink插件等工具箱以提高開(kāi)發(fā)效率,與KogMo-RTDB一樣,ADTF也提供離線系統(tǒng)的仿真和調(diào)試。由于ADTF是商業(yè)化產(chǎn)品,因此主要用于商業(yè)化公司而不能被我們普通開(kāi)發(fā)者所使用,除非你既是土豪又對(duì)這玩意感興趣,這樣的結(jié)果就是普通開(kāi)發(fā)者或興趣愛(ài)好者很難獲取有關(guān)的應(yīng)用教程和案例。
下面我將切入該篇重點(diǎn),著重介紹被研究結(jié)構(gòu)和很多國(guó)際團(tuán)隊(duì),哪怕我們普通開(kāi)發(fā)者也可廣泛使用的一種用于自動(dòng)駕駛項(xiàng)目開(kāi)發(fā)的軟件架構(gòu):ROS
2、Robot Operating System(ROS)
樓主開(kāi)通公眾號(hào)時(shí)寫(xiě)的第一篇文章就是關(guān)于ROS的,主要就是對(duì)ROS的發(fā)展史、特性及系統(tǒng)架構(gòu)做了簡(jiǎn)單的介紹《ROS簡(jiǎn)介及其系統(tǒng)框架》,下面我將結(jié)合文章開(kāi)頭提到的軟件架構(gòu)需求闡述ROS應(yīng)用于自動(dòng)駕駛領(lǐng)域的優(yōu)勢(shì)。
系統(tǒng)架構(gòu)
ROS架構(gòu)是一多服務(wù)器分布式計(jì)算環(huán)境,其允許應(yīng)用跨服務(wù)器通訊并有機(jī)的組成一個(gè)系統(tǒng)整體。Master是ROS中一特殊的服務(wù)器,其負(fù)責(zé)應(yīng)用的注冊(cè)、執(zhí)行并運(yùn)行參數(shù)服務(wù)器(Parameter Server)和信息記錄服務(wù)(Logging Service)。從服務(wù)器(Slave Server)與Master可使用TCP或UDP協(xié)議通過(guò)局域網(wǎng)與Master建立連接。
軟件架構(gòu)
運(yùn)行在ROS環(huán)境中的應(yīng)用為Nodes(節(jié)點(diǎn))和Nodelets(結(jié)點(diǎn)),兩者之間的區(qū)別就是Nodes(節(jié)點(diǎn))是單獨(dú)的OS進(jìn)程,而Nodelets(結(jié)點(diǎn))則是將多個(gè)算法打包并運(yùn)行在單個(gè)OS進(jìn)程中,這樣避免了數(shù)據(jù)傳輸(因進(jìn)程內(nèi)部是共享的,傳數(shù)據(jù)的話傳個(gè)指針即可),從而實(shí)現(xiàn)零拷貝(Zero Copy),因此Nodelet可有效降低Node之間的消息傳輸(進(jìn)程間通訊)。ROS應(yīng)用代碼可使用C++、Python或Lisp進(jìn)行編寫(xiě),ROS的交互層能提供如下服務(wù):
1、 單向異步信息通訊
2、 雙向同步信息通訊
3、 診斷信息傳輸
4、 局部和全局參數(shù)處理
5、 基于時(shí)間的坐標(biāo)轉(zhuǎn)換
6、 關(guān)鍵信息記錄等
模塊化和可擴(kuò)展性
Message通訊機(jī)制:基于Message通訊的ROS支持兩種類(lèi)型的Message通訊:同步和異步。但同步通訊其實(shí)用的很少,因此主要介紹一下異步通訊。異步通訊在ROS中的應(yīng)用以發(fā)布-訂閱的形式設(shè)計(jì),如下圖所示:
提供信息的節(jié)點(diǎn)會(huì)首先定義一發(fā)布器并將其注冊(cè)到ROS系統(tǒng)中,訂閱信息的節(jié)點(diǎn)則需要定義和注冊(cè)一訂閱器,注冊(cè)的發(fā)布器和訂閱器之間以獨(dú)有的主題名(Topic)相互進(jìn)行通訊。
即插即用的模塊化特性:在新系統(tǒng)開(kāi)發(fā)時(shí),最終采用的算法往往在原型設(shè)計(jì)之后,為了實(shí)現(xiàn)功能子組件的及時(shí)替換,需要組件之間建立簡(jiǎn)潔且完善的接口。而在ROS內(nèi)部,所需的接口在上述介紹的Message機(jī)制中得到了很好的解決。每個(gè)節(jié)點(diǎn)都遵守組件的輸入和輸出消息格式,例如圖像處理的ROS節(jié)點(diǎn)可不經(jīng)任何修改的情況下插入系統(tǒng)。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
3月27日立即報(bào)名>> 【工程師系列】汽車(chē)電子技術(shù)在線大會(huì)
-
4月30日立即下載>> 【村田汽車(chē)】汽車(chē)E/E架構(gòu)革新中,新智能座艙挑戰(zhàn)的解決方案
-
5月15-17日立即預(yù)約>> 【線下巡回】2025年STM32峰會(huì)
-
即日-5.15立即報(bào)名>>> 【在線會(huì)議】安森美Hyperlux™ ID系列引領(lǐng)iToF技術(shù)革新
-
5月15日立即下載>> 【白皮書(shū)】精確和高效地表征3000V/20A功率器件應(yīng)用指南
-
5月16日立即參評(píng) >> 【評(píng)選啟動(dòng)】維科杯·OFweek 2025(第十屆)人工智能行業(yè)年度評(píng)選
推薦專(zhuān)題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開(kāi)始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 “AI寒武紀(jì)”爆發(fā)至今,五類(lèi)新物種登上歷史舞臺(tái)
- 4 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 5 國(guó)產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計(jì)算迎來(lái)商業(yè)化突破,但落地仍需時(shí)間
- 7 東陽(yáng)光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開(kāi)成長(zhǎng)空間
- 8 地平線自動(dòng)駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營(yíng)收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?