无人机智能硬件【免费下载链接】qgroundcontrolCross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)项目地址https://gitcode.com/gh_mirrors/qg/qgroundcontrol点击查看免费下载本文基于仓库中的用户指南文档 docs/tr/qgc-user-guide/analyze_view/logging_setup.md土耳其语版与 英文版 内容一致结合 QGroundControl 源码中 ArduPilot 日志配置组件的实际实现展开讲解。导读本文讲解 QGroundControlQGC中面向 ArduPilot 载具的Log SetupVehicle Config Logging配置页面它解决飞行控制器记录什么、以什么方式记录、以多高速率记录这一核心问题。读完本文你将掌握该页面暴露的 11 个日志相关参数LOG_BACKEND_TYPE、LOG_BITMASK、EK3_LOG_LEVEL等的作用与推荐取值理解这些参数如何通过 QGC 标准参数系统Facts下发到飞控并学会使用官方故障排查清单定位日志缺样、存储不足等典型问题。页面入口与适用范围Log Setup页面位于Vehicle Config Logging仅对 ArduPilot 系列载具可用包括 Copter、Plane、Rover、Sub 等机型。它用于配置飞控记录什么内容、写到哪些后端、以多大速率记录。从源码结构看该页面由APMLoggingComponent组件承载组件注册在 src/AutoPilotPlugins/APM/APMAutoPilotPlugin.cc#L174-L176 中APMAutoPilotPlugin::vehicleComponents()创建APMLoggingComponent实例并加入组件列表随后与其他 Vehicle Config 页面一起按名称排序展示组件属性在 src/AutoPilotPlugins/APM/APMLoggingComponent.h 中可以看到该组件name()为 Loggingdescription()为 Configure ArduPilot logging parameters.且allowSetupWhileArmed()与allowSetupWhileFlying()均返回true——意味着飞行中或已解锁状态下也可打开该页面查看/调整日志配置无需降落。页面如何构建VehicleConfig.json 驱动的代码生成QGC 的 ArduPilot 配置页面并非手写 QML而是由 JSON 页面定义 代码生成器自动生成。日志页面的定义文件是 src/AutoPilotPlugins/APM/VehicleConfig/APMLogging.VehicleConfig.json它声明了三个分区sectionsStorage、Rate Limits、Options。组件的vehicleConfigJson()返回该 JSON 的 Qt 资源路径见 src/AutoPilotPlugins/APM/APMLoggingComponent.cc#L9-L12。构建阶段src/AutoPilotPlugins/APM/CMakeLists.txt#L81-L100 通过qgc_add_qml_codegen调用tools.generators.config_qml.generate_pages把*.VehicleConfig.json生成APMLoggingComponent.qml等页面文件。对用户而言这意味着两件事JSON 中所有控件都标注了optional: true当连接的固件/机型不支持某参数时对应控件会自动隐藏页面只会展示当前固件实际存在的参数使用 bitmask位掩码控件和 combobox下拉框控件直接呈现多选/枚举型参数例如LOG_BACKEND_TYPE、LOG_BITMASK以 bitmask 形式勾选LOG_DISARMED、EK3_LOG_LEVEL等以下拉框形式选择。核心参数详解页面暴露的参数共 11 个按下表分组。以下默认值来自仓库中的 ArduPilot 固件离线参数文件 src/FirmwarePlugin/APM/Copter.OfflineEditing.params#L552-L565Copter 机型默认值其他机型略有差异供参考。Storage存储分区参数页面标签作用Copter 默认值LOG_BACKEND_TYPELogging backends启用哪些日志后端SD 卡文件、MAVLink 流、板载 Flash位掩码可组合1仅 SD 卡文件LOG_BITMASKLogged data groups日志包含哪些数据组位掩码决定记录哪些传感器/状态数据180222Copter 默认组合LOG_MAX_FILESMaximum retained log files保留的最大日志文件数超过后最旧的被轮转删除500LOG_FILE_MB_FREEMinimum free space (MB)日志开始写入前SD 卡必须保留的最小剩余空间MB500要点说明LOG_BACKEND_TYPE默认值1与 ArduPilot 的位定义吻合1 文件后端写入 SD 卡2 MAVLink 流4 板载 Flash可以按需组合。若选择 MAVLink 后端日志会通过遥测链路持续下发需配合LOG_MAV_RATEMAX控制速率避免挤占遥测带宽LOG_BITMASK控制记什么。位掩码中不同的位对应 IMU、GPS、磁力计、控制输出等数据组完整位含义由 ArduPilot 固件定义QGC 仅以位掩码形式呈现。如需减少日志体积可在此取消不需要的数据组LOG_MAX_FILES/LOG_FILE_MB_FREE共同保障写不爆——前者限制文件数量防止无限增长后者在剩余空间低于阈值时停止写入避免 SD 卡写满影响其他功能。Rate Limits速率限制分区参数页面标签作用Copter 默认值LOG_FILE_RATEMAXMaximum file logging rate (Hz)文件后端最大记录速率HzSD 卡跟不上时降低此值0默认不限/按固件策略LOG_BLK_RATEMAXMaximum block logging rate (Hz)板载 Flash块后端最大记录速率Hz0LOG_MAV_RATEMAXMaximum MAVLink stream rate (Hz)MAVLink 日志流最大速率Hz0要点说明速率为 0 通常表示使用固件内置的默认速率上限三者的共同逻辑是背压保护文件写入、Flash 写入、MAVLink 下发各自独立限速。当出现日志缺样记录间隔异常、采样丢失时优先下调对应后端的速率上限而不是盲目调高这与下文故障排查清单的建议一致若使用高分辨率 IMU 数据组LOG_BITMASK中开启单位时间内数据量很大需要确保文件速率上限足以承接否则会丢样本。Options选项分区参数页面标签作用Copter 默认值LOG_DISARMEDLog while disarmed解锁disarmed状态下也记录日志用于 pre-arm 前诊断0关闭LOG_FILE_DSRMROTRotate log file on disarm/rearm每次解锁/上锁disarm/rearm后轮转新建日志文件0关闭LOG_REPLAYLog extra data for EKF replay记录 EKF 重放分析所需的额外数据0关闭EK3_LOG_LEVELEKF3 logging verbosity控制 EKF3 日志的详细程度0其中EK3_LOG_LEVEL在页面 JSON 中明确枚举了四个取值见 src/AutoPilotPlugins/APM/VehicleConfig/APMLogging.VehicleConfig.json#L103-L113取值含义0Full logging完整记录1XKF4 scaled innovations only仅记录 XKF4 缩放新息2XKF4 and GSF记录 XKF4 与 GSF3Disabled禁用 EKF3 日志要点说明LOG_DISARMED、LOG_REPLAY均为调试专用解锁日志与重放数据都会显著增大文件体积只在排查问题时按需开启与故障排查清单的建议一致LOG_FILE_DSRMROT开启后每次 disarm/rearm 生成独立文件便于按起降架次归档与分析代价是文件数量增多建议配合LOG_MAX_FILES控制保留数量EK3_LOG_LEVEL影响 EKF3 状态估计日志的信息量通常保持默认的 Full logging仅在分析特定新息问题时才降级以减小体积。补充固件离线参数文件如 Copter.OfflineEditing.params中还包含LOG_FILE_BUFSIZE、LOG_MAV_BUFSIZE、LOG_DARM_RATEMAX、LOG_FILE_TIMEOUT等更多日志相关参数它们不在此页面暴露但可通过 QGC 的Parameter页面Vehicle Config Parameters直接编辑本页面聚焦于上文 11 个最常用的配置项。参数编辑如何落地QGC Facts 参数系统原文档明确指出所有参数编辑都通过 QGC 标准参数系统Facts应用。这意味着 Log Setup 页面上的每次改动与你在 Parameters 页面手动修改同名参数完全等价共享同一套底层链路页面控件绑定到Fact对象参数值与类型由FactMetaData描述写入请求经由ParameterManager通过 MAVLinkPARAM_SET下发到飞控读取则走PARAM_REQUEST_READ/ 参数缓存相关实现位于 src/FactSystem/Fact.cc、src/FactSystem/ParameterManager.cc参数元数据定义见 src/FactSystem/factmetadata.schema.json。因此你在 Log Setup 页面做的任何修改都会真实写入飞控的非易失参数存储与手动改参数相比Log Setup 的优势在于按场景分组、给出人类可读标签如 Logging backends、Maximum retained log files并以位掩码/下拉框形式避免手输错值。故障排查清单原文档附带的排查清单结合上文参数含义扩充是日志问题的第一处置步骤使用已知良好的 SD 卡并验证其可写多数日志写入问题源于 SD 卡损坏、接触不良或文件系统异常先确认LOG_BACKEND_TYPE包含文件后端默认值1再更换已知良好的卡复测预留足够的剩余空间根据预期飞行时长估算日志体积确保空间高于LOG_FILE_MB_FREE默认 500 MB设置的阈值否则日志不会开始写入日志缺样时降低速率上限若日志中出现缺失样本、记录间隔跳变下调LOG_FILE_RATEMAX文件后端或LOG_BLK_RATEMAXFlash 后端使写入速率低于存储介质实际吞吐使用 MAVLink 后端时还需检查LOG_MAV_RATEMAX与链路带宽的匹配仅在调试需要时开启解锁/重放日志LOG_DISARMED解锁记录与LOG_REPLAYEKF 重放数据都会显著增大日志体积平时保持关闭排查 pre-arm 或 EKF 问题时再开启问题解决后记得关闭对低容量板载 Flash 定期下载并清理日志若使用板载 Flash 后端注意其容量远小于 SD 卡需通过 QGC 定期下载日志并清空可在 Analyze View 的 Log Files 区域操作并合理设置LOG_MAX_FILES让旧日志自动轮转防止 Flash 写满导致后续飞行日志丢失。参考与进一步阅读完整参数说明分组表格版docs/tr/qgc-user-guide/setup_view/logging_ardupilot.md英文版见 docs/en/qgc-user-guide/setup_view/logging_ardupilot.md页面定义 JSONsrc/AutoPilotPlugins/APM/VehicleConfig/APMLogging.VehicleConfig.json含各控件的位掩码/下拉框/枚举定义组件实现src/AutoPilotPlugins/APM/APMLoggingComponent.cc 与 src/AutoPilotPlugins/APM/APMLoggingComponent.h组件注册位置src/AutoPilotPlugins/APM/APMAutoPilotPlugin.cc#L174-L176固件默认参数含各日志参数出厂默认值src/FirmwarePlugin/APM/Copter.OfflineEditing.params#L552-L565Plane/Rover/Sub 对应文件在同目录下参数系统底层src/FactSystem/Fact.cc、src/FactSystem/ParameterManager.cc。赞分享无人机智能硬件【免费下载链接】qgroundcontrolCross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)项目地址https://gitcode.com/gh_mirrors/qg/qgroundcontrol点击查看免费下载相关推荐QGroundControl 日志设置指南ArduPilot 飞行器日志记录配置与排查Log Setup / Vehicle Config LoggingQGroundControl 日志设置指南ArduPilot 飞行器日志记录配置与排查Log Setup / Vehicle Config Logging无人机智能硬件5分钟跑通Python大麦抢票脚本完整部署与配置指南5分钟跑通Python大麦抢票脚本完整部署与配置指南 大麦网热门场次开票即罄手动刷新几乎必慢一步。Automatic_ticket_purchase 是一个网页爬虫工作流自动化QGroundControl ArduPilot 日志设置页详解LOG_* 参数配置指南QGroundControl ArduPilot 日志设置页详解LOG_ 参数配置指南 本文以 QGroundControlQGC中 ArduPilot无人机智能硬件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考