<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 機器人 > 業(yè)界動(dòng)態(tài) > 自適應計算在機器人領(lǐng)域的應用

自適應計算在機器人領(lǐng)域的應用

—— 如何借助 ROS 2 實(shí)現基于 FPGA 的軟件定義硬件
作者:Víctor Mayoral-Vilches 和 Giulio Corradi,賽靈思公司 時(shí)間:2021-10-20 來(lái)源:電子產(chǎn)品世界 收藏


本文引用地址:http://dyxdggzs.com/article/202110/428949.htm

序言

2021年 4 月, 賽靈思創(chuàng )新性地推出自適應系統模塊(SOM)產(chǎn)品組合 Kria SOM。作為一種量產(chǎn)型小尺寸嵌入式板卡,該平臺經(jīng)濟實(shí)惠、開(kāi)箱即用,最主要是賽里思通過(guò)工具創(chuàng )新,借助SOM賦能上百萬(wàn)軟件開(kāi)發(fā)者,使其可以獲益于賽靈思自適應計算平臺的高性能和靈活性?xún)?yōu)勢,而且可以使其將應用部署時(shí)間縮短多達 9 個(gè)月。

“一石激起千層浪”, Kria 的出現,在其所面向的廣泛的邊緣應用領(lǐng)域引起積極的反響,而機器人應用就是其中之一。

傳統的機器人軟件開(kāi)發(fā),是基于預定義的架構和約束條件在給定機器人 CPU 中進(jìn)行功能編程。然而采用自適應計算后,構建機器人行為則是在進(jìn)行架構編程。通過(guò)采用自適應計算,機器人專(zhuān)家能在運行中適配機器人計算系統的一個(gè)或多個(gè)屬性(如它的確定性、功耗、安全態(tài)勢或吞吐量)。

然而,機器人專(zhuān)家并不是硬件工程師,他們普遍缺乏與嵌入式技術(shù)相關(guān)的專(zhuān)業(yè)知識。本文將從當今熱門(mén)的?。⒆赃m應機器人"概念入手,從 ROS 2 機器人專(zhuān)家的視角介紹自適應計算,并提出一種能夠讓 FPGA 在 ROS 2 生態(tài)系統中起主要作用的架構。這個(gè)架構適用于多種平臺和多種技術(shù),并且便于移植。架構的核心組件在 Apache 2.0 許可證下提供,為機器人專(zhuān)家充分運用自適應計算,實(shí)現軟件定義硬件鋪平了道路。

其中 :

●   “連載一:什么是自適應機器人”通過(guò)三大基本特征,征剖析自適應機器人的概念產(chǎn)生、發(fā)展及特點(diǎn)

●   “連載二:工業(yè)類(lèi)比CPU/GPU,ASIC和FPGA,誰(shuí)更適合機器人計算”通過(guò)工業(yè)車(chē)間操作流程進(jìn)行類(lèi)比,形象展示不同處理器平臺對于機器人系統的權衡利弊

●   “連載三:為什么 FPGA 能在機器人中起到重要作用” 介紹機器人自適應計算的概念,對自適應計算的核心技術(shù)與功能進(jìn)行總體介紹,并詳解 FPGA 在機器人應用中發(fā)揮的作用,以及有關(guān)軟件定義硬件的概念

●   “連載四:如何理解面向機器人的“軟件定義硬件””通過(guò)比較傳統機器人軟件編程和基于賽靈思自適應解決方案平臺的編程模式進(jìn)行比較,介紹軟件定義硬件的實(shí)現方法

●   “連載五:為什么是通過(guò) ROS 2集成自適應計算?”簡(jiǎn)要介紹 ROS 2 及其與自適應計算的淵源

●   “連載六:自適應計算平臺實(shí)現 ROS 之路”則分享了前期業(yè)界在自適應計算及在機器人操作系統上的相關(guān)研究。

●   “連載七:用ROS 2 在機器人內部集成自適應計算的新架構”介紹了本文提出的架構,以及如何利用這個(gè)架構為 ROS 2 集成自適應計算功能,并使其發(fā)揮重要作用。

