0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Micro-ROS:把ROS2放在MCU上

Robot Vision ? 來源:電子發(fā)燒友網(wǎng) ? 作者:李寧遠(yuǎn) ? 2022-04-07 07:13 ? 次閱讀

對(duì)于熟悉機(jī)器人應(yīng)用的讀者,ROS想必定是不會(huì)陌生的。ROS可以說是目前機(jī)器人相關(guān)開源社區(qū)最流行的項(xiàng)目。每一種類型的機(jī)器人都需要以硬件的實(shí)際情況編寫符合用戶需要的功能,起初代碼的復(fù)用率很低,大大阻礙了機(jī)器人的發(fā)展。

ROS便是為機(jī)器人在研發(fā)的過程中的代碼復(fù)用提供支持的開源框架,大量的機(jī)器人開源項(xiàng)目,從感知到控制、從定位到構(gòu)圖、從導(dǎo)航到可視化,幾乎都使用ROS作為基礎(chǔ)。

Micro-ROS從何而來?

Micro-ROS實(shí)際上是從ROS2優(yōu)化而來的輕量級(jí)ROS系統(tǒng),用于在各種機(jī)器人應(yīng)用中在MCU上實(shí)現(xiàn)第二代機(jī)器人操作系統(tǒng)ROS 2,通過使用通用框架,它可以實(shí)現(xiàn)與傳統(tǒng)機(jī)器人、物聯(lián)網(wǎng)傳感器和設(shè)備的互操作性。ROS2基于ROS升級(jí)而來,如果說ROS為機(jī)器人研究和機(jī)器人原型開發(fā)提供了良好?態(tài)的話,那么ROS2就是?于機(jī)器人部署環(huán)境的開發(fā)架構(gòu)和相應(yīng)的工具鏈。

傳統(tǒng)機(jī)器人ROS實(shí)質(zhì)上是仍舊停留在MCU邊界的,再通過串行協(xié)議或者舊版ROS中的工具與MCU集成在一起。Micro-ROS則允許在硬件級(jí)別附近運(yùn)行ROS2節(jié)點(diǎn),所有硬件外設(shè)都可用于該應(yīng)用程序,從而使其能夠直接與低級(jí)總線系統(tǒng)進(jìn)行交互,亦與傳感器和執(zhí)行器接口互通。

(Micro-ROS,Micro-ROS開源社區(qū))


ROS2解決了ROS在很多層面上無法滿足的性能升級(jí)的短板,諸如:實(shí)時(shí)性、對(duì)MCU的支持、網(wǎng)絡(luò)通信的依賴程度、多機(jī)器人的支持等等。原生的ROS其實(shí)只支持單個(gè)機(jī)器人,對(duì)于多機(jī)器人的支持是不足的,而且大型機(jī)器人項(xiàng)目的構(gòu)建、開發(fā)和部署這些需求ROS逐漸不能滿足。實(shí)時(shí)性、安全性、嵌?式移植等方面,在工業(yè)領(lǐng)域也讓時(shí)常無法匹配某系性能的要求。

Micro-ROS在解決了多機(jī)器人支持、非理想網(wǎng)絡(luò)環(huán)境支持、實(shí)時(shí)系統(tǒng)支持之外,最重要的就是對(duì)MCU直接的支持。Micro-ROS將不再停留在MCU的邊界通過串行協(xié)議集成。ROS2采?RTSP(Real-Time Publish-Subscribe)協(xié)議的DDS作為中間層,DDS作為?種?于實(shí)時(shí)和嵌?式系統(tǒng)發(fā)布-訂閱式通信的?業(yè)標(biāo)準(zhǔn),在系統(tǒng)容錯(cuò)和靈活性上會(huì)更加完善。Micro-ROS同時(shí)可以利用其中間件可插拔性來使用針對(duì)MCU進(jìn)行了優(yōu)化的DDS-XRCE。

基于Micro-ROS的機(jī)器人控制MCU

Micro-ROS旨在將ROS2引入廣泛的微控制器,主要目標(biāo)就是中檔32位微控制器系列。一般來說,Micro-ROS 需要具有幾萬字節(jié)RAM內(nèi)存的MCU和能夠?qū)崿F(xiàn)Micro-ROS客戶端到代理通信的通信外圍設(shè)備。Micro-ROS支持的硬件目前分為官方支持的板和社區(qū)板。這里挑幾個(gè)官方支持的Micro-ROS機(jī)器人本體控制MCU。

