飞行日志分析
本主题概述了可用于分析PX4飞行日志的方法和软件包。
报告航班
飞行报告介绍了如何与开发团队一起下载日志并报告/讨论有关飞行的问题。
结构分析
在分析飞行日志之前,重要的是要建立其上下文:
- 如果分析是在发生故障之后进行的,则日志是捕获了坠机事故还是停在半空中?
- 是否所有控制器都跟踪其引用? 确定这一点的最简单方法是将姿态角和俯仰率与其设定值进行比较。
- 传感器数据看起来有效吗? 是否存在非常强的振动(强振动的合理阈值是峰峰值超过2-3 m / s / s的任何东西)。
- 如果根本原因不是特定于车辆的,请确保通过 PX4问题跟踪器 上的日志文件(如果有的话,还有视频)的链接进行报告 。
排除电源故障
如果日志文件在空中结束,则可能有两个主要原因:电源故障或操作系统的硬故障。
在基于STM32系列的自动驾驶仪上,操作系统的硬故障被记录到SD卡中。它们位于SD卡的顶层,并命名为fault_date.log,例如fault_2017_04_03_00_26_05.log。如果飞行日志突然结束,请始终检查此文件是否存在。
分析工具
飞行检查(在线工具)
Flight Review是Log Muncher的继任者。它与新的ULog日志记录格式结合使用。
主要特点:
- 基于Web,非常适合最终用户。
- 用户可以上传,加载并与他人共享报告。
- 互动情节。
有关简介,请参见使用Flight Review进行日志分析。
pyulog
pyulog是一个Python软件包,用于解析ULog文件,以及一组命令行脚本以提取/显示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 show this help message and exit
-v, --verbose Verbose output
下面我们看到使用ulog_info从示例文件导出的信息的种类。
$ ulog_info sample.ulg
Logging start time: 0:01:52, duration: 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
Name (multi id, message size in bytes) number of data points, total bytes
actuator_controls_0 (0, 48) 3269 156912
actuator_outputs (0, 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
sensor_combined (0, 72) 17070 1229040
sensor_preflight (0, 16) 17072 273152
telemetry_status (0, 36) 70 2520
vehicle_attitude (0, 36) 6461 232596
vehicle_attitude_setpoint (0, 55) 3272 179960
vehicle_local_position (0, 123) 678 83394
vehicle_rates_setpoint (0, 24) 6448 154752
vehicle_status (0, 45) 294 13230
pyFlightAnalysis
pyFlightAnalysis是一个受FlightPlot启发的跨平台PX4飞行日志(ULog)可视化分析工具。
主要特点:
- 用于显示数据的动态过滤器
- 无人机姿态和位置的3D可视化
- 轻松回放pyqtgraph的ROI(感兴趣区域)
- 基于Python的跨平台。
飞行图
FlightPlot是基于桌面的日志分析工具。可以从FlightPlot下载(Linux,MacOS,Windows)下载。
主要特点:
- 基于Java的跨平台。
- 直观的GUI,无需编程知识。
- 支持新旧PX4日志格式(.ulg,.px4log,.bin)
- 允许将绘图另存为图像。
PX4工具
PX4Tools是使用Python编写的PX4自动驾驶仪的日志分析工具箱。推荐的安装过程是使用anaconda3。有关详细信息,请参见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文件一起使用。
主要特点:
- 基于MAVLink消息或MAVLink上的ULOG数据的实时数据采集(50毫秒采样,100毫秒滚动显示)
- 消息(MAVLink和ULog)和参数更改(仅MAVLink)注释的时间表
- XY分析选定的关键人物
- 3D视图(车辆和观察者视角)
- MAVLink检查器(报告原始MAVLink消息)
- 脱机模式:从PX4Log / ULog导入密钥数据(通过WiFi从设备获取文件或最后一个日志)
- 基于Java。 已知可在macOS和Ubuntu上运行。
- 还有很多 ...
情节杂耍
PlotJuggler是Qt5桌面应用程序,它使用户可以轻松地可视化和分析以时间序列形式表示的数据。
从2.1.4版开始,它支持ULog文件(.ulg)。
主要特点:
- 直观的拖放界面。
- 在多个图表,选项卡或窗口中排列数据。
- 整理好数据后,将其保存到“布局”文件中,然后多次重新加载。
- 使用自定义“数据转换”在PlotJuggler自身内部处理数据。
源代码和下载可在Github上获得。
数据彗星
数据彗星是一种交互式PX4飞行日志分析工具,可让您将飞行数据编码到飞行路径上,按时间过滤和整理数据-等等!
您可以将工具的在线版本用于较小的日志文件(<32Mb),也可以在本地运行该工具以分析更长的飞行时间。