機器人專(zhuān)家花費大量時(shí)間,以計算圖形式構建機器人行為,解決手里的機器人任務(wù)。他們經(jīng)常使用現代的 C++ 語(yǔ)言,通過(guò)高級軟件工程操作,構建復雜的實(shí)時(shí)系統。然而,他們并不是硬件工程師。機器人專(zhuān)家普遍缺乏硬件和嵌入式技術(shù)專(zhuān)業(yè)知識,因而妨礙了 FPGA 等自適應計算技術(shù)的廣泛采用。本文在既往研究的啟發(fā)下,介紹機器人自適應計算的基礎知識,并提出一種生成 ROS 2 軟件定義硬件的架構。與過(guò)去的其他方法相比,本文提出的方法是假設面向的是沒(méi)有硬件或嵌入式技術(shù)專(zhuān)業(yè)知識的機器人專(zhuān)家,是以機器人專(zhuān)家為中心的角度提出的。

本文首先總結了開(kāi)發(fā)機器人時(shí)選擇正確計算平臺的重要性,以及機器人內部軟硬件之間的重要關(guān)系。然后使用工廠(chǎng)做類(lèi)比,簡(jiǎn)要講解 CPU、GPU、FPGA 和 ASIC 的計算原理并回顧相關(guān)研究文獻,發(fā)現 FPGA 因低功耗、高性能、確定性、可重配置能力、安全性和自適應特征,在用于機器人時(shí)具有顯著(zhù)的優(yōu)勢。此外,本文也回顧了有關(guān)將 ROS 集成到 FPGA 平臺的既往研究,發(fā)現這些研究都從硬件工程師的角度出發(fā),導致做出的設計決策往往嚴重制約性能空間。出于這個(gè)原因,本文從ROS 2 機器人專(zhuān)家的視角提出了一個(gè)提出建議,即全面考慮 ROS 2 的硬件加速。這一視角能體現:a) 優(yōu)化流程中、流程內、網(wǎng)絡(luò )內(含底層)的 ROS 2 計算圖交互;以及 b) 加速 ROS 上運行的應用。

本文提出一種能夠實(shí)現上述目標的架構。該架構由一套 ROS 2 包構成,能夠將硬件加速集成到 ROS 工作空間。這種架構適用于各種平臺(瞄準支持邊緣、工作站、數據中心或云)和各種技術(shù)(支持 FPGA 和 GPU),并且能夠輕松地移植到其他電路板上。該架構的核心組件已經(jīng)在 Apache 2.0 許可證下公開(kāi),對三種電路板的基本支持也已通過(guò)演示。此外,提供的架構還適用于各種應用,將來(lái)可以通過(guò)包含 catkin 擴展( 非 ament)輕松移植到 ROS。

連載二:工業(yè)類(lèi)比CPU/GPU,ASIC和FPGA,誰(shuí)更適合機器人計算

CPU 和通用 GPU (GPGPU) 是兩種廣泛使用的商業(yè)計算平臺,因為它們可用性高且具有通用性。這些計算技術(shù)的通用性,是機器人專(zhuān)家對其特別感興趣的原因。但是通用性的代價(jià)是:

1.通用平臺的固定架構難以適應新的機器人場(chǎng)景。追加功能往往需要追加硬件,這也往往意味著(zhù)要花時(shí)間對新的硬件進(jìn)行新的系統集成度。

2.通用性必然導致其在時(shí)效上的缺陷,從而影響確定性形成(難以滿(mǎn)足嚴格的實(shí)時(shí)性要求)。

3.其功耗通常比專(zhuān)用計算架構(如 FPGA 或 ASIC)高一到兩個(gè)數量級 (1)。

4.其固定的、不具備靈活應變能力的架構,導致其對網(wǎng)絡(luò )安全威脅和惡意行為的抵御能力減弱。熔毀 ( Meltdown ) 或者幽靈 ( Spectre ) 等網(wǎng)絡(luò )攻擊示例表明,如果缺乏重新配置數據流流水線(xiàn)的能力,計算平臺最終將喪失安全性。

總體而言,CPU、GPU 和 ASIC 等采用固定架構的器件,在其為開(kāi)發(fā)者提供優(yōu)勢的同時(shí),也讓其付出了代價(jià)。它們所缺乏的靈活應變能力,導致其缺乏時(shí)效性,能耗增加。而且由于它們無(wú)法通過(guò)重新配置架構來(lái)提高硬件的抗風(fēng)險能力,因此在網(wǎng)絡(luò )威脅面前更加脆弱。

CPU的工業(yè)類(lèi)比

圖1是 CPU 的工業(yè)類(lèi)比,它將 CPU 理解成一系列車(chē)間,并且每個(gè)車(chē)間安排一位技能非常嫻熟的工人。

