使用 MAVExplorer 进行日志分析

MAVExplorer 是一款日志探索工具。它基于与 mavgraph 相同的概念,但具有交互性,并支持预定义图形的社区贡献模式。

在 Linux 上安装 MAVExplorer

您需要安装最新版本的 pymavlink 和 mavproxy。在 Linux 上,请执行以下操作:

苏都 适切-获取 安装 蟒蛇-matplotlib 蟒蛇-串行 蟒蛇-wxgtk3.0 蟒蛇-lxml
苏都 适切-获取 安装 蟒蛇-scipy 蟒蛇-opencv  蟒蛇-核心 蟒蛇-期待 蟒蛇-tk
苏都 核心 安装 --升级 pymavlink mavproxy

运行后,你的路径中就会出现一个新命令 "MAVExplorer.py"。

在 Windows 上安装 MAVExplorer

要在 Windows 上安装 MAVExplorer,请在此处下载预置的 MAVProxy 软件包:

https://firmware.ardupilot.org/Tools/MAVProxy/

该软件包包括 MAVProxy 和 MAVExplorer。

然后从

c:\计划 文件 (x86)\MAVProxy\MAVExplorer.exe

到桌面上。然后,将日志文件拖到 MAVExplorer 快捷方式上,即可启动 MAVExplorer。

在 MacOS 上安装 MAVExplorer

要在 MacOS 上安装 MAVExplorer,您需要安装 "pip"。如果没有 pip,请使用

苏都 易于安装 核心

然后像这样安装 mavproxy(包含 MAVExplorer):

核心 安装 mavproxy --用户

然后将 $HOME/Library/Python/2.7/bin 添加到 $PATH 中,就像这样:

echo 'export PATH=$PATH:$HOME/Library/Python/2.7/bin' >> $HOME/.bash_profile

启动 MAVExplorer

要启动 MAVExplorer,只需将文件名作为参数运行即可。它也可以在没有文件名的情况下启动,并在稍后通过 MAVExplorer 菜单的 "打开 "项加载日志文件:

MAVExplorer.py ~/台式机/ardupilot/00000013.箱柜

它支持 MAVLink 遥测日志或 DataFlash 日志。启动后,您将看到如下两个窗口:

./_images/mavexplorer-start.png

底部窗口是 "控制台",显示菜单和状态信息。顶部窗口是终端,有 "MAV> "提示输入命令。输入 "help "的结果显示为命令列表。

备注

注意日志文件名中的空格。如果需要,请在文件名周围使用引号。

使用预定义图表

MAVExplorer 自带大量预定义图表。这些图表显示在控制台的图表菜单中。只有与您正在查看的日志相关的图表才会出现在菜单中。

要显示图表,只需在图表菜单中选择即可。如果需要,您可以同时显示多个图表。

./_images/attitude-control.png

手动绘制图表

您还可以在终端的 MAV> 提示下使用 graph 命令将日志中的任何数据绘制成图形。只需键入 graph,然后输入表达式。例如

示意图 ATT.卷轴 ATT.间距

为了帮助您快速创建图表,您可以使用 TAB 键完成并列出可用的信息和字段。例如,如果您这样做

图 <TAB><TAB>;

你会看到这样的内容:

./_images/tab-tab.png

已列出了可能的信息名称。如果您键入了所需信息名称的一部分,则可以使用 <TAB>来完成名称的输入。

在信息名称后,您需要输入一个".",然后输入字段名称。同样,您可以使用 TAB 键完成输入,例如

./_images/tab-field.png

您可以在一个图表中对多个字段进行此操作,从而快速构建复杂的图表。

有些信息有 实例 字段,用于存储多个传感器实例的数据,例如 RFND 日志信息。在这种情况下,绘制图表时必须指定实例编号,否则所有实例的值都会合并到一个图表中。

示意图 RFND[0].Dist

修改预定义图表

无论何时使用预定义图形,图形表达式都会添加到命令行历史记录中。因此,你只需点击回车键刷新历史记录,然后向上箭头调出刚才显示的预定义图形的图形表达式。然后可以添加新字段或编辑现有字段,点击回车键显示新图表。

您还可以使用 "显示 "菜单下的 "保存图表 "菜单项保存刚刚显示的图表:

./_images/save-graph.png

您可以编辑图表的名称和描述,然后按 "保存",您的图表就会添加到预定义图表中。您还可以使用 "测试 "按钮在保存前测试图表。

请注意,图形名称中的/分隔符将控制图形在图形菜单树中的显示方式。例如,如果您保存的图表名称为 "Copter/Analysis/WPNav Analysis",那么 "WPNav Analysis "菜单项将添加到 Copter->Analysis 子菜单中,并根据需要自动创建子菜单。

还要注意的是,每个图表表达式都应独立成行。如果您为表达式设置了多行,那么它们将被视为备选表达式(以应对不同类型的日志)。

图形表达式

图形表达式是任意的 python 表达式。您可以使用 python 数学库中的任何函数,以及 pymavlink 中 mavextra 模块或您自己的 mavextra 模块中的任何函数。

这样,您就可以轻松绘制出结合对数中任意变量的数学表达式。例如

