作者:Victor Mayoral-Vilches;赛灵思前系统架构师、AMD 咨询师,Acceleration Robotics 创始人
随着机器人专家不断面临传统处理器架构带来的局限性,他们需要定制化和并行性来应对未来的性能、数据安全和运行安全挑战
面向机器人应用的软件开发者所面临的挑战愈发严峻。他们既要满足性能要求,又要确保实时确定性、足够的安全与保密性。作为机器核心的标量( CPU )处理器架构的通用特性,以及性能扩展方面的限制,越发成为满足当今工业机器人多样化需求的阻碍。常见问题包括影响确定性的时间效率低下、功耗过大与安全问题。另一大安全挑战则在于,硬件无法重新配置,难以针对不断演进的网络威胁而更新防护能力。
更适合机器人技术需求的新一代计算平台正在涌现。这些模块由异构处理单元组成,可帮助机器人专家构建灵活的计算架构。本文通过研究机器人专家可用的各种计算资源来评估它们的构成,这些资源包括 CPU、DSP、GPU、FPGA 和 ASIC。每种架构各有所长,因此,随着机器人技术的演进,它们都将持续发挥作用。
面向机器人应用的计算技术
标量处理器(CPU)
作为标量处理单元的 CPU,能够高效处理具有不同决策树和广泛库的复杂算法。虽然 CPU具有高度的灵活性,多核处理器可以同时处理不同任务且不会出现分散或协调问题,但它们的底层硬件是固定的。大多数 CPU 仍然按照存储程序计算机原理运行, 即数据从内存传输到处理器,通过后者运算,然后写回内存。该架构的重点在于算术逻辑单元( ALU),它要求每次操作都要将数据移入和移出。 CPU以顺序方式运行,每次处理一条指令,通常需要多个步骤来完成一项任务。
尽管存在这些缺点,标量CPU在现代机器人架构中仍具有根本性作用。它们特别适用于协调各种子系统和组件之间的信息流,以支持感知、驱动和认知应用。
矢量处理器
矢量处理单元(DSP、 GPU))在较有限的可并行化计算功能方面效率更高,但由于其欠灵活的存储器层级,因此在时延和效率上会有所损失。
GPU架构包含大量经过优化的核心,专门执行某些特定任务。对于GPU来说,同时且并发地执行这些任务是最有效的。因此,矢量处理器以其并行处理大量数据的能力克服了机器人应用中 CPU的一大短板。
可编程逻辑(FPGA)
不同于包含通用处理单元和内存架构的处理器,为执行特定的计算功能,可编程逻辑( FPGA)可以根据需求进行精准定制。这一特性虽然对于时延关键型实时应用非常有效,但也会带来额外的编程复杂性。此外,与标量处理器和矢量处理器相比,其重配置和重编程的编译时间更长。
机器人设计人员能够利用 FPGA创建运行时可重配置的机器人硬件,此类硬件可以通过软件进行重新编程和调整。这类引擎能够快速高效地处理数据流计算,因此非常适合于传感器和驱动器接口以及处理网络信号方面的用途。此外,设计人员还可以创建自定义硬件加速内核,以处理其原本需要分配给矢量处理器的数据处理任务。
专用集成电路(ASIC )
在ASIC中,处理元件可以定制,这一点与FPGA 类似。然而,一旦架构确定,它就再也无法修改。这种固定架构提供了卓越的性能与能效,以及大批量生产所需的最佳价格。此外, ASIC可能需要数月甚至数年时间的开发周期,并且不支持任何变更。它们缺乏能够支持机器人未来生产力提升的适应性。
由于机器人算法与架构仍处于高速演进阶段,因此适应性极为关键。
基于 ASIC的加速器可能会远远落后于最先进的算法。考虑到开发 ASIC所需的时间,很可能在ASIC投产后,甚至在投产之前就落后于算法迭代水平。在机器人技术生命周期的这一阶段,ASIC的应用具有局限性。
将自适应计算运用于机器人
机器人属于在整个设备范围内持续交换数据的复合网络,包含从传感器到计算引擎,再到终端执行器的整体系统。我们可以将这些网络视为机器人支持信息交换的神经系统。就像在人类神经系统中一样,这种信息交换非常依赖于确定性的性能和实时响应能力,这样机器人才能以一致的方式运行。由于标量处理器和矢量处理器的架构是固定的,因此,在这种场景下它们难以稳定满足需求。
实现在 FPGA 和 ASIC 中的定制、高度并行的架构有能力突破此类局限性。特别是对于 FPGA 而言,通过为机器人提供软件定义型硬件,在机器人软件开发方法上面带来了根本性转变。如果在 CPU 中进行功能编程,需要在 CPU 预定义的架构和约束限制内工作,而通过 FPGA 构建机器人行为,是对执行所需任务的架构本身进行编程。
机器人专家需要合适的工具和硬件来妥善利用 FPGA 的灵活性,从而构建具有确定性、实时行为的适应性机器人。AMD 赛灵思 Kria K26 这样的系统模块( SOM )就是一大范例。它专为边缘应用而设计,搭载了高速接口、内存和板载电源。它包含 Zynq® UltraScale+™ MPSoC 片上系统( SoC ),能够提供可编程逻辑单元和 DSP 片,同时使用四核应用处理器、双核实时处理器和 2D/3D GPU 处理标量和矢量处理工作负载。
图1 :FPGA 系统模块为实时、确定性机器人的开发提供了平台。
除 SOM 之外,还需要适当的库和实用工具来构建工业级机器人解决方案。Kria 机器人堆栈( KRS,即图2 )与机器人操作系统( ROS )紧密集成,为机器人应用开发提供了事实上的框架,并简化了硬件加速的使用。SOM 提供了对 ROS 2的原生支持,进而提高了机器人和工业自动化应用的性能。
图 2:硬件加速机器人的关键库和实用工具。
该堆栈使用 ROS 2 软件开发工具套件( SDK ),并兼容 ROS 2 生态系统,可帮助构建具有确定性实时性能的机器人系统(采用模块化方法)。它利用现有的技术,如服务质量( QoS )机制和时间敏感型网络( TSN ),并包括应用级加速内核、ROS 通信中间件以及促进与 FPGA 交互的运行时工具。虚拟机管理程序有助于支持使用虚拟机的混合临界系统。
结论
利用 FPGA 的自适应加速计算特性能够强化工业机器人的性能,同时还可提升能效,并支持兼容未来演进的灵活性和安全性。要实现这类新一代设备,需要适当的硬件支持,例如将 FPGA 逻辑与标量处理器和 GPU 相结合的SOM,以及可搭配机器人专家熟悉的框架(如 ROS 2)轻松开展工作的软件和工具。
进一步了解更多详情,请访问产品专区