1636682377792890.png

圖1 CPU 的工業(yè)類(lèi)比

這些工人每人都能使用通用工具生產(chǎn)出幾乎任何產(chǎn)品。每位工人按順序使用不同的工具,將原材料制造為成品,一次生產(chǎn)一件產(chǎn)品。根據任務(wù)的性質(zhì),這種串行生產(chǎn)流程可能用到大量步驟。這些車(chē)間基本(不考慮緩存的情況下)彼此獨立,工人能全身心地完成不同任務(wù),不必擔心干擾或協(xié)調問(wèn)題。盡管CPU 十分靈活,但它的底層硬件是固定的。CPU 仍然在基本的馮諾依曼架構(或者更確切地說(shuō),存儲程序計算機)上運行。數據從存儲器讀取到處理器進(jìn)行運算,然后寫(xiě)回到存儲器?;旧厦總€(gè) CPU 都以串行方式運行,一次一個(gè)指令。同時(shí)架構以算術(shù)邏輯單元 (ALU) 為中心,每次運算都需要將數據輸入到 ALU 并從 ALU 輸出數據。

CPU的工業(yè)類(lèi)比

GPU 也可以用車(chē)間和工人類(lèi)比,但它們的數量要大得多,并且工人的專(zhuān)業(yè)化程度也要高很多,如圖2所示。

1636682407820721.png

圖2 GPU 的工業(yè)類(lèi)比

GPU 工人只能使用特定的工具,每人能完成的任務(wù)種類(lèi)要少得多,但他們完成任務(wù)的效率非常高。GPU 工人在重復做相同的少量任務(wù)時(shí)效率最高,尤其是當他們全體同時(shí)做同一件事情時(shí)。GPU 解決了 CPU 的主要缺陷之一,即并行處理大量數據的能力。

雖然 GPU 比 CPU 擁有非常多的核,但 GPU 采用的依然是固定的硬件架構。GPU 的核仍然包含某種類(lèi)型的馮諾依曼處理器。一條指令就能處理上千條或者更多數量的數據,盡管通常必須對同時(shí)處理的每一條數據進(jìn)行相同的運算。原子處理元在數據矢量上運算(非 CPU 情況下的數據點(diǎn)),但仍然是每個(gè) ALU 執行一條固定的指令。因此,用戶(hù)仍然需要通過(guò)固定的數據路徑,從存儲器將數據傳遞給這些處理單元。與 CPU 相似,GPU 也采用固定硬件構建,對所有的機器人應用而言,其基本架構和數據流都是固定不變的。

FPGA 的工業(yè)類(lèi)比

如果說(shuō) CPU 和 GPU 是工人按照順序依次將輸入加工成輸出的車(chē)間,那么 FPGA 就是靈活的自適應工廠(chǎng),能夠針對手中的具體任務(wù)定制創(chuàng )設裝配線(xiàn)和傳送帶(參見(jiàn)圖 3)。

1636682440590562.png

圖3 FPGA 的工業(yè)類(lèi)比

這種靈活應變能力,意味著(zhù) FPGA 架構師可以先構建工廠(chǎng)、裝配線(xiàn)和工位,然后根據所需完成的任務(wù)對它們進(jìn)行量身定制,而不是使用通用工具。這些工廠(chǎng)中的原材料由分配在裝配線(xiàn)上的工人小組逐步加工成成品。每名工人都重復地完成同樣的任務(wù),同時(shí)半成品通過(guò)傳送帶在工人間進(jìn)行傳遞。這樣能大幅提升生產(chǎn)力,并保證以最佳方式充分利用資源和電力。在這個(gè)類(lèi)比中,工廠(chǎng)是 OpenCL 加速內核,裝配線(xiàn)是數據流流水線(xiàn),工位是 OpenCL 計算功能。

ASIC的工業(yè)類(lèi)比

與 FPGA 類(lèi)似,ASIC 也建造工廠(chǎng),但是 ASIC 中的工廠(chǎng)是最終形態(tài),不能改動(dòng)(參見(jiàn)圖 4)。換言之,這些 ASIC 內部只有機器人,工廠(chǎng)內不存在人類(lèi)認知。這些裝配線(xiàn)和傳送帶是固定的,不允許變更自動(dòng)化流程。ASIC 的這種專(zhuān)用型固定架構賦予它們極高的能效,以及大批量規?;a(chǎn)下的最低價(jià)格。但遺憾的是,ASIC 的開(kāi)發(fā)通常需要耗時(shí)多年,而且不支持進(jìn)行任何變更,這將會(huì )導致前期投入的資產(chǎn)很快跟不上未來(lái)生產(chǎn)力提升的變化。

