SwiftEagle: 一款先进的开源、小型化 FPGA UAS 平台,配备双 DVS/帧摄像头,支持前沿低延迟自主算法
摘要
低延迟传感与决策处理是无人机系统(UAS)中高度动态控制与感知应用的关键需求。诸如动态视觉传感器(Dynamic Vision Sensors,DVSs)等新型传感器通过降低数个数量级的延迟,提升了感知模块的纯性能。然而,它们通常未能与计算硬件进行最佳集成,导致延迟与功耗潜力受限。除了集成不佳之外,针对如此高速数据产生传感器的低延迟处理,在资源受限平台上往往具有挑战性。现场可编程门阵列(Field Programmable Gate Arrays,FPGAs)平台提供了一系列有前景的特性,包括对硬件与存储器的低级访问以及高速接口。另一方面,由于其复杂的编程与开发环境、陡峭的学习曲线以及实现最优性能的难题,FPGA 平台在 UAS 中并不十分受欢迎。为加速未来开发,本文提出了 SwiftEagle——一款基于自定义硬件设计、重量 720g 的开源前沿 FPGA UAS,具备多传感子系统中双摄像头接口 RGB/DVSs,并配备了用于机载高精度记录机器学习数据集、亚微秒时间分辨率及 FPGA 内部渲染 DVS 事件帧的初始软件与固件栈。利用该平台,作为概念验证,展示了一款刚发布的新型 DVS 的端到端延迟在最坏情况下一低于 210µs,从而实现未来前沿自主算法。
作者
Christian Vogt 项目式学习中心, D-ITET, ETH苏黎世, 瑞士
Michael Jost 项目式学习中心, D-ITET, ETH苏黎世, 瑞士
Michele Magno 项目式学习中心, D-ITET, ETH苏黎世, 瑞士
出版信息
期刊: 2024 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) 年份: 2024 页码: 8134-8140 DOI: 10.1109/IROS58592.2024.10802491 文章编号: 10802491 ISSN: Electronic ISSN: 2153-0866, Print on Demand(PoD) ISSN: 2153-0858
指标
总下载量: 279
资助
- 索尼
关键词
IEEE 关键词: Software algorithms, Cameras, Hardware, Software, Sensors, Recording, Voltage control, Low latency communication, Field programmable gate arrays, Microprogramming
索引词条: Autonomous Algorithm, Data Rate, Low Latency, Software Stack, Event Frames, Custom Hardware, Dynamic Vision Sensor, Data Processing, Decoding, Event Data, Event Rate, Real-time Performance, Light Detection And Ranging, Data Streams, Time Stamp, Camera Frame, Simultaneous Localization And Mapping, Flight Control, Hardware Accelerators, Universal Serial Bus, Visual Odometry, Navigation Algorithm, Visual-inertial Odometry, Robot Operating System, System-on-chip, Open-source Hardware, System Clock, Sensor Data, Transfer Rate
未定义
第一节. 介绍
UAS 最重要的任务,例如自主障碍物避免 1,或竞速 2,都需要快速反应时间。为推动这些边界,传感器和决策处理的极低延迟至关重要。加速感知延迟的一个有前景的技术是事件驱动的神经形态传感器和处理(如 3),它们会在传感器可用时立即处理输入数据...
鉴于UAS对低延迟和高数据带宽的需求,尽快从环境中收集信息并将其提供给处理系统至关重要。这可以通过经典传感器的就绪中断实现,例如能够检测事件(敲击、摇晃)的智能惯性测量单元(IMU),电磁感测(UWB距离、雷达传感器、LiDAR …) 4、5 或基于事件的DVS相机。这些革命性的相机在广泛应用中提供高空间和时间信息密度 6、7、8,因为它们不依赖等待整个图像帧完成,而是立即发送像素强度变化。这使得相机具有更高的帧率 9 和比标准帧式相机更宽的动态范围 10。然而,在高速移动环境中,这些相机的性能往往受到其依赖USB连接进行数据传输和随后的有限数据速率 11 的限制,正如 12、13 所强调的。
图1. 开发的开源UAS平台安装在 6 英寸四旋翼框架上.
要最优地利用这种基于事件的感知范式,处理系统还需要能够执行低延迟计算,并了解传感器数值之间的精确时间关系。这种精度对于数据集记录以促进离线算法开发以及在线实时处理 14 都至关重要。虽然可以通过在微控制器或甚至操作系统上采样传感器实现毫秒级时间戳,但在针对诸如DVS等新型传感器的应用中,时间戳精度变得更为重要。然而,现有数据集(例如 15)往往无法提供DVS、帧和IMU数据的高性能同步,这一短板主要归因于记录平台和传感器接口的有限能力。虽然各种研究已利用DVS进行低延迟应用,但它们经常未能对相机接口固有的延迟进行表征。
从感知与数据集收集转向机载实时处理,现有的无人机数字平台,如 GPU 平台,尚未完全装备以充分利用这些新型传感器的低延迟潜能。因此,我们的方案是利用 FPGA 基础的处理元件在 UAS 平台上,以确保更快的接口和处理速度。此类 FPGA 基础的无人机已被证明能加速诸如传感器融合和推理 16(在帧相机和毫米波雷达上),或降落标志检测 17 等任务。
尽管 FPGAs 能实现更高性能 18,但它们通常更难编程,需要特定技能和时间。因此,现阶段仅存在少数基于 FPGA 的 UAS 设计。这些设计大多由市售 FPGA 评估板和独立的飞行控制器组装而成,通过低速串行接口将设定点传输给飞行控制器,从而限制了高性能计算对低级原始传感器数据和电机执行的访问。我们所知,目前尚无硬件和软件层面上开源的此类设计 19。
为解决这些挑战,我们开发了一个名为 SwiftEagle(图 1)的开源 FPGA 基础 UAS 平台。该平台既能提供 10 ns 范围内的精准时序同步,也能实现高吞吐量的数据处理。精准的时序对齐对于将高速事件驱动数据与其他传感器输入同步至关重要,从而提升数据一致性以供处理。此功能使研究者能够充分发挥传感器技术和硬件加速算法的潜力。
在本研究中,我们还通过使用自研的精密时间戳集成,对 DVS 接口的端到端延迟进行了细致表征。此外,SwiftEagle 直接集成了标准摄像头串行接口 2(CSI-2)摄像头接口,有效消除了使用市售 USB 接口摄像头时与延迟和数据吞吐量相关的瓶颈问题,优化了数据流以实现最大效率。
本文的主要贡献可概括如下:
SwiftEagle 的设计——一个利用FPGA技术的开源硬件与软件平台,专为卓越低延迟处理性能而设计,该最先进的平台无缝集成了飞行控制器,并通过FPGA直接提供对所有机载传感器的全面访问。这使得先进的实时数据处理和决策制定成为可能,尤其在低延迟自主导航和检测算法领域。
通过在完整功能的UAS平台上将DVS摄像头与帧式相机集成,实现高同步数据集的获取,具备微秒级传感器定时对齐精度。这两种传感器直接连接FPGA,确保最低的延迟和最佳的时序对齐。此举不仅提升了数据质量,也让研究者能够探索对数据时间戳误差敏感的算法。
展示具有微秒级传感器定时对齐精度的数据集获取能力。概念验证展示了平台在FPGA上快速处理DVS数据——解码事件数据并实时渲染事件帧,同时评估DVS端到端延迟。
SwiftEagle 的定制硬件和固件已作为开源发布在 https://github.com/ETH-PBL/SwiftEagle.
第 II 节(Related Work)。
本节概述了搭载机载FPGA的UAS平台,以及可将FPGA加速器集成到传统机器人软件栈和应用中的软件解决方案。最后讨论了以机器人为重点的传感器同步。
A. UAS FPGA 平台
专用计算加速器的集成正在推进UAS平台,尤其在高性能应用中。20展示并基准测试了配备Xilinx UltraScale+ FPGA和Jetson Xavier NX评估板的ReDroSe UAS,以加速在约4公斤UAS上的激光雷达 (LiDAR) 与同步定位与地图构建 (SLAM)。类似地,21展示了一块配备全球导航系统 (GNS)、USB帧摄像头和毫米波雷达 (RADAR) 的FPGA(Avnet Ultra-96板),起飞重量为612克。22同样使用了Avnet Ultra-96 FPGA板,搭载Pixhawk飞控,放置于自定义四旋翼上。
我们的 SwiftEagle 平台以720克重量提供了一种硬件组件与飞控系统的全整合方案。它将相机接口与高速连接整合,释放USB端口以备未来扩展。
B. 机器人用 FPGA
针对将FPGA和片上系统(SoC)以低成本集成到常见机器人栈(如机器人操作系统 (ROS))中的情况,近年来已取得显著进展。例如,在ROS2中,23 与 24 展示了将ROS节点简单集成到中央处理单元 (CPU) 或逻辑芯片上的工具链,使自定义硬件加速器能够轻松与广泛使用的ROS节点接口。同样,25 展示了一个FPGA接口,亦包含与外部 Pixhawk 飞控的通信。
在机器人学中,FPGA集成的硬件加速器已被证明可用于常见导航算法,如视觉惯性里程计 (VIO) 或视觉里程计 (VO),这为加速提供了多种机会。例如,26 在 Xilinx Zynq UltraScale+ FPGA 和 Nvidia Jetson Nano 上加速深度学习 VO(Monodeph2、DeepVO 和 DFVO)。同样,27 提供了与高层综合集成的 VO 管道。VIO 算法的子集,如 Harris 角点检测器 28,也是专用硬件加速的首选候选者。更为资源密集的算法也已加速,例如 SLAM 29,实现为硬件协处理器。在无人机应用中也存在 DVS 加速器,例如用于跟踪检测 30。
在我们的应用中,我们直接在 FPGA 上加速 DVS 事件到事件帧渲染,并实现精确的传感器时间戳,从而释放 CPU 以处理高层任务。
C. 传感器同步
在导航算法中,例如 VIO,IMU 与帧相机之间的同步起着重要作用。在常见的数据集和算法中,努力估计并相互同步 IMU 与基于帧的传感器数据流,例如 31 或 VINS 管道 32。例如,33 比较 OKVIS 34、VINS-Mono 35 以及它们的自定义自对齐算法,针对 IMU 与相机帧的错位进行比较。在未纠正的情况下,使用 Euroc 36 数据集时,30ms 的模拟延迟已将相对平移误差放大了 5 倍。
我们的平台能够通过亚微秒级传感器数据对齐,收集超过当前最先进水平的数据集,同时通过直接与高数据速率传感器(如 DVS)接口,降低整体从传感器到记录的延迟。
第 III 节:方法论
本节概述了所开发的开源硬件和软件/固件,以及设计选择和延迟测量设置。
A. 基于FPGA的无人机硬件
本 FPGA 无人机的硬件方案基于标准的四旋翼机架(Armattan Chameleon OG 6" 基座板),配备 2306 2345kV 电机(Ethix)和 60A 四电机控制器 BLHeli32-DS1200(Hobbywing)。可选的 RC 遥控器由商业 2.4GHz 遥控器(FrSky XM PLUS Mini)提供。为实现连接,例如 ROS2 遥测,附加了 WiFi USB 接收器(Ralink 5390 USB)。
除上述商业组件外,还使用了图 2 所示的定制硬件,设计使用 Xilinx K26 系统模块(SoM)FPGA 模块作为主要计算模块。SoM 集成了单芯片,包含四核 ARM A53 应用处理单元(APU)、双核 ARM R5 实时处理单元(RPU),以及可由 ARM 处理器进行全或部分配置的 FPGA 织构。此外,SoM 上提供 4Gbit DDR 与 16Gbit 闪存。定制硬件直接集成了电源,包括在每条电源轨上进行板载电流测量(Texas Instruments INA3221),源自电池电压(4s LiPo,1800mAh,Tattu R-line)。此外,IMU(ST Microelectronics LSM6DSV)和用于额外传感器的扩展接口(Crazyflie 2 shield extension [^31])已集成在定制硬件中,亦集成了 USB PHY(Microchip USB3320)。为电机驱动器(Texas Instruments ISO7140)提供 DC 隔离接口,为 5V 无线遥控接收器信号提供电平转换器,且可提供最多四个 CSI-2 摄像头(每个 2 条通道)的接口。目前已将一台帧式摄像头(SONY IMX219)和一台 DVS 摄像头(Prophesee GenX320)连接到这些端口。定制电子硬件的总重量为 64g,含 SoM 与冷却器的硬件重量为 193g。SwiftEagle 的总起飞重量为 720g(包括四旋翼机架、马达、机架摄像头、DVS 与电池)。
图 2. 基于 FPGA 的无人机硬件概览,展示外部硬件、定制硬件以及在 FPGA 织构中实现的数字模块.
为了支持未来低延迟处理应用,所有传感器和外部接口直接连接到FPGA织物,使得自定义逻辑可以处理传感器信号或生成例如电机信号,在将其转发到APU和RPU处理器之前。这些可以直接访问FPGA织物或内存,以与任何预处理的传感器数据交互。
B. 固件与逻辑设计
FPGA 无人机的主固件被划分为三层,延迟和实时需求从第 1 层的低到第 3 层的高:
Petalinux: 基于 YOCTO 发行版的 Xilinx 支持的 Linux 操作系统。它运行在四核 ARM Cortex A53 处理器上。ROS 环境(ROS2 humble)以及所有节点都托管在此平台的 Docker 容器中。
CF2 固件: Crazyflie2 所使用的开源无人机控制器被移植到双核 ARM Cortex R5 处理器上运行,通过 FPGA 结构与 IMU 和电机控制器接口。相应的硬件驱动已在原装 Crazyflie 固件上进行适配。与 APU 上的 ROS2 节点交换的信息通过 Xilinx IPI 接口完成,例如控制器设定点、无人机姿态和状态。
FPGA 逻辑: 集成在 FPGA 结构中的节点包含最高延迟和时序敏感性的操作,例如为电机驱动器生成 DSHOT 协议,对 RC 遥控器的 SBUS 信号进行预处理,以及在遥控器上的安全开关被按下时立即关机。 此外,逻辑还集成了时戳,用于在不同传感器(IMU、框架摄像机和 DVS 摄像机)之间对齐数据,以及各种商业逻辑节点,例如 MIPICSI2 解码核心(Xilinx)。
C. 10 纳秒对齐的数据集录制
为了在所示平台上记录高质量数据集,单个传感器的数据流在 FPGA 逻辑中被时间戳化,从而可以在当前系统时钟(100MHz)的精度内对齐,实现 10ns 的时间戳分辨率。图 3 展示了以 IMU、DVS 和帧相机为例的可扩展时间戳逻辑的一般概览,实时处理的数据流未显示。对于新的传感器,可将设计好的 HDL 模块单独添加到监测的传感器输入。轻量级时间戳逻辑允许同时精确记录两个相机输入,即使在满速下也能实现。通过 FPGA 结构进行直接 CSI‑2 数据处理和存储的设计,旨在处理两台 DVS 传感器(2x1.5Gbits−1 [^32])的最大 DVS 数据速率,消除了以往 USB 实现的瓶颈 37。
每个传感器提供不同类型的数据流,IMU 在新样本就绪时(设置为 1kHz)发出常规中断,DVS 相机使用自己的时间戳在不规则间隔发送事件,最后帧相机每秒 50 帧。
在 IMU 的每一次常规数据就绪中断时,当前系统时间计数器与 IMU 样本数据一起由 RPU 固件读取并存储到 DDR 内存银行中。相比之下,帧相机的时间戳是在检测到新相机帧传输开始时生成的,并插入到帧图像前的数 据流中,该数 据流随后直接写入 DDR 内存。类似地,DVS 相机的时间戳也直接插入到事件流中,然而由于事件数据不构成帧,系统时间戳会以固定间隔(每 4096 字节)定期插入到数据流中。通过比较 DVS 与 Fabric 在事件速率从高值降至零的时间帧处的速率,可以估算内部 FPGA 数据处理的延迟。
图 3. 不同数据到达时的示例时间戳插入,例如帧相机、IMU 和 DVS 数据 (a)。基于 100MHz FPGA 系统时钟实现时间戳功能。对于帧相机和 DVS 相机,时间戳直接插入数据流;对于 IMU,时间戳在每次传感器中断时生成,然后由 RPU 收集。(b)
图 4. 并行 On-FPGA 事件解码和聚合成帧,并将可变积分时间帧传输到 DDR 内存银行以供 APU 或其他逻辑访问。
D. 事件数据解码与处理
DVS 的事件数据以 EVT2.1 格式 [^33] 编码,并通过带 1 条数据通道的 CSI-2 接口从相机接收。图 4 描述了对接收的 CSI-2 数据进行的高级处理。
首先,CSI-2 格式由商业逻辑核(Xilinx)解码。随后,解码后的数据由自定义事件解码器和事件帧聚合器处理。该设计的主要优点是天生的低延迟。完整的解码和累加器逻辑被设计为在系统时钟下工作,并在两次系统时钟周期内(50MHz 或 20ns)处理 CSI-2 解码器接收的所有数据。产生的数据速率(EVT2.1 格式为 1.6 Gbits⁻¹)超过 DVS 相机接口(1.5 Gbits⁻¹),确保不会丢失事件数据。
除了原始输入事件处理之外,累加器内存可以实时适配不同的累积时间,将生成的事件帧提供给 DDR 内存,以供其他逻辑块或 APU 进一步处理。
E. 延迟测量设置
为表征由DVS摄像机和FPGA内部数据流解码组成的完整处理系统的延迟,使用波形发生器(Keysight EDU33212A)同步点亮红色发光二极管(LED)(Wurth 150060RS75003),电压约为6V,并生成触发输出。触发输出接入FPGA输入,FPGA被配置为给每个触发事件时间戳。LED闪烁每100毫秒重复一次,持续时间为5毫秒。
进一步比较FPGA芯片内部的处理,利用每4096字节插入的规律时间戳,并将其与从DVS原始数据流提取的数据进行比较。两个时间戳之间的时间延迟表示芯片内部的传输速率,同时也是事件率的下限。考虑到数据流中每个事件占8字节,可以计算出事件率下限:两个时间戳之间至少传输了 4096/8 个事件。该下限是存在的,因为EVT2.1数据格式允许在高事件率(最高可达32个事件)下将更多事件压缩到8字节中。[^33]
SECTION IV. 实验结果
以下章节列出了实验结果,首先评估 SwiftEagle 记录的数据集中的相对传感器时钟/采样抖动,然后测量所使用的 DVS 的端到端延迟,最后概述了所提出设计所使用的 FPGA 资源。
由于在 FPGA 中实现了集中式时间戳,能够测量每个传感器的抖动。图 5 显示了当前观测到的三种传感器之间连续两个时间戳的时间间隔(dt)。通过观察 dt 的平均值附近的偏差,可以提取相应的抖动。IMU 的时间戳抖动低于 0.1ms,测量期间 dt 约为 1ms,符合预期的采样速率(1kHz)。同样,帧摄像机在帧间的抖动低于 1µs,并且与预期帧率存在绝对偏差,帧间间隔为 21ms。由于示例图 5 中 UAS 的动态运动,DVS 的时间戳非常接近,每 4096 字节事件数据之间的间隔不足 1ms。这也可以作为一个简单的指标来估算 DVS 的事件速率。
大多数感知和导航算法依赖于对各传感器之间时钟或时间基准漂移的精确了解(第二节)。基于从测量中提取的时间戳,对漂移进行评估。DVS 在 5 秒内保持约 40µs 的漂移,而 IMU 与基于 IMU 设置的预期值相比漂移超过 170ms。开发的机载时间戳还可以实时访问此时间基准漂移,使未来的算法能够适应变化的时钟速率(例如因温度变化)。
从信号处理和采集延迟的角度来看,图 6 展示了 DVS 处理延迟实验的结果。整体每微秒生成的事件数如图 6a 所示,峰值高达 400Eventµs−1。前 5ms 的部分主要是正事件,后续部分则是负极性事件。此现象与光脉冲强度的上升和下降边缘相符。DVS 延迟在图 6b 中评估,LED 脉冲触发被标记为灰点。事件数据中光脉冲的开始被定义为事件率的上升边缘,DVS 相机的延迟约为 170µs。这与相似 DVS 模型的已报告延迟范围相符 [^34]。
图 5. 在无人机飞行时,FPGA 记录的三大主要传感器连续两个时间戳之间的时间间隔(dt):IMU (a)、帧相机 (b) 和 DVS (c)。
图 6. LED 闪光开始到事件率上升的过程,按 µ 秒收集的事件数 (a) 以及约 170µs 时事件出现的细节视图 (b)。
图 7. 在不同事件密度下,DVS 事件率与 FPGA 结构中的数据速率比较:空闲 (a)、UAS 飞行 (b) 与 LED 闪光 (c)。数据未丢失,但部分被 MIPI CSI-2 输入解码器在结构中缓冲。
为进一步从延迟角度表征板载 DVS 处理,图 7 对比了纤维内部数据速率与 DVS 传感器记录的数据速率。实验中原始事件数据被记录到 DDR 内存,限制记录时间约为 5 秒。空闲状态下的低事件计数(图 7a)约为 1Eventµs−1,FPGA 纤维传输速率与此速率相匹配。值得注意的是,峰值可达 10Transferµs−1,取决于缓冲区填充状态。提高图 7b 的事件速率后,DVS 生成的事件速率可达 12Eventµs−1,纤维中的传输速率在 1 至 12Transferµs−1 之间提供了传输数据的最大下限。在 LED 闪光的极端情况下,这种纤维传输速率的饱和状态十分明显,与 DVS 产生的最大 400Eventµs−1 形成对比。然而,并未丢失任何数据,饱和来自内部 MIPI CSI-2 解码器。
图 8. 在无 DVS 事件生成的区域中,织物数据传输下降,标记为灰色。
CSI-2 到 FPGA 织物总线引入的最大延迟如图 8 所示,并与图 6 所示的 DVS 数据集同步收集。数据传输速率在长时间无 DVS 事件生成后下降到约 2.5Transferµs−1。这表明 FPGA 处理后的最大延迟约为 210µs。
FPGA 逻辑设计的总体利用率列在表 I 中,绝大部分资源用于 DVS 帧渲染的概念验证。
表 I
第 V 节 结论
本文介绍了 SwiftEagle,一款 720g 的开源基于 FPGA 的 UAS 平台,包括自定义硬件以及用于运行 UAS 的初始软件和固件栈。FPGA 织构中集成了亚微秒级的传感器数据时间戳和对齐功能,紧邻 IMU、相机帧和 DVS 数据的精确数据集记录能力。除了原始传感器值之外,还评估了在 SwiftEagle 收集的数据集上传感器的时钟漂移以及时钟抖动(< 1µs)。此外,所实现的 FPGA 硬件设计的延迟测量结果显示,在不同条件下,从 DVS 的光闪烁到 FPGA 织构中数据可用的延迟低于 210µs。因此,所提出的平台为资源受限的移动平台的低延迟算法开发提供了支持。
脚注
. 本工作部分得到 Sony Research Award Program 2022 的支持