飞行日志分析
本主题概述了可用于分析 PX4 飞行日志的方法和软件包。
报告航班
飞行报告 解释了如何下载日志并与开发团队报告/讨论有关飞行的问题。
结构化分析
在分析飞行日志之前,必须确定其背景:
- 如果分析是在故障发生后进行的,那么日志是否记录了坠机过程,还是在空中停止了?
- 所有控制器是否都跟踪了它们的参考点?最简单的方法是将姿态滚动和俯仰率与其设定点进行比较。
- 传感器数据看起来有效吗?是否有非常强烈的振动(强烈振动的合理阈值是峰峰值超过 2-3 m/s/s)。
- 如果根本原因与载具无关,请务必在报告时附上日志文件链接(如果有视频文件,请附上视频链接),并将其放在 PX4 问题跟踪器.
排除电力故障
如果日志文件在空中终止,可能有两个主要原因:电源故障 或 操作系统的硬故障。
在基于 STM32 系列操作系统的硬故障会被记录到 SD 卡中。这些故障位于 SD 卡的顶层,名称为 fault_date.log例如 fault_2017_04_03_00_26_05.log.如果飞行日志突然结束,请务必检查该文件是否存在。
分析工具
飞行审查(在线工具)
主要功能
- 基于网络,非常适合最终用户。
- 用户可以上传、加载报告,然后与他人共享。
- 交互式绘图。
参见 使用飞行回顾进行日志分析 的介绍。
pyulog
pyulog 是一个用于解析 ULog 文件的 python 软件包,还有一套命令行脚本用于提取/显示 ULog 信息并将其转换为其他文件格式。
主要功能
- 解析 ULog 文件的 Python 库。许多其他 ULog 分析和可视化工具使用的基础库。
- 提取/显示 ULog 信息的脚本:
- ulog_info显示 ULog 文件中的信息。
- ulog_messages显示 ULog 文件中的记录信息。
- ulog_params从 ULog 文件中提取参数。
- 将 ULog 文件转换为其他格式的脚本:
- ulog2csv:将 ULog 转换为(多个)CSV 文件。
- ulog2kml将 ULog 转换为(多个)KML 文件。
所有脚本都作为系统范围内的应用程序安装(也就是说,只要安装了 Python,就可以通过命令行调用),并支持 -h
标记来获取使用说明。例如
$ ulog_info -h usage: ulog_info [-h] [-v] file.ulg Display information from an ULog file positional arguments: file.ulg ULog input file optional arguments:-h,--help 显示帮助信息并退出 -v,--verbose 冗余输出
下面我们看到的是从示例文件中导出的信息类型,使用了 ulog_info.
$ ulog_info sample.ulg 记录开始时间:0:01:52,持续时间:0:01:08 Dropouts: count:4, total duration:0.1 s, max:62 ms, mean:29 ms Info Messages: sys_name: PX4 time_ref_utc:0 ver_hw:AUAV_X21 ver_sw:fd483321a5cf50ead91164356d15aa474643aa73 名称(多id,报文大小(字节)) 数据点数,总字节数 actuator_controls_0 (0, 48) 3269 156912 actuator_outputs (0. 76) 1311 99636 commander_controls_0 (0, 48) 3269 156912 actuator_outputs (0. 76) 1311 99636 commander_outputs (0. 76)76) 1311 99636 commander_state (0,9) 678 6102 control_state (0,122) 3268 398696 cpuload (0,16) 69 1104 ekf2_innovations (0,140) 3271 457940 estimator_status (0、309) 1311 405099 传感器组合 (0, 72) 17070 1229040 传感器预飞行 (0, 16) 17072 273152 遥测状态 (0, 36) 70 2520 载具姿态 (0, 36) 6461 232596 载具姿态设定点 (0, 55) 3272 179960 载具本地位置 (0, 123) 678 83394 载具速率设定点 (0, 24) 6448 154752 载具状态 (0, 45) 294 13230
pyFlightAnalysis
pyFlightAnalysis 是一款跨平台的 PX4 飞行日志(ULog)可视化分析工具,其灵感来源于 飞行图.
主要功能
- 用于显示数据的动态过滤器
- 无人机姿态和位置的 3D 可视化
- 利用 pyqtgraph 的 ROI(感兴趣区域)轻松进行重放
- 基于 Python,跨平台。
飞行图
飞行图 是一款基于桌面的日志分析工具。可从以下网址下载 FlightPlot 下载 (Linux、MacOS、Windows)。
主要功能
- 基于 Java,跨平台。
- 直观的图形用户界面,无需编程知识。
- 支持新旧 PX4 日志格式(.ulg、.px4log、.bin)
- 允许将绘图保存为图像。
PX4 工具
PX4 工具 是用 Python 编写的 PX4 自动驾驶仪日志分析工具箱。推荐的安装程序是使用 蟒蛇3.湖泊 px4tools github 页面 了解详情。
主要功能
- 易于共享,用户可以在 Github 上查看笔记本(例如 https://github.com/jgoppert/lpe-analysis/blob/master/15-09-30%20Kabir%20Log.ipynb)
- 基于 Python,跨平台,适用于 anaconda 2 和 anaconda3
- iPython/ jupyter 笔记本可用于轻松共享分析结果
- 先进的绘图功能可进行详细分析
MAVGCL
MAVGCL 是 PX4 的飞行日志分析器。它也可在离线模式下使用下载的 uLog 文件。
主要功能
- 实时数据采集(50 毫秒采样,100 毫秒滚动显示),基于 MAVLink 信息或通过 MAVLink 传输的 ULOG 数据
- 由信息(MAVLink 和 ULog)和参数变化(仅 MAVLink)注释的时间图表
- 部分关键数据的 XY 分析
- 3D 视图(载具和观察者视角)
- MAVLink 检查器(报告原始 MAVLink 信息)
- 离线模式:从 PX4Log/ULog 中导入按键数据(文件或通过 WiFi 从设备上导入的最后一次记录)
- 基于 Java。已知可在 macOS 和 Ubuntu 上运行。
- 还有更多...
情节魔术师
情节魔术师 是一款 Qt5 桌面应用程序,允许用户轻松可视化和分析以时间序列形式表示的数据。
它支持 ULog 文件 (.ulg) 自 2.1.4 版起生效。
主要功能
- 直观的拖放界面。
- 在多个绘图、选项卡或窗口中排列数据。
- 整理好数据后,将其保存到一个"布局"文件中,然后多次重新加载。
- 在 PlotJuggler 本身内部使用自定义数据转换器处理数据。
源代码和下载可在 Github.
数据彗星
数据彗星 是一款交互式 PX4 飞行日志分析工具,允许您将飞行数据编码到飞行路径上,按时间过滤和刷新数据,等等!
您可以使用该工具的在线版本来处理较小的日志文件(32Mb),也可以在本地运行该工具来分析较长的飞行日志。