0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

智能汽車中機(jī)器人操作系統(tǒng)的解析

智能汽車電子與軟件 ? 來源:焉知智能汽車 ? 作者:一驥絕塵 ? 2022-10-28 15:39 ? 次閱讀

ROS智能駕駛

ROS全稱Robot Operating System,直接翻譯就是機(jī)器人操作系統(tǒng)。雖然名字里含有“操作系統(tǒng)”的字眼,但ROS與Windows和Linux等操作系統(tǒng)不一樣,它實際上是一套軟件庫和工具,可以幫助用戶快速建立機(jī)器人應(yīng)用程序。在軟件層面上,ROS是一種中間件。什么是中間件?中間是相對的,有“上”和有“下”的時候就有“中間”。這感覺就像是“中產(chǎn)階級”,沒有嚴(yán)格界限。所以在有上層軟件和底層軟件的語境下,這中間的軟件就是“中間件”。ROS就是介于底層操作系統(tǒng)(如Linux)和上層業(yè)務(wù)應(yīng)用軟件(如OpenCV)之間的中間件。

那么ROS能出現(xiàn)在焉知智能汽車的公眾號里,它跟智能汽車又有什么關(guān)系呢? 實際上智能汽車就是一種機(jī)器人。舉個例子,您有沒有覺得家里的掃地機(jī)器人和智能駕駛汽車非常像?近年來,智能駕駛無疑是汽車工業(yè)的當(dāng)紅炸子雞,而汽車的智能駕駛化實質(zhì)上也是汽車的機(jī)器人化。我們常說的“感知”、“決策”和“規(guī)控”等,其實也是來自于機(jī)器人領(lǐng)域。智能網(wǎng)聯(lián)汽車的功能域控制器劃分,電子電氣架構(gòu)的演變都能或多或少看到機(jī)器人的影子。甚至有些公司就是借用機(jī)器人傳統(tǒng)術(shù)語來作為傳統(tǒng)車企智能化改革的口號和產(chǎn)品藍(lán)圖。

機(jī)器人是多專業(yè)知識交叉的學(xué)科,通常涉及傳感器、驅(qū)動程序、多機(jī)通信、機(jī)械結(jié)構(gòu)、算法等,為了更高效地進(jìn)行機(jī)器人的研究和開發(fā),選擇一個通用的開發(fā)框架非常必要。而ROS就是最流行的框架之一。當(dāng)機(jī)器人和智能駕駛汽車一相逢,ROS順理成章的成了很多團(tuán)隊開發(fā)智能駕駛的選擇,很多智能駕駛的算法應(yīng)用都是基于ROS來開發(fā)的。中國智能駕駛界大名鼎鼎的“Apollo”就是基于ROS二次開發(fā)改進(jìn)的。而從另一個角度來看,近年來ROS也成為了智能網(wǎng)聯(lián)工程師崗位招聘要求的高頻詞。熟練掌握ROS的汽車工程師毫無疑問是人才市場上的“香餑餑”。

02 ROS歷史簡介

首先提一下,ROS有ROS1和ROS2兩個大分支。沒有特別說明時,一般ROS都指ROS1。簡單來說ROS由來已久,進(jìn)化過程中發(fā)現(xiàn)已有架構(gòu)必須革新才能滿足更多需求,于是就開辟了ROS2,并把之前的版本統(tǒng)稱ROS1。

展開來看,ROS系統(tǒng)最早起源于2007年斯坦福大學(xué)人工智能實驗室的STAIR項目與機(jī)器人技術(shù)公司W(wǎng)illow Garage的個人機(jī)器人項目(Personal Robotics Program)之間的合作,2008年之后由Willow Garage公司推動其發(fā)展。幾番測試后于2010年推出了正式發(fā)行版本:ROS Box Turtle。比較有趣的是,ROS各版本均以龜作為發(fā)行代號,至今已設(shè)計出十多種造型奇特的“ROS龜”。而每一次ROS發(fā)布新版都會按照字母順序改一個名字。例如ROS Box Turtle后是ROS C Turtle,再是Diamondback……2020年5月發(fā)布的ROS Noetic Ninjemys則到了字母“N”,也是ROS1的最后一個版本。

圖2:4個ROS版本及其ROS龜海報

