什么是 ARDUPILOT?为什么选择 Zynq SoC?

发布时间:2022-04-8 阅读量:1791 来源: 我爱方案网整理 发布人: Aurora

无人机 (UAV) 和无人机行业正在迅猛发展并成功进军新的商业和消费市场。无人机的发展潜力不断推动新的创新型应用发展,例如 3D 建模、军事援助和交付服务。


问题在于这些应用正日渐复杂化,要求越来越高的处理能力和越来越多的 I/O(输入 / 输出)接口,但可用的无人机平台并没有以相同的步伐发展。随着飞行所需的软硬件的持续发展,大多数无人机平台的功能已经达到极限。


Aerotenna 的研究小组已经成功试飞一款无人机,该无人机采用赛灵思 Zynq®-7000 All Programmable SoC 构建的板件。这次飞行标志着 Aerotenna 实施高计算强度微波传感产品发布计划的开始。该小组选用 Zynq SoC 的原因是其他同类解决方案无法提供所需的处理能力。采用这种新的平台(图 1),Aerotenna 计划通过部署自己的微波型防撞系统来改善无人飞行体验。


当今无人机技术的局限


无人机行业发展的主要动力一直源于飞行变得尽量经济实惠价,简化和删除一切不必要的功能。若用户想要购买的产品恰恰是能以最简单的方式满足用户需求的产品,这便是件好事。但是,对 Aerotenna 这样的开发商来说,其任务是寻求新的、复杂的应用,因此有必要开发和构建属于自己的无人机平台,使其能够为自己的创意提供处理速度支持。


Aerotenna 的研发团队认为突破这些局限的途径是全新开发一种板件设计。Aerotenna 一直在优化一种新的无人机平台,该平台将在其他平台表现差强人意的方面崭露头角。


为什么选择 Zynq SoC?


Aerotenna 选择 All Programmable Zynq SoC 作为构建我们强大平台的基础。Zynq SoC 芯片内部的双核 ARM® Cortex™-A9 APU 能实现无与伦比的处理器速度。在芯片结构、多处理器功能及 I/O 访问速度方面,市场上的廉价无人机平台解决方案均无法与 Zynq SoC 匹敌。因此 Zynq SoC 是新一代平台的理想选择。

 

Zynq SoC 在处理能力和 I/O 功能方面具有明显优势:双核 ARM 处理器与 FPGA 逻辑相结合,可实现一种软硬件协同设计方法,从而能够将一部分时序关键型处理任务交付给可编程逻辑来处理。与基于 MCU 的平台相比,Zynq SoC 具有更丰富的 I/O 外设和存储器接口功能。


目前存在多种类型的飞行软件程序,它们都行为各异且复杂性不同。Aerotenna 决定使用的飞行控制软件名为 ArduPilot,这是由运行在 Dronecode 上的 APM(自动驾驶仪)提供的。


ArduPilot 飞行控制系统的复杂性随着开源社区为 APM 项目添加的内容越来越多而不断增加。


ArduPilot 飞行控制系统的复杂性随着开源社区为 APM 项目添加的内容越来越多而不断增加。


什么是 ARDUPILOT?

 

ArduPilot 是一种专为无人机构建的开源自动驾驶仪软件程序。该软件程序由开发人员和爱好者组成的庞大群体不断更新和改进。从最初为开源 Arduino 微处理器构建的相当简单的软件起步,不断壮大和复杂化,APM 项目如今已经兼容众多无人机平台。


该代码分为两个部分:高层次层和硬件抽象层 (HAL)。高层次层负责调度任务及根据输入的数据做出决策。HAL 是用于访问硬件的存储器的低层次代码。只需调整用于平台专用存储器访问的 HAL,这种代码结构划分就能将整个系统移植到其他平台。


随着开源社区为 APM 项目添加的内容越来越多,ArduPilot 飞行控制系统日趋复杂。因此,行业已经达到硬件的极限,正期待新一代能够推动持续增长的平台问世。

 

显著改进

 

将 ArduPilot 移植到 Zynq SoC 的初步工作(由谷歌无人机讨论组的 John Williams 牵头)于 2014 年完成,该工作为将 APM 移植到同一赛灵思平台上铺平了道路。随着无人机令人惊叹的新世界的开启,Williams 注意到 Zynq SoC 在提供定制 I/O 和实时图像处理方面的巨大潜力。

 

