<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 業(yè)界動(dòng)態(tài) > 如何借助 ROS 2 實(shí)現(xiàn)基于 FPGA 的軟件定義硬件

          如何借助 ROS 2 實(shí)現(xiàn)基于 FPGA 的軟件定義硬件

          —— 自適應(yīng)計(jì)算在機(jī)器人領(lǐng)域的應(yīng)用
          作者: 時(shí)間:2021-11-12 來(lái)源:電子產(chǎn)品世界 收藏


          本文引用地址:http://www.ex-cimer.com/article/202111/429606.htm

          連載一:什么是自適應(yīng)機(jī)器人?

          機(jī)器人是一種系統(tǒng)級(jí)的系統(tǒng),它由感知周邊環(huán)境的傳感器、根據(jù)感知采取行動(dòng)的致動(dòng)器和負(fù)責(zé)處理數(shù)據(jù)的計(jì)算構(gòu)成,用于對(duì)其應(yīng)用做出連貫一致的響應(yīng)。在很大程度上機(jī)器人技術(shù)是一種系統(tǒng)集成的藝術(shù),從軟件的角度和硬件的角度看皆是如此。以往的研究揭示,在機(jī)器人領(lǐng)域中多達(dá) 70% 的資源被用于集成,而不是用于開(kāi)發(fā)最終應(yīng)用。直到最近,隨著較低端的工業(yè)機(jī)器人走向大規(guī)模普及化,機(jī)器人公司才開(kāi)始在硬件基礎(chǔ)上著重軟件開(kāi)發(fā)。盡管如此,機(jī)器人仍然是高度專(zhuān)業(yè)化的系統(tǒng),旨在以高可靠性和高精度執(zhí)行一系列任務(wù)。因此,機(jī)器人內(nèi)部的硬件和軟件能力之間的關(guān)系十分重要。

          大多數(shù)機(jī)器人通過(guò)內(nèi)部網(wǎng)絡(luò)交換信息并滿足時(shí)序要求。從這種意義上來(lái)講,機(jī)器人屬于時(shí)間敏感型網(wǎng)絡(luò)。

          機(jī)器人系統(tǒng)機(jī)載資源通常有限,包括存儲(chǔ)器、I/O 和磁盤(pán)或計(jì)算功能,從而阻礙了系統(tǒng)集成進(jìn)程,使之難以滿足非結(jié)構(gòu)化、動(dòng)態(tài)和不斷變化環(huán)境的實(shí)時(shí)性要求。隨著機(jī)器人內(nèi)部網(wǎng)絡(luò)安全的發(fā)展,這一點(diǎn)更是如此,因?yàn)樗?jīng)常會(huì)在使用壽命方面給機(jī)器人帶來(lái)新的要求,這需要修改機(jī)器人的邏輯,從而對(duì)實(shí)時(shí)環(huán)路產(chǎn)生影響。因此,為機(jī)器人系統(tǒng)選擇合適的計(jì)算平臺(tái)至關(guān)重要,該平臺(tái)既要簡(jiǎn)化系統(tǒng)集成、符合功耗限制,同時(shí)也要適應(yīng)機(jī)器人應(yīng)用不斷變化的需求。

          自適應(yīng)機(jī)器人是指那些能夠成功應(yīng)對(duì)新?tīng)顩r的機(jī)器人。要成為一個(gè)名副其實(shí)的自適應(yīng)機(jī)器人,必須具備以下三大基本特征中至少一個(gè):自適應(yīng)行為、自適應(yīng)機(jī)電一體化、自適應(yīng)計(jì)算。擁有全部三大基本特征的機(jī)器人,則可被視為“全自適應(yīng)機(jī)器人”。

          總而言之,機(jī)器人是能夠以高可靠性和高精度執(zhí)行一系列任務(wù)的高度專(zhuān)業(yè)化的系統(tǒng)。機(jī)器人內(nèi)部的硬件和軟件能力之間的關(guān)系十分重要。因此,為機(jī)器人系統(tǒng)選擇合適的計(jì)算平臺(tái)至關(guān)重要。該平臺(tái)既要能夠簡(jiǎn)化系統(tǒng)集成、符合功耗需求,同時(shí)也要能夠適應(yīng)機(jī)器人應(yīng)用不斷變化的需求。

          自適應(yīng)機(jī)電一體化 (Adaptive mechatronics)是一個(gè)業(yè)已存在數(shù)十年的概念。Gosselin 從機(jī)械的角度探討這個(gè)課題,并將自適應(yīng)系統(tǒng)定義為能夠成功響應(yīng)新?tīng)顩r的系統(tǒng)。此外,他還將自適應(yīng)機(jī)器人機(jī)械系統(tǒng)定義為自適應(yīng)系統(tǒng),即通過(guò)高度依賴機(jī)械屬性,能夠適應(yīng)外部的新?tīng)顩r。Gosselin 提供了各種純粹依靠機(jī)械構(gòu)造的自適應(yīng)機(jī)器人系統(tǒng)的雛形示例,包括自適應(yīng)機(jī)器人手。此外,Ivanov  也從純機(jī)械角度研究自適應(yīng)機(jī)器人,在研究中他提議自適應(yīng)機(jī)器人應(yīng)考慮使用自適應(yīng)電力驅(qū)動(dòng)裝置,根據(jù)載荷改變電力驅(qū)動(dòng)裝置的輸出。他將這種自適應(yīng)行為命名為自調(diào)節(jié) (self-regulation),并認(rèn)為自適應(yīng)電力驅(qū)動(dòng)裝置能在機(jī)器人應(yīng)用中實(shí)現(xiàn)高能效。通過(guò)采用傳感器輸入控制機(jī)制將這項(xiàng)研究延伸到機(jī)電一體化領(lǐng)域,產(chǎn)生了一項(xiàng)有關(guān)采用傳感器反饋實(shí)現(xiàn)自適應(yīng)機(jī)器人控制的研究。示例包括視覺(jué)反饋或力傳感器反饋等。

          機(jī)器人的自適應(yīng)行為并非新穎概念。它可追溯到上世紀(jì) 80 年代中期 Brooks 提出的基于行為的機(jī)器人方法和他的包容式架構(gòu) (subsumption architecture)。在上世紀(jì) 90 年代,不同的研究小組都在研究如何讓機(jī)器人具備靈活應(yīng)變能力和自我組織能力,從而提高機(jī)器人的自主性。他們往往是通過(guò)某種控制機(jī)制(使用某種形式的人工神經(jīng)網(wǎng)絡(luò)與機(jī)器人的傳感器和致動(dòng)器相連)來(lái)實(shí)現(xiàn)的。后來(lái)的 Ziemke在其研究中總結(jié)了這種方法,提出了自適應(yīng)神經(jīng)機(jī)器人的概念。這種概念創(chuàng)造性地率先使用“自適應(yīng)機(jī)器人”一詞,指代用人工神經(jīng)系統(tǒng)和自適應(yīng)技術(shù)控制自主主體。最近,在《Robotic Fabrication in Architecture, Art and Design 2018》的機(jī)器人專(zhuān)輯中,作者援引“自適應(yīng)機(jī)器人”的說(shuō)法,指通過(guò)添加感知和處理實(shí)現(xiàn)的完全自適應(yīng)行為(與 Ivanov提出的“自適應(yīng)機(jī)器人”概念不同,后者主要關(guān)注機(jī)械構(gòu)造角度)。根據(jù)原文,自適應(yīng)機(jī)器人是指能夠通過(guò)加裝傳感器,適應(yīng)不斷變化的環(huán)境條件和材料特性,同時(shí)在一定程度上保持可預(yù)測(cè)性的機(jī)器人。與該研究同時(shí)代、同思路的 Mayoral-Vilches 等提出自主適配機(jī)器人的概念。這個(gè)概念利用硬件模塊化和人工智能(指上世紀(jì) 90 年代的自適應(yīng)神經(jīng)機(jī)器人趨勢(shì))節(jié)省構(gòu)建這種機(jī)器人所需的工作量和時(shí)間。

          自適應(yīng)計(jì)算是自適應(yīng)機(jī)器人第三大基本特征。對(duì)于機(jī)器人而言,它指的是機(jī)器人能夠在運(yùn)行過(guò)程中適配其計(jì)算系統(tǒng)的一個(gè)或多個(gè)屬性(如確定性、功耗或吞吐量)。正如“What is adaptive computing?”中介紹的,F(xiàn)PGA 是實(shí)現(xiàn)自適應(yīng)計(jì)算的理想技術(shù)。FPGA 最早由賽靈思聯(lián)合創(chuàng)始人之一 Freeman 在 1984 年提出,它為自適應(yīng)計(jì)算奠定了基礎(chǔ)。FPGA 兼具通用性和強(qiáng)大功能,同時(shí)效率高、成本低。因?yàn)樵?FPGA 上實(shí)現(xiàn)其他處理架構(gòu),還可以實(shí)現(xiàn)并行處理,因此 FPGA 可以用于處理幾乎任何機(jī)器人內(nèi)部的任務(wù)。讓 FPGA 成為自適應(yīng)計(jì)算的另一特征在于,能夠針對(duì)每一種機(jī)器人應(yīng)用的需求專(zhuān)門(mén)定制數(shù)據(jù)路徑寬度和寄存器長(zhǎng)度。如何在機(jī)器人中使用自適應(yīng)計(jì)算的示例包括為加速運(yùn)動(dòng)規(guī)劃而設(shè)計(jì)的計(jì)算流水線、分布式同步或時(shí)間敏感型彈性通信等。有關(guān)機(jī)器人自適應(yīng)計(jì)算的更多示例可參閱“A survey of FPGA-based robotic computing”和“A survey on FPGA-based sensor systems: towards intelligent and reconfigurable low-power sensors for computer vision, control and signal processing”。

          連載三:為什么 FPGA 能在機(jī)器人中起到重要作用

          CPU 和 GPU 擅長(zhǎng)控制流計(jì)算。它們的控制驅(qū)動(dòng)機(jī)器模型基于控制令牌,控制令牌提示應(yīng)執(zhí)行語(yǔ)句的時(shí)間。這賦予 CPU 和 GPU 完全的控制力,能輕松實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)和控制結(jié)構(gòu)。然而,這樣做的代價(jià)是效率較低且難以毫無(wú)差錯(cuò)地準(zhǔn)確編程。相反,F(xiàn)PGA 擅長(zhǎng)數(shù)據(jù)流運(yùn)算。它們遵循數(shù)據(jù)驅(qū)動(dòng)機(jī)器的模式,一旦所有操作數(shù)可用就執(zhí)行語(yǔ)句。這樣的結(jié)果就是 FPGA 能釋放巨大的并行性和吞吐量潛力,同時(shí)避免出錯(cuò)或產(chǎn)生副作用。

          總體而言,作為 CPU 和 GPU 通用平臺(tái)的替代技術(shù),F(xiàn)PGA 能夠自適應(yīng)生成定制計(jì)算架構(gòu),滿足機(jī)器人的需求。因?yàn)閾碛星八从械撵`活性,并能縮短設(shè)計(jì)周期,同時(shí)降低開(kāi)發(fā)成本,F(xiàn)PGA 已經(jīng)z在各類(lèi)知名工業(yè)機(jī)器人制造商和醫(yī)療機(jī)器人應(yīng)用中大量采用。在 “A survey of FPGA- based robotic computing”中,讀者可以看到一份有關(guān)基于 FPGA 的機(jī)器人計(jì)算的調(diào)研,該調(diào)研展示了 FPGA 在機(jī)器人應(yīng)用領(lǐng)域的廣泛適用性。下面是對(duì) FPGA 特征的詳細(xì)描述:

          ●   自適應(yīng):當(dāng)同時(shí)需要控制流和數(shù)據(jù)流時(shí),CPU 和 GPU因?yàn)闀r(shí)延和響應(yīng)時(shí)間問(wèn)題無(wú)法使用,而 FPGA 則能生成無(wú)與倫比的定制計(jì)算架構(gòu),滿足嚴(yán)格的實(shí)時(shí)要求和多重關(guān)鍵性要求。CPU 和 GPU 所采用的固定計(jì)算架構(gòu),限制了它們的整體能力,包括響應(yīng)時(shí)間和時(shí)延。

          ●   高性能:FPGA 通過(guò)建立深度流水線化的數(shù)據(jù)路徑(流計(jì)算)來(lái)提升計(jì)算性能,而不是像 CPU 和 GPU 那樣依靠計(jì)算單元數(shù)量的增加。流計(jì)算的工作原理是一個(gè)計(jì)算單元產(chǎn)生的數(shù)據(jù)立即被流水線中的下一個(gè)計(jì)算單元處理,這樣就免去了數(shù)據(jù)流通道中“提取-計(jì)算-存儲(chǔ) (fetch-compute-store)”的環(huán)節(jié),便于數(shù)據(jù)產(chǎn)生者和消費(fèi)者的運(yùn)算操作,從而提升了性能。相反,由于存在架構(gòu)固定、核數(shù)量固定、指令集固定、存儲(chǔ)器架構(gòu)僵化等多重限制,CPU 和 GPU 只能以犧牲性能的方式進(jìn)行計(jì)算。

          ●   高能效:速度和功耗是數(shù)字電路的基本品質(zhì)因數(shù) (FOM,figures of merit)。功率是表示數(shù)字電路頻率和觸發(fā)率的函數(shù)。 FPGA 通過(guò)并行和直接執(zhí)行算法調(diào)節(jié)頻率。FPGA 保持較低頻率和較低切換率(無(wú)指令獲?。┻M(jìn)行計(jì)算,但與 CPU 和 GPU 的等效計(jì)算性能相比,F(xiàn)PGA 在更高的頻率下具有更大的并行性優(yōu)勢(shì),從而客戶以實(shí)現(xiàn)更好的功率指數(shù)和更高的能效。

          ●   不浪費(fèi)算力:FPGA 借助靈活性實(shí)現(xiàn)芯片利用率最大化以提升性能。動(dòng)態(tài)功能交換(DFX,過(guò)去被稱(chēng)為“部分重配置”)允許在 CPU 上運(yùn)行的線程化應(yīng)用分時(shí)共享 FPGA。由此當(dāng)給定線程正在處理 FPGA 生成的結(jié)果時(shí),另一線程能使用 FPGA 進(jìn)行不同的計(jì)算。

          ●   可預(yù)測(cè):FPGA 幫助 CPU 和 GPU 卸載嚴(yán)格意義的實(shí)時(shí)計(jì)算,在執(zhí)行時(shí)間上提供納秒級(jí)預(yù)測(cè)能力,而且不會(huì)受到與 GPU 和 CPU 計(jì)算有關(guān)的軟件變更或抖動(dòng)的影響。

          ●   可重配置:機(jī)器人算法仍處于高速演進(jìn)發(fā)展中,F(xiàn)PGA 能夠按需進(jìn)行動(dòng)態(tài)重配置和更新。此外,還可以輕松地對(duì) FPGA 進(jìn)行重新編程以滿足異構(gòu)需求,實(shí)現(xiàn) CPU 和 GPU 才能提供的通用能力。

          ●   安全:FPGA 能夠按需靈活地構(gòu)建安全電路,保障機(jī)器人數(shù)據(jù)流的安全。此外,F(xiàn)PGA 能充分利用重配置功能修正其硬件架構(gòu)的缺陷(避免硬件風(fēng)險(xiǎn))。這樣設(shè)計(jì)人員就能迅速解決在固定計(jì)算架構(gòu)上難以解決或者無(wú)法解決的安全風(fēng)險(xiǎn)(避免未來(lái)的風(fēng)險(xiǎn),例如“熔毀”和“幽靈”)。

          然而也有觀點(diǎn)認(rèn)為,盡管 FPGA 是機(jī)器人專(zhuān)家心目中理想的計(jì)算基干,但是它們提供的靈活性是以增加復(fù)雜性和所需的設(shè)計(jì)技能為代價(jià)的?!癆 survey of FPGA- based robotic computing”列出了部分所需的額外技能。只有能夠全面綜合地運(yùn)用含多核 CPU、GPU 和 FPGA 在內(nèi)的所有這些技術(shù),才能實(shí)現(xiàn)最優(yōu)異的機(jī)器人性能。實(shí)際不然,賽靈思所提供這種集成式片上系統(tǒng) (SoC) 解決方案,是將 CPU 通用軟件的可編程能力與 FPGA 自適應(yīng)硬件功能完美結(jié)合在了同一器件之中。

          這些自適應(yīng) SoC 為機(jī)器人應(yīng)用提供了軟硬件兼有的高靈活性計(jì)算基礎(chǔ),并可提供高性能、低功耗、確定性、硬件可重配置、安全,以及自適應(yīng)特性等價(jià)值。

          要點(diǎn)總結(jié):CPU 和 GPU 擅長(zhǎng)控制流計(jì)算,而 FPGA 擅長(zhǎng)數(shù)據(jù)流計(jì)算。自適應(yīng) SoC 解決方案為機(jī)器人應(yīng)用提供了軟硬件兼具的高靈活性計(jì)算基干,可提供低功耗、高性能、確定性、硬件可重配置、安全,以及自適應(yīng)等特性。

          連載四:如何理解面向機(jī)器人的“軟件定義硬件”

          術(shù)語(yǔ)“軟件定義硬件software-defined hardware o”往往指將應(yīng)用映射至 FPGA,從而通過(guò)軟件創(chuàng)建運(yùn)行時(shí)可重配置硬件。軟件定義硬件旨在實(shí)現(xiàn)特定算法或計(jì)算的運(yùn)行時(shí)效率最大化,是基于固定的馮諾依曼計(jì)算架構(gòu)的 CPU 和 GPU或是成本高、同樣功能不可變的 ASIC 的替代產(chǎn)品。因此,面向機(jī)器人的軟件定義硬件,應(yīng)被理解成能夠通過(guò)軟件重新編程和適配的運(yùn)行時(shí)可重配置機(jī)器人硬件。.

          傳統(tǒng)的機(jī)器人軟件編程是在預(yù)定義的架構(gòu)和約束條件下,在給定機(jī)器人的 CPU 中進(jìn)行功能編程。正如前文所述,一旦機(jī)器人遇到適配需求,就會(huì)導(dǎo)致復(fù)雜的系統(tǒng)集成操作。然而如果使用 FPGA,構(gòu)建機(jī)器人的行為就是為解決任務(wù)的架構(gòu)編程。機(jī)器人架構(gòu)師可以純粹從軟件創(chuàng)建自己的硬件設(shè)計(jì),并可以通過(guò)各種平臺(tái)完成交付,如圖1所示。

          1636684009748687.png

          圖1 賽靈思自適應(yīng)計(jì)算解決方案

          對(duì)于機(jī)器人專(zhuān)家來(lái)說(shuō),有三種與 FPGA 技術(shù)交互的途徑。首先是芯片級(jí)入手( chip-down)的方法(圖 1a),既將片上系統(tǒng) (SoC) 集成到定制設(shè)計(jì)的 PCB 中,以滿足應(yīng)用需求。這種方法最適合機(jī)器人制造商,是大批量和成本優(yōu)化型批量的理想選擇。第二種方法是采用系統(tǒng)模塊 (SOM)(圖 1b),將預(yù)裝配電路板插入定制的承載電路板。SOM 幫助硬件工程師加快產(chǎn)品開(kāi)發(fā)速度,將他們從計(jì)算平臺(tái)上解放出來(lái),把精力集中在更有價(jià)值的創(chuàng)新上。第三種方法是采用已經(jīng)集成大量外設(shè)的完全裝配好的電路板(圖 1c)。對(duì)于高計(jì)算強(qiáng)度的運(yùn)算而言,可直接插入工作站的完整電路板代表了最佳的權(quán)衡取舍。

          要點(diǎn)總結(jié):傳統(tǒng)的機(jī)器人軟件編程是在預(yù)定義的架構(gòu)和約束條件下,在給定機(jī)器人的 CPU 中進(jìn)行功能編程。而采用自適應(yīng)計(jì)算后,構(gòu)建機(jī)器人行為則是對(duì)架構(gòu)的編程。

          連載五:為什么是通過(guò) ROS 2集成自適應(yīng)計(jì)算?

          機(jī)器人操作系統(tǒng) (ROS) 是機(jī)器人應(yīng)用開(kāi)發(fā)的實(shí)際框架。在 Open Robotics 的維護(hù)和指導(dǎo)下,ROS 不僅是一種操作系統(tǒng),也是一種框架。它由構(gòu)建和管理機(jī)器人的不同工具構(gòu)成,包括調(diào)試和可視化實(shí)用工具、編排工具、機(jī)器人庫(kù)(如運(yùn)動(dòng)規(guī)劃、導(dǎo)航、定位等),以及促進(jìn)機(jī)器人系統(tǒng)開(kāi)發(fā)的通信工具。

          目前,原始版本的 ROS 文章已被引用 8,500 次以上,充分證明其在研究和學(xué)術(shù)領(lǐng)域得到廣泛的認(rèn)可,ROS 就誕生在這樣的環(huán)境下。其主要目的是為開(kāi)展前沿研發(fā)的用戶提供所需的軟件工具。在像 ROS-Industrial(簡(jiǎn)稱(chēng) ROS-I)這樣項(xiàng)目的支持下,ROS 在業(yè)界的熱度持續(xù)增長(zhǎng)。ROS-I 是一個(gè)開(kāi)源計(jì)劃,目的是將 ROS 軟件的先進(jìn)功能推廣到工業(yè)應(yīng)用。由于 ROS-I 聯(lián)盟的帶動(dòng),ROS 現(xiàn)已在業(yè)界成功部署。日前該聯(lián)盟已擁有 80 多家成員,每年在歐洲、美國(guó)和亞洲舉辦會(huì)議,廣聚數(shù)百位機(jī)器人專(zhuān)家和知名制造商。后者藉此機(jī)會(huì),通過(guò)演示介紹他們自己的 ROS 驅(qū)動(dòng)程序。

          隨著 ROS 超越學(xué)術(shù)層面開(kāi)始進(jìn)入工業(yè)和其他領(lǐng)域,ROS 的局限性也日漸凸顯,如缺乏嵌入式支持和深度嵌入的原生支持,單機(jī)器人軟件架構(gòu),無(wú)實(shí)時(shí)功能和缺乏安全性等。為了解決這些問(wèn)題,Open Robotics 于 2014 年開(kāi)始重新設(shè)計(jì) ROS,由此 ROS 2 問(wèn)世。ROS 2 通過(guò)將通信中間件與機(jī)器人邏輯分離,突破了大部分已知的局限性。具體而言,Open Robotics 選擇“數(shù)據(jù)分發(fā)服務(wù)”(DDS) 作為初始通信中間件,并針對(duì)各種 DDS 解決方案構(gòu)建適配器,同時(shí)對(duì)上層暴露 DDS 特性。盡管如此,ROS 核心層仍然保持免受通信中間件的影響。ROS 2 軟件架構(gòu)具體如圖1所示:

          1636684276841644.png

          圖1 軟件架構(gòu)

          上層建立在中間件抽象層 (rmw) 上,后者負(fù)責(zé)將 ROS 抽象轉(zhuǎn)譯成具體的中間件。ROS 客戶端庫(kù) (rcl) 不會(huì)暴露任何具體中間件的實(shí)現(xiàn)細(xì)節(jié)(如 DDS)。這樣一來(lái),rcl 保持免受中間件的影響,且能夠輕松擴(kuò)展到其他需要不同傳輸方式的應(yīng)用。

          ROS 擁有數(shù)千名活躍用戶,目前已是規(guī)模最大的機(jī)器人專(zhuān)家群體。ROS 因研究而誕生,現(xiàn)已演進(jìn)發(fā)展有十多年的時(shí)間,在各種應(yīng)用領(lǐng)域得到廣泛采用,并且還能服務(wù)于工業(yè)需求。

          ROS 不僅提供工具、庫(kù)和慣例,而且還擁有不斷擴(kuò)大的機(jī)器人專(zhuān)家社區(qū)。從概念上講,ROS 在大多數(shù)方面圍繞著被稱(chēng)為 ROS 計(jì)算圖的抽象。計(jì)算圖內(nèi)的每個(gè)節(jié)點(diǎn)都能開(kāi)展機(jī)器人計(jì)算,并通過(guò)用底層通信中間件實(shí)現(xiàn)的通用點(diǎn)對(duì)點(diǎn)數(shù)據(jù)總線與其他節(jié)點(diǎn)交換信息。數(shù)據(jù)總線內(nèi)的通信通道按話題組織。因此,機(jī)器人的總體行為取決于計(jì)算圖,而計(jì)算圖可以實(shí)現(xiàn)在一部或多部計(jì)算機(jī)上(以分布方式)。這就完成了第二次抽象,也就是將計(jì)算圖映射到機(jī)器人中可用的計(jì)算基干形成 ROS 數(shù)據(jù)層圖。數(shù)據(jù)層圖代表的是物理分組和連接,用于在計(jì)算圖中實(shí)現(xiàn)建模行為。簡(jiǎn)單地說(shuō),其捕獲的是機(jī)器人的物理現(xiàn)實(shí),包括通信總線、機(jī)器人組件(包括傳感器和/或致動(dòng)器),以及計(jì)算圖與現(xiàn)有機(jī)器人組件中可用的計(jì)算基干間的映射。

          ROS 計(jì)算圖可以涉及一個(gè)或多個(gè)機(jī)器人,并且本質(zhì)上是模塊化的,能夠以分布式或集中式的方式實(shí)現(xiàn)。圖 2 所示的是 ROS 計(jì)算圖(圖 2 的上部分)和數(shù)據(jù)層圖(圖 2 的下部分)。表 1 是對(duì)一些最重要的ROS概念的總結(jié)。

          1636684299759999.png

          (a) ROS 2 計(jì)算圖:通過(guò)每個(gè)表示為節(jié)點(diǎn)的單獨(dú)計(jì)算,為機(jī)器人總體行為建模的數(shù)據(jù)結(jié)構(gòu)。

          1636684329892163.png

          (b) ROS 2 數(shù)據(jù)層圖:表示用于在計(jì)算圖中實(shí)現(xiàn)建模行為的物理分組和連接。

          圖2  ROS 抽象用于具備導(dǎo)航能力的 2 輪機(jī)器人

          表1 ROS 最相關(guān)概念的總結(jié)

          ROS 概念

           解讀

          計(jì)算圖

          通過(guò)每個(gè)表示為節(jié)點(diǎn)的單獨(dú)運(yùn)算,為機(jī)器人總體行為建模的數(shù)據(jù)結(jié)構(gòu)。節(jié)點(diǎn)間按話題和其他抽象與其他計(jì)算節(jié)點(diǎn)通信。計(jì)算圖不僅有助于將機(jī)器人行為可視化,而且也通過(guò)將每個(gè)機(jī)器人計(jì)算劃分成節(jié)點(diǎn),加快了設(shè)計(jì)流程。從電氣工程師的角度來(lái)看,可以將計(jì)算圖理解為機(jī)器人總體行為的原理圖。

          數(shù)據(jù)層圖

          表示在計(jì)算圖中實(shí)現(xiàn)建模行為的物理分組和連接。從電氣工程的角度來(lái)看,如果計(jì)算圖映射的是原理圖,那么數(shù)據(jù)層圖對(duì)應(yīng)的就是布局圖。

          節(jié)點(diǎn)

          執(zhí)行計(jì)算的流程。ROS 設(shè)計(jì)旨在以精細(xì)粒度級(jí)實(shí)現(xiàn)模塊化;機(jī)器人控制系統(tǒng)通常由多個(gè)節(jié)點(diǎn)構(gòu)成。節(jié)點(diǎn)執(zhí)行任意邏輯都會(huì)影響到機(jī)器人的總體行為。

          話題

          數(shù)據(jù)總線(底層通信通道)內(nèi)的連續(xù)數(shù)據(jù)流。數(shù)據(jù)總線上的節(jié)點(diǎn)可通過(guò)發(fā)布/訂閱通信范式來(lái)交換信息。話題一般用于連續(xù)數(shù)據(jù)流(傳感器數(shù)據(jù)、機(jī)器人狀態(tài)等)。它們通常表示為多對(duì)多連接。數(shù)據(jù)可以隨時(shí)在獨(dú)立于任意發(fā)送方/接收方的情況下發(fā)布和訂閱。

          服務(wù)

          數(shù)據(jù)總線上針對(duì)具體機(jī)器人任務(wù)的按需阻塞連接。在計(jì)算圖中作為 RPC 實(shí)現(xiàn)。主要用于需要特定數(shù)據(jù)的較快速任務(wù)。在語(yǔ)義學(xué)上,用于處理請(qǐng)求。

          行動(dòng)

          數(shù)據(jù)總線上的按需非阻塞連接,通常用于移動(dòng)機(jī)器人的任何離散行為,或是運(yùn)行較長(zhǎng)時(shí)間但在執(zhí)行過(guò)程中提供反饋的任何離散行為。行動(dòng)可以是預(yù)先考慮過(guò)的。廣泛用于啟動(dòng)較低級(jí)別的控制任務(wù)。在語(yǔ)義學(xué)上,用于現(xiàn)實(shí)世界的行動(dòng)。

          要點(diǎn)總結(jié): ROS 計(jì)算圖是一種為機(jī)器人總體行為建模的數(shù)據(jù)結(jié)構(gòu),而數(shù)據(jù)層圖捕獲的則是機(jī)器人組件(用于在計(jì)算圖中實(shí)現(xiàn)建模行為)的物理分組和連接。



          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();