0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Micro-ROS的机器人控制MCU

lPCU_elecfans 来源:电子发烧友网 作者:电子发烧友网 2022-04-08 08:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

电子发烧友网报道(文/李宁远)对于熟悉机器人应用的读者,ROS想必定是不会陌生的。ROS可以说是目前机器人相关开源社区最流行的项目。每一种类型的机器人都需要以硬件的实际情况编写符合用户需要的功能,起初代码的复用率很低,大大阻碍了机器人的发展。

ROS便是为机器人在研发的过程中的代码复用提供支持的开源框架,大量的机器人开源项目,从感知到控制、从定位到构图、从导航到可视化,几乎都使用ROS作为基础。

Micro-ROS从何而来?

Micro-ROS实际上是从ROS2优化而来的轻量级ROS系统,用于在各种机器人应用中在MCU上实现第二代机器人操作系统ROS 2,通过使用通用框架,它可以实现与传统机器人、物联网传感器和设备的互操作性。ROS2基于ROS升级而来,如果说ROS为机器人研究和机器人原型开发提供了良好⽣态的话,那么ROS2就是⽤于机器人部署环境的开发架构和相应的工具链。

传统机器人ROS实质上是仍旧停留在MCU边界的,再通过串行协议或者旧版ROS中的工具与MCU集成在一起。Micro-ROS则允许在硬件级别附近运行ROS2节点,所有硬件外设都可用于该应用程序,从而使其能够直接与低级总线系统进行交互,亦与传感器和执行器接口互通。

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信息传递的通信接口,可以通过单线 UARTRS-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仍然是最常见的,呈压倒性优势。

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和更强大的处理器之间的差距。

原文标题:Micro-ROS:把ROS2放在MCU上

文章出处:【微信公众号:电子发烧友网】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    49

    文章

    8906

    浏览量

    166005
  • mcu
    mcu
    +关注

    关注

    147

    文章

    19227

    浏览量

    405116
  • 机器人
    +关注

    关注

    214

    文章

    31611

    浏览量

    224324

原文标题:Micro-ROS:把ROS2放在MCU上

文章出处:【微信号:elecfans,微信公众号:电子发烧友网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于米尔RK3576核心板的国产割草机器人解决方案

    。 国产算法兼容 :支持与国内SLAM方案商(如科沃斯、追觅等生态伙伴)的算法快速适配,缩短产品落地周期。 3. 执行层:实时控制与丰富接口 割草机器人的底盘运动控制需要极低且确定性的延迟。RK3576
    发表于 04-24 17:31

    机器人主控核心板米尔RK3576 + ROS2,NPU加速实现目标跟随与机械臂抓取

    可达15~20 FPS; CPU占用大幅降低 :NPU独立处理视觉任务,CPU可专注ROS2通信与运动控制; 功耗更低 ,适合嵌入式移动机器人。 3.2 模型转换与部署流程 1.模型转换:下载
    发表于 04-10 21:23

    开发必看,RK3576基于Ubuntu22.04安装 测试ROS2机器人系统

    本文介绍基于Ubuntu22.04安装ROS2机器人系统教程,并附带详细测试方法,基于触觉智能RK3576核心板方案,使用配套开发板PurplePiOH2演示。ROSROS2简介
    的头像 发表于 03-13 17:48 508次阅读
    开发必看,RK3576基于Ubuntu22.04安装 测试<b class='flag-5'>ROS</b>2<b class='flag-5'>机器人</b>系统

    灵动代理mcu单片机机器人解决方案

    机器人,有多个关节动作,在各类多关节机器人中,每个关节的精确动作都依赖于高性能电机的稳定控制,英尚微代理的灵动mcu单片机应用在机器人的主
    的头像 发表于 01-04 16:41 571次阅读

    兆易创新GD32H7系列MCU适配Micro-ROS的完整技术指南

    本文将从开发板介绍、环境搭建、适配开发、测试验证四个维度,提供GD32H7系列MCU适配Micro-ROS的完整技术指南。
    的头像 发表于 12-31 10:09 8644次阅读
    兆易创新GD32H7系列<b class='flag-5'>MCU</b>适配<b class='flag-5'>Micro-ROS</b>的完整技术指南

    EtherCAT主站协议栈EC-Master在ROS机器人操作系统)中的应用

    EtherCAT主站协议栈EC-Master在ROS机器人操作系统)中的应用
    的头像 发表于 12-10 14:46 734次阅读
    EtherCAT主站协议栈EC-Master在<b class='flag-5'>ROS</b>(<b class='flag-5'>机器人</b>操作系统)中的应用

    探索RISC-V在机器人领域的潜力

    利用Gazebo仿真环境(在x86主机上运行)和MUSE Pi Pro上的ROS 2节点进行了联合仿真。 • 场景: 在PC的Gazebo中运行一个TurtleBot3机器人模型,MUSE Pi
    发表于 12-03 14:40

    高精度机器人控制的核心——基于 MYD-LT536 开发板的精密运动控制方案

    方案; 开发者可直接对接上层 ROS 框架,实现多轴机器人同步控制与智能路径规划。 三、典型应用:高精度装配机器人控制系统 在某高端电子装
    发表于 11-14 15:48

    MCU控制器,N32H47x高性能MCU机器人关节控制方案

    在工业自动化领域,关节作为机器人的核心运动部件,其控制精度直接决定了整机性能。英尚微电子基于国民技术MCU控制器N32H47x系列,推出创新机器人
    的头像 发表于 11-07 16:28 971次阅读

    NVIDIA助力新一代机器人开发开源框架

    今年的 ROSCon 在新加坡举办,并于 10 月 29 日顺利闭幕。大会吸引了全球机器人操作系统(ROS)领域开发者的关注。ROS 是目前全球应用最广泛的机器人开发开源框架。
    的头像 发表于 11-06 11:55 1311次阅读

    RK3576机器人核心:三屏异显+八路摄像头,重塑机器人交互与感知

    、远程作业机器人、特种检测机器人· 多摄像头输入:通过多路摄像头无死角监控作业现场,实现精准操作与安全监控。· 多屏显示:将不同视角的画面、传感器数据、控制界面分别显示,帮助操作员远程精准控制
    发表于 10-29 16:41

    如何使用menuconfig添加配置micro-ros软件包?

    请问有没有最新的rtthread移植micro-ros移植使用教程,使用menuconfig添加配置micro-ros软件包?
    发表于 09-25 06:37

    解读基于凌鸥创芯MCU的割草机器人刀盘控制方案

    停;借助参数自整定和自动弱磁技术,MCU 能根据负载动态调整电机性能,确保机器人在复杂地形(如爬坡、碎石路面)下稳定运行。   本文将详细介绍基于凌鸥创芯 LKS32MC07x 系列 MCU 的割草
    的头像 发表于 08-18 07:40 4693次阅读

    海默RC系列机器人控制

    海默协作机器人与焊接机器人控制器HARMOROBOTICS控制器作为工业机器人的三大核心零部件之一,也是工业
    的头像 发表于 08-01 15:35 1439次阅读
    海默RC系列<b class='flag-5'>机器人</b><b class='flag-5'>控制</b>器

    工业机器人的特点

    的基础,也是三者的实现终端,智能制造装备产业包括高档数控机床、工业机器人、自动化成套生产线、精密仪器仪表、智能传感器、汽车自动化焊接线、柔性自动化生产线、智能农机、3D 打印机等领域。而智能制造装备中工业
    发表于 07-26 11:22