機器人對MCU有獨特的需求。經過優化用于機器人的 MCU 通常包含多種功能,包括內置互聯網協議 (IP) 連接、信息安全和功能安全保護以及高級控制算法。將 MCU 內核與現場可編程門陣列 (FPGA) 集成是優化機器人應用的一種手段。機器人操作系統 (ROS) 最初針對更高性能的中央處理器 (CPU) 進行了優化,現在已被簡化并作為微型 ROS 發布,以便在嵌入式 MCU 和其他資源較少的環境中運行,進一步提高了 MCU 在機器人技術中的實用性。
用于機器人的 MCU 采購繼續成倍增加。本 FAQ 將回顧基本的機器人平臺架構,特別強調 MCU 的使用;它回顧了 MCU 內核與 FPGA 集成時打開的性能選項,并回顧了使用 micro-ROS 的好處。 MCU 是機器人設計中的重要元素。即使是簡單的消費類機器人也可以包含多個 MCU,用于實現通信、用戶界面、USB 和電機控制等專用功能(圖 1)。
圖 1:即使是相對簡單的機器人真空吸塵器,也可以有多個 MCU 來處理專門的用戶界面、連接和電機控制任務。 (圖片:Microchip)
智能工廠和工業 4.0 的出現正在推動對日益精密和復雜的工業機器人的需求。包括網絡通信、功能安全需求和預測性維護等需求增長,需要更高性能外設和加速器的 MCU 。通常運行頻率為 800 MHz 至 1GHz 的異構多核 MCU。處理速度對于支持多軸機器人中電機位置、方向、速度和扭矩的高精度控制至關重要。
用于機器人的高性能 MCU 包括支持伺服控制所需計算的專用加速器硬件。在某些情況下,電流控制環路計算可以在 1.5μs 內完成。在伺服電機驅動系統中,控制回路可以分為多個層次,包括更高級別的運動控制回路、位置回路、速度回路和轉矩/電流回路,以級聯拓撲結構排列(圖 2)。上游控制回路倍數于下游控制回路,并為下游提供參考數據,其中轉矩或電流回路是最嚴密的控制回路。
圖 2:伺服電機控制回路級聯拓撲。 (圖片:德州儀器)
上述架構中的控制回路可以在多核 MCU 中的不同內核實現,也可以在 MCU 內核和 FPGA 之間進行劃分。分區的優化通過在獨立計算資源之間擴展循環來最大化可用處理帶寬。每個處理核心都可以快速運行其特定算法,將結果向下傳遞以供下一個循環使用。同時,它根據需要繼續提供其他功能,直到下一組輸入數據到達,算法再次開始。
單個 MCU 內核需要高水平的性能才能擁有可用于快速處理基本算法和提供系統所需的附加功能的帶寬。由于循環時間在 32 kHz 控制回路中接近 31.25 μs,或者必須幾乎同時處理來自多軸的輸入,因此必須進行快速處理。有時,它可能需要一個或多個高性能 MCU 加上一個 FPGA 的組合。
MCU、FPGA 和 eFPGA
在機器人系統中,MCU 和 FPGA 的組合可以提供比單一產品更合適的解決方案。其中MCU 靈活且易于編程。 MCU 也可以處理某種級別的并行運算,但最終內核可能成為更高級別并行性能的瓶頸。 FPGA 由數千個邏輯塊組成,這些邏輯塊可以配置為大規模并行處理。 FPGA 還可以提供更高級別的靈活性,但它們往往更昂貴。
MCU 非常適合處理多軸伺服控制等常規功能。 FPGA 可包含大量 DSP 模塊和可編程邏輯,可支持人工智能 (AI)、機器學習 (ML) 和卷積神經網絡 (CNN) 推理算法所需的并行處理。機器人平臺上需要的 AI/ML/CNN 功能越多,將 FPGA 與 MCU 一起結合的好處就越大。
用戶可以使用多種微控制器軟件開發工具中的一種。在 FPGA 的情況下,邏輯不是固定的,而是通過在硬件中設計互連結構來“編程”設備以執行特定功能。這些差異導致了 MCU 和 FPGA 之間的成本和性能權衡(圖 3)。
圖 3:FPGA 和 MCU 為機器人平臺設計人員提供了多種性能和成本權衡。 (圖片:Digilent)
根據具體設計的需要,MCU和FPGA的結合方式有以下三種:
MCU 和 FPGA 可以組合為兩個分立組件
FPGA 可以包含一個集成的 MCU 內核
MCU 可以包括一個集成的 FPGA 部分
這些方法中的每一種都有其優點。對于同時需要高性能伺服控制能力和大量 AI/ML/CNN 功能的應用,高性能 MCU 可以與單獨的大型 FPGA 相結合。 MCU 可能用于控制功能,而 FPGA 用于機器人平臺上更密集的人工智能和機器學習活動。在需要大規模并行處理和 AI/ML/CNN 占主導地位的情況下,MCU 內核可以與大型 FPGA 集成。在 MCU 占主導地位且需要相對少量并行處理的情況下,可以將較小的嵌入式 FPGA (eFPGA) 與高性能 MCU 集成。
在許多機器人應用中,通常首選其中一種集成解決方案,集成解決方案可以提供更高的性能水平。當分立的 FPGA 與單獨的 MCU 結合使用時,每個設備都需要其內存緩沖區來處理它們之間的數據傳輸。如果需要在 MCU 和 FPGA 之間傳輸大量數據,系統性能會受到影響。另一方面,如果 FPGA 和 MCU 集成在一塊芯片中,它們可以共享 DDR 內存,并且數據傳輸不需要緩沖。在這種情況下,數據傳輸只涉及在 MCU 和 FPGA 之間傳輸存儲器指針。
MCU 機器人操作系統
基本機器人操作系統 (ROS) 是一個用于機器人應用程序開發的開源軟件框架,針對運行 Ubuntu Focal、macOS 和 Windows 10 等操作系統的微處理器進行了優化。ROS 2 是新一代的 ROS。 ROS 2 采用分層架構設計,將 ROS 客戶端層與 ROS 中間件層分開。 ROS 領域的最新發展是 micro-ROS,它將 ROS 2 帶入中檔和更高級別的 MCU。需要具有數十 KB RAM 的 MCU 來實現微型 ROS。 MCU 中還需要支持 micro-ROS 客戶端到代理通信的通信外圍設備。
micro-ROS 提供了一個 ROS 2 開發生態系統,可以在實時操作系統 (RTOS) 之上運行,使它們能夠滿足需要時間期限或確定性響應的機器人系統任務的時間關鍵要求。FreeRTOS 是 micro-ROS 項目支持的首批 RTOS 之一,并已集成到其軟件堆棧中。 FreeRTOS 社區開發的所有實現和工具都可以與 micro-ROS 兼容(圖 4)。
圖 4:微型 ROS 堆棧顯示與 FreeRTOS 環境的兼容性。 (圖片:FreeRTOS)
FreeRTOS 具有最小的內存和處理開銷,RTOS 內核二進制映像僅需要 6K 到 12K 字節,非常適合運行 micro-ROS。除了 FreeRTOS 之外,micro-ROS 還可以與 Zepher RTOS 一起運行,并且 Zepher 由 micro-ROS 客戶端庫及其中間件支持。
總結
為機器人平臺指定 MCU 是一個復雜的過程。通常需要多個 MCU 或具有多個內核的單個 MCU,以及可能添加的 FPGA,作為外部設備或 MCU 內的嵌入式元件。在考慮 MCU 和 FPGA 的集成時,需要進行多種權衡。例如,MCU 可用于控制功能,而 FPGA 則用于機器人平臺上更密集的人工智能和機器學習。在 MCU 上運行的微型 ROS 機器人操作系統的發布是高級機器人平臺設計人員可用的另一個重要工具。
審核編輯:湯梓紅
-
處理器
+關注
關注
68文章
19293瀏覽量
229966 -
mcu
+關注
關注
146文章
17162瀏覽量
351348 -
機器人
+關注
關注
211文章
28445瀏覽量
207225
發布評論請先 登錄
相關推薦
評論