- 博客(79)
- 资源 (1)
- 收藏
- 关注
原创 BetaFlight代码解析(12)—电机输出系统
摘要:电机输出系统是飞行控制的关键环节,负责将PID控制信号转换为ESC和舵机所需的PWM信号。系统采用pwmOutputPort_t结构管理输出通道,支持普通和3D两种飞行模式,通过analogInitEndpoints()函数计算脉冲宽度范围。提供电机状态管理、伺服控制功能,并依赖硬件定时器生成精确信号。系统与PID控制器、遥控配置、定时器等子系统紧密集成,确保飞行控制的精确执行。
2025-11-26 07:45:00
100
原创 BetaFlight代码解析(11)— 遥控输入和故障安全
本文档详细介绍了Betaflight的遥控(RC)输入处理系统和故障保护机制。系统通过多种协议接收无线电信号,包含信号处理、验证和故障保护功能。当信号丢失或无效时,系统会执行预设的故障保护程序,包括自动着陆、立即解除武装或GPS返航等模式。文档阐述了系统架构、状态机运行机制、协议支持、信号处理参数范围以及信号质量监测方法。系统通过任务调度与飞行控制集成,支持灵活的通道映射和缩放配置,并提供多种故障保护模式选择,确保飞行器在信号异常时的安全操作。
2025-11-25 08:00:00
3
原创 BetaFlight代码解析(10)— 电池和电源监控
Betaflight的电池和电源监控系统由电池状态管理、电压监控和电流监控三个子系统组成,可实时监测电池健康状况。系统通过状态机跟踪五种电池状态(初始化、正常、警告、严重、未检测),支持自动/手动电池计数检测,并提供低电压保护功能。电压监测支持多种输入源并具备稳定性检测,电流监测可计算毫安时和瓦时消耗。系统通过参数组配置管理,与飞行控制系统深度集成,实现智能电源管理和安全保护。
2025-11-24 07:45:00
6
原创 BetaFlight代码解析(9)— GPS定位系统
Betaflight的GPS定位系统通过多模块协同处理GPS数据,结合传感器融合实现精确位置和高度估计。系统支持UBLOX和NMEA协议,采用状态机控制初始化配置流程,并维护核心数据结构存储位置、速度、卫星信息等关键数据。UBLOX配置采用版本适配机制,支持动态导航模型和SBAS增强定位。通过串口数据接收、协议解析和帧验证流程更新解决方案数据,并结合气压计计算高度信任度。系统提供丰富的配置选项,支持GPS救援、OSD显示等功能,并通过LED直观显示状态。该架构为无人机导航和返航提供了可靠的位置基准。
2025-11-21 07:30:00
7
原创 BetaFlight代码解析(8)— 陀螺仪和加速度计处理
Betaflight的IMU传感器处理系统详细介绍了陀螺仪和加速度计的数据采集、滤波、校准全流程。系统支持多传感器冗余处理,包含动态低通滤波(根据油门调整截止频率)、运动检测校准、数据平均融合等核心功能。重点阐述了陀螺仪更新流程(校准、对准、下采样)和加速度计衍生值计算(加加速度、震级),同时配备溢出检测、偏航旋转恢复等多重安全机制。该系统通过参数组实现灵活配置管理,为飞行控制提供精准可靠的传感器数据。
2025-11-20 07:45:00
173
原创 BetaFlight代码解析(7)— 传感器系统
Betaflight固件的传感器系统负责收集飞行控制器所需的关键数据,包括陀螺仪、加速度计、磁力计、气压计、GPS和电池监测等。该系统采用标准化处理流程:初始化配置、定期数据更新、滤波处理及飞行控制集成。各传感器按优先级分配不同采样频率,陀螺仪数据(8-32kHz)优先级最高。系统配备多种滤波算法(PT1/2/3、双二阶)以优化数据质量,并提供各类传感器的校准功能(零偏校准、加速度计水平校准、磁力计补偿等)。这种模块化设计确保了飞行控制的稳定性和精确性。
2025-11-19 07:45:00
537
原创 BetaFlight代码解析(6)— IMU和姿态系统
摘要:本文介绍了一种基于MahonyAHRS算法的飞行器IMU姿态系统,该系统融合陀螺仪、加速度计和磁力计/GPS数据,通过四元数、旋转矩阵和欧拉角三种数学表示实现高精度姿态估计。系统采用自适应增益控制,根据飞行状态动态调整参数,并与飞行控制子系统深度集成,提供实时姿态数据用于飞行稳定控制。文中详细阐述了系统架构、核心算法、参数配置以及与飞行控制的交互,同时介绍了包括单元测试和软件在环测试在内的验证方法,确保系统可靠性和实时性。
2025-11-18 08:00:00
380
原创 BetaFlight代码解析(5)— PID控制器
Betaflight的PID控制器是保持飞行器稳定的核心算法,通过比例、积分、微分三组件实时校正姿态误差。该系统还包含前馈、动态D项限制、反重力等高级功能,通过多PID配置文件实现灵活调参,并提供多种调试模式分析性能。这些优化使控制器在保证稳定性的同时提高响应速度,是飞行调优的关键部分。
2025-11-17 08:23:00
1151
原创 BetaFlight代码解析(4)- 飞行控制系统
摘要:Betaflight飞行控制系统采用模块化实时架构,核心包括PID控制器(处理三轴姿态误差)、IMU传感器融合(提供精确姿态数据)和混控系统(转换控制指令)。系统支持多种飞行模式,通过任务调度器确保确定性执行(1-8kHz),并提供调试工具(PID时序分析、黑匣子记录)和配置文件管理(4种PID/速率配置)。其精密控制算法(含反重力/前馈等)与可扩展架构,能适应各类飞行器配置,实现稳定且高性能的飞行控制。(149字)
2025-11-14 08:15:00
897
原创 BetaFlight代码解析(3)- 构建 Betaflight
本文档详细介绍了Betaflight固件的构建流程,包括系统要求、开发环境搭建和构建过程。主要内容涵盖:1.构建前的准备工作,包括Git、GNUMake、ARM-GCC等工具的安装;2.支持的操作系统(Linux/macOS/Windows)和构建系统架构;3.详细的构建步骤和命令,如特定目标构建、清理构建产物等;4.版本控制和配置管理;5.构建输出类型和命名规则;6.开发者工具和持续集成支持;7.常见问题排查方法。文档提供了从源代码构建到固件刷写的完整指南,适合开发人员参考。
2025-11-13 15:43:55
1071
原创 BetaFlight代码解析(2)- 系统架构
Betaflight飞行控制系统采用实时控制架构,核心为协作式任务调度器,协调传感器处理、电机控制等子系统。系统从main()入口初始化后进入调度循环,通过参数组框架管理配置,支持运行时切换。关键组件包括电机混控器(支持多种机型混控算法)和状态管理系统(处理启动、飞行模式及错误状态)。系统采用共享全局状态而非消息传递实现子系统通信,如蜂鸣器通过beeper()函数与飞行控制联动。整个架构注重实时性,通过配置持久化和类型安全设置确保稳定运行。
2025-11-12 09:00:00
249
原创 BetaFlight代码解析(1)- 概览
本文概述了开源飞行控制器固件Betaflight的系统架构和功能特性。该固件采用模块化设计,支持多旋翼和固定翼飞行器,兼容STM32系列处理器。核心功能包括运动控制、传感器集成、通信系统和用户界面,采用GPLv3许可证。项目采用年度双版本发布周期,支持统一目标配置和持续集成开发流程,要求开发者遵循严格的贡献规范。用户可通过配置工具和社群支持快速入门。
2025-11-11 08:38:39
1043
原创 PX4-Autopilot代码解析(22)— Gazebo模拟
PX4的Gazebo仿真框架采用GZBridge组件实现与GazeboGarden的集成,支持100Hz的双向通信。该系统提供时钟同步、传感器数据采集(支持多种传感器类型)和执行器命令传输功能,并处理FLU与FRD坐标系的转换。支持多种无人机配置,参数化控制传感器集成和功能分配。传感器仿真采用PX4直接计算和Gazebo数据桥接两种方式,包含噪声模型处理。通过SIM_GZ_EN等参数组实现功能配置,启动过程由POSIX初始化系统根据环境变量和参数决定。GZBridge初始化顺序确保传感器时序正确。
2025-11-07 07:58:35
939
原创 PX4-Autopilot代码解析(21)-仿真与测试
本文介绍了PX4软件在环(SITL)仿真系统架构,该系统无需物理硬件即可测试飞行控制算法。系统支持多种仿真后端(Gazebo、jMAVSim等),通过分层脚本自动选择适配器,并详细说明了Gazebo桥接器的关键组件和坐标转换机制。文中还描述了传感器数据模拟方法、机身配置方案以及基于参数控制的传感器模块,为算法验证提供了真实数据生成功能。该系统通过灵活的参数配置,支持开发人员模拟不同传感器场景和测试环境。
2025-11-06 08:30:00
1095
原创 PX4-Autopilot代码解析(20)-手动控制界面
摘要:该系统实现了一个多源手动控制接口,支持无线电遥控器和MAVLink操纵杆输入,通过RC通道校准、功能映射和输入源选择等处理流程,生成标准化的控制指令。系统具备安全开关处理、飞行模式切换和摇杆武装手势检测功能,采用uORB主题进行数据传递,并通过参数配置系统行为。主要模块包括RC输入处理和手动控制选择,可处理模拟/数字输入并保证飞行安全。
2025-11-05 07:56:44
983
原创 PX4-Autopilot代码解析(19)- MAVLink 实现
摘要:PX4的MAVLink协议实现支持自动驾驶仪与外部系统的通信,采用多实例架构处理UART/UDP传输。核心功能包括消息序列化、uORB系统集成、参数同步管理和多模式消息流配置。系统支持实例间消息转发和硬件在环模拟,通过参数驱动配置实现灵活的端口映射。该实现作为PX4内部uORB消息系统与外部MAVLink协议的桥梁,提供心跳、GPS、姿态等关键数据的双向通信能力。
2025-11-04 08:49:47
331
原创 PX4-Autopilot编译环境配置
摘要: 针对PX4环境配置时出现的Python版本依赖冲突(Jammy系统默认安装Python 3.10.6-1~22.04.1,而python3-dev依赖3.10.6-1~22.04),提供已验证解决方案: 强制刷新软件源:sudo apt clean && sudo apt update --fix-missing; 优先降级Python(推荐):安装并锁定标准版本(3.10.6-1~22.04),再安装匹配的python3-dev; 高级方案:手动下载带.1的Dev包安装,需同步处理
2025-11-03 09:20:23
348
1
原创 PX4-Autopilot代码解析(18)-通信系统
摘要:PX4通信系统实现了自动驾驶仪的内外部通信功能,包括MAVLink协议的外部通信和uORB框架的内部消息传递。系统支持多实例MAVLink配置,处理来自遥控器和外部设备的手动控制输入,并通过可配置的消息流传输关键数据。文档详细描述了系统架构、消息处理机制和通信配置选项,为PX4与地面站、配套计算机和遥控器的交互提供了完整解决方案。
2025-11-03 08:19:14
638
原创 PX4-Autopilot代码解析(17)-执行器输出系统
摘要:PX4执行器输出系统是连接控制算法与硬件执行器的关键接口,支持PWM、DShot和PX4IO三种输出协议。系统采用模块化架构,包含PWMOut、DShot和PX4IO三个核心驱动,均实现标准化的OutputModuleInterface接口。PWM输出采用硬件定时器管理,DShot支持数字ESC协议及双向通信,PX4IO则通过UART与专用板通信并具备安全特性。系统通过平台抽象层实现硬件无关性,以固定周期(PWM 400Hz/DShot最高8kHz)完成从控制指令到物理输出的转换流程,包括安全评估、输
2025-11-02 10:39:51
894
原创 PX4-Autopilot代码解析(15)-多旋翼飞行器控制
多旋翼飞行器采用级联PID控制系统实现位置和速度控制,包含位置、速度和加速度三个控制回路。系统以约100Hz频率运行,通过位置控制器生成速度设定点,速度PID控制器输出加速度设定点,最终转换为推力和姿态指令。核心模块处理传感器数据、轨迹生成和约束管理,支持起飞序列、平滑轨迹和抗饱和逻辑。关键参数包括位置/速度增益、速度/倾斜限制和悬停推力估算,系统还具备动态约束调整和推力分配功能,优先保障垂直控制安全。
2025-10-30 08:15:00
678
原创 PX4-Autopilot代码解析(15)-多旋翼飞行器控制
摘要:本文介绍了多旋翼飞行器的级联PID控制系统,采用三层控制回路(位置、速度、加速度)实现精确飞行控制。系统以100Hz频率运行,包含位置控制器、速度PID控制器和推力/姿态转换模块。关键组件包括位置平滑处理、航向控制、动态约束管理和抗饱和逻辑。系统通过参数化控制增益(MPC_XY_P等)和运行限制(速度/倾斜角度/推力)实现稳定飞行,并支持自动参数调节。最后阶段将加速度指令转换为推力矢量和姿态设定值,在推力饱和时优先保证垂直控制稳定性。
2025-10-30 07:53:26
590
原创 PX4-Autopilot代码解析(14)-固定翼控制
本文档详细介绍了PX4中固定翼控制系统的级联架构设计,主要包含三个核心模块:TECS总能量控制系统负责管理飞机的动能和势能平衡;姿态控制系统将导航指令转换为机体角速率设定值;速率控制系统则最终生成执行器控制命令。系统采用空速补偿机制,支持多种飞行模式,并通过参数化设计实现灵活配置。文档同时提供了各控制模块的关键参数配置范围,为系统调试提供参考。
2025-10-28 08:43:32
425
原创 PX4-Autopilot代码解析(13)-车辆控制
本文档介绍了PX4飞行控制系统中不同机型的控制架构与实现方法。系统采用级联控制回路将轨迹设定值转换为执行器指令,包含多旋翼、固定翼和垂直起降三种机型控制模块。多旋翼采用PID级联控制(100Hz),固定翼使用TECS能量管理系统,垂直起降则结合两者优势。控制核心库包括位置控制、TECS算法、航点轨迹平滑和起飞管理等功能模块,通过uORB主题与飞行管理系统集成,支持位置、速度、加速度和姿态等多种设定点输入模式。
2025-10-28 08:30:00
1606
原创 PX4-Autopilot代码解析(12)-飞行模式管理器
PX4飞行模式管理器是自动驾驶系统的核心模块,在50Hz工作周期内协调飞行任务并生成轨迹设定点。它接收导航命令,通过分层任务结构(包括自动导航、手动控制和紧急模式等)实现飞行模式切换,并输出位置控制指令。系统采用工作队列模型,支持任务平滑切换和故障安全机制,同时与位置控制器、导航器等模块深度集成,确保飞行控制的实时性和可靠性。关键功能包括航点跟踪、地形跟随、应急处理等,通过参数配置可调整飞行特性。
2025-10-27 08:26:06
832
原创 PX4-Autopilot代码解析(11)-导航模块
PX4导航模块是自主飞行的核心协调器,负责管理任务执行、RTL操作及多种飞行模式(起飞/降落/巡航)。该模块通过生成位置设定点连接高级飞行计划与低级控制,采用状态机机制在不同导航模式间切换。关键功能包括:处理MAVLink飞行指令、执行复杂任务序列(支持航点爬升/VTOL过渡等)、智能RTL目标选择(考虑距离/参数/安全因素),并与飞行堆栈通过uORB消息深度集成。系统采用参数化配置(NAV_/RTL_/MIS_*系列参数),支持地理围栏检测和运行时行为调整,实现安全可靠的自主飞行控制。
2025-10-23 09:00:00
717
原创 PX4-Autopilot代码解析(10)-指挥官模块
PX4自动驾驶系统的Commander模块是核心状态机,负责协调飞行器状态转换和安全逻辑。该模块通过多层架构实现布防/撤防管理、飞行模式切换、故障安全处理等功能,包含UserModeIntention、HealthAndArmingChecks等关键组件。系统采用严格的命令验证机制,支持12种标准命令处理,并通过Failsafe系统集成多重故障保护策略。模块还实现CPU/RAM资源监控、地理围栏检测等健康检查功能,最终发布权威的飞行控制状态信息。这种设计确保了飞行器在各种工况下的安全可靠运行。
2025-10-22 08:00:00
682
原创 PX4-Autopilot代码解析(9)- 飞行控制系统
PX4飞行控制系统(FCS)采用分层架构设计,由指挥官(Commander)、导航器(Navigator)和飞行模式管理器三大核心组件构成。指挥官负责状态管理、布防/撤防和模式转换;导航器处理高级导航功能如任务执行和RTL返航;飞行模式管理器则根据当前状态选择合适的飞行任务生成轨迹设定点。系统通过定义明确的导航状态和数据结构实现组件间通信,支持多种飞行模式的转换与指令处理,为飞行器提供从高级任务规划到低级控制的无缝衔接。
2025-10-21 08:03:22
1053
原创 PX4-Autopilot代码解析(8)-传感器集成
PX4传感器集成系统采用模块化架构,通过uORB主题实现传感器数据采集、验证和处理。系统支持GPS/GNSS(含u-blox/Septentrio协议)、UAVCAN总线和地磁模型等多源传感器,提供参数化配置接口。核心组件包括协议解析、数据验证和状态估计模块,其中GPS子系统支持双天线航向和RTK校正,Septentrio驱动实现SBF协议全解析,UAVCAN框架标准化传感器桥接,WMM模型提供磁场补偿。系统通过多层验证机制(范围检查、物理一致性等)确保数据可靠性,并采用滞后延迟策略管理状态切换。
2025-10-20 09:22:40
624
原创 PX4-Autopilot代码解析(7)-扩展卡尔曼滤波器(EKF2)
PX4自动驾驶系统的EKF2扩展卡尔曼滤波器模块通过多传感器数据融合实现飞行器状态估计。该模块采用分层架构设计,包含状态预测、协方差预测和测量更新等核心功能,支持多种高度源融合和故障检测机制。EKF2具有高度可配置性,通过参数系统控制不同传感器组合和算法行为,并提供多实例运行能力增强容错性。其计算密集型特性经过优化,以100Hz速率输出姿态、位置、速度等关键状态信息,为飞行控制系统提供可靠的状态估计基础。
2025-10-17 08:00:00
1032
原创 PX4-Autopilot代码解析(6)-姿态估计
PX4系统的EKF2模块采用扩展卡尔曼滤波器实现多传感器融合,为飞行器提供稳健的状态估计。该模块采用模块化架构,支持灵活配置IMU、GNSS、磁力计等多种传感器源,通过时间对齐机制处理传感器延迟。核心算法维护包含姿态、速度、位置等状态向量,通过预测和更新阶段实现传感器数据融合。系统提供参数化配置接口,可调整噪声模型、融合模式及创新门限值,确保在不同环境和故障情况下的可靠运行。
2025-10-16 08:45:08
973
原创 PX4-Autopilot代码解析(5)-启动和初始化
PX4系统启动过程详解:介绍了基于ROMFS的初始化流程,包括主启动脚本rcS的执行顺序、硬件初始化、参数加载和模块启动。系统通过严格的启动序列确保飞行控制系统的可靠性,支持特定主板定制和用户自定义点,并提供参数备份、模块重启等错误恢复机制。构建时生成的ROMFS包含了所有启动脚本和配置,根据SYS_AUTOSTART参数选择机身配置,在POSIX/SITL环境下还支持模拟器特定模块和ROS2通信配置。
2025-10-14 08:00:00
591
原创 PX4-Autopilot代码解析(4)-板级支持和硬件抽象
PX4平台通过抽象层实现了跨硬件平台的统一接口,主要包括I/O定时器抽象、引导加载程序、时钟配置和RTOS集成等核心功能。该架构采用"通用API+架构实现"的设计模式,为不同微控制器系列提供一致的编程接口,同时保留硬件特性。关键实现包括:分层架构设计(通用层、架构实现层、板级配置层)、内存优化管理、跨平台调试系统,以及基于NuttX和POSIX的RTOS适配方案。这种设计实现了PX4在嵌入式硬件和仿真环境中的可移植性,同时保持高性能和硬件资源的高效利用。
2025-10-13 07:30:00
752
原创 PX4-Autopilot代码解析(3)-构建系统
PX4构建系统基于CMake(最低3.10版本),支持多平台固件编译,包括NuttX嵌入式控制器、POSIX模拟环境等。系统通过根CMakeLists.txt初始化构建流程,集成版本控制、Python检测和平台配置功能。关键组件包括自定义CMake模块处理编译器标志、元数据生成和git版本信息,以及平台/主板配置文件。构建过程包含代码生成阶段(uORB消息、参数、元数据等),支持模块化配置和外部模块集成。系统提供多种优化选项(CCache、Ninja、LTO等)加速构建,并支持Docker容器确保环境一致性
2025-10-12 12:57:54
1013
原创 PX4-Autopilot代码解析(2)-系统架构
PX4自动驾驶仪是一款模块化无人机飞行控制系统,采用发布-订阅架构。核心组件包括通信机制(uORB内部通信和MAVLink外部通信)、独立功能模块(如导航器、控制器等)和参数系统。系统支持多平台运行,通过硬件抽象层实现跨平台兼容性,采用CMake构建系统。PX4的模块化设计使其适用于多种飞行器类型,具有良好的可扩展性和可配置性。
2025-10-03 17:15:53
664
原创 PX4-Autopilot代码解析(1)-概述
PX4是一款开源自动驾驶仪软件栈,支持无人机、探测车等多种自动驾驶飞行器。其核心特点包括多平台兼容性、模块化架构和实时控制能力。系统采用分层设计,通过uORB消息总线实现组件通信,包含状态估计、飞行控制等关键子系统。PX4使用CMake构建系统和Kconfig配置管理,支持跨平台开发,并提供软件在环测试、硬件在环测试等完善的开发工具链。该架构为各类自动驾驶飞行器提供了灵活可靠的解决方案。
2025-10-01 18:45:18
667
原创 QGC代码解析之地图和位置服务(二十三)
摘要: QGroundControl的地图和视频系统采用模块化架构,集成多源地图提供商和视频流协议。地图系统基于QtLocation插件,支持在线/离线图块缓存;视频系统通过GStreamer实现低延迟流媒体,支持RTSP/UDP等协议,并具备动态硬件解码器选择、热成像叠加和智能存储管理功能。系统针对不同平台(桌面/移动/Herelink)进行优化,通过条件编译适配硬件特性,提供跨平台的航拍任务规划与实时监控能力,核心功能包括多模式缩放、MAVLink相机控制及自动存储清理机制。
2025-09-23 08:53:55
1233
原创 MissionPlanner架构梳理之(十八)视频流
MissionPlanner通过集成GStreamer框架实现无人机视频流传输,支持H.264/H.265格式和UDP/RTSP协议。系统采用模块化架构,包含自动发现、管道管理和UI集成组件,提供预配置支持HereLink/SkyViper等设备。用户可自定义视频流参数,需安装GStreamer并正确配置网络。该系统实现低延迟视频传输,与飞行数据无缝集成,为自动驾驶车辆提供强大的实时监控能力。
2025-09-22 12:30:00
1074
原创 QGC代码解析之视频流和管理(二十二)
摘要:QGroundControl的视频流系统支持多种协议(RTSP/UDPH.264/H.265等)和USB摄像头,采用GStreamer进行跨平台解码优化。系统包含视频配置、流处理、显示渲染(支持多种适配模式)及录制功能,并与相机控制系统集成,支持热成像显示。通过特定平台解码器选择和崩溃预防机制确保稳定性,同时提供自动文件管理的视频录制功能。架构上分为视频设置、流验证、显示组件等模块,支持动态硬件检测和配置验证。
2025-09-22 08:08:54
1157
原创 QGC代码解析之媒体和流媒体系统(二十一)
QGroundControl视频系统支持多协议流媒体、摄像头控制与媒体管理,采用模块化架构处理视频配置、协议、渲染和录制。系统支持RTSP/UDP/TCP等协议,通过GStreamer处理视频流,具备动态源检测、硬件解码器选择及低延迟优化功能。提供多种缩放模式、热成像叠加和自动存储管理的视频录制,并与MAVLink摄像头控制深度集成,支持缩放与万向节操作。系统针对不同平台(移动/桌面)进行优化,包含UVC摄像头支持和Herelink设备特殊配置。
2025-09-19 11:45:00
853
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