当前位置: 首页 > news >正文

MissionPlanner架构梳理之(十四)日志浏览

概述和目的

Mission Planner 中的日志浏览系统提供了加载、查看、分析和解读 ArduPilot 驱动的飞行器生成的飞行日志的工具。飞行日志包含飞行操作期间记录的关键遥测数据,使用户能够查看飞行性能、诊断问题并从过去的飞行中获取见解。

本页记录了日志浏览系统的架构、组件和功能。有关生成或下载飞行日志的信息,请参阅数据分析。

日志浏览架构

日志浏览系统由几个相互连接的组件组成,负责加载、解析和可视化飞行日志数据。

日志文件格式和结构

Mission Planner 支持两种主要日志格式:

  1. 文本日志(.log):以逗号分隔的值,可供人类阅读的文本日志
  2. 二进制日志(.bin):需要解析的紧凑二进制格式

两种格式都包含具有以下组件的结构化消息:

  • 消息类型:标识数据类型(例如 GPS、ATT、IMU)
  • 字段:该消息类型的特定数据值
  • 时间戳:通常以启动时的毫秒或微秒为单位

日志格式由日志开头的 FMT 消息定义,它指定了所有后续消息的结构。

核心日志浏览组件

LogBrowse 类

日志浏览功能的主类,以 Windows 窗体形式实现。它负责加载日志、向用户呈现数据并提供分析功能。

主要职责:

  • 加载和解析日志文件
  • 以多种格式(网格、图表、地图)显示日志数据
  • 支持参数选择和过滤
  • 促进数据分析和导出

DFLogBuffer 类

用于高效读取和管理日志数据的缓冲区实现。它提供枚举功能和高级缓存以优化性能。

主要职责:

  • 缓冲读取日志文件
  • 缓存日志条目以实现更快的访问
  • 索引消息类型以便快速查找
  • 解析二进制日志格式

DFLog 类

日志数据表示和解析的核心类。它定义日志条目的数据结构,并提供从日志中提取数据的方法。

主要职责:

  • 定义日志项结构
  • 解析日志消息
  • 不同时间格式之间的转换
  • 提供数据访问实用程序

日志数据流和处理

下图说明了日志数据如何在系统中流动:

可视化组件

图形显示(ZedGraph)

LogBrowse 使用 ZedGraph 库创建日志数据的交互式图表。可以同时绘制多个参数以供分析。

主要特点:

  • 多 Y 轴支持
  • 缩放和平移
  • 时间相关性
  • 参数比较

地图显示(GMap)

地理地图显示,显示日志中的飞行路径和位置数据。使用 GMap.NET 进行渲染。

主要特点:

  • 飞行路径可视化
  • 位置标记
  • 多 GPS 源支持
  • 地图叠加功能

用户界面元素

参数选择树

分层树状视图显示日志中所有可用的参数。用户可以选择参数进行可视化和分析。

主要特点:

  • 按消息类型分组
  • 复选框选择
  • 工具提示信息
  • 位掩码参数支持

数据网格视图

原始日志数据的表格视图允许用户浏览所有日志条目。

主要特点:

  • 列标题自定义
  • 行导航
  • 单元格值格式
  • 排序功能

控制面板

包含用于控制日志浏览体验的按钮和复选框。

关键组件:

  • 图形控制按钮
  • 地图切换
  • 错误/警告显示选项
  • 模式/事件可视化切换

日志分析功能

数据图表

该系统支持绘制具有可自定义选项的多个参数:

  • 从树视图中选择参数
  • 在左 Y 轴或右 Y 轴上绘图
  • 清除和添加图表数据
  • 导出图形数据

模式和事件可视化

日志浏览器可以可视化:

  • 飞行模式改变(MODE消息)
  • 系统事件(EV消息)
  • 错误情况(ERR 消息)
  • 参数更改(PARM 消息)

基于地图的分析

日志中的 GPS 数据可以在地图上可视化,以便分析:

  • 飞行路线
  • 定位精度
  • 速度和高度变化
  • 多个 GPS 源比较

数据处理工作流程

加载和解析过程

加载日志文件时,LogBrowse 系统执行以下步骤:

  1. 文件加载:打开日志文件并确定其是二进制还是文本格式
  2. 格式扫描:读取 FMT 消息以确定日志结构
  3. 索引:按类型创建索引以便快速访问消息
  4. 缓存:构建缓存以实现高效的数据访问
  5. 参数提取:提取参数值以供参考
  6. UI Population:使用可用参数填充树视图

高级功能

基于表达的分析

该系统支持自定义表达式进行高级分析,使用类似 Python 的脚本系统从日志数据中创建派生值。

数据导出选项

日志数据可以以多种格式导出:

  • 用于电子表格分析的 CSV
  • 用于科学分析的 MATLAB 格式
  • 特定工具的自定义格式

日志时间同步