示意图 平方(MAG.MagX**2+MAG.MagY**2+MAG.MagZ**2)

将绘制出总磁场强度(罗盘矢量的长度)。

另一个非常有用的方法是对数据进行低通滤波器处理:

示意图 IMU[0].AccX 低通(IMU[0].AccX,0,.99)

语法为 lowpass(变量到滤波器,tag,alpha),其中 "tag "为任意参考编号,"alpha "为当前滤波器输出的加权值,1-alpha 为当前变量值在本次采样中的加权值,这些值相加以提供下一次滤波器输出采样。

../_images/filter.png

左右刻度

默认情况下,图表值显示在左侧坐标轴刻度上,所有数值按比例缩放在一起。要将字段平面显示在右侧坐标轴上,只需在字段名后使用":2 "即可。例如

./_images/right-axes.png

按飞行模式选择

根据飞行模式只选择飞行的一部分通常很有用。为此,请使用 FlightMode(飞行模式)菜单:

../_images/flightmodes.png

FlightMode(飞行模式)菜单将显示飞行中所有飞行模式的变化,以及在该模式下飞行的秒数。通过选择相应的飞行菜单项,您可以选择将飞行的哪些部分包含在后续图表中。如果未选择任何部分,则会绘制整个日志。

添加条件

您可以根据可用日志变量的 python 表达式所表达的条件来限制图表。例如,如果您只想在 DataFlash 日志中绘制 GPS 速度超过 4 米/秒的图表,就可以这样做:

条件 全球定位系统.速度>;4

要清除条件,请将其设置为空字符串

条件 ''

显示地图

您可以使用 "地图 "命令显示显示飞行路径的地图:

地图

或从显示菜单中选择 MAP 菜单项。

地图会按照当前情况弹出,就像这样:

./_images/map.png

您可以使用鼠标和滚轮或 "+"和"-"键进行放大和缩小。左击两下即可测量距离。颜色用于表示飞行模式。

您可以选择提供用于地图的信息类型。任何包含经纬度元素的信息类型都可以使用。例如,要显示 ArduPilot 日志文件中 GPS 和 POS 信息的地图,可以这样做

地图 全球定位系统 POS

多条轨道将依次用较深的颜色显示。

图形定义 XML 文件

您可能会发现,为常用图形添加自己的预定义图形定义非常有用。这些预定义图形以 XML 文件创建,可与 MAVExplorer 的其他用户共享。

创建这些图表的最快方法是使用 "保存图表 "功能,但也可以使用自己喜欢的文本编辑器手动创建 XML 文件。

您可以在这里看到 XML 格式的示例:

https://raw.githubusercontent.com/ArduPilot/MAVProxy/master/MAVProxy/tools/graphs/mavgraphs.xml

创建 XML 图形文件

MAVExplorer 可从 3 个地方查找 XML 文件来获取图形定义:

  • 在当前目录下查找名为 "mavgraphs.xml "的文件

  • 在您的主目录中,它会查找 $HOME/.mavproxy/ 目录中的任何 XML 文件(注意 mavproxy 前面的".)

  • MAVExplorer 软件包中包含一个 mavgraphs.xml 文件(就是上面链接的那个)。

对于您自己的图表,可以使用名为 $HOME/.mavproxy/mygraphs.xml 的文件,并将此内容放入其中:

<;图形>;
 <;示意图 名字='测试/测试图表';>;
 <;描述>;我的 测试 卷轴</描述>;
 <;表情>;学位(态度.滚动)</表情>;
 <;表情>;ATT.卷轴</表情>;
 </示意图>;
</图形>;

XML 文件的几个主要特点是

  • 您可以在单个 XML 文件中添加任意数量的图表

  • 每个图表都有一个名称,该名称应是唯一的

  • 名称中的"/"分隔符决定了图形在菜单结构中的位置

  • 每个图表都应有文字说明

  • 每个图表可以有多个表达式。生成图表时,首先使用适用于当前日志的表达式。

由于图形有多种表达式,因此您可以创建一个图形定义,既适用于遥测日志和数据闪存日志,也适用于旋翼飞行器、飞机和漫游车。它还允许我们添加新的表达式,以应对随着 ArduPilot 的发展而不断变化的字段名。

重新加载图表

在编辑 XML 文件添加图表时,无需退出并重新启动 MAVExplorer 即可试用新图表。只需运行 "reload(重新加载)"命令或使用 "Reload Graphs(重新加载图表)"菜单项,新图表就会加载到菜单中。

贡献图表

在 MAVExplorer 中使用 XML 文件的主要原因之一,是为了让社区成员能够提供对日志分析有用的新图表。如果您创建了一组有用的图表,请通过电子邮件发送至 andrew-mavexplorer@tridgell. 或针对 MAVProxy git 仓库.

对于包含图表的拉取请求,请将图表添加到 MAVProxy/tools/graphs 通讯录

实用命令

  • param <正则表达式>:显示日志中的参数,例如显示 TECS 参数:"param TECS_*"或 "param "显示所有参数

  • paramchange <正则表达式>:显示整个日志中参数的变化情况

  • 消息:显示 GCS 消息

  • dump<日志信息>:转储该日志信息的所有实例,如 "dump IMU"