對于熟悉機器人應用的讀者,ROS想必定是不會陌生的。ROS可以說是目前機器人相關開源社區最流行的項目。每一種類型的機器人都需要以硬件的實際情況編寫符合用戶需要的功能,起初代碼的復用率很低,大大阻礙了機器人的發展。
ROS便是為機器人在研發的過程中的代碼復用提供支持的開源框架,大量的機器人開源項目,從感知到控制、從定位到構圖、從導航到可視化,幾乎都使用ROS作為基礎。
Micro-ROS從何而來?
Micro-ROS實際上是從ROS2優化而來的輕量級ROS系統,用于在各種機器人應用中在MCU上實現第二代機器人操作系統ROS 2,通過使用通用框架,它可以實現與傳統機器人、物聯網傳感器和設備的互操作性。ROS2基于ROS升級而來,如果說ROS為機器人研究和機器人原型開發提供了良好?態的話,那么ROS2就是?于機器人部署環境的開發架構和相應的工具鏈。
傳統機器人ROS實質上是仍舊停留在MCU邊界的,再通過串行協議或者舊版ROS中的工具與MCU集成在一起。Micro-ROS則允許在硬件級別附近運行ROS2節點,所有硬件外設都可用于該應用程序,從而使其能夠直接與低級總線系統進行交互,亦與傳感器和執行器接口互通。
(Micro-ROS,Micro-ROS開源社區)
ROS2解決了ROS在很多層面上無法滿足的性能升級的短板,諸如:實時性、對MCU的支持、網絡通信的依賴程度、多機器人的支持等等。原生的ROS其實只支持單個機器人,對于多機器人的支持是不足的,而且大型機器人項目的構建、開發和部署這些需求ROS逐漸不能滿足。實時性、安全性、嵌?式移植等方面,在工業領域也讓時常無法匹配某系性能的要求。
Micro-ROS在解決了多機器人支持、非理想網絡環境支持、實時系統支持之外,最重要的就是對MCU直接的支持。Micro-ROS將不再停留在MCU的邊界通過串行協議集成。ROS2采?RTSP(Real-Time Publish-Subscribe)協議的DDS作為中間層,DDS作為?種?于實時和嵌?式系統發布-訂閱式通信的?業標準,在系統容錯和靈活性上會更加完善。Micro-ROS同時可以利用其中間件可插拔性來使用針對MCU進行了優化的DDS-XRCE。
基于Micro-ROS的機器人控制MCU
Micro-ROS旨在將ROS2引入廣泛的微控制器,主要目標就是中檔32位微控制器系列。一般來說,Micro-ROS 需要具有幾萬字節RAM內存的MCU和能夠實現Micro-ROS客戶端到代理通信的通信外圍設備。Micro-ROS支持的硬件目前分為官方支持的板和社區板。這里挑幾個官方支持的Micro-ROS機器人本體控制MCU。
瑞薩RA6M5 Micro-ROS
瑞薩電子與Micro-ROS框架供應商eProsima合作,開發了基于RA6M5的ROS機器人本體控制器,將Micro-ROS完全集成到了EK RA6M5 MCU中。該系統能夠基于ROS控制多個伺服系統。
(瑞薩)
32位的RA6M5 MCU是高性能Arm Cortex-M33內核,521KB內存,閃存高達2MB。集成了能夠用于在ROS節點之間進行 Pub/Sub信息傳遞的通信接口,可以通過單線 UART 和 RS-485 控制多個伺服系統。該官方板支持的實時操作系統為FreeRTOS、ThreadX和裸機。
樂鑫ESP32 Micro-ROS
Xtensa雙核32位LX6微處理器,最高240 MHz,520KB的內存以及高達4MB的閃存,在外設支持上是官方板中最多的,以太網 MAC、Wi-Fi 802.11 b/g/n、藍牙 v4.2 BR/EDR、BLE、SPI、I2C、I2S、UART、SDIO、CAN、GPIO、ADC/DAC、PWM全部覆蓋。對實時操作系統的支持目前僅支持應用最廣泛的FreeRTOS。
(樂鑫)
STM32L4 Micro-ROS
ARM Cortex-M4的內核,128KB的內存,1MB的閃存,相當的樸實無華。但在機器人應用外設的集成上很亮眼,溫濕度傳感器、3軸IMU、ToF傳感器等等。在社區自制的Micro-ROS
板上,ST的32位MCU仍然是最常見的,呈壓倒性優勢。
(ST)
Micro-ROS運用在MCU上的內存限制
在Micro-ROS與硬件結合上,還有一個問題,即在嵌入式平臺中運行Micro-ROS的最大的制約來自于內存的限制。由于Micro-ROS 中的內存使用是一個很復雜的問題,所以如何調整Micro-ROS 中間件的內存消耗是比較棘手的。
因為Micro-ROS的目標是MCU這一類內存資源低的設備。優先使用靜態內存而不是動態內存,并優化應用程序的內存占用是一個較為可行的辦法。上面我們也提到了,Micro-ROS同時可以利用其中間件可插拔性來使用針對MCU進行了優化的DDS-XRCE。
Micro-ROS的中間件通常被形容成“資源極度受限但極度靈活”,為了與Micro-ROS堆棧中的ROS中間件接口集成,DDS-XRCE引入了靜態內存池,以避免在運行時動態分配內存。這些都是為了消除Micro-ROS與硬件結合時的內存限制。解決這一限制后,Micro-ROS與MCU這類硬件的結合,可以說是相當可靠的機器人控制解決方案。
寫在最后
“將ROS2放在MCU上”,這是Micro-ROS的社區宣言。純硬件訪問、低延遲的實時性、低功耗是Micro-ROS將ROS2放在MCU上的原因,Micro-ROS也的確開始在機器人應用中彌合資源受限的MCU和更強大的處理器之間的差距。
-
機器人
+關注
關注
211文章
28419瀏覽量
207108 -
ROS
+關注
關注
1文章
278瀏覽量
17010 -
機器人應用
+關注
關注
0文章
12瀏覽量
2163
發布評論請先 登錄
相關推薦
評論