PX4概览:修订间差异

来自无人智胜
跳转到导航 跳转到搜索
Root留言 | 贡献
创建页面,内容为“== PX4自动驾驶系统 == '''PX4'''是一款高性能、开源的全自主无人机飞行控制软件(固件),专为无人机及其他自主车辆系统设计。它提供了一套完整的自动驾驶解决方案,是全球无人机领域应用最广泛的飞控系统之一[5](@ref)。 === 起源与历史 === PX4 的故事始于**2008年**瑞士**苏黎世联邦理工学院(ETH Zurich)** 计算机视觉与几何实验室(CVG Lab)的一个研…”
 
(没有差异)

2025年9月21日 (日) 04:02的最新版本

PX4自动驾驶系统

PX4是一款高性能、开源的全自主无人机飞行控制软件(固件),专为无人机及其他自主车辆系统设计。它提供了一套完整的自动驾驶解决方案,是全球无人机领域应用最广泛的飞控系统之一[5](@ref)。

起源与历史

PX4 的故事始于**2008年**瑞士**苏黎世联邦理工学院(ETH Zurich)** 计算机视觉与几何实验室(CVG Lab)的一个研究课题[5](@ref)。

  • 2009年:团队以 **“Pixhawk”** 为名,赢得了欧洲微型飞行器竞赛的室内自主飞行类别项目,随后开源了代码。
  • 2011年:软件经历第四次重写,达到预期目标,由此命名为 **PX4**(“P”代表Pixhawk硬件,“X”代表跨平台,“4”象征第四代飞控系统)。硬件也同步迭代。
  • 2013年:PX4 的第一个稳定发布版面世。全名为 Flight Management Unit version 2 (FMUv2) 的硬件被正式命名为 Pixhawk 发布。
  • 2014年Dronecode 基金会成立,旨在使所有开源无人机项目保持独立,吸引优秀开发者,建立可持续发展的生态[5](@ref)。

核心特点

PX4的主要特点包括:

  • 开源性:代码公开,允许审查、修改和自定义,社区驱动发展[5](@ref)。
  • 模块化设计:不同的功能(如状态估计、控制、导航)作为独立模块运行,通过消息总线(uORB)通信,便于开发和维护[3,5](@ref)。
  • 实时性能:基于NuttX等实时操作系统(RTOS)确保稳定和确定性的性能,满足无人机的严格时序要求[3,5](@ref)。
  • 跨平台支持:可在多种硬件平台上运行,如Pixhawk系列飞控板及基于Linux的计算平台[5](@ref)。
  • 广泛的机型支持:支持多旋翼、固定翼、垂直起降(VTOL)、无人车(Rover)、无人船(Boat)等多种运载器类型[5](@ref)。

系统架构

PX4采用分层和模块化设计,其核心架构主要包含以下部分[3,5](@ref):

架构层级 功能描述
飞行控制栈 (Flight Stack) 包含状态估计、导航和控制算法,是飞控的核心智能部分。主要包括估计器(Estimator)、控制器(Controller)和混控器(Mixer)。
中间件 (Middleware) 提供内部模块间通信(如基于发布-订阅模型的uORB)和外部通信(如MAVLink协议)的核心服务。抽象底层硬件细节,为上层应用提供统一接口。
操作系统与硬件抽象层 (OS & HAL) PX4通常运行在NuttX实时操作系统(RTOS)上,以满足严格的时序要求。硬件抽象层(HAL)则屏蔽了不同硬件的差异。

核心功能

PX4的功能非常丰富,其核心特性包括[5](@ref):

  • 多种飞行模式:从完全手动的“自稳模式”到全自主的“任务模式”,满足不同级别的控制需求。
  • 先进的状态估计:通过扩展卡尔曼滤波 (EKF) 等算法,融合多传感器(IMU、GPS、磁罗盘、气压计等)数据,提供稳定可靠的位置和姿态估计。
  • 任务规划与自主飞行:可通过地面站软件(如QGroundControl)规划复杂的飞行航点任务,并自动执行。
  • 安全机制:具备完善的故障保护功能,如在信号丢失、电池电量过低等情况下的自动返航或降落。
  • 硬件支持与兼容性:PX4 最初专为 Pixhawk 系列飞控硬件设计和优化,但它也具有高度的可移植性,可以运行在其他多种兼容的飞行控制硬件上。

软件开发与生态

PX4拥有强大的开源生态系统和活跃的全球社区[5](@ref)。

  • 开发环境:推荐使用Visual Studio Code (VS Code)进行开发。
  • 地面站软件:QGroundControl是官方的地面站软件,用于固件烧录、参数调整、飞行监控和任务规划。
  • 仿真工具:支持软件在环(SITL)和硬件在环(HITL)仿真,便利开发和测试。
  • 社区支持:由Dronecode基金会支持,吸引了众多商业公司和科研机构的参与。丰富的在线文档、教程、论坛讨论和开源代码,使得开发者可以快速上手、二次开发并贡献自己的力量[5](@ref)。

目录结构解析

PX4源码采用模块化设计,其主要文件夹功能如下[1,2,4](@ref):

文件夹路径 功能描述
boards/ 硬件平台配置,包含Pixhawk系列等飞控板的启动脚本和内存映射定义。
src/drivers/ 外设驱动实现,包含IMU、GPS、PWM输出等硬件抽象层接口。
src/modules/ 飞行控制核心模块,如姿态估计、导航算法等。
msg/ uORB消息定义文件(.msg),用于生成通信数据结构。
ROMFS/ 嵌入式文件系统,包含启动配置脚本和参数默认值。
cmake/ CMake构建配置,定义平台相关的编译规则。
platforms/ 操作系统抽象层,包含NuttX/Linux等RTOS的接口适配。
  • src/lib/ 包含公共算法函数与数学工具函数,如EKF(扩展卡尔曼滤波)、矩阵计算、控制算法库等[1](@ref)。
  • mavlink/ 包含MAVLink协议相关头文件,用于飞控与地面站等的通信[4](@ref)。

应用领域

PX4被广泛应用于[5](@ref):

  • 航拍与测绘
  • 农业植保
  • 环境监测
  • 搜索与救援
  • 科研教育
  • 物流运输

参考资料