從2008年至2013年,ROS主要由Willow Garage公司管理維護(hù),但這并不意味著ROS是封閉的系統(tǒng)。相反,ROS由眾多學(xué)校及科研機(jī)構(gòu)聯(lián)合開發(fā)及維護(hù)的,這種聯(lián)合開發(fā)模式也為ROS系統(tǒng)生態(tài)的構(gòu)建與壯大帶來有力的促進(jìn)。2013年,Willow Garage公司被Suitable Technologies公司收購,此前幾個月,ROS的開發(fā)和維護(hù)管理工作被移交給了新成立的開源基金會Open Source Robotics Foundation。而隨著ROS的優(yōu)化和豐富,對ROS的要求也越來越多,一些原始架構(gòu)和設(shè)計已經(jīng)不能夠滿足,于是催生了ROS2。經(jīng)歷幾個測試版后,2017年ROS2正式發(fā)布了Ardent Apalone版本,之后每版升級同樣是迭代一個字母和ROS龜海報。最新一版ROS2是今年5月份剛發(fā)布的Humble Hawksbill。

03 為什么智能汽車選擇ROS

上文提到,智能駕駛汽車就是一種機(jī)器人。但是當(dāng)智能汽車選擇開發(fā)框架的時候,為什么會這么多人選擇ROS呢?肯定不是因為它的名字里有“Robot”這么簡單。而結(jié)合上文提到的ROS1和ROS2時間線,這個關(guān)于智能駕駛的選擇肯定在ROS1上開始的。究其原因,有這3個重要因素:

1.已有的開源代碼豐富。

許多智能駕駛需要用到的算法,都能在ROS生態(tài)中找到已經(jīng)成熟的代碼。例如建立地圖的算法,使用激光雷達(dá)或GPS定位算法,沿著地圖規(guī)劃路徑算法,避開障礙物的算法,攝像頭視覺處理算法等等。..。..這些輪式機(jī)器人導(dǎo)航所需的算法在ROS上是現(xiàn)成的,幾乎都可以直接適用于智能駕駛汽車。

2.具備配套的可視化工具。

ROS自帶一套圖形工具,可以方便地記錄和可視化傳感器捕獲的數(shù)據(jù),并以全面的方式表示車輛的狀態(tài)。此外,它還提供了一種簡單的方法來實現(xiàn)定制化的可視化需求。這在開發(fā)控制軟件和調(diào)試代碼時非常有用。如果您曾經(jīng)在電腦前看過智能駕駛汽車傳感器的原始數(shù)據(jù),做過調(diào)試,相信您會深刻理解一個靠譜的數(shù)據(jù)可視化工具是有多么重要。

圖3:利用ROS RVIZ三維可視化點云數(shù)據(jù)

3.簡單好上手。

在開展一個新領(lǐng)域的時候,沒有什么比把東西先做出來更重要了?;赗OS來開發(fā)一個智能駕駛汽車項目是比較簡單的。例如從一個簡單的輪式機(jī)器人開始,配備一對輪子、一個攝像頭、一個激光掃描儀和ROS導(dǎo)航軟件棧,開發(fā)者可以在幾個小時內(nèi)就可以完成設(shè)置,讓小車自主行進(jìn)避障。這種快速上手也可以幫助新手快速理解整個運作基礎(chǔ)和框架,然后再轉(zhuǎn)向更專業(yè)更深入的研究。某寶上就有很多基于ROS的智能小車,很多機(jī)構(gòu)也是基于這些套件開展智能駕駛培訓(xùn)的。

04 ROS1在汽車應(yīng)用上的弱點

當(dāng)然,ROS并不是完美的,尤其是ROS1應(yīng)用在智能汽車上存在不少局限性。早年間ROS1應(yīng)用于智能駕駛研發(fā)時,正是由于這些局限性,各大公司都需要在ROS上進(jìn)行二次開發(fā),以滿足智能汽車要求。那ROS1究竟有哪些弱點呢?

1.單點失效。

如下圖所示,ROS1的通訊機(jī)制是存在主從結(jié)構(gòu)的。也就是節(jié)點之間的通訊都依賴于一個Master。在這種集中式通訊方式下,如果Master失效了,那么系統(tǒng)就會崩潰。這在汽車行業(yè)功能安全的要求下,無疑是太脆弱了。

圖4:ROS1通訊機(jī)制示意圖

2.實時性差。

ROS1就是基于Linux操作系統(tǒng)之上的。Linux原生不是實時操作系統(tǒng),ROS1自然也沒有實時性的設(shè)計考慮。ROS1設(shè)計之初更多地從實現(xiàn)最高性能的角度出發(fā),在任務(wù)調(diào)度和線程切換等機(jī)制設(shè)計上并沒有保證實時性所要求的“確定時間”。例如汽車動力底盤域常見的輪速信號就很容易在原生ROS1中失真。

