链接:https://micro.ros.org/docs/overview/features/

ROS只能依托操作系统(例如Linux)来正常工作,但是作为一个机器人,里面是由许多小型的部分组成的,例如电机,霍尔编码器,传感器等,这些东西最多的使用手段则是利用单片机来控制他们,ROS则处于一个尴尬的境地,他不能跑在单片机上工作,这时候问题来了,ROS如何工作在单片机上来直接控制那些传感器呢?

这时候,Micro_ros_agent横空出世!!!

使命

在基于机器人操作系统(ROS)的机器人应用中,弥合资源受限的微控制器与高性能处理器之间的差距。

为什么选择微控制器?

微控制器几乎应用于所有机器人产品中。典型原因包括:

微控制器几乎被应用于所有机器人产品中,主要原因包括:

  • 对底层硬件的直接访问

  • 严格、低延迟的实时性能需求

  • 低功耗需求

另一个重要原因是安全性,但需要注意的是,micro-ROS 并非按照任何安全标准进行开发。

功能和架构

Micro-ROS 提供七个关键功能 ,使其可以用微控制器(单片机MCU)来与ROS进行打交道:

 ✔微控制器优化的客户端 API,支持所有主要的 ROS 概念

micro-ROS 将 ROS 2 的主要核心概念(如节点、发布/订阅、客户端/服务、节点图、生命周期等)引入微控制器(MCU)平台。micro-ROS 的客户端 API 采用 C 语言实现,基于标准的 ROS 2 客户端支持库 rcl,并在此基础上扩展了一组增强与便捷函数库 rclc。

rcl 与 rclc 的组合针对微控制器进行了优化,在完成初始化阶段后即可在不进行任何动态内存分配的情况下运行。rclc 功能包还提供了高级执行机制,使得能够在嵌入式系统工程中实现多种经过验证的调度模式。

 ✔与 ROS 2 无缝集成

 micro-ROS agent将 MCU 上的 micro-ROS 节点(即组件)与标准 ROS 2 系统无缝连接。这允许使用已知的 ROS 2 工具和 API 访问 micro-ROS 节点,就像普通 ROS 节点一样。

✔极度资源受限但具有良好灵活性的中间件

eProsima 推出的 Micro XRCE-DDS 满足深度嵌入式系统对中间件的全部需求,因此 micro-ROS 成为了该面向极端资源受限环境(XRCE)的新 DDS 标准实现的重要应用之一。为实现 micro-ROS 架构中与 ROS 中间件接口(rmw)的集成,引入了静态内存池机制,从而避免了系统在运行过程中进行动态内存分配。

✔支持多种 RTOS 的通用构建系统

micro-ROS 支持三种主流的开源实时操作系统(RTOS):FreeRTOS、Zephyr 和 NuttX,并且可以移植到任何提供 POSIX 接口的 RTOS 平台上。

各类 RTOS 专用的构建系统被整合进少量通用的配置脚本中,并以 ROS 2 功能包的形式提供,因此 ROS 开发者可以继续使用熟悉的命令行工具进行开发。此外,micro-ROS 还针对部分 RTOS 专用工具链(如 ESP-IDF 和 Zephyr)提供了相应的集成支持。

✔宽松许可证

micro-ROS 采用与 ROS 2 相同的宽松许可证,即 Apache License 2.0。该许可证适用于 micro-ROS 客户端库、中间件层以及相关工具。

在基于某一 RTOS 创建项目时,还需考虑所使用 RTOS 项目或厂商自身的许可证要求,具体说明可参考许可证页面。

✔充满活力的社区与生态系统

micro-ROS 由一个不断壮大的、自组织的社区开发,并得到嵌入式工作组(Embedded Working Group)这一正式 ROS 2 工作组的支持。该社区共享入门级教程,通过 Slack 和 GitHub 提供技术支持,并以每月一次的工作组公开视频会议形式开展交流。同时,eProsima 为 Micro XRCE-DDS 提供商业级技术支持。

此外,社区还围绕 micro-ROS 开发了多种配套工具。例如,为了优化基于 micro-ROS 的应用在 MCU 硬件上的运行效率,专门开发了性能基准测试工具,用于评估内存占用、CPU 时间消耗以及系统整体性能。

✔长期可维护性与互操作性

Micro-ROS 由一些成熟的组件组成:知名的开源实时操作系统(RTOS)、标准化的中间件,以及标准的 ROS 2 客户端支持库(rcl)。通过这种方式,为了长期可维护性,micro-ROS 特有的代码量被降到了最低。同时,micro-ROS 堆栈保留了标准 ROS 2 堆栈的模块化特性。micro-ROS 可以与自定义中间件层一起使用——因此既可以是标准的,也可以使用自定义的 ROS 客户端库。

此外,通过系统级综合工具(System-Of-Systems Synthesizer,SOSS),一个快速且轻量的 OMG DDS-XTYPES 标准集成工具,可以连接更多的中间件协议。例如,我们开发了 SOSS-FIWARE 和 SOSS-ROS2 系统句柄,它们通过利用 SOSS 核心的集成能力,使用 NGSIv2(下一代服务接口)标准,将 ROS 2 和 micro-ROS 与 FIWARE Context Broker 连接起来。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