系统处理机载时间和 GPS 时间之间的时间同步,以在日志中提供准确的时间戳。

用户界面布局

LogBrowse 界面采用分割容器组织,允许用户根据需要调整不同面板的大小:

常见用例

  1. 飞行路径分析:在地图上查看航班的 GPS 轨迹
  2. 性能调整:分析控制面响应和姿态变化
  3. 电机和功率分析:检查功耗和电机输出
  4. 错误诊断:识别和理解系统错误和警告
  5. 参数验证:确认参数设置是否正确应用

加载指示器

LogBrowse 系统使用 Loading 类在日志加载和解析等长时间操作期间向用户提供反馈。

概括

Mission Planner 中的日志浏览系统提供了全面的工具,用于分析 ArduPilot 飞行器的飞行日志。通过其直观的界面,用户可以加载日志,通过图表和地图可视化数据,并进行详细分析以提升飞行性能并诊断问题。

该系统的模块化架构在性能和可用性之间取得平衡,能够高效处理文本和二进制日志格式,同时提供强大的可视化和分析功能。


文章转载自:

http://2gs3u8CU.zwzLf.cn
http://L4ccpZyK.zwzLf.cn
http://3ZJ6VJGd.zwzLf.cn
http://1zkp9Fjc.zwzLf.cn
http://pP1R7zVB.zwzLf.cn
http://mBXqDu2y.zwzLf.cn
http://hxieNI3B.zwzLf.cn
http://GyFDZI04.zwzLf.cn
http://kOw4B7wd.zwzLf.cn
http://6FqfSVSY.zwzLf.cn
http://1da4dzGJ.zwzLf.cn
http://XzTg1LHO.zwzLf.cn
http://6PnZbuHH.zwzLf.cn
http://lmw2S3Fp.zwzLf.cn
http://0ZHstnDm.zwzLf.cn
http://7YvNz3MC.zwzLf.cn
http://NEzBGs08.zwzLf.cn
http://WRIc7Hj7.zwzLf.cn
http://6RHnlwlO.zwzLf.cn
http://AI3e3xSG.zwzLf.cn
http://TeKFnTTj.zwzLf.cn
http://ZJub3WwI.zwzLf.cn
http://X1VO6lvq.zwzLf.cn
http://ntlBU726.zwzLf.cn
http://0cxlhAJy.zwzLf.cn
http://YfEO9BIa.zwzLf.cn
http://rrJZTBEn.zwzLf.cn
http://uNOrgXGy.zwzLf.cn
http://ja21n1iX.zwzLf.cn
http://BlKR4wpU.zwzLf.cn
http://www.dtcms.com/a/385960.html

相关文章:

  • 搭建论坛用什么服务器好?论坛服务器配置要求
  • 两台电脑如何共享“共享文件夹”
  • 【第五章:计算机视觉-项目实战之图像分类实战】1.经典卷积神经网络模型Backbone与图像-(7)细粒度分类理论
  • vscode实现第三方包的使用,cmake结合vcpkg(跨平台)
  • RabbitMQ 常见使用场景详解:从理论到实践
  • 【QT随笔】什么是Qt元对象系统?Qt元对象系统的核心机制与应用实践
  • 紧急供应链投毒预警 | NPM生态再次遭受盗号攻击引发新一轮开源供应链投毒
  • MySQL——10、视图和用户管理
  • 热点供应链投毒预警 | 知名NPM开发者遭受邮件钓鱼引发大规模供应链投毒攻击
  • 机器学习-NLP中的微调
  • uniapp+<script setup lang=“ts“>单个时间格式转换(format)
  • 第8篇、Kafka 监控与调优实战指南
  • R 语言查看类库源码的方法
  • 理解并发编程:自旋锁、互斥锁与读写锁的解析
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频内容理解与智能预警升级
  • 腾讯元宝 Java 中的 23 种设计模式(GoF 设计模式)
  • Excel:根据数据信息自动生成模板数据(多个Sheet)
  • hibernate和mybatis的差异,以及这种类似场景的优缺点和选择
  • 设计模式之:观察者模式
  • 【pycharm】ubuntu24.04 安装配置index-tts及webdemo快速上手
  • Java 设计模式——观察者模式:从 4 种写法到 SpringBoot 进阶
  • “光敏” 黑科技:杜绝手机二维码读取时的 NFC 误触
  • AIGC(生成式AI)试用 36 -- shell脚本(辅助生成)
  • 【计算机网络 | 第17篇】DNS资源记录和报文
  • Flowise安全外网访问指南:基于cpolar的隧道配置详解
  • MySQL OCP认证[特殊字符]Oracle OCP认证
  • Springboot使用Freemark模板生成XML数据
  • 【数据工程】 10. 半结构化数据与 NoSQL 数据库
  • HarmonyOS应用开发:深入ArkUI声明式开发与性能优化实践
  • Vue: 组件注册