科企岛:开源和开放硬件敏捷四旋翼飞行器

Xsens动作捕捉 2023-05-11 3130

自主、敏捷的四旋翼飞行在感知、规划、学习和控制方面为机器人研究提出了根本性的挑战。需要一个多功能和标准化的平台来加速研究,让从业者专注于核心问题。为此,我们介绍了Agilicious,这是一个为自主,敏捷的四旋翼飞行量身定制的协同硬件和软件框架。它是完全开源和开放的硬件,支持基于模型和基于神经网络的控制器。此外,它还为敏捷性提供高推重和扭矩惯性比、机载视觉传感器、用于实时感知和神经网络推理的图形处理单元 (GPU) 加速计算硬件、实时飞行控制器和多功能软件堆栈。与现有框架相比,Agilicious提供了灵活的软件堆栈和高性能硬件的独特组合。我们将Agilicious与之前的工作进行比较,并使用基于模型和基于神经网络的控制器在不同的敏捷任务上进行演示。我们的演示器包括在动作捕捉系统中以高达每小时5g和70公里的速度进行轨迹跟踪,以及在仅使用机载感知的结构化和非结构化环境中基于视觉的杂技飞行和避障。最后,我们演示了它在虚拟现实环境中用于硬件在环仿真。由于其多功能性,我们相信Agilicious支持下一代科学和工业四旋翼飞行器研究。

科企岛:开源和开放硬件敏捷四旋翼飞行器  第1张

四旋翼飞行器是非常敏捷的车辆。利用它们的敏捷性和完全自主性对于时间紧迫的任务至关重要,例如搜索和救援,空中交付,甚至飞行汽车。出于这个原因,在过去十年中,对自主,敏捷的四旋翼飞行器飞行的研究不断将平台推向更高的速度和敏捷性(1-10)。

为了进一步推进该领域,已经组织了几项比赛 - 例如最近的IROS(智能机器人和系统国际会议)和NeurIPS会议(3,11-13)和AlphaPilot挑战赛(6,14)的自主无人机赛车系列。)——目标是开发最终优于人类专家飞行员的自主系统。价值百万美元的项目,如AgileFlight(15)和Fast Lightweight Autonomy(FLA)(4),也分别由欧洲研究委员会和美国政府资助,以进一步推动研究。敏捷飞行伴随着越来越多的工程挑战,因为使用自主系统执行更快的机动需要更强大的算法,专门的硬件和熟练的系统集成能力。因此,只有少数研究小组承担了硬件和软件工程的显着开销,并开发了专业知识和资源来设计四旋翼飞行器平台,以满足自主敏捷飞行所需的重量,传感和计算预算要求。这项工作旨在通过开源敏捷飞行平台弥合这一差距,使每个人都能以最小的工程开销实现敏捷自治。

研究小组(2,4,16-21)开发的平台和软件堆栈在硬件和软件工具的选择上差异很大。这是意料之中的,因为在闭源研究环境中,根据个人经验优化机器人的不同任务会导致研究社区的碎片化。例如,尽管许多研究小组使用机器人操作系统(ROS)中间件来加速开发,但出版物通常难以重现或验证,因为它们建立在创作研究小组以前的大量实现之上。在最坏的情况下,建立在不完美甚至有缺陷的闭源基础上可能会导致错误或不可复制的结论,从而减缓研究进展。为了打破这一循环并使快速自主飞行的研究民主化,机器人社区需要一个开源和开放硬件的四旋翼飞行器平台,以提供各种敏捷飞行任务所需的多功能性和性能。这样一个开放和敏捷的平台还不存在,这就是为什么我们提出Agilicious,一个开源和开放硬件的敏捷四旋翼飞行栈,总结在图1中。

科企岛:开源和开放硬件敏捷四旋翼飞行器  第2张

为了实现创建敏捷、自主和多功能四旋翼飞行器研究平台的目标,四旋翼飞行器必须满足两个主要设计要求:它必须携带自主操作所需的计算硬件,并且必须能够敏捷飞行。

为了满足真正自主所需的计算资源的第一个要求,四旋翼飞行器应具有足够的计算能力,以便在板上同时运行估计、规划和控制算法。随着基于学习的方法的出现,神经网络推理也需要高效的硬件加速。为了实现敏捷飞行,该平台必须提供足够的推重比(TWR)和扭矩惯性比(TIR)。TWR通常可以使用更强大的电机进行增强,这反过来又需要更大的螺旋桨,因此平台的尺寸更大。然而,TIR通常随着重量和尺寸的增加而减小,因为惯性矩随尺寸而增加,随重量线性增加。因此,需要设计一个轻量级和小型的平台(22,23)以最大限度地提高敏捷性(即,最大化TWR和TIR)。因此,平台应该满足最佳权衡,因为最大化计算资源与最大化飞行性能竞争。

除了硬件设计考虑因素外,四旋翼飞行器研究平台还需要提供软件框架,以实现灵活使用和可重复的研究。这需要对硬件接口进行抽象,并对软件和硬件进行通用的协同设计,以充分利用平台的潜力。这种协同设计必须考虑每个系统组件的功能和限制,例如通用操作系统和嵌入式系统的互补实时功能,通信延迟和带宽,系统动态带宽限制以及硬件加速器的有效使用。除了以最佳方式使用硬件资源外,软件还应以模块化方式构建,以便在仿真和实际应用中通过简单的组件交换实现快速原型设计。这种模块化使研究人员能够测试和试验他们的研究代码,而无需开发整个飞行堆栈,从而加快了开发时间并促进了结果的可重复性。最后,软件堆栈应该在广泛的计算板上运行,并且通过具有最小的依赖性来高效,易于传输和调整,并提供已知的接口,例如广泛使用的ROS。

The End