PX4概览:修订间差异
跳转到导航
跳转到搜索
创建页面,内容为“== 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):
- 航拍与测绘
- 农业植保
- 环境监测
- 搜索与救援
- 科研教育
- 物流运输
参考资料
- PX4官网
- PX4用户指南
- QGroundControl官网
- 知乎文章:《开源飞控PX4的起源与发展》[1]