
在开发机器人时,系统集成无疑消耗了项目资源的最大比例,它比开发最终应用程序更重要。随着低端工业协作机器人的出现,出现了一些只专注于开发在现有硬件上运行的软件的公司。然而,机器人的硬件和软件能力之间有一个关键的关系,需要保持对计算硬件的设计控制,以创建更专业、更节能、更安全和更高性能的机器人,
硬件的挑战
但是,如果机器人专家想要制造出未来所需的更好、更快的机器人,就必须克服一个障碍。在当今后摩尔时代的计算世界中,升级硬件以采用最新一代的微处理器无法提供所需的应用性能升级,未来的方向不再是等待最新的芯片光刻技术,硬件加速通常是获得必要收益的唯一方法。
这种硬件挑战让机器人等专业的开发人员的生活变得复杂,因为他们的技能往往偏重于软件。这意味着,如果要满足市场对新型工业机器人的需求,他们必须面对设计自适应计算硬件的前景。终端用户,操作机器人以提高生产线和仓库等领域生产力的公司正在寻找能够提供额外灵活性、更精细的位置控制、优越的基于视觉的能力、改进的数据捕获和更低的功耗的设备。
机器人技术中硬件加速的主要原理是,与传统的控制驱动方法不同,用于软件开发的混合控制和数据驱动方法让团队设计定制的计算架构,为应用程序分配最佳数量的硬件资源。
就实现而言,需要一个异构的计算模型。这利用了CPU和GPU的优势,它们擅长于控制流计算,同时利用FPGA的优势来处理数据流计算。这种方法同时提供了CPU和GPU实现复杂计算的灵活性和完全控制,具有低功耗、高性能、低延迟和硬件加速的确定性。各种供应商现在都在提供自适应的系统芯片(SoC)和系统模块(SOM)设备,比如AMD-Xilinx Kria™SOM及其相关的Kria Robotics Stack,它们提供了这种混合计算模型的优势。这个表格比较了这些不同的模型:

自适应SoC和SOMs允许机器人专家通过编程建立一个架构,创建正确的数据路径和控制机制来构建机器行为。然而,使用已建立的工具和技术来编程这样的架构需要复杂的工程技能。
机器人专家缺乏合适的硬件和嵌入式设计专业知识,他们习惯于以计算图的形式构建行为,解决机器人手头的任务,他们经常使用c++通过高级的软件工程实践来创建复杂的实时确定性系统。
以ROS为基础
现在需要一种不同的方法来帮助机器人专家利用现有的硬件加速技术。理想情况下,这种方法应该允许他们在熟悉的开发环境(如ROS)中创建自己的定制硬件,并使用熟悉的工具(如Gazebo)进行模拟。
ROS是机器人应用程序开发事实上的行业标准,自2020年ROS 2问世以来更是如此。这已经成为跨行业机器人应用程序的默认软件开发工具包(SDK),许多组织现在都在使用ROS和Gazebo。
以前将自适应计算集成到ROS中的倡议已经从硬件工程师的角度解决了这一挑战,他们假设用户以前有过嵌入式流和硬件流的经验,因此熟悉RTL、HDL和HLS等概念,以及用于操作它们的设计工具。类似地,部署到嵌入式目标需要熟悉Yocto、openbedded和相关工具。
由于大多数机器人专家并非来自这一背景,ROS 2硬件加速工作组(HAWG)因此采取了一种以ROS为中心的方法,将嵌入式流程直接集成到ROS生态系统中,它的目标是提供一种类似于机器人专家在桌面工作站中构建ROS工作区时所享受的体验。
HAWG的工作建立在已发表的优化ROS计算图以利用自适应计算的研究基础上,以及在可编程逻辑中加速部分图的工具和方法的建议。除此之外,HAWG现在还提出了一个架构(如下图所示),主要针对c++和OpenCL等熟悉的语言。

ROS 2 和 HAWG 堆栈一起促进了硬件加速
该架构的目标不仅是平台无关的,因此适用于边缘、工作站、数据中心或云目标,而且还允许针对 FPGA、CPU 和 GPU,并方便移植到各种模块和板上。
最终,这项工作将使大多数机器人专家能够利用硬件加速的机会,实现未来几代先进和复杂的机器人。
原文链接:https://bdtechtalks.com/2022/07/03/simplifying-hardware-acceleration-for-robots-with-ros-2/