目录
参考:px4飞控官方手册
PX4 System Architecture | PX4 Guide (main)
PX4架构图
下图提供了基于飞行控制器的典型 “简单” PX4 系统的高级概述。
px4系统分为硬件和软件部分
硬件部分
1、飞控系统:
飞行控制器,最中间的部分,飞行控制器主要运行 PX4 飞行堆栈,通常包括内部 IMU、指南针和气压计。
是无人机的核心控制部分,主要由飞行控制器(FC)、传感器等组成。飞行控制器根据传感器采集的数据,如陀螺仪测量的姿态信息、加速度计测量的加速度信息、磁力计提供的航向信息等,通过内置的控制算法计算出需要的控制量,进而控制电机的转速,实现对无人机姿态、位置和飞行轨迹的精确控制。
2、动力系统:
- Motor ESCs connected to PWM outputs, DroneCAN (DroneCAN allows two-way communication, not single direction as shown) or some other bus.
连接到 PWM 输出、DroneCAN(DroneCAN 允许双向通信,而不是如图所示的单向通信)或其他总线的电机 ESC
电机、电调、螺旋桨。电机为无人机提供动力,电调用于控制电机的转速,螺旋桨在电机驱动下产生推力,使无人机能够起飞和飞行,电池则为整个系统提供电力。
3、导航系统
通常包含全球定位系统(GPS)模块、惯性测量单元(IMU)等。GPS 模块用于获取无人机的地理位置信息,IMU 则实时测量无人机的加速度和角速度,两者结合可以实现无人机的定位、导航和姿态解算,帮助无人机确定自身位置和飞行方向,实现自主飞行。
4、通信系统
分为无线通信模块和数据链路。无线通信模块负责无人机与地面控制站或遥控器之间的通信,常见的有蓝牙、Wi-Fi、数传电台等,数据链路则确保飞行数据的实时传输和指令的准确接收,包括上行链路(从地面控制站到无人机)和下行链路(从无人机到地面控制站)。
5、任务载荷系统
- 相机或其他负载。相机可以连接到 PWM 输出或通过 MAVLink 连接。
根据无人机的不同应用场景,可搭载各种任务载荷,如相机、摄像机、激光雷达、红外热成像仪、农药喷洒装置、货物运输装置等,以完成航拍、测绘、巡检、植保、物流等特定任务。
6、飞行平台
即无人机的机身结构,包括机架、机翼、起落架等部分,为无人机提供物理支撑和飞行姿态的基础。它的设计需考虑空气动力学、结构强度、重量分布等因素,以确保无人机在飞行过程中的稳定性和机动性。
软件部分
1、飞行控制软件
运行在飞控系统的飞行控制器上,是无人机软件架构的核心部分。它实现了各种飞行控制算法,如姿态控制、位置控制、轨迹跟踪等,负责处理传感器数据,生成控制指令,以确保无人机的稳定飞行和精确控制。同时,飞行控制软件还具备故障检测与保护功能,在遇到异常情况时能够采取相应的措施,保障无人机的安全。
飞行控制软件的分层架构
- 驱动层(Drivers):最底层,负责管理传感器(如加速度计、GPS)和执行器(如电机、舵机),实现硬件设备与软件的交互,是系统控制硬件的基础。
- 中间件层(Middleware):包含 RTPS(实时发布订阅协议)、MAVLink(无人机通信协议)、UORB(PX4 内部消息通信机制),主要解决模块间的数据传输与通信问题,是系统各组件交互的桥梁。
- 应用 / 模块层(Apps/Modules):最上层,集成 Commander(指令处理,如飞行模式切换)、Navigator(导航,规划飞行路径)、Controllers(控制器,执行姿态 / 位置控制算法)、Logger(日志记录,存储飞行数据)等功能模块,实现无人机的具体业务逻辑,如飞行控制、任务执行。
2、地面控制软件
- 地面站计算机通常运行 QGroundControl (或其他一些地面站软件)。 它还可以运行机器人软件,例如MAVSDK 的 (打开新窗口)或 ROS 的
运行在地面控制站的计算机或移动设备上,为操作人员提供人机交互界面。通过地面控制软件,操作人员可以实时监控无人机的飞行状态,包括姿态、位置、电量等信息,发送飞行指令,进行航线规划和任务设置,同时还能对接收的无人机数据进行显示、分析和存储。
3、导航与定位软件:
主要用于处理导航系统获取的数据,实现无人机的定位、导航和路径规划。它结合 GPS 信息、IMU 数据以及地图数据等,计算出无人机的当前位置、速度和航向,并根据预设的任务目标规划出飞行路径,引导无人机按照预定路线飞行。
4、通信协议软件:
负责管理无人机与地面控制站或遥控器之间的通信协议,确保数据的正确传输和解析。它对上行和下行数据进行打包、解包处理,实现指令的发送和接收,以及飞行状态信息、传感器数据等的实时反馈,保证通信的稳定性和可靠性。
5、任务管理软件:
根据无人机的具体任务需求进行设计,用于管理和控制任务载荷的运行。例如,在航拍任务中,任务管理软件可以控制相机的拍摄参数、拍摄时机和拍摄模式;在巡检任务中,它可以根据预设的路线和检测点,控制传感器进行数据采集和分析。