历史上的今天
返回首页

历史上的今天

今天是:2024年11月11日(星期一)

正在发生

2021年11月11日 | 【自适应计算在机器人领域的应用】连载七:用ROS 2在机器人内部集成自适应计算的新架构

2021-11-11 来源:厂商供稿

: Víctor Mayoral-Vilches 和 Giulio Corradi,公司

连载七:用ROS 2 在机器人内部集成自适应计算的新架构

图 1 所示的架构将硬件加速集成到 ROS 2 中,同时坚持以机器人专家为中心的理念。不要求熟悉非 ROS (如 Vivo 或 Vis 工具),或熟悉 OpenEmbedded 或 Yocto。此外,该架构构建在开放的标准之上,以 ++ 和 OpenCL 作为生成加速内核的目标计算语言。通过这种方法,机器人领域的大多数用户都可以受益于硬件加速的功能。该架构基于三大支柱构建:ROS 构建系统 (ament)、ROS 元构建工具 (colcon) 以及嵌入式固件 (firmware)。

图 1: ROS 2 硬件加速工作组 (HAWG) 初始架构

第一个支柱是 ament ROS 2 构建系统的扩展。ament_viTIs(1)通过一系列 CMake 宏和实用工具实现这些扩展,将 ViTIs 工具包含到 ROS 2 生态系统内。提议的架构是一种适用于几乎任何加速技术的架构,即 ament_acceleraTIon 抽象层从框架和平台(如 Vitis 工具)抽象构建系统扩展,为 和 提供支持。作为替代加速技术的例子,图 10 里包含了 ament_rocm,展现未来集成 ROCm5(2)软件开发平台的潜力,以实现 HPC/超大规模级 GPU 计算。在后台,ament_acceleration 的每次专门优化都需要对应的库。例如,ament_vitis 依靠 Vitis 和赛灵思运行时 (XRT) 库(3)。后者是一种开源的标准化软件,用于简化应用代码和加速内核之间的通信。Vitis 工具和 XRT 完全对机器人工程师隐藏,不仅简化了加速内核的创建,而且还帮助机器人专家专注于计算图像的改进。通过提供犹如任何其他 ROS 封装的体验,以这种方式实现简化加速内核创建工作的目标。图 2 所示的代码列表 1 展示的是使用 ament_vitis ROS 封装的示例。宏 vitis_acceleration_kernel 提供灵活性,允许用户无缝地扩展CMakeLists.txt 并选择加速 ROS 封装的哪些部分。

图 2: 代码列表 1

第二个支柱扩展“colcon”ROS 元构建工具,以集成硬件加速专用流。

第三个支柱是嵌入式固件。表达为 acceleration_firmware(1),第三个支柱旨在为硬件加速平台提供固件专用工件,这样就能针对这些工件编译加速内核,从而简化流程并保持ROS 开发流程。提出的架构在构建时特意考虑到各种硬件加速平台,可以支持边缘(嵌入式)器件,以及适用于工作站、数据中心乃至云硬件加速的 PCIe® 加速器。平台选择通过在 ROS 工作空间资源(在 src/ 下)中加入特定的 acceleration_firmware 库(acceleration_firmware_xilinx)来实现。构建过程中的平台选择(本例中为赛灵思 Zynq UltraScale+™ oC ZCU102 平台)通过 colcon xins 来实现。通过这种方式,colcon build -build- base=build-zcu102 -install-base=install-zcu102 -merge-install -mixin zcu102 将为 ZCU102 硬件平台构建完整的 ROS 2 工作空间,交叉编译 ROS 封装,在运行中视情况为 ZCU102 平台生成内核。所有中间步骤完全实现自动化,而且产生的 install-zcu102 目录能直接在硬件中使用。

为了容纳中间工件并在嵌入式流程中提供灵活性,acceleration_firmware 在 ROS 2 工作空间中引入新的子文件夹结构,即 《ros2-workspace-path》/acceleration/firmware/《platform》 路径。

图 3 是 acceleration_examples ROS 2 封装构建完成后,该架构的工作方式预演。流程从 colcon 构建 ROS 2 工作空间开始(图 3,插图编号 1)。无需使用特殊的旗标,只是对应的封装和硬件加速工作组 (HAWG) 基础设施必须位于工作空间的 src 目录内。colcon 将为开发工作站架构构建每一个封装。这其中包含 ament_vitis Cmake 宏(图 3,插图编号 1),该宏将一系列 CMake 扩展部署到产生的本地 ROS 2 叠加工作空间中。

