0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >技术信息 > MCU在机器人中的规范注意事项

MCU在机器人中的规范注意事项

来源: 中电网
2021-11-02
类别:技术信息
eye 4
文章创建人 拍明

原标题:MCU在机器人中的规范注意事项

  机器人对MCU有独特的需求。经过优化用于机器人的 MCU 通常包含多种功能,包括内置互联网协议 (IP) 连接、信息安全和功能安全保护以及高级控制算法。将 MCU 内核与现场可编程门阵列 (FPGA) 集成是优化机器人应用的一种手段。机器人操作系统 (ROS) 最初针对更高性能的中央处理器 (CPU) 进行了优化,现在已被简化并作为微型 ROS 发布,以便在嵌入式 MCU 和其他资源较少的环境中运行,进一步提高了 MCU 在机器人技术中的实用性。

  用于机器人的 MCU 采购继续成倍增加。本 FAQ 将回顾基本的机器人平台架构,特别强调 MCU 的使用;它回顾了 MCU 内核与 FPGA 集成时打开的性能选项,并回顾了使用 micro-ROS 的好处。 MCU 是机器人设计中的重要元素。即使是简单的消费类机器人也可以包含多个 MCU,用于实现通信、用户界面、USB 和电机控制等专用功能(图 1)。

  智能工厂和工业 4.0 的出现正在推动对日益精密和复杂的工业机器人的需求。包括网络通信、功能安全需求和预测性维护等需求增长,需要更高性能外设和加速器的 MCU 。通常运行频率为 800 MHz 至 1GHz 的异构多核 MCU。处理速度对于支持多轴机器人中电机位置、方向、速度和扭矩的高精度控制至关重要。

  用于机器人的高性能 MCU 包括支持伺服控制所需计算的专用加速器硬件。在某些情况下,电流控制环路计算可以在 1.5µs 内完成。在伺服电机驱动系统中,控制回路可以分为多个层次,包括更高级别的运动控制回路、位置回路、速度回路和转矩/电流回路,以级联拓扑结构排列(图 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)。

  图: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)。

  图:微型 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 机器人操作系统的发布是高级机器人平台设计人员可用的另一个重要工具。



责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