完全指南:从飞行日志回放、GeoTag 到 MAVLink 调试工具链)
无人机智能硬件【免费下载链接】qgroundcontrolCross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)项目地址https://gitcode.com/gh_mirrors/qg/qgroundcontrol点击查看免费下载分析视图Analyze View是 QGroundControl 内置的飞行后数据工作台集中提供飞行日志查看、日志下载、航拍图片地理标记GeoTag、MAVLink 控制台与 MAVLink 报文检查等工具。本文以 docs/ko/qgc-user-guide/analyze_view/index.md 为骨架结合源码级实现完整讲解每个工具的入口、操作步骤、适用固件与底层原理帮助你建立一套从拿到日志到定位问题的完整分析流程。入口如何打开分析视图分析视图通过 QGroundControl 的应用菜单访问操作路径固定为两步点击左上角的Q 图标打开应用菜单在弹出的工具选择Select Tool面板中选择分析工具Analyze Tools按钮。进入后分析视图左侧会显示工具侧边栏右侧为对应工具的内容面板。从界面实现看侧边栏按钮由 src/AnalyzeView/AnalyzeView.qml 中的Repeater遍历插件注册的analyzePages列表动态生成点击按钮即通过mainWindow.createAnalyzePage()加载对应页面的 QML 组件。工具清单在 src/API/QGCCorePlugin.cc#L73-L115 中注册包括工具页面 QML 资源是否需要连接飞行器Log ViewerAnalyzeView/LogViewer/LogViewerPage.qml否Onboard Logs文档称 Log DownloadAnalyzeView/OnboardLogs/OnboardLogPage.qml是GeoTag ImagesAnalyzeView/GeoTag/GeoTagPage.qml否MAVLink ConsoleAnalyzeView/MAVLinkConsole/MAVLinkConsolePage.qml是MAVLink InspectorAnalyzeView/MAVLinkInspector/MAVLinkInspectorPage.qml是VibrationAnalyzeView/Vibration/VibrationPage.qml是值得注意的两个平台差异均有源码注释佐证Log Viewer 仅桌面版可用源码注释明确指出Android/iOS 移动端解析大日志如 900 MB、上千字段的 ULog 文件会耗尽移动端堆内存导致 OOM 崩溃因此该工具在移动端被排除完整支持需要基于时间分桶降采样的重构见 src/API/QGCCorePlugin.cc。MAVLink Inspector 也仅支持桌面版Windows、Linux、Mac OS官方文档将其定位为面向自驾仪开发者与整机厂商的调试工具。另外标注requiresVehicle的工具Onboard Logs、MAVLink Console、MAVLink Inspector、Vibration在未连接飞行器时会显示Requires a connected vehicle提示页面内容保持空白见 src/AnalyzeView/AnalyzeView.qml 的_updatePanelSource()逻辑。Log Viewer统一三种日志格式的飞行后分析Log Viewer分析 Log Viewer是分析视图中最核心的工具它把三种来源完全不同的日志统一到同一个工作流中日志格式扩展名对应固件ArduPilot DataFlash.bin/.logArduPilotArduCopter、ArduPlane、ArduRover、ArduSubPX4 ULog.ulgPX4MAVLink 遥测日志.tlog任意取决于录制端三种格式共用一套解析与展示框架这在源码层面对应统一的解析器 src/AnalyzeView/LogViewer/LogFileParser.h注释明确写着 Unified log file parser for both DataFlash (.bin/.log) and PX4 ULog (.ulg) files并在 src/AnalyzeView/LogViewer/CMakeLists.txt 中描述为 Shared shell for .tlog, .bin (DataFlash), and .ulg (PX4 ULog) log workflows。打开日志页面顶部提供三个打开按钮见 src/AnalyzeView/LogViewer/LogViewerPage.qml#L113-L141Open .bin— 文件过滤器为DataFlash Logs (*.bin *.BIN *.log *.LOG)Open .ulg— 文件过滤器为PX4 ULog Files (*.ulg *.ULG)Open .tlog— 文件过滤器为Telemetry Logs (*.tlog *.TLOG)且仅当当前没有活跃飞行连接时才允许打开源码会检查activeVehicle !activeVehicle.isOfflineEditingVehicle否则弹窗提示先关闭活跃连接再回放。点击Clear可卸载当前日志。已加载日志的文件名会显示在工具栏按钮右侧同时工具栏还会展示日志的开始时间Start time和自动检测的机架类型Vehicle如检测不到则为 N/A。解析大日志期间会显示Loading...进度条parseProgress。固件日志分析.bin / .ulg加载 DataFlash 或 ULog 文件后界面呈现四个标签页Charting图表、Map地图、Parameters参数、Messages消息。Charting 标签页左侧面板显示日志概要字段数、参数数、事件数、检测到的机架类型以及可绘制字段的可搜索列表通过字段名旁的滑块开关该字段的显示切换开/关使用Search fields搜索框按名称过滤字段点击Clear Selected一次性清除所有已选字段。右侧面板是所选字段的时间序列图。每个字段拥有独立的自适应 Y 轴鼠标悬停时弹出气泡显示每个字段的当前值、最小值、最大值以及当前飞行模式。横向拖拽可放大时间范围右键点击恢复缩放。Map 标签页地图标签页把 GPS 飞行轨迹叠加在地图上加载完成后自动将路径适配到屏幕视野。轨迹数据来源随固件不同ArduPilot 日志来自GPS消息要求日志中有有效的 3D fixPX4 ULog来自vehicle_global_position消息。当日志包含 GPS 高度数据时地图下方会显示高度迷你图表。在该图上点击或拖拽会把一个黄色位置标记点沿地图上的飞行路径移动高度图横向拖拽可放大时间范围右键重置。高度图弹出气泡显示整段日志的最高/最低/当前高度。地图光标与 Charting 标签页是双向联动的——在任一图表移动光标另一处的位置标记会同步更新源码实现见 src/AnalyzeView/LogViewer/LogViewerPage.qml#L306-L315 的onCursorMoved/onZoomApplied信号连接位置标记点由logParser.gpsCoordAt(t)实时换算。若日志中没有任何 GPS 数据地图中央会显示No GPS data found in this log提示。Parameters 标签页列出日志中记录的全部参数。默认只显示与系统默认值不同的参数勾选Changed only可切换为显示全部。支持按名称、数值或描述搜索。与默认值不同的参数会以粗体 橙色圆点显示并附上默认值供对照。Messages 标签页按时间顺序列出日志中的全部状态消息ArduPilot 的MSG消息或 PX4 的等价消息每条带时间戳。遥测日志分析.tlog加载.tlog文件后Charting 标签页左侧面板变为回放控制条控件功能Play / Pause开始或暂停日志回放速度选择器设置回放速度可选0.1x、0.25x、0.5x、1x、2x、5x、10x默认 1x下拉项见 src/AnalyzeView/LogViewer/LogViewerPage.qml#L215-L223拖动进度条跳转到日志任意位置percentComplete双向同步时间显示当前回放位置与日志总时长playheadTime/totalTime回放期间所有活跃车辆数据视图——HUD、仪表、MAVLink Inspector——都会像飞行器真实在线一样实时更新底层通过 src/Comms/LogReplayLinkController.cc 驱动LogReplayLink模拟链路。Charting 标签页右侧面板此时会显示回放中的车辆的实时 MAVLink Inspectorsrc/AnalyzeView/LogViewer/LogViewerPage.qml#L318-L323 中直接以 Loader 加载 MAVLinkInspectorPage.qml。典型工作流在分析 Log Download中从飞行器下载日志在分析 Log Viewer中打开下载的.bin、.ulg或.tlog固件日志在左侧面板勾选关心的字段在图表、地图、参数、消息四个标签间交叉排查遥测日志使用回放控制逐步还原飞行过程。补充飞行日志本身是在飞行控制器上录制的。对于 ArduPilot 飞行器可通过Vehicle Config LoggingLog Setup 页面配置记录内容与速率涉及的参数包括LOG_BACKEND_TYPE、LOG_BITMASK、LOG_DISARMED、LOG_FILE_RATEMAX、LOG_MAV_RATEMAX、LOG_MAX_FILES、LOG_REPLAY、EK3_LOG_LEVEL等完整说明见 docs/ko/qgc-user-guide/analyze_view/logging_setup.md。若日志出现采样缺失应降低块写入/日志速率上限仅在排查问题时才开启 disarm/replay 记录因为会显著增大文件体积。Log Download管理飞行器上的日志文件Log Download 页面分析 Log Download源码中的页面标题为 Onboard Logs对应 src/AnalyzeView/OnboardLogs/OnboardLogPage.qml用于直接管理已连接飞行器上存储的日志核心操作有三个Refresh刷新— 重新读取飞行器上的日志列表Download下载— 把选中的日志下载到本地电脑Erase All全部删除— 清空飞行器上的全部日志。页面还额外支持两类批量操作一次性全选/取消全选所有日志Select All / Deselect All按时间戳排序日志列表Sort Ascending / Sort Descending。该工具的底层由 src/AnalyzeView/OnboardLogs/OnboardLogController.cc 实现通过 MAVLink 与飞控通信获取日志条目列表并执行下载/删除。注意此页面需要连接真实飞行器才能使用注册时带有requiresVehicle标记。GeoTag ImagesPX4为测绘任务图片写入位置信息GeoTag Images 页面分析 GeoTag Images利用飞行日志中的相机触发与位置信息为测绘任务拍摄的照片批量写入 GPS 地理标签。:::info 适用性限制 该功能仅支持 PX4 飞行栈日志ArduPilot 不支持。 :::操作步骤通过页面提供的按钮依次选择三类路径然后点击Start Tagging生成带地理标签的图片Log file日志文件— 选择包含相机触发记录的 PX4 飞行日志Image directory图片目录— 选择拍摄的原始照片所在目录Output Folder输出目录可选— 指定带标签图片的输出位置留空时默认写入图片目录下的/TAGGED子文件夹界面会实时显示该默认路径见 src/AnalyzeView/GeoTag/GeoTagPage.qml#L305-L317。高级选项在Advanced Options区域可以进一步控制打标签行为src/AnalyzeView/GeoTag/GeoTagPage.qml#L322-L388Time Offset (seconds)— 相机时钟与飞行日志之间的时间偏移量取值范围被 DoubleValidator 限制为-3600 ~ 3600 秒、一位小数。当相机时钟与日志时间不一致时用它校准Preview mode预览模式不写文件— 只做试运行、不实际写 EXIF用于在正式打标签前验证时间偏移是否正确。底层流程点击 Start Tagging 后src/AnalyzeView/GeoTag/GeoTagController.cc#L346-L388 中的startTagging()会先做一连串前置校验未选图片目录/日志文件、目录不存在、保存目录不存在都会给出对应错误提示。随后进入一个显式状态机LoadingImages→ 后续各处理阶段见_transitionTo(Stage)整个处理过程支持中途取消cancelTagging()并通过_setProgress上报进度。打标签过程中会统计 tagged / skipped / failed 数量处理结果在页面下方的图片列表中呈现。MAVLink ConsolePX4访问机载 nsh ShellMAVLink Console分析 Mavlink Console让你通过 MAVLink 连接 PX4 的 [System Console]机载 nsh Shell并下发命令。:::info 适用性限制 控制台只在连接运行 PX4 飞行栈的实体硬件时工作PX4 SITL 仿真和 ArduPilot 均不支持。 ::::::tip 开发价值 这是开发者利器——它提供对系统的深层访问权限特别是通过 Wi-Fi 连接时即使飞行器正在飞行也能保持同等程度的系统访问。 :::使用方法页面不会主动输出任何信息只回显命令响应飞行器连接后在命令输入栏输入命令并回车/Send 发送输入?查看可用命令的完整列表命令输出显示在命令栏上方的视图中点击Show Latest最新显示可快速跳到输出末尾。实现原理从 src/AnalyzeView/MAVLinkConsole/MAVLinkConsoleController.cc 的源码可以看到其通信机制控制器监听Vehicle::mavlinkSerialControl信号通过打包MAVLINK_MSG_SERIAL_CONTROL消息、以SERIAL_CONTROL_DEV_SHELL设备号、携带SERIAL_CONTROL_FLAG_EXCLUSIVE | SERIAL_CONTROL_FLAG_RESPOND | SERIAL_CONTROL_FLAG_MULTI标志与机载 Shell 通信响应数据按MAVLINK_MSG_SERIAL_CONTROL_FIELD_DATA_LEN分块收发。命令输入框还实现了命令历史historyUp/historyDown与剪贴板粘贴处理交互体验接近真实终端见 src/AnalyzeView/MAVLinkConsole/MAVLinkConsolePage.qml。MAVLink Inspector实时报文监控与双图表绘制MAVLink Inspector分析视图侧边栏中选择提供 QGroundControl已接收到的全部 MAVLink 流量的实时信息与图表。:::warning 适用范围 该功能主要面向自驾仪开发者与整机厂商仅支持桌面版Windows、Linux、Mac OS。 :::功能能力列出当前飞行器收到的所有消息并显示每条消息的源组件 IDsource component id与更新频率下钻单条消息可查看消息 ID、源组件 ID 以及全部字段的当前值字段值动态刷新支持实时图表化字段值从多条消息中挑选多个字段分别显示在两块图表之一上。操作步骤打开分析视图应用菜单 → 分析工具按钮在侧边栏选择MAVLink Inspector视图会随消息接收实时填充选中要查看的消息查看其字段及动态更新的值勾选字段旁的复选框将其加入图表Plot 1 显示在 Plot 2 下方一个字段只能加入一块图表每块图表可包含多条消息的多个字段图表上方列出所属消息含被绘制字段的消息会以**星号***突出显示Scale 与 Range默认设置为合理值必要时可手动修改。图表交互与坐标系实现在 src/AnalyzeView/MAVLinkInspector/MAVLinkChart.qml 中X/Y 轴范围、rangeXMin/Max、rangeYMin/Max均可调字段管理、系列增删与数据采样由 MAVLinkChartController 负责。回放.tlog日志时该 Inspector 会被 Log Viewer 复用实现离线回放 在线调试的效果。总结从数据采集到问题定位的完整闭环分析视图把 QGroundControl 的调试能力串成了一条完整链路采集通过 Log DownloadOnboard Logs从飞行器拉取日志或通过 Log Viewer 直接打开电脑上已有的.bin/.ulg/.tlog分析Log Viewer 的图表/地图/参数/消息四标签交叉比对定位问题MAVLink Inspector 实时或回放观察报文细节深挖MAVLink Console 直连 PX4 nsh Shell 做系统级诊断GeoTag Images 把测绘照片与飞行轨迹对齐产出带坐标的成果数据。结合 docs/ko/qgc-user-guide/analyze_view/index.md 及其子页面Log Viewer、Log Download、GeoTag Images、MAVLink Console、MAVLink Inspector与源码实现无论是日常飞行后的数据复盘还是自驾仪开发调试分析视图都是最直接的入口。赞分享无人机智能硬件【免费下载链接】qgroundcontrolCross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)项目地址https://gitcode.com/gh_mirrors/qg/qgroundcontrol点击查看免费下载相关推荐QGroundControl Analyze View 完整指南日志分析、MAVLink 检查与地理标签工具QGroundControl Analyze View 完整指南日志分析、MAVLink 检查与地理标签工具 QGroundControlQGC的 Ana无人机智能硬件QGroundControl GeoTag Images 指南基于飞行日志为航测照片添加地理标签Analyze ViewQGroundControl GeoTag Images 指南基于飞行日志为航测照片添加地理标签Analyze View _GeoTag Images_无人机智能硬件AirSim PX4/MavLink 日志记录与飞行调试实战指南AirSim PX4/MavLink 日志记录与飞行调试实战指南 PX4 固件与 MavLink 协议是 AirSim 接入真实飞控生态的核心通道而日志记录则自动驾驶人工智能深度学习强化学习计算机视觉科研上一篇EMQX 修复 emqx ctl subscriptions list 在共享订阅场景下的崩溃源码分析与验证下一篇猫抓 cat-catch 资源捕获与分片合并 实操手册创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考