3.缺乏網(wǎng)絡(luò)安全機(jī)制。

ROS1并沒有實現(xiàn)任何安全機(jī)制來防止第三方進(jìn)入ROS1網(wǎng)絡(luò)并讀取節(jié)點之間的通信。這意味著任何能夠進(jìn)入汽車網(wǎng)絡(luò)的人都可以進(jìn)入ROS1的信息傳遞并劫持汽車。這在汽車網(wǎng)絡(luò)安全法規(guī)日益嚴(yán)格的背景下,也無疑是力不從心的。

05 ROS1與ROS2

早年間,各大公司都針對ROS1弱點做了很多優(yōu)化,以讓其適用于汽車。而這些研究和改進(jìn)當(dāng)然也反饋到ROS組織本身,所以也就有了上文提到的ROS2。那么ROS1和ROS2有什么差別呢?ROS2對這些弱點有改進(jìn)嗎?話不多說,我們先來看看兩者的系統(tǒng)架構(gòu)框圖對比。

圖5:ROS1和ROS2的系統(tǒng)架構(gòu)框圖對比

由下往上看,在操作系統(tǒng)層,ROS2比ROS1支持的底層操作系統(tǒng)更多,也支持實時操作系統(tǒng)(RTOS)了。這就讓ROS2可以支持更多樣化的嵌入式硬件,例如汽車應(yīng)用中一些輕量化的ECU。

在中間層,ROS1更多地依賴TCP和UDP協(xié)議,而在ROS2中則引入了DDS。DDS全稱是Data Distribution Service 數(shù)據(jù)分發(fā)服務(wù),是一種分布式實時通信中間件協(xié)議,也是一個被很多公司實現(xiàn)的工業(yè)標(biāo)準(zhǔn)。DDS采用發(fā)布/訂閱體系架構(gòu),強(qiáng)調(diào)以數(shù)據(jù)為中心,提供豐富的服務(wù)質(zhì)量(QoS)策略,以保障數(shù)據(jù)進(jìn)行實時、高效、靈活地分發(fā)。

正是基于DDS的通訊機(jī)制,ROS的應(yīng)用層就不再需要Master節(jié)點。節(jié)點之間采用自發(fā)現(xiàn)機(jī)制,找到彼此,進(jìn)而建立穩(wěn)定的通信連接。這對于滿足功能安全需求,有很大幫助。當(dāng)然,ROS1和ROS2的應(yīng)用層軟件接口是匹配的,讓ROS1上開發(fā)的應(yīng)用軟件能快速復(fù)用部署到ROS2上,也是ROS2的設(shè)計目標(biāo)。

由此可見,上文提到的ROS1在汽車應(yīng)用上的弱點,在ROS2上都得到了針對性甚至是根本性的改善。

06 ROS與AUTOSAR Adaptive

在汽車領(lǐng)域談軟件,自然是離不開AUTOSAR的。這些年汽車硬件和軟件的發(fā)展本身也是日新月異。AUTOSAR也是在這背景下不斷優(yōu)化和自我革新,AUTOSAR Adaptive就是針對多核動態(tài)操作系統(tǒng)的高資源環(huán)境在奮起直追,希望站穩(wěn)汽車軟件架構(gòu)老大的地位。ROS2和AUTOSAR Adaptive都是中間件,那它們在不斷升級進(jìn)化的過程中,有沒有朝著某個共同的方向,進(jìn)而出現(xiàn)交匯點?答案是有的。最明顯的就是DDS的通訊機(jī)制。

圖6:DDS在AUTOSAR Adaptive通訊中的位置

如上圖所示,AUTOSAR Adaptive中的通訊管理模塊就加入了DDS的部分,并對DDS相應(yīng)的功能安全和網(wǎng)絡(luò)安全都作了定義和描述。通過ara::com可以統(tǒng)一CAN PDU、SOME/IP和DDS的通訊。而DDS就是ROS2中最核心的部分。所以聚焦于這個匯合點,可以結(jié)合ROS2和AUTOSAR,取兩者之所長。

事實上這個關(guān)鍵點已經(jīng)被很多公司企業(yè)抓住,并開發(fā)出了不少商用的產(chǎn)品。例如下圖就是Apex.AI公司的產(chǎn)品示意圖。Apex.AI將Apex.OS節(jié)點(匹配ROS節(jié)點)與AUTOSAR Adaptive和AUTOSAR Classic平臺連接起來。AUTOSAR arxml(包含數(shù)據(jù)類型和接口的描述)可以直接作為配置輸入。這使得設(shè)置可以靈活應(yīng)對服務(wù)定義的變化。ROS Topic的數(shù)據(jù)最終可以在AUTOSAR ara::com或RTE中使用。

