使用 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 日志。启动后,您将看到如下两个窗口:
底部窗口是 "控制台",显示菜单和状态信息。顶部窗口是终端,有 "MAV> "提示输入命令。输入 "help "的结果显示为命令列表。
备注
注意日志文件名中的空格。如果需要,请在文件名周围使用引号。
使用预定义图表¶
MAVExplorer 自带大量预定义图表。这些图表显示在控制台的图表菜单中。只有与您正在查看的日志相关的图表才会出现在菜单中。
要显示图表,只需在图表菜单中选择即可。如果需要,您可以同时显示多个图表。
手动绘制图表¶
您还可以在终端的 MAV> 提示下使用 graph 命令将日志中的任何数据绘制成图形。只需键入 graph,然后输入表达式。例如
示意图 ATT.卷轴 ATT.间距
为了帮助您快速创建图表,您可以使用 TAB 键完成并列出可用的信息和字段。例如,如果您这样做
图 <TAB><TAB>;
你会看到这样的内容:
已列出了可能的信息名称。如果您键入了所需信息名称的一部分,则可以使用 <TAB>来完成名称的输入。
在信息名称后,您需要输入一个".",然后输入字段名称。同样,您可以使用 TAB 键完成输入,例如
您可以在一个图表中对多个字段进行此操作,从而快速构建复杂的图表。
有些信息有 实例
字段,用于存储多个传感器实例的数据,例如 RFND
日志信息。在这种情况下,绘制图表时必须指定实例编号,否则所有实例的值都会合并到一个图表中。
示意图 RFND[0].Dist
修改预定义图表¶
无论何时使用预定义图形,图形表达式都会添加到命令行历史记录中。因此,你只需点击回车键刷新历史记录,然后向上箭头调出刚才显示的预定义图形的图形表达式。然后可以添加新字段或编辑现有字段,点击回车键显示新图表。
您还可以使用 "显示 "菜单下的 "保存图表 "菜单项保存刚刚显示的图表:
您可以编辑图表的名称和描述,然后按 "保存",您的图表就会添加到预定义图表中。您还可以使用 "测试 "按钮在保存前测试图表。
请注意,图形名称中的/分隔符将控制图形在图形菜单树中的显示方式。例如,如果您保存的图表名称为 "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 为当前变量值在本次采样中的加权值,这些值相加以提供下一次滤波器输出采样。
左右刻度¶
默认情况下,图表值显示在左侧坐标轴刻度上,所有数值按比例缩放在一起。要将字段平面显示在右侧坐标轴上,只需在字段名后使用":2 "即可。例如
按飞行模式选择¶
根据飞行模式只选择飞行的一部分通常很有用。为此,请使用 FlightMode(飞行模式)菜单:
FlightMode(飞行模式)菜单将显示飞行中所有飞行模式的变化,以及在该模式下飞行的秒数。通过选择相应的飞行菜单项,您可以选择将飞行的哪些部分包含在后续图表中。如果未选择任何部分,则会绘制整个日志。
添加条件¶
您可以根据可用日志变量的 python 表达式所表达的条件来限制图表。例如,如果您只想在 DataFlash 日志中绘制 GPS 速度超过 4 米/秒的图表,就可以这样做:
条件 全球定位系统.速度>;4
要清除条件,请将其设置为空字符串
条件 ''
显示地图¶
您可以使用 "地图 "命令显示显示飞行路径的地图:
地图
或从显示菜单中选择 MAP 菜单项。
地图会按照当前情况弹出,就像这样:
您可以使用鼠标和滚轮或 "+"和"-"键进行放大和缩小。左击两下即可测量距离。颜色用于表示飞行模式。
您可以选择提供用于地图的信息类型。任何包含经纬度元素的信息类型都可以使用。例如,要显示 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"