譯者 | 李睿
審校 | 孫淑娟
在開發(fā)機(jī)器人時,系統(tǒng)集成往往占用了大部分的項目資源,這比開發(fā)最終應(yīng)用程序還要重要。隨著低端工業(yè)協(xié)作機(jī)器人的出現(xiàn),出現(xiàn)了只專注于開發(fā)在現(xiàn)有硬件上運行的軟件開發(fā)商。然而,機(jī)器人的硬件和軟件能力之間存在著一個至關(guān)重要的關(guān)系。需要保留對計算硬件的設(shè)計控制,以創(chuàng)建更專業(yè)、更節(jié)能、安全和高性能的機(jī)器人。
硬件挑戰(zhàn)和軟件技能
如果機(jī)器人專家希望交付未來需要的更好、更快的機(jī)器人,就必須克服硬件面臨的障礙。在后摩爾時代的計算世界中,升級硬件以采用最新一代微處理器無法實現(xiàn)所需的應(yīng)用程序性能升級。其前進(jìn)的道路不再在于等待最新的芯片。硬件加速通常是獲得必要收益的唯一途徑。
這種硬件挑戰(zhàn)使機(jī)器人等學(xué)科的開發(fā)人員的工作變得更加復(fù)雜,他們的技能往往偏向于開發(fā)軟件。這意味著如果他們要滿足市場對新型工業(yè)機(jī)器人的需求,就必須面對設(shè)計自適應(yīng)計算硬件的前景。在生產(chǎn)線和倉庫等領(lǐng)域使用機(jī)器人來提高生產(chǎn)力的企業(yè),正在尋找能夠提供額外靈活性、更精細(xì)的位置控制、卓越的基于視覺的能力、改進(jìn)的數(shù)據(jù)捕獲和更低功耗的設(shè)備。
機(jī)器人硬件加速的主要原理是,與傳統(tǒng)的控制驅(qū)動方法不同,用于軟件開發(fā)的混合控制和數(shù)據(jù)驅(qū)動方法允許團(tuán)隊設(shè)計自定義計算架構(gòu),為應(yīng)用程序分配最佳數(shù)量的硬件資源。
就實現(xiàn)而言,需要異構(gòu)計算模型。這利用了CPU和GPU的優(yōu)勢,它們在控制流計算方面表現(xiàn)出色,同時利用FPGA的優(yōu)勢來處理數(shù)據(jù)流計算。這種方法同時提供了對CPU/GPU的靈活性和完全控制,以實現(xiàn)復(fù)雜的計算,具有低功耗、高性能、低延遲和硬件加速的確定性。現(xiàn)在,各種供應(yīng)商都在提供自適應(yīng)片上系統(tǒng)(SoC)和系統(tǒng)級模塊(SOM)設(shè)備,例如AMD-Xilinx Kria?SOM及其相關(guān)的Kria機(jī)器人堆棧,它們提供了這種混合計算模型的優(yōu)勢.該表比較了這些不同的模型。
自適應(yīng)片上系統(tǒng)(SoC)和系統(tǒng)級模塊(SOM)允許機(jī)器人專家通過對創(chuàng)建正確數(shù)據(jù)路徑和控制機(jī)制的架構(gòu)進(jìn)行編程來構(gòu)建機(jī)器行為。然而,需要復(fù)雜的工程技能來使用既定的工具和技術(shù)對此類架構(gòu)進(jìn)行編程。
機(jī)器人專家缺乏合適的硬件和嵌入式設(shè)計專業(yè)知識,他們習(xí)慣于以計算圖的形式構(gòu)建行為,以解決當(dāng)前的機(jī)器人任務(wù)。他們經(jīng)常使用C++通過高級軟件工程實踐來創(chuàng)建復(fù)雜的實時確定性系統(tǒng)。
建立在機(jī)器人操作系統(tǒng)(ROS)之上
現(xiàn)在需要一種不同的方法來幫助機(jī)器人專家利用可用的硬件加速技術(shù)。在理想情況下,這種方法應(yīng)該讓他們在熟悉的開發(fā)環(huán)境(例如ROS)中創(chuàng)建自定義硬件,并使用熟悉的工具(例如Gazebo)進(jìn)行模擬。
ROS是機(jī)器人應(yīng)用程序開發(fā)的事實上的行業(yè)標(biāo)準(zhǔn),自從2020年ROS2問世以來更是如此。這已成為跨行業(yè)機(jī)器人應(yīng)用程序的默認(rèn)軟件開發(fā)工具包(SDK),許多團(tuán)體現(xiàn)在都在使用ROS和Gazebo。
以前將自適應(yīng)計算集成到ROS中的舉措已經(jīng)從硬件工程師的角度解決了這一挑戰(zhàn)。他們假設(shè)用戶以前有嵌入式和硬件流程方面的經(jīng)驗,因此熟悉RTL、HDL和HLS等概念以及用于操作它們的設(shè)計工具。同樣,部署到嵌入式目標(biāo)需要對Yocto、OpenEmbedded和相關(guān)工具有一定的了解。
了解大多數(shù)機(jī)器人專家并非來自這一背景,ROS2硬件加速工作組(HAWG)正在采用以ROS為中心的方法,將嵌入式流程直接集成到ROS生態(tài)系統(tǒng)中。它的目標(biāo)是提供類似于機(jī)器人專家在桌面工作站中構(gòu)建ROS工作區(qū)時所享受的體驗。
HAWG的工作建立在已發(fā)表的關(guān)于優(yōu)化ROS計算圖以利用自適應(yīng)計算的研究,以及在可編程邏輯中加速部分圖的工具和方法的建議之上。除此之外,HAWG現(xiàn)在正在提出一種架構(gòu)(如下圖所示),該架構(gòu)專注于C++和OpenCL等熟悉的語言。
ROS 2和HAWG堆棧一起促進(jìn)了硬件加速
所提出的架構(gòu)與平臺無關(guān),因此適用于邊緣設(shè)施、工作站、數(shù)據(jù)中心或云計算平臺,而且與技術(shù)無關(guān),以允許針對FPGA、CPU和GPU以及易于移植到各種模塊和主板。
最終,這項工作應(yīng)該使大多數(shù)機(jī)器人專家能夠利用硬件加速的機(jī)會來實現(xiàn)下一代先進(jìn)和復(fù)雜的機(jī)器人。
原文標(biāo)題:??Simplifying hardware acceleration for robots with ROS 2??,作者:Ben Dickson