PX4与Pixhawk关系

来自无人智胜
跳转到导航 跳转到搜索

Pixhawk与PX4对比

概述

Pixhawk和PX4是无人机领域两个紧密相关但又完全不同的概念。Pixhawk是一套开源的自动驾驶仪硬件标准,而PX4是一个开源的飞行控制软件(固件)项目。

特性 Pixhawk PX4
定义 一套开源的飞行控制器(自动驾驶仪)硬件标准 一个开源的飞行控制软件(固件)项目
本质 物理设备 操作系统和应用程序
主要内容 处理器(如STM32系列)、传感器(IMU、磁力计等)、各种接口和电路设计 飞行控制算法、状态估计(如EKF2)、任务规划、通信协议(MAVLink)等
关系 Pixhawk硬件是载体,可以运行多种飞控软件 PX4是灵魂,最初专为Pixhawk硬件优化,但也可运行在其他兼容硬件上

基本概念与定义

Pixhawk

Pixhawk是一套开源的飞行控制器(自动驾驶仪)硬件设计规范[1](@ref)。它定义了无人机飞行控制器的硬件架构、接口和功能特性,确保了不同厂商产品之间的兼容性和互换性。典型的Pixhawk兼容硬件(例如Pixhawk 4, Pixhawk 6X, Cube Orange等)通常采用主协处理器设计,内置冗余传感器(双IMU),并配备丰富的接口(PWM, CAN, UART, I2C, SPI等),支持模块化扩展[1,5](@ref)。

PX4

PX4是一个开源的飞行控制软件项目(或称固件),提供了一套完整的无人机自动驾驶解决方案[1,3](@ref)。它包含飞行控制算法、状态估计(如EKF2)、导航、任务规划以及与外设通信(如MAVLink协议)的所有软件逻辑[1,3](@ref)。PX4支持多种无人机类型(多旋翼、固定翼、垂直起降等),并具备先进的故障安全机制[3](@ref)。

历史背景

PX4项目起源于苏黎世联邦理工学院(ETH Zurich)的PIXHawk项目,旨在为学术、爱好和工业团体提供一款低成本、高性能的高端自驾仪[1](@ref)。Pixhawk硬件则源于该大学的研究团队自2009年以来的工作[1](@ref)。2014年,3DR联合APM小组与PX4小组推出了PIXHawk飞控,成为PX4飞控的升级版本,它能够同时支持PX4和APM(ArduPilot)两套固件[1](@ref)。

技术架构与组成

Pixhawk硬件组成

Pixhawk兼容硬件通常包含以下关键组件:

  • 处理器(CPU):如STM32系列处理器[1](@ref)。
  • 传感器:惯性测量单元(IMU,包含加速度计和陀螺仪)、磁力计、气压计等[1,5](@ref)。
  • GPS模块:提供精确的位置信息。
  • 通信接口:支持MAVLink协议的串口、USB接口等,用于地面站通信和数据交换[1](@ref)。
  • 调试接口:用于系统调试和固件烧录[5](@ref)。

PX4软件架构

PX4采用模块化设计,其软件架构主要可分为四个层次[2](@ref):

  • 应用程序的API:为应用程序开发人员提供精简、扁平的接口。
  • 应用程序框架:包含操作基础飞行控制的默认程序集(节点)。
  • :包含所有的系统库和基本交通控制的函数。
  • 操作系统:提供硬件驱动程序、网络、UAVCAN和故障安全系统[2](@ref)。

PX4的核心组件包括:

  • uORB (Micro Object Request Broker):一个非常重要的跨进程IPC(进程间通信)模块,肩负整个系统的数据传输任务。所有传感器数据、GPS、PPM信号等都要通过uORB传输到各个模块进行计算处理。它采用发布-订阅机制,进程通过命名的“主题”(topic)交换消息[2](@ref)。
  • 飞行控制栈:包含导航、制导和控制算法的集合[3](@ref)。
  • MAVLink协议栈:用于与地面站(如QGroundControl)或其他设备通信[1,3](@ref)。
  • 参数系统:存储和管理系统配置参数。

关系与协作

Pixhawk和PX4共同构成一个完整的飞控系统:

  • 硬件与软件的协同:PX4固件被刷写到Pixhawk硬件的存储器中,上电后硬件运行PX4软件,从而控制无人机。
  • 地面站交互:用户通过地面站软件(如QGroundControl或Mission Planner)与运行在Pixhawk上的PX4固件进行交互,进行参数设置、任务规划和数据监控[1](@ref)。
  • 并非强绑定:虽然PX4最初为Pixhawk硬件优化且高度集成,但它也可以运行在其他符合要求的飞行控制硬件上(如Linux计算机)[3](@ref)。反之,Pixhawk硬件也能运行ArduPilot等其他飞控固件[1](@ref)。

如何选择

  • 若选择飞控硬件,需关注Pixhawk兼容硬件的处理器性能、传感器精度、接口是否满足需求以及连接器的可靠性(如采用JST GH接口的Pixhawk 4更可靠)[5](@ref)。
  • 若选择飞控系统或进行软件开发,需评估PX4或ArduPilot等固件的功能、稳定性、社区支持及与项目的匹配度。
  • Pixhawk硬件 + PX4固件是一个经过广泛验证、社区支持强大且高度灵活的经典组合[1](@ref)。

更多资料