APM和Pixhawk飞行控制器几乎占领了整个开源飞行控制器市场。从历史上看,APM飞行控制器是Pixhawk飞行控制器的前身,而Pixhawk正在代替APM成为开源市场上的佼佼者。
APM飞行控制器全称为ArduPilot Mega,其中的“Ardu”代表Arduino,是一种广为流行的开源电子开发板,而Arduino Mega是Arduino的一个版本。“Pilot”表示驾驶员,因此ArduPilot Mega即表示在Arduino Mega的基础上增加自动驾驶功能的开发板。事实上,APM硬件就是在Arduino硬件上增加了惯性测量单元,以及加入了用于连接遥控接收器、GPS、空速管等各种设备的接口,从而具备了飞行控制器的功能。
APM飞行控制器是开源飞行控制器历史上第一个非常完整的飞控方案,其功能强大,扩展性强,不仅仅可以对直升机、多旋翼、固定翼等各种形式的无人机进行自动化控制,甚至可以延伸对无人机驾驶车、无人驾驶船与水下无人机进行控制,其功能包括了定高悬停、定点悬停、自主起降、自主航线、自动返航等多种高级的智能飞行模式,如图1-2所示为APM和Pixhawk飞行控制器。
图1-2 APM和Pixhawk飞行控制器
APM飞行控制器起源于Chris Anderson在2007年创建的DIY Drones社区(DIYDrones.com),该社区创立后吸引了大量的无人机专业人士与爱好者。因此,APM飞行控制器可被认为是基于网络社区发展起来的开源硬件。随后Chris Anderson创立了3D Robotics公司(3dr.com),专门对无人机系统进行研发。在2009年,美国人Jordi Munoz和3D Robotics共同推出了第一台无人机自驾仪ArduPilot Board,成为APM飞行控制器的雏形。之后的几年是APM飞行控制器迅速发展的时期,3D Robotics公司分别在2010年、2011年和2012年发布了APM1、APM2和APM2.5/2.6自动驾驶仪。时至今日,3D Robotics公司仍然占据着美国民用无人机一部分市场。
APM飞行控制器具有非常成熟的硬件和软件生态:其附属硬件(如GPS、空速管等)非常稳定且价格便宜,其地面站软件Mission Planner(见图1-3)、APM Planner 2等也可通过数传硬件实时传输飞行状态和任务数据。但是,APM飞行控制器具有一个重大缺陷,那就是它的主控芯片(MCU)仅为8位处理器,在运算速度上存在“硬伤”,已经难以应付如今的多轴无人机。在四旋翼无人机中,APM飞行控制器的主控处理器几乎已经是满负荷运转了。当使用APM飞行控制器作为六旋翼无人机的飞行控制器时,特别是还需要APM飞行控制器控制云台相机、连接数传并进行数据记录时,APM飞行控制器将无法对控制链路的指令做出快速响应,这对于正处于危险环境的无人机来说很可能带来灾难。
图1-3 地面站软件Mission Planner
不过,APM飞行控制器作为稳定、廉价的无人机飞控解决方案,对于简单的固定翼无人机和四旋翼无人机来说已经足够了。因此,目前仍然有许多的无人机爱好者使用APM,并研读学习APM中的开源飞行控制器代码。
在面对APM飞行控制器出现了计算能力不足的困境时,Pixhawk飞行控制器就此诞生。Pixhawk飞行控制器是由PX4开源项目设计,并由3D Robotics公司首先制造并生产的高端自动驾驶仪,基本完全兼容APM的所有固件。因此,APM飞行控制器的所有功能在Pixhawk飞行控制器上均可以实现,如图1-4所示。除此之外,Pixhawk飞行控制器将APM飞行控制器的8位处理器升级为32位的ARM处理器,并搭载了Nuttx实时操作系统,在无人机控制方面具有更加强劲的性能、灵活性和可靠性。目前,Pixhawk飞行控制器属于独立的开源硬件项目,其目的是为科研、学习和工业等提供低价格、高实用性的飞行控制硬件。
图1-4 Pixhawk飞行控制器
Pixhawk硬件可以使用APM和PX4两类固件。APM固件就是原生于APM硬件,后来被移植在Pixhawk硬件的固件,也被称为APM for Pixhawk。PX4固件是Pixhawk的原生固件,其架构更加复杂,但是可扩展性更强。另外,APM开源固件采用GPLv3许可协议分发,因此其代码在修改后无法闭源商业化,但是PX4固件采用BSD 3许可协议分发,其修改后的固件不仅可以闭源,也可以商业化使用。
❀ Pixhawk硬件包括Pixhawk 1~4若干版本,并很快推出Pixhawk 5。Pixhawk 4与PX4不是同一个概念,前者为硬件,后者为软件。