1636682468526241.png

圖4 ASIC 的工業(yè)類(lèi)比

表1和表2總結的是將 ROS 和 ROS 2 分別實(shí)現在圖 1 所示一些自適應計算平臺的既往研究。圖 4 所示的是歷年來(lái)最具相關(guān)性的成果。

1636683032386521.png

圖 1  賽靈思自適應計算解決方案

表1  在自適應計算平臺上實(shí)現 ROS 的既往研究

1636683053733505.png

表2 有關(guān)在自適應計算平臺上運行 ROS 的既往研究

1636683088102350.png

image.png

圖2 ROS 與 ROS 2 演進(jìn)變革

圖2反映出科研界對促進(jìn)自適應計算發(fā)展的興趣越來(lái)越濃厚。從 ROS 的角度來(lái)看,可以將過(guò)去的研究分為三類(lèi):第一類(lèi)研究提出幫助機器人專(zhuān)家充分利用硬件加速功能,將 ROS 計算圖的一部分卸載到可編程邏輯 (FPGA) 并進(jìn)行加速的工具和方法。第二類(lèi)研究提出加速 ROS 底層的概念,特別是用網(wǎng)絡(luò )堆棧優(yōu)化節點(diǎn)間的網(wǎng)絡(luò )內交互。根據"Real-time Linux communications: an evaluation of the linux communication stack for real- time robotic applications"的描述,網(wǎng)絡(luò )堆棧是 ROS 通信的瓶頸,"Acceleration of publish/subscribe messaging in ROS-compliant FPGA component"等研究對實(shí)時(shí)分布式系統有參考價(jià)值。第三類(lèi)研究提出用自適應計算優(yōu)化 ROS 計算圖。

除了在用戶(hù)空間層面加速特定應用和 ROS 庫,值得一提的還有在流程間、流程內乃至網(wǎng)絡(luò )內的層面上加速 ROS 節點(diǎn)間的交互。由于機器人行為建立在 ROS 節點(diǎn)交互的結果之上,因此用于這個(gè)用途的加速器通過(guò)從總體上減少 ROS 和 ROS 2 計算圖數據流,顯著(zhù)影響總時(shí)延。也就是說(shuō),在考慮 ROS 和 ROS 2 時(shí),必須應用全面的硬件加速視圖。這種視圖能體現:a) 對流程中、流程內、網(wǎng)絡(luò )內(含底層) ROS 計算圖交互的優(yōu)化;以及 b) 對 ROS 上運行的應用的加速。

要點(diǎn)總結:在考慮 ROS 和 ROS 2 時(shí),必須應用全面的硬件加速視圖。這種視圖能體現:a) 對流程中、流程內、網(wǎng)絡(luò )內(含底層)的 ROS 計算圖交互的優(yōu)化;以及 b) 對 ROS 上運行的應用的加速。

根據圖 2 列出的既往研究,還可以得出另一個(gè)結論。過(guò)去的大多數方法主要都是從硬件工程師的視角解決自適應計算與 ROS 的集成問(wèn)題,其提出的大多數工具和方法都有一個(gè)先決條件,即最終用戶(hù)必須具備嵌入式流和硬件流的既有經(jīng)驗。這往往意味著(zhù)需要熟悉 RTL、HDL 和 HLS 等概念,或能熟練使用 Vivado? 設計套件或 Vitis? 統一軟件平臺等工具。類(lèi)似地,部署到嵌入式目標也需要用戶(hù)在一定程度上熟悉 Yocto,OpenEmbedded 以及相關(guān)工具。大多數從事 ROS 研發(fā)的機器人專(zhuān)家不具備這樣的能力。要集成自適應計算,需要采用一種以 ROS 為中心的方法。硬件和嵌入式流程必須直接集成到 ROS 生態(tài)系統中,提供的體驗與機器人專(zhuān)家在其桌面工作站上構建 ROS 工作空間時(shí)的體驗相似。在充分利用所有既往研究結果和經(jīng)驗的基礎上,下一章節將提出一種以 ROS 為中心的架構,用于集成自適應計算。

