查看“︁PX4概览”︁的源代码
←
PX4概览
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
== 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): {| class="wikitable" |- ! 架构层级 ! 功能描述 |- | '''飞行控制栈 (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): {| class="wikitable" |- ! 文件夹路径 ! 功能描述 |- | <code>boards/</code> | 硬件平台配置,包含Pixhawk系列等飞控板的启动脚本和内存映射定义。 |- | <code>src/drivers/</code> | 外设驱动实现,包含IMU、GPS、PWM输出等硬件抽象层接口。 |- | <code>src/modules/</code> | 飞行控制核心模块,如姿态估计、导航算法等。 |- | <code>msg/</code> | uORB消息定义文件(.msg),用于生成通信数据结构。 |- | <code>ROMFS/</code> | 嵌入式文件系统,包含启动配置脚本和参数默认值。 |- | <code>cmake/</code> | CMake构建配置,定义平台相关的编译规则。 |- | <code>platforms/</code> | 操作系统抽象层,包含NuttX/Linux等RTOS的接口适配。 |} * <code>src/lib/</code> 包含公共算法函数与数学工具函数,如EKF(扩展卡尔曼滤波)、矩阵计算、控制算法库等[1](@ref)。 * <code>mavlink/</code> 包含MAVLink协议相关头文件,用于飞控与地面站等的通信[4](@ref)。 === 应用领域 === PX4被广泛应用于[5](@ref): * 航拍与测绘 * 农业植保 * 环境监测 * 搜索与救援 * 科研教育 * 物流运输 === 参考资料 === * [https://px4.io/ PX4官网] * [https://docs.px4.io/main/en/ PX4用户指南] * [https://qgroundcontrol.com/ QGroundControl官网] * 知乎文章:《开源飞控PX4的起源与发展》[https://zhuanlan.zhihu.com/p/73405858]
返回
PX4概览
。
导航菜单
个人工具
创建账号
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
无人智胜
PX4 介绍
PX4与ArduPilot对比
PX4与Pixhawk关系
PX4与NuttX关系
PX4 官方镜像
发布日志
QGC地面站下载
新手上路
首次飞行
机架选择
传感器校准
遥控器连接
遥控器校准
电机电调测试
飞行模式
六段开关飞行模式
参数列表
任务规划
安全飞行
飞控硬件
Pixhawk飞控
电机与电调
传感器指南
GPS与罗盘
数传与遥控
PX4二次开发
PX4源码目录
PX4核心源码
PX4机型目录
4001_quad_x
编译PX4
模块开发
驱动程序
仿真教程
调试技巧
传感器与估计
EKF2状态估计
IMU校准
视觉定位
光流定位
日志分析
机架与平台
飞行器气动布局
多旋翼无人机
固定翼无人机
VTOL无人机
无人地面车辆
无人船
外围设备
相机与云台
任务载荷
避障与导航
RTK-GPS
编程与开发
Linux
ESP32
STM32
ArduPilot
修改侧边栏
社区讨论
贡献文档
PX4官网
开发文档
工具
链入页面
相关更改
页面信息
导航
特殊页面