Aerotenna 团队从硬件和固件两个方向继续推动这些设计工作,并于 2015 年 10 月完成采用 Zynq SoC 的 ArduPilot 的首飞。Aerotenna 团队在 PetaLinux 操作系统上运ArduPilot 飞行控制软件。 这一惊世壮举标志着无人机技术和功能的一次飞跃。


在处理能力和 I/O 功能方面,Aerotenna 团队的飞行控制解决方案远远领先于同类的其他无人机解决方案,这都归功于 Zynq SoC 中的双 ARM 内核。这一飞跃将为众多需要更强计算能力的新无人机应用打开大门。


任重道远的征程


全新打造一套定制化飞行控制平台是一次任重道远的征程,这不仅需要理想的工程人员团队,还需要完成大量的学习,才能完成。从无到有,需要对该系统做出大量的决策。为了运行飞行控制程序,必须使用操作系统。实时操作系统 (RTOS) 即时处理进入的数据,造成的缓存延迟可忽略不计。


这就是 Aerotenna 团队转而选择 Linux 操作系统的原因。虽然 Linux 操作系统不是实时系统,但实现软硬件联合设计要容易得多,进而能将系统的多功能性最大化。

 

建造并运行这个系统的路线图看起来相当复杂,Aerotenna 团队必须克服重重严峻的挑战。这个过程的第一步是使用 FPGA 开发软件来开发系统设计,并为驱动器接口编写和创建全新的 IP。


ArduPilot 代码库包含超过 70 万行代码,因此一项重大任务就是让系统在全新的平台上运行。由于没有方便的界面以供调试惯性传感器、电动机和 RC 控制器(对其他平台一般在高质量的图形用户界面下完成),团队不得不细调数百个存储的参数值,手动调试整个系统。

 

图2 OcPoC


图3 OcPoC

 

OcPoC 介绍

 

OcPoC 项目(图 2)是 Aerotenna 的无人机飞行控制平台。借助该项目,Aerotenna 团队计划使用显著提高的处理能力、I/O 扩展,以及明显优于其他解决方案的编程灵活性来满足无人机社区的需求。

 

该架构为开发人员借助他们所需的全部处理能力进行创造和设计铺平了道路。采用这种新平台,Aerotenna 团队计划为兼容 OcPoC 的成像、地图和近距检测领域推出新的微波技术应用。

 

Aerotenna 团队的平台将提供集成 IMU 数据获取功能,无需任何额外的传感器设置即可开发出即飞型“匣子”(图 3)。该团队将同时为所有类型的无线电导航控制提供集成导航界面。


Zynq SoC 的额外处理功能还能处理更复杂的飞行控制系统,以更加精细地调谐无人机的性能。这包括将 I/O 功能扩展到适应更加广泛的外部接口与传感器选项,例如实时视频流、微波近距传感器及蓝牙。 


220x90
相关资讯
晶振启动时间影响因素解析与优化方向

​晶振的启动时间,通常是指其通电后进入稳定振荡状态所需的时间。若启动时间过长,可从以下五个常见的影响因素方面进行优化。

解析RTC实时时钟芯片的工作原理

RTC(Real-Time Clock,实时时钟)芯片作为一种独立的专用计时器件,其核心功能包括提供稳定的日历时钟、在主电源断电后持续运行、支持定时中断以及输出高精度时间戳,为各类嵌入式系统提供可靠的时间基准。

无源晶振与有源晶振在MCU应用中的关联逻辑与选型指南

时钟系统是保障微控制器(MCU)稳定运行的核心,而晶振作为关键时钟源,主要分为无源晶振与有源晶振两种类型。下面将围绕工作原理、硬件接口、电气特性及其在MCU中的适配场景等维度,系统解析这两类晶振与MCU之间的关联逻辑。

VC-OCXO压控恒温晶振管脚功能定义解析

恒温晶振(Oven Controlled Crystal Oscillator,简称OCXO)是高精度频率源的核心组件,选用切型更优(如SC切、AT切高精度型)、封装应力极小的高Q值晶片,通过恒温槽的超精密控温,让晶振始终工作在零温度系数点,几乎消除温度引发的频率漂移。

晶振倍频干扰解决方案:从PCB布局优化到源头抑制与电路整改

晶振倍频干扰(即高次谐波辐射)是电磁兼容(EMC)设计中非常棘手的问题,通常表现为基频25MHz的5次、7次谐波(如125MHz、175MHz等)处辐射超标。该问题源于晶振输出方波信号包含丰富的高次谐波成分,若PCB布局不当,晶振及其走线极易构成高效辐射天线,导致电磁干扰增强。