圖7:Apex.AI公司統(tǒng)一ROS和AUTOSAR的產(chǎn)品示意圖(來源:Apex.AI)

07 寫在最后

智能汽車的發(fā)展是個復(fù)雜而又漫長的過程,期間需要不斷的技術(shù)迭代和功能創(chuàng)新。對于個體開發(fā)人員來說,站在巨人的肩膀上來迎接這過程中的挑戰(zhàn)十分重要。ROS(尤其ROS2)就是其中一個巨人肩膀。希望本文能為之前沒接觸ROS的同仁提供一個初步印象,有所幫助。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    210

    文章

    28003

    瀏覽量

    205572
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6617

    瀏覽量

    123037
  • 智能汽車
    +關(guān)注

    關(guān)注

    30

    文章

    2734

    瀏覽量

    107040

原文標(biāo)題:簡介汽車上的機(jī)器人操作系統(tǒng)(ROS)

文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    開啟全新AI時代 智能嵌入式系統(tǒng)快速發(fā)展——“第六屆國產(chǎn)嵌入式操作系統(tǒng)技術(shù)與產(chǎn)業(yè)發(fā)展論壇”圓滿結(jié)束

    嵌入式系統(tǒng)是電子信息產(chǎn)業(yè)的基礎(chǔ),是智能系統(tǒng)的核心。大模型催生AI走入千家萬戶、喚醒端側(cè)AI的需求爆發(fā)。以機(jī)器人、無人駕駛和智能制造為代表的
    發(fā)表于 08-30 17:24

    第六屆國產(chǎn)嵌入式操作系統(tǒng)技術(shù)與產(chǎn)業(yè)發(fā)展論壇議程發(fā)布

    每年一度的國產(chǎn)嵌入式操作系統(tǒng)論壇即將在杭州濱江舉辦,今年是第六屆了,又是中國嵌入式系統(tǒng)新朋老友相聚的時刻。大模型催生AI走人千家萬戶、喚醒端側(cè)AI的需求爆發(fā)。以機(jī)器人、無人駕駛和智能
    發(fā)表于 07-26 10:54

    ROS讓機(jī)器人開發(fā)更便捷,基于RK3568J+Debian系統(tǒng)發(fā)布!

    本帖最后由 Tronlong創(chuàng)龍科技 于 2024-7-19 17:18 編輯 ROS系統(tǒng)是什么 ROS(Robot Operating System)是一個適用于機(jī)器人的開源的元操作系統(tǒng)。它
    發(fā)表于 07-09 11:38

    編碼器在機(jī)器人系統(tǒng)的應(yīng)用

    隨著科技的飛速發(fā)展,機(jī)器人技術(shù)已廣泛應(yīng)用于工業(yè)、醫(yī)療、服務(wù)等多個領(lǐng)域。在機(jī)器人系統(tǒng),編碼器作為核心的位置和速度檢測裝置,發(fā)揮著至關(guān)重要的作用。本文將從編碼器的原理、分類及其在
    的頭像 發(fā)表于 06-13 14:51 ?667次閱讀

    基于FPGA EtherCAT的六自由度機(jī)器人視覺伺服控制設(shè)計

    和增強(qiáng)系統(tǒng)處理圖像的實時性,本文提出了一種伊瑟特的六自由度機(jī)器人視覺伺服控制系統(tǒng),將攝像頭集成到基于 Zynq的伊瑟特主站上,提高了視覺伺服的實時性.經(jīng)測試,該平臺能夠?qū)σ曈X檢測目標(biāo)的變化做出及時的反應(yīng)
    發(fā)表于 05-29 16:17

    其利天下技術(shù)·搭載無刷電機(jī)的掃地機(jī)器人的前景如何?

    重要因素,如何提高電池效能和減少充電時間,是行業(yè)亟待解決的問題,此外還有噪音、智能控制等問題也需要重視。 在客戶體驗方面,掃地機(jī)器人還存在一些主要問題。例如,部分機(jī)器人在清潔過程可能
    發(fā)表于 05-05 15:03

    基于鴻道(Intewell?)操作系統(tǒng)研發(fā)的農(nóng)業(yè)機(jī)器人操作系統(tǒng)

    江蘇大學(xué)與科東軟件聯(lián)合研發(fā)“農(nóng)業(yè)機(jī)器人操作系統(tǒng)”,并成立“農(nóng)業(yè)機(jī)器人操作系統(tǒng)”聯(lián)合實驗室,奮力推進(jìn)農(nóng)業(yè)智能化,推動農(nóng)業(yè)科技創(chuàng)新?!稗r(nóng)業(yè)
    的頭像 發(fā)表于 04-30 11:09 ?336次閱讀

    工業(yè)控制:鴻道(Intewell)操作系統(tǒng)工業(yè)機(jī)器人控制解決方案

    鴻道(Intewell)操作系統(tǒng)作為核心基礎(chǔ)軟件,構(gòu)建機(jī)器人控制系統(tǒng)的底層技術(shù)平臺。系統(tǒng)支持Linux/Windows的實時擴(kuò)展,設(shè)備上可同時運行單個非實時
    的頭像 發(fā)表于 03-14 10:19 ?372次閱讀
    工業(yè)控制:鴻道(Intewell)<b class='flag-5'>操作系統(tǒng)</b>工業(yè)<b class='flag-5'>機(jī)器人</b>控制解決方案

    具身智能移動操作機(jī)器人發(fā)展與研究

    多模態(tài)感知技術(shù)能夠使具身智能移動操作機(jī)器人實現(xiàn)更高的自主性、高效性、通用性,增強(qiáng)對周圍環(huán)境的局部感知能力,并為機(jī)器人提供豐富、穩(wěn)定、準(zhǔn)確的環(huán)境數(shù)據(jù)。
    發(fā)表于 03-12 11:38 ?589次閱讀
    具身<b class='flag-5'>智能</b>移動<b class='flag-5'>操作</b><b class='flag-5'>機(jī)器人</b>發(fā)展與研究

    人形機(jī)器人第一股優(yōu)必選科技成功登陸香港主板

    自2012年成立以來,優(yōu)必選已成為全球人形機(jī)器人產(chǎn)業(yè)的領(lǐng)先者,專注于人形機(jī)器人的研發(fā)和應(yīng)用。在此過程,優(yōu)必選掌握了包括機(jī)器人技術(shù)和人工智能
    的頭像 發(fā)表于 01-02 14:59 ?664次閱讀

    基于智能制造的工業(yè)機(jī)器人應(yīng)用實踐

    工業(yè)機(jī)器人智能制造時代的應(yīng)用趨勢,并以在泰國某汽車零部件制造業(yè)企業(yè)的工業(yè)機(jī)器人智能化應(yīng)用為例,詳細(xì)介紹了工業(yè)
    的頭像 發(fā)表于 12-22 17:28 ?1075次閱讀
    基于<b class='flag-5'>智能</b>制造的工業(yè)<b class='flag-5'>機(jī)器人</b>應(yīng)用實踐

    LabVIEW的六軸工業(yè)機(jī)器人運動控制系統(tǒng)

    環(huán)境,對機(jī)器人進(jìn)行了正逆運動學(xué)仿真測試。接著,對單軸和多軸伺服系統(tǒng)進(jìn)行了控制測試,最終實現(xiàn)了機(jī)器人的軌跡規(guī)劃實體控制。 在整個項目中,LabVIEW的功能被充分利用,特別是在算法實現(xiàn)
    發(fā)表于 12-21 20:03

    樂聚機(jī)器人成功交付首批源鴻蒙高動態(tài)人形機(jī)器人

    人形機(jī)器人是人工智能改造客觀世界的載體,而穩(wěn)定、高效、安全自主的機(jī)器人操作系統(tǒng)是鏈接機(jī)器人本體和人工智能
    發(fā)表于 12-06 10:23 ?484次閱讀

    ROS讓機(jī)器人開發(fā)更便捷,基于RK3568J+Debian系統(tǒng)發(fā)布!

    ROS系統(tǒng)是什么 ROS(Robot Operating System)是一個適用于機(jī)器人的開源的元操作系統(tǒng)。它提供了操作系統(tǒng)應(yīng)有的服務(wù),包括硬件抽象,底層設(shè)備控制,常用函數(shù)的實現(xiàn),進(jìn)
    發(fā)表于 11-30 16:01

    機(jī)器人建模方法和組成

    URDF:機(jī)器人建模方法 ROS是機(jī)器人操作系統(tǒng),當(dāng)然要給機(jī)器人使用啦,不過在使用之前,還得讓ROS認(rèn)識下我們使用的機(jī)器人,如何把一個
    的頭像 發(fā)表于 11-22 16:30 ?812次閱讀
    <b class='flag-5'>機(jī)器人</b>建模方法和組成