天天看点

如何构建灵活高效的现代机器人系统架构?

作者:国辰机器人

机器人行为通常构建为计算图,数据从传感器流向计算技术,一直向下到执行器并返回。为了获得额外的性能,机器人计算平台必须将这些类似图形的结构有效地映射到CPU(中央处理器),而且还要映射到专用硬件,包括FPGA(现场可编程门阵列)和GPU(图形处理单元)。

机器人系统的传统软件开发主要是中央处理器(CPU)的编程功能。然而,由于CPU固有的架构限制和局限性,这些机器人系统经常表现出处理效率低下(不确定性)、高功耗和安全问题。事实上,构建仅依赖CPU的强大机器人系统是一项具有挑战性的工作。

机器人计算平台随着对机器人系统高级功能的需求不断增加,一些公司发布了专用机器人和边缘AI平台,以提供高性能计算、安全连接、设备上机器学习等。

机器人和人工智能平台包含各种计算资源,包括CPU、数字信号处理器(DSP)、图形处理单元(GPU)、现场可编程门阵列(FPGA)和专用集成电路(ASIC)等。它们允许机器人专家为机器人构建灵活的计算架构,但要求机器人为每项任务使用正确的工具以最大限度地提高其性能,这一过程可能很复杂且令人困惑。

本文讨论了机器人专家可用的各种计算资源的优缺点,并提供了关于它们作为机器人系统现代计算架构的更多观点。

如何构建灵活高效的现代机器人系统架构?

1►标量处理器 (CPU)

标量处理元件(例如CPU)在具有不同决策树和大量库的复杂算法中非常有效。但是,性能扩展是有限的。

多核CPU可以理解为工厂中的一组车间,每个车间都雇用非常熟练的工人。这些工人每个人都可以使用通用工具来构建几乎任何东西。每个工人一次制作一件物品,依次使用不同的工具将原材料变成成品。车间大多(忽略缓存)是独立的,并且工人都可以在没有分心或协调问题的情况下完成不同的任务。

与CPU相比,矢量处理元件(例如DSP、GPU)在一组更窄的可并行计算功能上效率更高。但是,由于其不灵活的内存层次结构,它们会遇到延迟和效率损失。

尽管CPU非常灵活,但它们的底层硬件是固定的。大多数CPU仍然基于冯诺依曼架构(或更准确地说,存储程序计算机),其中数据从内存带到处理器,进行操作,然后写回内存。从根本上说,每个CPU 都以顺序方式运行,一次一条指令,架构以算术逻辑单元(ALU)为中心,每次操作都需要将数据移入和移出。

在当今的现代机器人架构中,标量处理器起着核心作用。使用CPU 协调传感、驱动和认知之间的信息流是机器人系统的基础。此外,广泛采用的机器人应用程序开发软件框架机器人操作系统(ROS) 是以 CPU为中心的方式设计的。

2►向量处理器(DSP、GPU)

与CPU相比,向量处理元件(例如DSP、GPU)在可并行计算功能的较窄集合上效率更高。但是,由于其不灵活的内存层次结构,它们会遇到延迟和效率损失。

按照前面描述的工厂比喻,GPU也有车间和工人,但数量要多得多,而且工人也更加专业。这些工人只能使用特定的工具,可以做的事情更少,但他们的工作效率很高。

当GPU工作人员重复执行相同的几项任务时,并且当他们所有人都在同一时间做同样的事情时,他们的工作效率最高。毕竟,有这么多不同的工人,给他们所有相同的订单更有效率。因此,向量处理器解决了CPU在机器人技术中的主要缺点之一——并行处理大量数据的能力。

3►可编程逻辑 (FPGA)

可编程逻辑(例如FPGA)可以针对特定的计算功能进行精确定制,这使得它们非常适合延迟关键的实时应用。然而,这些优势是以编程复杂性为代价的。此外,与标量和矢量处理器相比,重新配置和重新编程需要更长的编译时间。

使用我们的工厂比喻,FPGA是灵活且适应性强的车间,架构师可以在其中部署为手头的特定任务定制的装配线和传送带。这种适应性意味着FPGA架构师可以构建装配线和工作站,然后针对所需任务对其进行定制,而不是使用通用工具和内存结构。

在机器人架构中,FPGA可以通过软件创建运行时可重新配置的机器人硬件。机器人的软件定义硬件擅长数据流计算,因为一旦所有操作数可用,就会执行语句。这使得FPGA在连接传感器、执行器和处理网络方面非常有用。此外,FPGA可以创建具有无与伦比的灵活性的自定义硬件加速内核,使其成为用于数据处理任务的矢量处理器的有趣替代方案。

考虑使用机器人操作系统的机器人系统,这在所有类型的机器人开发中变得越来越普遍。使用ROS(机器人操作系统),机器人流程被设计为计算图中的节点。机器人计算平台必须能够有效地将这些类似图形的结构映射到硅片上。

4►专用集成电路 (ASIC)

继续我们的工厂类比,ASIC与FPGA一样构建装配线和工作站,但与 FPGA不同的是,ASIC是最终的,无法修改。换句话说,在ASIC的车间里,装配线和传送带是固定的,不允许改变自动化流程。专用集成电路的临时固定架构提供了无与伦比的性能和能效,以及大批量生产的最佳价格。

不幸的是,ASIC需要很多年才能开发出来,并且不允许进行任何更改。相反,机器人算法和架构继续快速发展,因此机器人专用的基于 ASIC的加速器可能落后于最先进的算法数月甚至数年。虽然ASIC将在未来的某些机器人系统中发挥重要作用,但ASIC在机器人架构中的使用仍然有限。

5►机器人神经系统

机器人本质上是确定性机器,通过传感器捕获数据,传递给计算技术,然后传递给执行器,然后以确定的方式返回。

这些网络可以理解为机器人的神经系统。与人类神经系统一样,跨所有网络传递的实时信息是机器人保持一致行为的基础。基于冯诺依曼的标量和向量处理器架构在控制流方面表现出色,但难以保证确定性。这就是 FPGA 和 ASIC 作为机器人系统的关键支持技术发挥作用的地方。

6►机器人计算架构

考虑使用机器人操作系统的机器人系统,这在所有类型的机器人开发中变得越来越普遍。使用ROS,机器人流程被设计为计算图中的节点。机器人计算平台能够有效地将这些类似图形的结构映射到硅片上。

ROS 计算图应以无缝方式在计算基板上运行,数据必须从可编程逻辑(FPGA)流向CPU,从CPU流向矢量处理器,并一路返回。换句话说,机器人芯片不仅应该将ROS计算图映射到CPU,还应该映射到 FPGA、GPU和其他计算技术以获得额外的性能。

7►最佳计算资源

与传统的以CPU为中心的机器人编程模型相反,附加计算平台的可用性为工程师提供了高度的架构灵活性。机器人专家可以根据需要选择、混合和匹配正确的计算资源,从而利用各种计算平台的属性——确定性、功耗、吞吐量等。

#头条创作挑战赛#

继续阅读