物联网虚拟化加速协作机器人开发
制造业的下一次革命正围绕着协作机器人的概念展开。协作机器人 – 一种自动机器人 – 能够安全地与人类一同完成工作。不过,虽然它们的优势显而易见,但是其复杂系统的设计却十分困难。
没错,用于构建协作机器人的技术我们的确都有。许多已是主流技术,比如让机器人看清世界的高分辨率摄像头、让机器人本地管理物联网连接、边缘机器学习和控制任务的多核处理器性能等。
困难之处不在于技术的可用性,而在于如何将它们组合在一起 – 并在一个平台上完成,能够减少功耗、成本和设计复杂性。要实现这一目标理应从将多个单功能机器控制器用单个高端模块代替开始。但是具体操作起来也不简单。
“协作机器人必须同时执行多个任务,” Real-Time Systems GmbH 销售与营销部门主任 Michael Reichlin 说。该公司是嵌入式系统工程服务与相关产品行业的领先供应商。“从实时动作控制到高性能计算。”
“不断增加的传感器数量、互动需求和沟通功能,使得协作机器人需要更灵活的控制器来执行不同需求的工作负载。” Reichlin 继续说道。“这些工作负载必须平行运行,且不能互相干扰。”
这便是问题的棘手之处。
制造业中的物联网虚拟化与协作机器人
多核处理技术的优势在于,软件和应用程序可以将每个核心视为拥有单独线程和内存的独立系统。如此便可以用单个控制器同时管理多个应用程序。
在以前,这一架构运用于机器人领域的不足之处在于,将核心视为独立系统并不意味着它们就是独立系统。比如,内存资源通常由多个核心共享,而内存资源不足。如果没有妥善安排和排列优先级,这样的共享很快会变为资源争夺而导致延迟。对于对安全性要求极高的协作机器人,我们显然需要对其进行改进。
尽管有能在一个多核处理器上同时支持多个应用程序的足够内存和计算资源,您还是不能将一个工作负载只分配给一个核心。因为复杂协作机器人设计中的许多应用程序必须将数据相互传输(例如,传感器必须接收 AI 算法才能下达控制指令),核心和软件因此需要共享内存。
这就回到了分区的问题,或者像 Reichlin 之前所说,让工作负载可以并行且互不干扰。但如何在同一硬件上构建多功能系统,在不牺牲性能的前提下让它们共享计算资源?
答案是实时管理程序。管理程序管理不同的操作系统、共享内存及系统事件,确保一台设备上的所有工作负载在独立工作的同时能够接收它们需要的资源(图 1)。
一些管理程序是软件层,能够分隔不同应用程序。但为了满足协作机器人的确定性要求,如实时管理程序的裸机版本与以物联网为中心的芯片紧密集成,如第 6 代英特尔凌动® 和第 11 代英特尔® 酷睿™ 处理器。
凌动 x6000E 和第 11 代酷睿家族支持英特尔® 虚拟化技术(英特尔® VT-x),该技术是硬件辅助的计算、内存和其他资源抽象化,可实现裸机管理程序的实时性能。
“要保持系统的确定性,您不能在实时应用程序和硬件之间插入一个软件层。我们没有这一软件层,” Reichlin 解释道。“客户可以设置实时应用程序,并直接通过硬件访问。
我们从引导加载器开始,通过分隔硬件来分离不同的工作负载,并保证确定性。”他继续说道。“没有任何不确定性。由于我们分隔不同核心的方式,实时应用程序不会增加延迟。”
由 RTS 管理程序分区的不同核心间的数据传输,可根据需求通过几个方式进行。例如,开发人员可以使用虚拟网络或信息中断,在事件发生时发出或读取数据。
另一选择是通过共享(无法被其他工作负载覆盖的)内存来传输数据块。在此,RTS 管理程序在支持英特尔® 时间协调计算(英特尔® TCC)技术的设备上,利用英特尔® 处理器的本地功能(如软件 SRAM)。这一新的功能将对延迟敏感的数据和代码放置到内存高速缓存中,来改善时间独立性。
实时管理程序可自动运用软件 SRAM 这样的功能,无需开发者配置。这都要归功于 Real-Time Systems 和英特尔® 之间多年的开发协作。
管理程序分隔处理器,使得协作机器人可以共同承担工作
裸机、实时管理程序的严谨性在协作机器人这样的系统中能提供设计灵活性。现在,系统集成商可以拉取不同来源的不同时序、安全性、安全需求的应用程序,无缝集成到同一台机器人控制器中。
不需要考虑不同处理器的干扰问题或有限资源的竞争问题,因为管理程序会进行处理。Real-Time Systems 还正在开发其管理程序的安全认证版本,以求进一步简化混合关键型协作机器人系统的开发与集成。
Reichlin 希望未来几年内,无论是桌面个人助手或是支持人类操作重型机械的工业协作机器人,都能够成为主流。它们大部分将包含一个管理程序,允许单个处理器共享工作负载,让协作机器人可以分担工作任务。