連載七:用ROS 2 在機器人內部集成自適應計算的新架構

圖 1 所示的架構將硬件加速集成到 ROS 2 中,同時(shí)堅持以機器人專(zhuān)家為中心的理念。不要求熟悉非 ROS 工具(如 Vivado 或 Vitis 工具),或熟悉 OpenEmbedded 或 Yocto。此外,該架構構建在開(kāi)放的標準之上,以 C++ 和 OpenCL 作為生成加速內核的目標計算語(yǔ)言。通過(guò)這種方法,機器人領(lǐng)域的大多數用戶(hù)都可以受益于硬件加速的功能。該架構基于三大支柱構建:ROS 構建系統 (ament)、ROS 元構建工具 (colcon) 以及嵌入式固件 (firmware)。

1636683480486747.png

圖1  ROS 2 硬件加速工作組 (HAWG) 初始架構

第一個(gè)支柱是 ament ROS 2 構建系統的擴展。ament_vitis(1)通過(guò)一系列 CMake 宏和實(shí)用工具實(shí)現這些擴展,將 Vitis 工具包含到 ROS 2 生態(tài)系統內。提議的架構是一種適用于幾乎任何加速技術(shù)的架構,即 ament_acceleration 抽象層從框架和軟件平臺(如 Vitis 工具)抽象構建系統擴展,為 FPGA 和 GPU 提供支持。作為替代加速技術(shù)的例子,圖 10 里包含了 ament_rocm,展現未來(lái)集成 ROCm5(2)軟件開(kāi)發(fā)平臺的潛力,以實(shí)現 HPC/超大規模級 GPU 計算。在后臺,ament_acceleration 的每次專(zhuān)門(mén)優(yōu)化都需要對應的庫。例如,ament_vitis 依靠 Vitis 和賽靈思運行時(shí) (XRT) 庫(3)。后者是一種開(kāi)源的標準化軟件接口,用于簡(jiǎn)化應用代碼和加速內核之間的通信。Vitis 工具和 XRT 完全對機器人工程師隱藏,不僅簡(jiǎn)化了加速內核的創(chuàng )建,而且還幫助機器人專(zhuān)家專(zhuān)注于計算圖像的改進(jìn)。通過(guò)提供猶如任何其他 ROS 封裝的體驗,以這種方式實(shí)現簡(jiǎn)化加速內核創(chuàng )建工作的目標。圖 2 所示的代碼列表 1 展示的是使用 ament_vitis ROS 封裝的示例。宏 vitis_acceleration_kernel 提供靈活性,允許用戶(hù)無(wú)縫地擴展CMakeLists.txt 并選擇加速 ROS 封裝的哪些部分。

1636683506936125.png

圖2  代碼列表 1

第二個(gè)支柱擴展“colcon”ROS 元構建工具,以集成硬件加速專(zhuān)用流。

第三個(gè)支柱是嵌入式固件。表達為 acceleration_firmware(1),第三個(gè)支柱旨在為硬件加速平臺提供固件專(zhuān)用工件,這樣就能針對這些工件編譯加速內核,從而簡(jiǎn)化流程并保持ROS 開(kāi)發(fā)流程。提出的架構在構建時(shí)特意考慮到各種硬件加速平臺,可以支持邊緣(嵌入式)器件,以及適用于工作站、數據中心乃至云硬件加速的 PCIe? 加速器。平臺選擇通過(guò)在 ROS 工作空間資源(在 src/ 下)中加入特定的 acceleration_firmware 庫(acceleration_firmware_xilinx)來(lái)實(shí)現。構建過(guò)程中的平臺選擇(本例中為賽靈思 Zynq UltraScale+? MPSoC ZCU102 平臺)通過(guò) colcon mixins 來(lái)實(shí)現。通過(guò)這種方式,colcon build -build- base=build-zcu102 -install-base=install-zcu102 -merge-install -mixin zcu102 將為 ZCU102 硬件平臺構建完整的 ROS 2 工作空間,交叉編譯 ROS 封裝,在運行中視情況為 ZCU102 平臺生成內核。所有中間步驟完全實(shí)現自動(dòng)化,而且產(chǎn)生的 install-zcu102 目錄能直接在硬件中使用。

為了容納中間工件并在嵌入式流程中提供靈活性,acceleration_firmware 在 ROS 2 工作空間中引入新的子文件夾結構,即 <ros2-workspace-path>/acceleration/firmware/<platform> 路徑。