瑞薩RA6M5 Micro-ROS

瑞薩電子與Micro-ROS框架供應(yīng)商eProsima合作,開發(fā)了基于RA6M5的ROS機(jī)器人本體控制器,將Micro-ROS完全集成到了EK RA6M5 MCU中。該系統(tǒng)能夠基于ROS控制多個(gè)伺服系統(tǒng)。

(瑞薩)


32位的RA6M5 MCU是高性能Arm Cortex-M33內(nèi)核,521KB內(nèi)存,閃存高達(dá)2MB。集成了能夠用于在ROS節(jié)點(diǎn)之間進(jìn)行 Pub/Sub信息傳遞的通信接口,可以通過單線 UARTRS-485 控制多個(gè)伺服系統(tǒng)。該官方板支持的實(shí)時(shí)操作系統(tǒng)為FreeRTOS、ThreadX和裸機(jī)。

樂鑫ESP32 Micro-ROS

Xtensa雙核32位LX6微處理器,最高240 MHz,520KB的內(nèi)存以及高達(dá)4MB的閃存,在外設(shè)支持上是官方板中最多的,以太網(wǎng) MAC、Wi-Fi 802.11 b/g/n、藍(lán)牙 v4.2 BR/EDR、BLE、SPI、I2C、I2S、UART、SDIO、CAN、GPIO、ADC/DAC、PWM全部覆蓋。對(duì)實(shí)時(shí)操作系統(tǒng)的支持目前僅支持應(yīng)用最廣泛的FreeRTOS。

(樂鑫)


STM32L4 Micro-ROS

ARM Cortex-M4的內(nèi)核,128KB的內(nèi)存,1MB的閃存,相當(dāng)?shù)臉銓?shí)無華。但在機(jī)器人應(yīng)用外設(shè)的集成上很亮眼,溫濕度傳感器、3軸IMU、ToF傳感器等等。在社區(qū)自制的Micro-ROS
板上,ST的32位MCU仍然是最常見的,呈壓倒性優(yōu)勢(shì)。

(ST)


Micro-ROS運(yùn)用在MCU上的內(nèi)存限制

在Micro-ROS與硬件結(jié)合上,還有一個(gè)問題,即在嵌入式平臺(tái)中運(yùn)行Micro-ROS的最大的制約來自于內(nèi)存的限制。由于Micro-ROS 中的內(nèi)存使用是一個(gè)很復(fù)雜的問題,所以如何調(diào)整Micro-ROS 中間件的內(nèi)存消耗是比較棘手的。

因?yàn)镸icro-ROS的目標(biāo)是MCU這一類內(nèi)存資源低的設(shè)備。優(yōu)先使用靜態(tài)內(nèi)存而不是動(dòng)態(tài)內(nèi)存,并優(yōu)化應(yīng)用程序的內(nèi)存占用是一個(gè)較為可行的辦法。上面我們也提到了,Micro-ROS同時(shí)可以利用其中間件可插拔性來使用針對(duì)MCU進(jìn)行了優(yōu)化的DDS-XRCE。

Micro-ROS的中間件通常被形容成“資源極度受限但極度靈活”,為了與Micro-ROS堆棧中的ROS中間件接口集成,DDS-XRCE引入了靜態(tài)內(nèi)存池,以避免在運(yùn)行時(shí)動(dòng)態(tài)分配內(nèi)存。這些都是為了消除Micro-ROS與硬件結(jié)合時(shí)的內(nèi)存限制。解決這一限制后,Micro-ROS與MCU這類硬件的結(jié)合,可以說是相當(dāng)可靠的機(jī)器人控制解決方案。

寫在最后