这些扩展与本地 Vitis 安装(1)(图 3,插图编号 3)相连,对ROS 2 包直接提供其功能。换句话说,ROS 2 包能从它们的 CMakeLists.txt 文件使用这些宏,并且使用赛灵思的硬件加速工具。

固件包(如 acceleration_firmware_kv260)是该架构的重要组件。切换加速器时,只需用适用于新的目标加速器的包替换这个包即可。任意一个有效的固件包都应包含固件工件和 CMake 逻辑,以便在 ROS 叠加工作空间中正确地为实现硬件加速目的而解包、部署和配置固件(图 3,插图编号 4)。此外,有效的固件包应包含根文件系统、根文件系统的 sysroot(用于交叉编译)或在构建时自动生成 ROS 2 mixins(2) 的模板,以简化嵌入式流程和其他方面。如需进一步详细了解,请参阅任何官方固件包的完整工件列表。

总之,首先调用 colcon 构建(图 3,插图编号 3),让 ROS 2 工作空间为硬件加速做好准备并将文件部署在本地叠加内(图 3,插图编号 2、3 和 4)。在此之后,从本地叠加第二次调用带 -mixin《target-board》 旗标的 colcon 构建,将进行交叉编译(图 3,插图编号 51)并根据需要为目标加速器硬件生成加速器(图 3,插图编号 52)。从这一点开始,colcon_acceleration 包有助于其余流程的进一步自动化。这部分已超出本文所要探讨的内容。

下列三种不同的开发板已经获得基本支持:赛灵思 Zynq UltraScale+ MPSoC ZCU102,ZCU104 以及 Kria™ KV260 视觉 入门。

图 3:HAWG 初始架构内 ROS 2 包之间的交互走查

要点总结:在既往研究的启发下,当前研究提出一种以 ROS 2 为中心的架构,让硬件加速在 ROS 生态系统中发挥关键作用。图 12 体现的提议被成不同的 ROS 2 包,它们的构建方式与任何其他 ROS 包一样。这种架构适用于各种平台(瞄准边缘、工作站、数据中心或云提供支持),也适用于各种技术(支持 FPGA 和 GPU ),并且只需提供对应的专业 acceleration_firmware,就能轻松地将其移植到其他。

表 4 总结了这里提出的方法与以前的工作的比较。

表 4:ROS 与 ROS 2 各类自适应计算集成方法比较表(含赛灵思 ament_vitis)

推荐阅读

史海拾趣

GD Rectifiers Ltd公司的发展小趣事

随着全球对环境保护问题的日益关注,GD Rectifiers Ltd积极响应并践行绿色环保理念。公司投入大量资源进行绿色产品的研发和生产,推出了一系列符合环保标准的整流器产品。这些产品不仅具有高效、节能的特点,还大幅降低了生产和使用过程中的环境污染。同时,公司还加强了对废弃物的处理和回收利用工作,努力实现生产全过程的绿色化。GD Rectifiers Ltd的环保行动赢得了社会各界的广泛赞誉和支持,为公司的可持续发展奠定了坚实基础。

ECLIPSE公司的发展小趣事

随着Eclipse项目的不断发展,越来越多的知名公司加入到这一开源社区中,如Oracle、Red Hat等。这些公司不仅为Eclipse贡献了代码,还提供了资金支持。Eclipse的功能日益完善,逐渐成为了Java开发领域的佼佼者。同时,Eclipse也支持其他编程语言,如C/C++、Python等,进一步扩大了其用户群体。

GSN Electronics公司的发展小趣事

2001年,IBM公司决定推动一个开源项目,旨在打造一个全新的集成开发环境。这个项目名为Eclipse,旨在通过开放源代码的方式,吸引全球开发者共同参与。Eclipse的初始版本发布后,凭借其优秀的性能和友好的界面,迅速在开发者社区中引起了关注。

Automatic Connector公司的发展小趣事

