天天看點

如何建構靈活高效的現代機器人系統架構?

作者:國辰機器人

機器人行為通常建構為計算圖,資料從傳感器流向計算技術,一直向下到執行器并傳回。為了獲得額外的性能,機器人計算平台必須将這些類似圖形的結構有效地映射到CPU(中央處理器),而且還要映射到專用硬體,包括FPGA(現場可程式設計門陣列)和GPU(圖形處理單元)。

機器人系統的傳統軟體開發主要是中央處理器(CPU)的程式設計功能。然而,由于CPU固有的架構限制和局限性,這些機器人系統經常表現出處理效率低下(不确定性)、高功耗和安全問題。事實上,建構僅依賴CPU的強大機器人系統是一項具有挑戰性的工作。

機器人計算平台随着對機器人系統進階功能的需求不斷增加,一些公司釋出了專用機器人和邊緣AI平台,以提供高性能計算、安全連接配接、裝置上機器學習等。

機器人和人工智能平台包含各種計算資源,包括CPU、數字信号處理器(DSP)、圖形處理單元(GPU)、現場可程式設計門陣列(FPGA)和專用內建電路(ASIC)等。它們允許機器人專家為機器人建構靈活的計算架構,但要求機器人為每項任務使用正确的工具以最大限度地提高其性能,這一過程可能很複雜且令人困惑。

本文讨論了機器人專家可用的各種計算資源的優缺點,并提供了關于它們作為機器人系統現代計算架構的更多觀點。

如何建構靈活高效的現代機器人系統架構?

1►标量處理器 (CPU)

标量處理元件(例如CPU)在具有不同決策樹和大量庫的複雜算法中非常有效。但是,性能擴充是有限的。

多核CPU可以了解為工廠中的一組工廠中的房間,每個工廠中的房間都雇用非常熟練的勞工。這些勞工每個人都可以使用通用工具來建構幾乎任何東西。每個勞工一次制作一件物品,依次使用不同的工具将原材料變成成品。工廠中的房間大多(忽略緩存)是獨立的,并且勞工都可以在沒有分心或協調問題的情況下完成不同的任務。

與CPU相比,矢量處理元件(例如DSP、GPU)在一組更窄的可并行計算功能上效率更高。但是,由于其不靈活的記憶體層次結構,它們會遇到延遲和效率損失。

盡管CPU非常靈活,但它們的底層硬體是固定的。大多數CPU仍然基于馮諾依曼架構(或更準确地說,存儲程式計算機),其中資料從記憶體帶到處理器,進行操作,然後寫回記憶體。從根本上說,每個CPU 都以順序方式運作,一次一條指令,架構以算術邏輯單元(ALU)為中心,每次操作都需要将資料移入和移出。

在當今的現代機器人架構中,标量處理器起着核心作用。使用CPU 協調傳感、驅動和認知之間的資訊流是機器人系統的基礎。此外,廣泛采用的機器人應用程式開發軟體架構機器人作業系統(ROS) 是以 CPU為中心的方式設計的。

2►向量處理器(DSP、GPU)

與CPU相比,向量處理元件(例如DSP、GPU)在可并行計算功能的較窄集合上效率更高。但是,由于其不靈活的記憶體層次結構,它們會遇到延遲和效率損失。

按照前面描述的工廠比喻,GPU也有工廠中的房間和勞工,但數量要多得多,而且勞工也更加專業。這些勞工隻能使用特定的工具,可以做的事情更少,但他們的工作效率很高。

當GPU從業人員重複執行相同的幾項任務時,并且當他們所有人都在同一時間做同樣的事情時,他們的工作效率最高。畢竟,有這麼多不同的勞工,給他們所有相同的訂單更有效率。是以,向量處理器解決了CPU在機器人技術中的主要缺點之一——并行處理大量資料的能力。

3►可程式設計邏輯 (FPGA)

可程式設計邏輯(例如FPGA)可以針對特定的計算功能進行精确定制,這使得它們非常适合延遲關鍵的實時應用。然而,這些優勢是以程式設計複雜性為代價的。此外,與标量和矢量處理器相比,重新配置和重新程式設計需要更長的編譯時間。

使用我們的工廠比喻,FPGA是靈活且适應性強的工廠中的房間,架構師可以在其中部署為手頭的特定任務定制的裝配線和傳送帶。這種适應性意味着FPGA架構師可以建構裝配線和工作站,然後針對所需任務對其進行定制,而不是使用通用工具和記憶體結構。

在機器人架構中,FPGA可以通過軟體建立運作時可重新配置的機器人硬體。機器人的軟體定義硬體擅長資料流計算,因為一旦所有操作數可用,就會執行語句。這使得FPGA在連接配接傳感器、執行器和處理網絡方面非常有用。此外,FPGA可以建立具有無與倫比的靈活性的自定義硬體加速核心,使其成為用于資料處理任務的矢量處理器的有趣替代方案。

考慮使用機器人作業系統的機器人系統,這在所有類型的機器人開發中變得越來越普遍。使用ROS(機器人作業系統),機器人流程被設計為計算圖中的節點。機器人計算平台必須能夠有效地将這些類似圖形的結構映射到矽片上。

4►專用內建電路 (ASIC)

繼續我們的工廠類比,ASIC與FPGA一樣建構裝配線和工作站,但與 FPGA不同的是,ASIC是最終的,無法修改。換句話說,在ASIC的工廠中的房間裡,裝配線和傳送帶是固定的,不允許改變自動化流程。專用內建電路的臨時固定架構提供了無與倫比的性能和能效,以及大批量生産的最佳價格。

不幸的是,ASIC需要很多年才能開發出來,并且不允許進行任何更改。相反,機器人算法和架構繼續快速發展,是以機器人專用的基于 ASIC的加速器可能落後于最先進的算法數月甚至數年。雖然ASIC将在未來的某些機器人系統中發揮重要作用,但ASIC在機器人架構中的使用仍然有限。

5►機器人神經系統

機器人本質上是确定性機器,通過傳感器捕獲資料,傳遞給計算技術,然後傳遞給執行器,然後以确定的方式傳回。

這些網絡可以了解為機器人的神經系統。與人類神經系統一樣,跨所有網絡傳遞的實時資訊是機器人保持一緻行為的基礎。基于馮諾依曼的标量和向量處理器架構在控制流方面表現出色,但難以保證确定性。這就是 FPGA 和 ASIC 作為機器人系統的關鍵支援技術發揮作用的地方。

6►機器人計算架構

考慮使用機器人作業系統的機器人系統,這在所有類型的機器人開發中變得越來越普遍。使用ROS,機器人流程被設計為計算圖中的節點。機器人計算平台能夠有效地将這些類似圖形的結構映射到矽片上。

ROS 計算圖應以無縫方式在計算基闆上運作,資料必須從可程式設計邏輯(FPGA)流向CPU,從CPU流向矢量處理器,并一路傳回。換句話說,機器人晶片不僅應該将ROS計算圖映射到CPU,還應該映射到 FPGA、GPU和其他計算技術以獲得額外的性能。

7►最佳計算資源

與傳統的以CPU為中心的機器人程式設計模型相反,附加計算平台的可用性為工程師提供了高度的架構靈活性。機器人專家可以根據需要選擇、混合和比對正确的計算資源,進而利用各種計算平台的屬性——确定性、功耗、吞吐量等。

#頭條創作挑戰賽#

繼續閱讀