“將ROS2放在MCU上”,這是Micro-ROS的社區(qū)宣言。純硬件訪問、低延遲的實(shí)時(shí)性、低功耗是Micro-ROS將ROS2放在MCU上的原因,Micro-ROS也的確開始在機(jī)器人應(yīng)用中彌合資源受限的MCU和更強(qiáng)大的處理器之間的差距。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    211

    文章

    28418

    瀏覽量

    207103
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    278

    瀏覽量

    17010
  • 機(jī)器人應(yīng)用

    關(guān)注

    0

    文章

    12

    瀏覽量

    2163
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ROS讓機(jī)器人開發(fā)更便捷,基于RK3568J+Debian系統(tǒng)發(fā)布!

    、路線控制偏離、系統(tǒng)通信異常等嚴(yán)重后果。而ROS系統(tǒng)憑借其優(yōu)勢(shì),已成為AGV開發(fā)利器,廣泛應(yīng)用于各種機(jī)器人開發(fā),并逐漸成為主流。 RK3568J + Debian的ROS2系統(tǒng)演示案例 創(chuàng)龍科技
    發(fā)表于 07-09 11:38

    如何在ROS中調(diào)用.so文件

    沒有給ubuntu作配套,也放棄了。在淘寶找到一款凌智電子的DAQ,價(jià)格便宜,也能滿足使用需求,故做記錄。 系統(tǒng)環(huán)境 ubuntu20.04 + ROS noetic 硬件設(shè)備 i5-12500+凌
    發(fā)表于 07-02 14:44

    ZMC900E控制器之ROS2環(huán)境安裝指南

    ZMC900E是致遠(yuǎn)電子研發(fā)的最新一代高性能EtherCAT控制器,支持ROS2系統(tǒng),兼?zhèn)鋸?qiáng)大功能和實(shí)時(shí)性,為工業(yè)應(yīng)用帶來新的可能。本文將詳述ROS2特點(diǎn)和安裝,助力用戶在機(jī)器人的二次開發(fā)
    的頭像 發(fā)表于 04-29 08:24 ?599次閱讀
    ZMC900E控制器之<b class='flag-5'>ROS2</b>環(huán)境安裝指南

    請(qǐng)問STM32MP157可以安裝ROS嗎?

    請(qǐng)問一下,STM32MP157可以安裝ROS嗎?
    發(fā)表于 03-26 06:50

    SLAMWARE ROS SDK的基礎(chǔ)架構(gòu)、部署方法和應(yīng)用示例介紹

    ROS作為機(jī)器人行業(yè)應(yīng)用最廣泛的基礎(chǔ)架構(gòu)之一,是很多用戶開發(fā)機(jī)器人應(yīng)用的首選框架,如果要在基于ROS開發(fā)的系統(tǒng)中集成思嵐科技的機(jī)器人底盤或者SLAMKit建圖定位解決方案,有什么最便捷的方法呢?ROS SDK就是為此而生。
    的頭像 發(fā)表于 03-21 10:44 ?911次閱讀
    SLAMWARE <b class='flag-5'>ROS</b> SDK的基礎(chǔ)架構(gòu)、部署方法和應(yīng)用示例介紹

    EtherCAT運(yùn)動(dòng)控制器在ROS的應(yīng)用開發(fā)案例(下)

    本篇文章我們主要介紹正運(yùn)動(dòng)技術(shù)動(dòng)態(tài)鏈接庫(kù)環(huán)境配置以及EtherCAT運(yùn)動(dòng)控制器在ROS下的單軸運(yùn)動(dòng)。
    的頭像 發(fā)表于 03-17 11:11 ?937次閱讀
    EtherCAT運(yùn)動(dòng)控制器在<b class='flag-5'>ROS</b><b class='flag-5'>上</b>的應(yīng)用開發(fā)案例(下)

    EtherCAT運(yùn)動(dòng)控制器在ROS的應(yīng)用開發(fā)案例(

    本文以正運(yùn)動(dòng)技術(shù)EtherCAT運(yùn)動(dòng)控制器ZMC432和ZMC408CE為例,介紹正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制器在ROS的應(yīng)用開發(fā)。
    的頭像 發(fā)表于 03-17 11:06 ?1332次閱讀
    EtherCAT運(yùn)動(dòng)控制器在<b class='flag-5'>ROS</b><b class='flag-5'>上</b>的應(yīng)用開發(fā)案例(<b class='flag-5'>上</b>)

    EtherCAT運(yùn)動(dòng)控制器在ROS的應(yīng)用(下)

    正運(yùn)動(dòng)技術(shù)動(dòng)態(tài)鏈接庫(kù)環(huán)境配置以及EtherCAT運(yùn)動(dòng)控制器在ROS下的單軸運(yùn)動(dòng)。
    的頭像 發(fā)表于 03-13 14:54 ?594次閱讀
    EtherCAT運(yùn)動(dòng)控制器在<b class='flag-5'>ROS</b><b class='flag-5'>上</b>的應(yīng)用(下)

    EtherCAT運(yùn)動(dòng)控制器在ROS的應(yīng)用(

    本文以正運(yùn)動(dòng)技術(shù)EtherCAT運(yùn)動(dòng)控制器ZMC432和ZMC408CE為例,介紹正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制器在ROS的應(yīng)用開發(fā)。
    的頭像 發(fā)表于 03-06 11:47 ?1208次閱讀
    EtherCAT運(yùn)動(dòng)控制器在<b class='flag-5'>ROS</b><b class='flag-5'>上</b>的應(yīng)用(<b class='flag-5'>上</b>)

    系統(tǒng)鏡像Ubuntu_ROS2ROS2是什么意思,帶有ROS2開發(fā)環(huán)境嗎?

    請(qǐng)問一下,百度文庫(kù)資料里面,下圖所示的系統(tǒng)鏡像Ubuntu_ROS2ROS2是什么意思,帶有ROS2開發(fā)環(huán)境嗎?與前面4GB版本的鏡像有什么區(qū)別?
    發(fā)表于 03-01 23:06

    基于CubeMX的RT-thread Nano可以添加microros這樣的軟件包嗎?

    最近使用rt-thread配置一個(gè)ROS2,但是是用CubeMX聯(lián)合Clion做的,CubeMX使用的是RT-thread nano包, 請(qǐng)問這個(gè)環(huán)境可以添加像microros這樣的軟件包嗎?謝謝。
    發(fā)表于 03-01 06:00

    ROS2 HSV值獲取

    飽和度表示顏色的純度或強(qiáng)度,即顏色的深淺程度。飽和度為0時(shí),顏色變?yōu)榛译A;飽和度為最大值時(shí),顏色呈現(xiàn)出最鮮艷的狀態(tài)。飽和度的取值范圍通常在0到1之間,也可以表示為0%到100%。
    的頭像 發(fā)表于 01-30 16:13 ?504次閱讀

    ROS系統(tǒng)的智能車開發(fā)-基于米爾芯馳MYD-JD9X開發(fā)板

    本篇測(cè)評(píng)由電子工程世界的優(yōu)秀測(cè)評(píng)者“mameng”提供。本文將介紹基于米爾電子MYD-JD9X開發(fā)板的ROS系統(tǒng)智能車開發(fā)。目前實(shí)現(xiàn)ROS的方式主要有兩種:Ubuntu系統(tǒng)+ROS;Ubuntu系統(tǒng)+docker+
    的頭像 發(fā)表于 01-26 08:01 ?933次閱讀
    <b class='flag-5'>ROS</b>系統(tǒng)的智能車開發(fā)-基于米爾芯馳MYD-JD9X開發(fā)板

    ROS2 robot-localization配置方案

    robot_localization是一個(gè)ROS的包,基于卡爾曼濾波,對(duì)多種傳感器進(jìn)行數(shù)據(jù)融合,進(jìn)而完成機(jī)器人的定位。近期確實(shí)遇到了需要實(shí)現(xiàn)更高精度定位的問題,在多方考慮下其中一部分優(yōu)化方法就是引入了robot-localization庫(kù),這個(gè)庫(kù)的引入還是比較簡(jiǎn)單的,但是實(shí)際
    的頭像 發(fā)表于 01-22 11:34 ?1.3w次閱讀

    移動(dòng)機(jī)器人與ROS操作系統(tǒng)原理與應(yīng)用

    ROS1不同的是,ROS2誕生的目的就是為了讓更多機(jī)器人使用,所以在設(shè)計(jì)更加符合技術(shù)的發(fā)展方向,也運(yùn)用了很多最近的技術(shù)框架。
    發(fā)表于 01-02 12:28 ?587次閱讀
    移動(dòng)機(jī)器人與<b class='flag-5'>ROS</b>操作系統(tǒng)原理與應(yīng)用