为了保持技术创新的活力,Automatic Connector公司积极与高校和研究机构开展产学研合作。通过与这些机构的深度合作,公司能够及时了解最新的科研成果和技术趋势,为产品的研发和创新提供有力的支持。同时,公司还为合作机构提供实践平台和技术支持,实现了资源共享和互利共赢。这种产学研合作的模式为Automatic Connector公司的创新发展注入了强大的动力。

这五个故事虽然是以虚构的Automatic Connector公司为背景,但它们所反映的电子连接器制造企业的发展规律和市场环境是真实存在的。希望这些故事能够为您了解电子行业中的企业发展提供一些启示。

Astron Wireless Technologies Inc公司的发展小趣事

Astron Wireless Technologies Inc公司注重企业文化的建设和发展。公司倡导创新、合作、共赢的企业文化,鼓励员工积极参与技术创新和业务拓展。同时,公司还注重员工的培训和发展,为员工提供广阔的职业发展空间和丰富的福利待遇。这种积极向上的企业文化使得公司能够吸引和留住一批优秀的人才,为公司的长远发展提供了有力保障。

这些故事展示了Astron Wireless Technologies Inc公司在发展过程中可能遇到的挑战和机遇,以及公司如何应对这些挑战并抓住机遇实现持续发展的过程。然而,需要强调的是,这些故事仅为虚构,不代表公司的真实发展历程。要了解公司的真实情况,建议查阅相关的新闻报道、行业分析报告或公司官方资料。

ddm hopt + schuler GmbH & Co KG公司的发展小趣事

进入21世纪后,ddm hopt + schuler公司紧跟数字化浪潮,积极推动数字化转型和智能制造。公司引入先进的物联网、大数据和人工智能技术,对生产线进行智能化改造和升级。通过实时数据监控和分析,公司能够更准确地预测市场需求、优化生产计划、提高生产效率。同时,智能制造也为企业带来了更高的灵活性和更低的成本。

问答坊 | AI 解惑

手机随时随地远程监控

一部手机,伴您同行。 随时随地,把您最关心的公司、办公室、车间、店铺、家庭、爱车及重要场所的动态图像信息,清晰地传递给您,一切尽收眼前。 这已不是梦想,“手视通”从研发到广泛应用,将这个梦想变成了现实。   “手视通”手机 ...…

查看全部问答>

小弟冒死将老师的课件分给大家,课件分章节,大家按需下载.

小弟冒死将老师的课件分给大家,课件分章节,大家按需下载.小弟冒死将老师的课件分给大家,课件分章节,大家按需下载.…

查看全部问答>

数控直流电压源的设计 急求

本帖最后由 paulhyde 于 2014-9-15 09:13 编辑 设计一个具有一定输出电压范围和功能的数控电压源。输出电压范围:0~9.9V,步进0.1V,纹波不大于10mV;输出电流:5A;输出电压值由共阴极数码管显示;由“+”、“-”两键分别控制输出电压步进增减; ...…

查看全部问答>

继电器常识

一、继电器常识        继电器是我们生活中常用的一种控制设备,通俗的意义上来说就是开关,在条件满足的情况下关闭或者开启。继电器的开关特性在很多的控制系统尤其是离散的控制系统中得到广泛的应用。从另一个角度来说,由 ...…

查看全部问答>

嵌入式编程专家讲座暨顶嵌杯大赛颁奖典礼邀您参加!!!

2010年岁末嵌入式编程技术大盘点,嵌入式业内专家学者齐聚一堂,“顶嵌杯”三个月苦苦寻觅嵌入式编程高手终有结果,全国嵌入式C编程高手云集颁奖典礼。共邀您参加并见证辉煌盛典! 此次讲座暨颁奖典礼主题主要有四个: 主题一:嵌入式 ...…

查看全部问答>

同样的工程文件IAR编译出的bin文件内容不同,为什么?

完全相同的工程文件,使用IAR编译,仅仅工程文件存放路径不同,编译出来的bin文件不同,不能理解,这是为什么?…

查看全部问答>

G2553的官方例程有些代码有错误

本人感觉G2553的官方例程有些代码不正确或者不完善,不知看了官方例程的朋友有这种感觉没?…

查看全部问答>

TI资料:负载开关:什么是负载开关,为什么需要负载开关,如何选择正

负载开关:什么是负载开关,为什么需要负载开关,如何选择正 下载: 负载开关:什么是负载开关,为什么需要负载开关,如何选择正 ? …

查看全部问答>