Skip to content

飞行日志分析

本主题概述了可用于分析 PX4 飞行日志的工具和方法(在某些情况下,会提供指向更详细主题的链接)。

:::信息 飞行报告 介绍了如何下载日志,以及如何与开发团队报告/讨论有关飞行的问题。 :::

结构化分析

在分析飞行日志之前,明确其背景信息至关重要:

  • 如果是在故障发生后进行分析,日志是记录到了故障发生时刻,还是在飞行途中就停止记录了?
  • 所有控制器是否都能跟踪其设定值?最简单的方法是将横滚和俯仰的角速度与其设定值进行对比。
  • 传感器数据看起来是否有效?是否存在强烈振动(一般认为,峰峰值超过 2 - 3 m/s² 可视为强烈振动)。
  • 如果根本原因并非特定于飞行器,请务必在 PX4 问题追踪器 上报告,并附上日志文件链接(如有视频也一并附上)。

排查电力故障

如果日志文件在飞行中途结束,主要有两个可能原因:电力故障或操作系统硬故障。

在基于 STM32 系列 的自动驾驶仪上,硬故障会记录到 SD 卡中。这些文件位于 SD 卡顶层,命名为 fault_date.log,例如 fault_2017_04_03_00_26_05.log。如果飞行日志突然结束,您应检查是否存在此文件。

分析工具

Flight Review(在线工具)

Flight ReviewLog Muncher 的继任者,它与新的 ULog 日志格式配合使用。

主要特点:

  • 基于网页,非常适合终端用户。
  • 用户可通过网页界面上传日志,然后与他人分享报告(使用 upload_log.py 脚本支持批量上传)。
  • 支持交互式绘图。

Flight Review 图表

有关介绍,请参阅 使用 Flight Review 进行日志分析

PlotJugler

PlotJugler 是一款桌面应用程序,用户可借助它轻松可视化和分析以时间序列形式呈现的数据。它是最好的 ULog 分析工具之一,因为它能展示日志中的所有信息(相比之下,Flight Review 仅显示一小部分数据)。

自 2.1.4 版本起,它支持 ULog 文件(.ulg)。

主要特点:

  • 直观的拖放式界面。
  • 可将数据安排在多个图表、选项卡或窗口中。
  • 所有 uORB 主题均会显示并可绘制图表。
  • 整理好数据后,可将其保存到 “布局” 文件中,便于多次重新加载。
  • 可在 PlotJuggler 中使用自定义 “数据转换” 处理数据。

源代码和下载内容可在 Github 上获取。

PlotJugler

有关介绍,请参阅 使用 Plot Juggler 进行日志分析

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 标志获取使用说明。例如:

sh
$ ulog_info -h
用法: ulog_info [-h] [-v] file.ulg

显示 ULog 文件中的信息

位置参数:
  file.ulg       ULog 输入文件

可选参数:
  -h, --help     显示此帮助信息并退出
  -v, --verbose  详细输出

以下是使用 ulog_info 从示例文件中导出的信息示例:

sh
$ ulog_info sample.ulg
日志记录开始时间: 0:01:52,持续时间: 0:01:08
丢包情况: 计数 4,总时长 0.1 秒,最长 62 毫秒,平均 29 毫秒
信息消息:
 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_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

FlightPlot

FlightPlot 是一款基于桌面的日志分析工具,可从 FlightPlot 下载(支持 Linux、MacOS、Windows 系统)。

主要特点:

  • 基于 Java,跨平台。
  • 直观的图形用户界面,无需编程知识。
  • 支持新旧 PX4 日志格式(如.px4log、.ulg、.bin)。
  • 可将图形保存为图像。

FlightPlot 图表

PX4Tools

PX4Tools 是一个用 Python 编写的 PX4 自动驾驶仪日志分析工具箱。推荐使用 anaconda3 进行安装,详情请参阅 px4tools github 页面

主要特点:

  • 易于分享,用户可在 Github 上查看笔记本(例如 15-09-30 Kabir Log.ipynb)。
  • 基于 Python,跨平台,可与 anaconda 2 和 anaconda3 配合使用。
  • 使用 iPython/jupyter notebooks 可方便地共享分析结果。
  • 具备高级绘图功能,便于进行详细分析。

基于 PX4Tools 的分析

MAVGCL

MAVGCL 是一款用于 PX4 的飞行中日志分析器,也可离线使用下载的 uLog 文件。

主要特点:

  • 基于 MAVLink 消息或 MAVLink 上的 ULOG 数据进行实时数据采集(50 毫秒采样,100 毫秒滚动显示)。
  • 带有消息(MAVLink 和 ULog)和参数更改(仅 MAVLink)注释的时间图。
  • 选定关键指标的 XY 分析。
  • 3D 视图(飞行器和观察者视角)。
  • MAVLink 检查器面板(报告原始 MAVLink 消息)。
  • 离线模式:从 PX4Log/ULog 导入关键指标(通过 WiFi 从设备获取文件或最后一次日志)。
  • 基于 Java,可在 MacOS 和 Ubuntu 上运行。
  • 更多功能……

MAVGCL

Data Comets

Data Comets 是一款交互式 PX4 飞行日志分析工具,可将飞行数据编码到飞行路径上,按时间过滤和筛选数据,功能丰富!

对于较小的日志文件(< 32Mb),您可使用该工具的在线版本,若要分析较长的飞行记录,可在本地运行。

Data Comets