圖 3 是 acceleration_examples ROS 2 封裝構建完成后,該架構的工作方式預演。流程從 colcon 構建 ROS 2 工作空間開(kāi)始(圖 3,插圖編號 1)。無(wú)需使用特殊的旗標,只是對應的封裝和硬件加速工作組 (HAWG) 基礎設施必須位于工作空間的 src 目錄內。colcon 將為開(kāi)發(fā)工作站架構構建每一個(gè)封裝。這其中包含 ament_vitis Cmake 宏(圖 3,插圖編號 1),該宏將一系列 CMake 擴展部署到產(chǎn)生的本地 ROS 2 疊加工作空間中。

這些擴展與本地 Vitis 安裝(1)(圖 3,插圖編號 3)相連,對ROS 2 包直接提供其功能。換句話(huà)說(shuō),ROS 2 包能從它們的 CMakeLists.txt 文件使用這些宏,并且使用賽靈思的硬件加速工具。

固件包(如 acceleration_firmware_kv260)是該架構的重要組件。切換加速器時(shí),只需用適用于新的目標加速器的包替換這個(gè)包即可。任意一個(gè)有效的固件包都應包含固件工件和 CMake 邏輯,以便在 ROS 疊加工作空間中正確地為實(shí)現硬件加速目的而解包、部署和配置固件(圖 3,插圖編號 4)。此外,有效的固件包應包含根文件系統、根文件系統的 sysroot(用于交叉編譯)或在構建時(shí)自動(dòng)生成 ROS 2 mixins(2) 的模板,以簡(jiǎn)化嵌入式流程和其他方面。如需進(jìn)一步詳細了解,請參閱任何官方固件包的完整工件列表。

總之,首先調用 colcon 構建(圖 3,插圖編號 3),讓 ROS 2 工作空間為硬件加速做好準備并將文件部署在本地疊加內(圖 3,插圖編號 2、3 和 4)。在此之后,從本地疊加第二次調用帶 -mixin<target-board> 旗標的 colcon 構建,將進(jìn)行交叉編譯(圖 3,插圖編號 51)并根據需要為目標加速器硬件生成加速器(圖 3,插圖編號 52)。從這一點(diǎn)開(kāi)始,colcon_acceleration 包有助于其余流程的進(jìn)一步自動(dòng)化。這部分已超出本文所要探討的內容。

下列三種不同的電路開(kāi)發(fā)板已經(jīng)獲得基本支持:賽靈思 Zynq UltraScale+ MPSoC ZCU102,ZCU104 以及 Kria? KV260 視覺(jué) AI 入門(mén)套件。

1636683532225248.png

圖3 HAWG 初始架構內 ROS 2 包之間的交互走查

要點(diǎn)總結:在既往研究的啟發(fā)下,當前研究提出一種以 ROS 2 為中心的架構,讓硬件加速在 ROS 生態(tài)系統中發(fā)揮關(guān)鍵作用。圖 12 體現的提議被模塊化成不同的 ROS 2 包,它們的構建方式與任何其他 ROS 包一樣。這種架構適用于各種平臺(瞄準邊緣、工作站、數據中心或云提供支持),也適用于各種技術(shù)(支持 FPGA 和 GPU ),并且只需提供對應的專(zhuān)業(yè) acceleration_firmware,就能輕松地將其移植到其他電路板。

表 4 總結了這里提出的方法與以前的工作的比較。

1636683557393149.png

表4 ROS 與 ROS 2 各類(lèi)自適應計算集成方法比較表(含賽靈思 ament_vitis)

資源獲?。?/p>

1. 如需獲取 ament_vitis,請訪(fǎng)問(wèn)鏈接:https://github.com/ros-acceleration/ament_vitis

2. 如需獲取 ROCm,請訪(fǎng)問(wèn)鏈接:https://github.com/RadeonOpenCompute/ROCm

3. 如需獲取 XRT,請訪(fǎng)問(wèn)鏈接:https://github.com/Xilinx/XRT

4. 如需獲取 acceleration_firmware,請訪(fǎng)問(wèn):https://github.com/ros-acceleration/acceleration_firmware。參見(jiàn) acceleration_firmware_xilinx,查看專(zhuān)為賽靈思平臺優(yōu)化的具體示例。



關(guān)鍵詞:

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>