编者按: 本文从当今热门的"自适应机器人"概念入手,从 ROS 2 机器人专家的视角介绍自适应计算,并提出一种能够让 FPGA 在 ROS 2 生态系统中起主要作用的架构。
作者: Víctor Mayoral-Vilches 和 Giulio Corradi,赛灵思公司
序言
2021年 4 月, 赛灵思创新型地推出自适应系统模块(SOM)产品组合 Kria SOM。作为一种量产型小尺寸嵌入式板卡,该平台经济实惠、开箱即用,最主要是赛里思通过工具创新,借助SOM赋能上百万软件开发者,使其可以获益于赛灵思自适应计算平台的高性能和灵活性优势,而且可以使其将应用部署时间缩短多达 9 个月。
“一石激起千层浪”, Kria 的出现,在其所面向的广泛的边缘应用领域引起积极的反响, 而机器人设计就是其中之一。
传统的机器人软件开发,是基于预定义的架构和约束条件在给定机器人 CPU 中进行功能编程。然而采用自适应计算后,构建机器人行为则是在进行架构编程。通过采用自适应计算,机器人专家能在运行中适配机器人计算系统的一个或多个属性(如它的确定性、功耗、安全态势或吞吐量)。
然而,机器人专家并不是硬件工程师,他们普遍缺乏与嵌入式技术相关的专业知识。本文将从当今热门的 "自适应机器人"概念入手,从 ROS 2 机器人专家的视角介绍自适应计算,并提出一种能够让 FPGA 在 ROS 2 生态系统中起主要作用的架构。这个架构适用于多种平台和多种技术,并且便于移植。架构的核心组件在 Apache 2.0 许可证下提供,为机器人专家充分运用自适应计算,实现软件定义硬件铺平了道路。
其中 :
- “连载一:什么是自适应机器人”通过三大基本特征,征剖析自适应机器人的概念产生、发展及特点
- “连载二:工业类比CPU/GPU,ASIC和FPGA,谁更适合机器人计算”通过工业车间操作流程进行类比,形象展示不同处理器平台对于机器人系统的权衡利弊
- “连载三:为什么 FPGA 能在机器人中起到重要作用” 介绍机器人自适应计算的概念,对自适应计算的核心技术与功能进行总体介绍,并详解 FPGA 在机器人应用中发挥的作用,以及有关软件定义硬件的概念
- “连载四:如何理解面向机器人的“软件定义硬件””通过比较传统机器人软件编程和基于赛灵思自适应解决方案平台的编程模式进行比较,介绍软件定义硬件的实现方法
- “连载五:为什么是通过 ROS 2集成自适应计算?”简要介绍 ROS 2 及其与自适应计算的渊源
- “连载六:自适应计算平台实现 ROS 之路”则分享了前期业界在自适应计算及在机器人操作系统上的相关研究。
- “连载七:用ROS 2 在机器人内部集成自适应计算的新架构”介绍了本文提出的架构,以及如何利用这个架构为 ROS 2 集成自适应计算功能,并使其发挥重要作用。
机器人专家花费大量时间,以计算图形式构建机器人行为,解决手里的机器人任务。他们经常使用现代的 C++ 语言,通过高级软件工程操作,构建复杂的实时系统。然而,他们并不是硬件工程师。机器人专家普遍缺乏硬件和嵌入式技术专业知识,因而妨碍了 FPGA 等自适应计算技术的广泛采用。本文在既往研究的启发下,介绍机器人自适应计算的基础知识,并提出一种生成 ROS 2 软件定义硬件的架构。与过去的其他方法相比,本文提出的方法是假设面向的是没有硬件或嵌入式技术专业知识的机器人专家,是以机器人专家为中心的角度提出的。
本文首先总结了开发机器人时选择正确计算平台的重要性,以及机器人内部软硬件之间的重要关系。然后使用工厂做类比,简要讲解 CPU、GPU、FPGA 和 ASIC 的计算原理并回顾相关研究文献,发现 FPGA 因低功耗、高性能、确定性、可重配置能力、安全性和自适应特征,在用于机器人时具有显著的优势。此外,本文也回顾了有关将 ROS 集成到 FPGA 平台的既往研究,发现这些研究都从硬件工程师的角度出发,导致做出的设计决策往往严重制约性能空间。出于这个原因,本文从ROS 2 机器人专家的视角提出了一个提出建议,即全面考虑 ROS 2 的硬件加速。这一视角能体现:a) 优化流程中、流程内、网络内(含底层)的 ROS 2 计算图交互;以及 b) 加速 ROS 上运行的应用。
本文提出一种能够实现上述目标的架构。该架构由一套 ROS 2 包构成,能够将硬件加速集成到 ROS 工作空间。这种架构适用于各种平台(瞄准支持边缘、工作站、数据中心或云)和各种技术(支持 FPGA 和 GPU),并且能够轻松地移植到其他电路板上。该架构的核心组件已经在 Apache 2.0 许可证下公开,对三种电路板的基本支持也已通过演示。此外,提供的架构还适用于各种应用,将来可以通过包含 catkin 扩展( 非 ament)轻松移植到 ROS。
【待续】