先把官方网站上日志相关的说明翻译下来:

ArduPilot Documentation — ArduPilot documentation

页面:Logs — Copter documentation

与日志记录和分析相关的主题

  1. 使用日志诊断问题 Diagnosing problems using Logs — Copter documentation
  2. 数据闪存日志  Downloading and Analyzing Data Logs in Mission Planner — Copter documentation
  3. 直升机日志信息  Onboard Message Log Messages — Copter documentation
  4. 测量振动  Measuring Vibration — Copter documentation
  5. 使用IMU批量采样器测量振动  Measuring Vibration with IMU Batch Sampler — Copter documentation

  6. 遥测日志  Telemetry Logs — Mission Planner documentation

日志分析相关工具

  • MAVExplorer   Using MAVExplorer for log analysis — Dev documentation
  • MissionPlanner
  • QGroundControl
  • DroneePlotter
  • UAV LogViewer

目录

1.使用日志诊断问题

日志类型(Dataflash 与 tlogs)

机械故障

振动

罗盘干扰

GPS故障

电源问题(掉电等)

意外错误,包括故障保护

2. 在Mission Planner中下载和分析数据日志

日志参数

通过MAVLink下载日志

自动分析日志

手动查看日志

查看日志数据

消息详细信息(特定于Copter)

查看KMZ文件

3. 直升机日志信息(板载消息日志信息)

ACC

ADSB

AHR2

AIS1

AIS4

4.测量振动

5. 使用 IMU 批量采样器测量振动

6. 遥测日志

创建 tlog 的时间和地点

设置数据速率

播放任务

创建飞行路径的 3d 图像

提取参数和航点

绘制航班数据


1.使用日志诊断问题

此页面显示如何诊断特别影响Copter的六个最常见问题,但在某种程度上也影响Plane和Rover

日志类型(Dataflash 与 tlogs)

有两种方法可以记录您的飞行数据。除了一些例外,这两种方法记录的数据非常相似,但方式不同:

  • Dataflash logs(查看2)记录在autopilot(通常存储在SD卡上),因此必须在飞行后从autopilot上下载
  • Telemetry logs(也称为tlogs)(查看6)是当autopilot通过遥测链路连接时,由本地PC上的地面站(Mission Planner)记录

如果您还不熟悉这些日志文件的基础知识,请首先查看介绍页面以了解这些日志的存储位置以及如何下载和查看其中包含的信息

机械故障

常见的机械故障包括电机或 ESC 故障(包括 ESC 同步故障)、螺旋桨断裂或脱落等。这些在日志中显示为所需滚动和俯仰与车辆实际滚动和俯仰之间的突然分歧。通过绘制 ATT 消息的 DesRoll 与 Roll、DesPitch 与 Pitch 以及较小程度的 DesYaw 与 Yaw 可以看到这种差异。

在上面的示例中,车辆的实际侧倾 (“Roll”) 紧跟日志第一部分所需的侧倾 (“DesRoll”),但随后突然发散。自动驾驶仪希望滚动保持水平(“滚动”= 0),但它不可能意味着存在机械故障。这与软件故障非常不同,在软件故障中,自动驾驶仪因某种奇怪的原因突然想让直升机上下颠倒,因为在这种情况下,DesRoll 也会变得疯狂,并且实际的 Roll 会随之而来

Tlogs 包含相同的数据。将 NAV_CONTROLLER_OUTPUT 的 nav_roll(期望滚动)和 nav_pitch(期望俯仰)与 ATTITUDE.roll(实际滚动)和 pitch(实际俯仰)进行比较。

振动

高振动会导致直升机基于加速度计的高度和水平位置估计偏离现实,从而导致高度保持(飞行器可能会飞向天空)或在 Loiter、PosHold、Auto 等模式下的位置控制出现问题。

如测量振动页面所述,最好通过绘制 VIBE 消息的 VibeX、VibeY 和 VibeZ 值来查看振动。低于 30m/s/s 的振动水平通常是可以接受的。高于 30m/s/s 的水平面可能会出现问题,高于 60m/s/s 的水平面几乎总是会出现位置或高度保持问题。

下图显示了可接受的振动水平,始终低于 30m/s/s

下图来自因高振动而出现位置估计问题的车辆

 

Tlog 的 VIBRATIONvibration_x、vibration_y 和vibration_z 也可以使用并显示与存储到数据闪存日志中相同的信息

罗盘干扰

来自自动驾驶仪附近的配电板、电机、电池、ESC 和其他电气设备的干扰可能会导致指南针航向偏离,从而导致盘旋(又称“马桶保龄球”),甚至直升机飞向完全错误的方向。绘制 tlog 的 mag_field(在“CUSTOM”下)和油门(在 VFR_HUD 下)是快速查看干扰量的最简单方法。

下图显示了可接受的磁场干扰量,当油门升高时,磁场波动仅为 10% 到 20%。低于 30% 的干扰是可以接受的。 30% ~ 60% 之间处于灰色区域,可能还可以(有些用户可以,有些则不行),当油门升高时,非常糟糕的磁干扰将显示为超过 60% 的跳跃。

额外说明:

  • mag_field 的长度可以在 120 到 550 之间,具体取决于车辆在世界的哪个位置,但通常在 330 左右
  • 磁干扰占总磁场的百分比也显示在罗盘设置过程的最后。在 Advanced Compass Setup 页面上搜索“CompassMot”以了解有关 compassmot 的更多信息
  • Dataflash 日志的 COMPASS 消息保存罗盘的原始 x、y 和 z 轴值(称为 MagX、MagY、MagZ),它们等效于 tlog 的 RAW_IMU xmag、ymag 和 zmag 字段。可以通过首先将 dataflash 日志文件加载到 excel 中,通过 COMPASS 消息过滤,然后使用公式 mag_field = sqrt(MagX^2, MagY^2, MagZ^2 计算磁场长度来计算磁场长度)。请注意,默认情况下,数据闪存日志中未启用 COMPASS 消息,因为它以 50hz 运行并且确实会影响 CPU 性能。
  • 上面的图像在图表的开头显示了一个短暂的尖峰,但这可以忽略不计,因为它是在油门升起之前,所以它可能就像用户插入其他一些电子设备一样

GPS故障

当处于自主模式(Loiter、RTL、Auto 等)时,来自 GPS 的位置错误会导致车辆认为它突然出现在错误的位置,并导致主动飞行以纠正感知到的错误。这些“故障”在 tlog 和 dataflash 日志中都显示为可见卫星数量的减少和 hdop 的增加。

绘制 Dataflash 日志的 GPS 消息的“HDop”和“NSats”值。低于 1.5 的 Hdop 值非常好,超过 2.0 的值可能表明 GPS 位置不好。低于 12 颗的卫星数量也很糟糕。这两个值的显着变化通常伴随 GPS 位置变化

如果使用 tlogs 绘制 GPS_RAW_IT 组的“eph”和“satellites_visible”值。低于 150 的 Hdop 值是好的,超过 200 的值可能表明位置不好。

有关在 GPS 故障非常严重的情况下车辆如何切换到非自主模式的更多详细信息,请参阅 EKF 故障保护 wiki 页面

电源问题(掉电等)

电源模块为自动驾驶仪提供可靠的电源,但偶尔仍会发生掉电。它们通常可以通过在车辆仍在空中时突然结束的日志来识别(即气压计或 EKF 高度仍在报告车辆的高度远高于零)。

尝试绘制图形:

  • Dataflash 日志的 CTUN Alt(离家高度)或 BAlt(气压计高度)
  • Dataflash 日志的 GPS Alt(海拔高度)
  • Tlog 的 VFR_HUD alt(加速度计 + 气压计高度估计的组合)
  • Tlog 的 GLOBAL_POSITION relative_alt(高于家的高度)

电路板电压的变化也可能是电源问题的征兆。 0.10 到 0.15 伏的变化是正常的。除此之外,可能表明与自动驾驶仪共享电源的其他设备正在导致电源波动,从而导致断电。可以使用以下方法绘制电路板电压:

  • Dataflash POWR 消息的 VCC
  • Tlog HWSTATUS 的 Vcc

在下图中,当油门升起时,电路板电压下降了 0.15V。这通常不是一件好事,但因为它只有 0.15V,所以可能没问题。下面的第二张图(来自不同用户日志的数据闪存图)显示了一个非常稳定的电压,纹波小于 0.1V。

意外错误,包括故障保护

当自动驾驶仪发生意外行为时(尤其是当用户抱怨直升机不再响应他们的输入时),这通常是由触发的故障保护之一引起的。

找到这些的最简单方法是查看数据闪存日志并按“ERR”过滤第一列。如果使用 Mission Planner,错误也会出现在图形区域顶部的红色标记中。

Subsys(又名子系统)给出了产生错误的区域,而 ECode(又名错误代码)告诉您具体的错误是什么。子系统列表和错误代码可以在 AP_Logger 库 AP_Logger.h 文件中找到。

2. 在Mission Planner中下载和分析数据日志

Dataflash logs存储在autopilot上,可以在飞行后下载。默认情况下,它们是在您首次武装车辆(arm the vehicle)后创建的。本主题介绍如何配置和访问Dataflash logs

根据autopilot类型和配置,dataflash logs 可以保存在SD卡、数据闪存芯片上或通过MAVLink遥测端口流式传输。MAVLink选项确实需要高速遥测端口,通常为912600波特。

注意:

Telemetry logs(也被称为“tlogs”)收集与Dataflash logs类似的信息(有关更多信息,请参阅使用日志诊断问题)

注意:

如果您的交通工具无法生成Dataflash logs(包括臭名昭著的“无IO心跳”诊断信息)尝试使用不同的SD卡。您也可以选择使用专用工具,例如H2testw。板电压过低也会导致日志记录问题

日志参数

一些常用的参数:

LOG_BACKEND_TYPE:记录将日志保存到哪里的位掩码(Bitmask)。常用值是“0”:禁用日志;“1”记录到SD卡文件;“2”通过MAVLink流式传输;“4”记录到板数据闪存,如果配备的话。

LOG_BITMASK:日志记录了哪些项目的位掩码。通常,使用默认值或“0”禁用日志

LOG_DISARMED: 设置为1,将在通电时开始记录,而不是在车辆第一次布防时开始记录。在调试pre-arm故障时很有用

LOG_FILE_DSRMROT: 设置该位将强制在撤防(disarming)后创建新的日志文件,等待15秒,然后重新设防(re-arming)。通常,日志将是autopilot每次电源循环的一个文件,从第一次布防开始

LOG_FILE_MB_FREE: 此参数设置日志开始前记录日志媒体上的最小可用空间。如果这不可用,则将删除较旧的日志以在初始化期间提供它,默认为500MB

通过MAVLink下载日志

  • 将您的交通设备连接到地面站
  • 打开Mission Planner's 的飞行数据屏幕
  • 在左下方,选择“DataFlash Logs”并按下“Download DataFlash Log Via Mavlink”按钮

然后,选择要下载的日志。这会将日志保存到您的MissionPlanner/logs目录中,位于以交通工具类型命名的文件夹中,例如QUADCOPTER。

自动分析日志

最简单的分析是生成一个基本的自动报告,该报告将突出常见问题区域。为此,单击“日志分析”并选择您已保存到MissionPlanner/logs目录的日志。它们将位于以交通工具类型命名的文件夹中,例如QUADCOPTER或ROVER。选择所需的日志后,它将生成如下所示的报告

手动查看日志

如需更详细的分析,请单击“Review a Log”并选择您已保存到 MissionPlanner/logs 目录的日志。再次,它们将位于以车辆类型命名的文件夹中,例如 QUADCOPTER 或 ROVER。

查看从 Internet 或您的车辆下载的日志的步骤

对于 DataFlash 日志,带有 .bin 或 .log 扩展名:

  1. 下载日志文件。记下它下载到的计算机上的位置。 (例如,它可能是 C:\Downloads)
  2. 打开Mission Planner
  3. 导航到“Flight Data”页面(左上角)
  4. 选择“Dataflash Logs”选项卡(屏幕中间,左侧)
  5. 选择“Review a Log”按钮。
  6. 标准的 Windows“选择文件”框可让您在下载位置找到已下载的 .bin 文件。 (根据上面的示例,它位于 C:\Downloads 中)选择该文件。
  7. 阅读日志后,将打开手动日志审查窗口,您可以在其中绘制日志中的数据以供检查。 (见下文)

查看日志数据

选择所需的日志后,您将获得如下图表。dataflash的基本格式是

  • 行号出现在查看器的最左侧
  • 软件版本和板卡类型显示在顶部
  • 接下来是 FMT 消息,它告诉任务规划者每种消息类型的列标题
  • PARM 行显示每个参数(按照它们在 eeprom 中出现的顺序)以及它们在飞行开始时的值
  • GPS、IMU等飞行数据信息

首先通过单击相应的行来绘制任何航班数据,你应该会看到列标题相应地更新。接下来找到您要绘制图表的列,单击它,然后按“Graph this data”按钮。在上面的示例中,已经绘制了ATT的Roll-in和Roll数据。鼠标滚轮可用于放大或缩小。您还可以选择图形的一个区域来放大它。通过鼠标右键单击并选择“将比例设置为默认值”来缩小。这是有关使用此功能的迷你教程。您还可以通过单击第一列并从下拉列表中选择消息类型来仅过滤第一列(航班数据消息类型)。这对于查看任务期间使用的不同飞行模式(称为“模式”消息)非常有用。再次单击第一列,但按“取消”以清除过滤器。

 设置要记录的数据

LOG_BITMASK 参数控制数据闪存中记录的消息

消息详细信息(特定于Copter)

许多消息在每辆交通工具类型的的 wiki 部分的Onboard Message Log Messages页面中有详细说明。

ATT(姿态信息)

DesRoll 飞行员期望的滚转角(度数)(左滚为负,右滚为正)
Roll 车辆的实际滚动度数(向左滚动为负,向右滚动为正)
DesPitch 飞行员期望的俯仰角(以度为单位)(向前俯仰为负,向后俯仰为正)
Pitch 以度为单位的车辆实际俯仰角(向前俯仰为负,向后俯仰为正)
DesYaw 飞行员期望的航向,以度数为单位,0 = 北
Yaw 车辆的实际航向以度为单位,0 = 北
ErrRP 滚转/俯仰误差估计的平均大小(0 到 1 之间的值)
ErrYaw 偏航误差估计的平均大小(值在 0 和 1 之间)

ATUN(自动调谐概述)

轴:0 = 滚动,1 = 俯仰
TuneStep 0 = 回到水平(测试之前或之后),1 = 测试(即执行抽动以测试响应),2 = 更新增益(抽动完成并调整增益)
RateMin 此测试期间的最低记录速率
RateMax 此测试期间的最大记录速率
RPGain 正在测试的速率 P 增益值
RDGain 正在测试的速率 D 增益值
SPGain 稳定正在测试的 P 增益

ATDE(自动调整步骤细节):

Angle 被测轴的直升机角度(以厘米为单位)
Rate 被测轴的旋翼转速

CAM(激活相机快门的时间和位置)

GPSTime GPS 报告自纪元以来的时间(以毫秒为单位)
Lat 加速度计 + GPS 纬度估计
Lng 加速度计 + GPS 经度估计
Alt 加速度计 + 气压计估计的海拔高度(以厘米为单位)
Roll 车辆侧倾角(摄氏度)
Pitch 车辆俯仰角,以厘度为单位
Yaw 以厘度为单位的车辆航向

CMD(从地面站接收或作为任务的一部分执行的命令)

CTot 任务中的命令总数
CNum 此命令在任务中的编号(0 始终是家,1 是第一个命令,等等)
CId MAVLink 消息 ID
Copt 选项参数(用于许多不同的目的)
Prm1 命令的参数(用于许多不同的目的)
Alt 以米为单位的命令高度
Lat 命令的纬度位置
Lng 命令的经度位置

COMPASS(原始罗盘、偏移和罗盘补偿值)

Field Description
MagX,MagY,MagZ x、y 和 z 轴的原始磁场值
OfsX,OfsY,OfsZ 原始磁偏移(仅当 COMPASS_LEARN 参数为 1 时才会改变)
MOfsX,MOfsY,MOfsZ 油门或电流的罗盘补偿

....还有很多

查看KMZ文件

当您从autopilot下载Dataflash日志文件时,它将自动创建一个 KMZ 文件(扩展名为 .kmz 的文件)。可以使用 Google Earth打开此文件(只需双击该文件)以在 Google Earth中查看您的航班。有关其他详细信息,请参阅遥测日志页面上的说明。

3. 直升机日志信息(板载消息日志信息)

这是可能出现在 ArduPilot 设备上生成和存储的日志中的日志消息列表

ACC

IMU加速度计数据

TimeUS 自系统启动以来的时间
I 加速度计传感器实例编号
SampleUS 自系统启动依赖,该样本被采集的时间
AccX X 轴的加速度
AccY Y轴的加速度
AccZ Z轴的加速度

ADSB

自动依赖服务-广播检测到的交通工具信息

TimeUS 自系统启动以来的时间
ICAO_address 转发器地址
Lat 交通工具纬度
Lng 交通工具经度
Alt 交通工具高度
Heading 交通工具航向
Hor_vel 交通工具水平速度
Ver_vel 交通工具垂直速度
Squark 应答器应答码(Transponder squawk code)

AHR2

备份AHRS数据

TimeUS 子系统启动以来的时间
Roll 预估滚动角
Pitch 预估pitch
Yaw 预估偏航
Alt 预估高度
Lat 预估纬度
Lng 预估经度
Q1 预估姿态四元数分量1
Q2 预估姿态四元数分量2
Q3 预估姿态四元数分量3
Q4 预估姿态四元数分量4

AIS1

’位置报告‘AIS消息里面的内容,可以看AIVDM/AIVDO protocol decoding

US 自系统启动以来的时间
typ 消息类型
rep 重复指标
mmsi MMSI
nav 导航状态
rot 转弯率(ROT)
sog 対地速度SOG
pos 定位精度
lon 经度
lat 纬度
cog 地面课程COG
hed 真航向HDG
sec 时间戳
man 机动指示器
raim RAIM 标志
rad 电台状态

AIS4

’基站报告‘AIS消息里面的内容,可以看https://gpsd.gitlab.io/gpsd/AIVDM.html#_type_4_base_station_report

US 自系统启动以来的时间
rep 重复指标
mmsi MMSI
year 年(UTC)
mth 月(UTC)
day 日(UTC)
h 时(UTC)
m 分(UTC)
s 秒(UTC)
fix 修复质量
lon 经度
lat 纬度
epfd EPFD 的类型
raim RAIM标志
rad 电台状态

后面有很多。。还没有一一翻译过来

4.测量振动

5. 使用 IMU 批量采样器测量振动

6. 遥测日志

当您通过遥测链路将 ArduPilot 连接到您的计算机时,地面站会记录遥测日志(也称为“tlogs”)。本主题介绍如何配置和访问 tlog。

创建 tlog 的时间和地点

tlog 是autopilot和地面站之间发送的 MAVLink 遥测消息的记录,并在您按下地面站上的连接按钮时自动创建。

如果使用 Mission Planner,格式为 YYYY-MM-DD hh-mm-ss.tlog 的文件会出现在 Mission Planner 安装文件夹的“logs”子文件夹中或在 Planner 选项中选择的位置 [Config/Tuning] [Planner]。

除了“.tlog”文件之外,还创建了“.rlog”文件。这些包含所有 .tlog 数据以及来自任务规划器的额外调试输出。但无法解析或回放,因此应忽略它们。

设置数据速率

数据从Autopilot发送到地面站的所需速率可以通过任务规划器的COnfig/TUning > Planner screen’s Telemetry下拉菜单进行控制。因为通过遥测链路发送的所有数据也记录在 tlog 中,这也控制了数据保存到 tlog 的速率

请注意,由于带宽限制,发送和保存数据的实际速率可能低于请求的速率

播放任务

可以通过执行以下操作来回放 tlog

  • 打开Mission Planner的飞行数据屏幕
  • 单击遥测日志选项卡
  • 按“Load Log”并找到航班的 tlog 文件
  • 按“播放”

您还可以使用滑块跳转到日志中的兴趣点,并使用预定义的速度按钮控制播放速度。

回放日志时,HUD 会移动,并且地图上的车辆位置会像飞行期间一样更新。可以通过状态选项卡查看各个数据值,您甚至可以通过单击地图下方的“调整”复选框将它们显示在图表中,然后双击数据图例以显示一个框,您可以从中准确选择哪个数据字段如下图所示。这将显示记录的数据随着飞行的进行而变化

创建飞行路径的 3d 图像

您可以通过执行以下操作创建 KMZ 文件:

  • 打开Mission Planner的飞行数据屏幕
  • 单击遥测日志选项卡
  • 按“Tlog > Kml or Graph”按钮
  • 按“创建 KML + GPX”按钮
  • 选择航班日志

将在原始 .tlog 旁边创建一个 .kmz 和 .kml 文件,可以在 google earth 中打开该文件以交互查看 3d 飞行路径。您可以在 Google 地球中打开 kmz 文件以查看航班或路径。只需双击该文件或将其拖放到 Google 地球中。

飞行过程中使用的不同飞行模式将显示为不同颜色的轨迹。您可以通过执行以下操作更改有关如何显示飞行路径的一些详细信息,包括它们的颜色以及路径是否延伸到地面:

在左侧的“Places”窗格中找到日志文件的名称。它应该出现在“Temporary Places”文件夹中。

右键单击单个路径并选择“properties”以打开“编辑路径”窗口。

颜色可以在“Style,Color”选项卡上更改

通过取消选中(选中)“Extend path to ground”,可以在“Altitude”选项卡上删除(添加)路径下方的区域

提取参数和航点

您可以按照与创建 KML 文件相同的步骤从 tlog 中提取参数和航点,除了在最后一步选择“Extract Params”或“Extract WPs”。

提取参数将导致在 tlog 旁边创建一个 .param 文件。该文件以制表符分隔,包含完整的参数列表(与它们在 eeprom 中出现的顺序相同)及其在飞行期间的值。这可以在 excel 或文本编辑器中打开。

提取 WP 将创建一个或多个 .txt 文件,其中包含上传到自动驾驶仪的任何任务。这些文件可以通过切换到飞行计划屏幕,在地图上单击鼠标右键并选择“文件加载/保存”,“加载 WP 文件”在 Mission Planner 中打开。

绘制航班数据

可以通过执行以下操作绘制来自航班的数据:

  • 打开Mission Planner的飞行数据屏幕
  • 单击遥测日志选项卡
  • 按“Tlog > Kml or Graph”按钮
  • 按“Graph Log”按钮
  • 选择航班日志

  • 当“Graph This”屏幕出现时,使用鼠标左键或右键单击要绘制图形的项目旁边的复选框。请注意,这些项目分为“RC_CHANNELS”和“RAW_IMU”等类别,尽管通常仍然很难准确找到您想要绘制的项目
  • 如果您使用鼠标左键,该项目的比例将出现在图表的左侧。如果您使用鼠标右键,它将出现在右侧
  • 多次单击复选框以循环显示所有可能的颜色
  • 使用鼠标中轮更改图形的缩放,按住鼠标左键选择图形区域,或用鼠标右键单击图形并选择“将比例设置为默认值”

日志分析相关工具

MAVExplorer

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

在 Linux 上安装 MAVExplorer

您将需要安装最新版本的 pymavlink 和 mavproxy。在 Linux 上这样做:

sudo apt-get install python-matplotlib python-serial python-wxgtk3.0 python-lxml
sudo apt-get install python-scipy python-opencv  python-pip python-pexpect python-tk
sudo pip install --upgrade pymavlink mavproxy

运行后,您的路径中应该有一个新命令“MAVExplorer.py”。

在 Windows 上安装 MAVExplorer

要在 Windows 上安装 MAVExplorer,请在此处下载预构建的 MAVProxy 包:

ArduPilot firmware : /Tools/MAVProxy

该软件包包括 MAVProxy 和 MAVExplorer。 然后创建一个链接

c:\Program Files (x86)\MAVProxy\MAVExplorer.exe

到您的桌面上。然后,您可以通过将日志文件拖到 MAVExplorer 快捷方式上来启动 MAVExplorer。

在 MacOS 上安装 MAVExplorer

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

sudo easy_install pip

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

pip install mavproxy --user

然后将 $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 ~/Desktop/ardupilot/00000013.bin

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

底部窗口是“控制台”,有您的菜单和状态消息。顶部窗口是您的终端,并有“MAV>”提示输入命令。键入“帮助”的结果会列出命令。

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

使用预定义的图表

MAVExplorer 带有一组广泛的预定义图表。这些图表出现在控制台的图表菜单中。只有与您正在查看的日志相关的图表才会出现在菜单中。

要显示图表,只需在“图表”菜单中选择它。如果需要,您可以一次显示多个图形。

手动绘图

您还可以在 MAV> 提示符下使用终端中的 graph 命令绘制日志中的任何数据。只需键入 graph 后跟表达式。例如:

graph ATT.Roll ATT.Pitch

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

graph <TAB><TAB>

你会看到这样的东西:

已列出可能的消息名称列表。如果您键入所需的消息名称的一部分,则可以使用 <TAB> 来完成名称。 在消息名称之后,您需要键入一个“.”,后跟一个字段名称。再次,您可以 TAB 完成,例如:

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

一些消息具有“Instance”字段,用于存储多个传感器实例的数据,例如RFND 日志消息。在这种情况下,必须在绘制图形时指定实例编号,否则所有实例的值将组合在一个图形中。

graph RFND[0].Dist

修改预定义图表

每当您使用预定义的图形时,图形表达式都会添加到您的命令行历史记录中。因此,您只需按 Enter 刷新历史记录,然后按向上箭头即可调出您刚刚显示的预定义图形的图形表达式。然后,您可以添加新字段或编辑现有字段并按 Enter 以显示新图表。

您还可以使用“显示”菜单下的“保存图形”菜单项保存刚刚显示的任何图形:

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

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

另请注意,每个图形表达式都应单独位于一条线上。如果表达式有多行,那么它们将被视为替代表达式(以应对不同类型的日志)。

图形表达式

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

这使您可以轻松地绘制组合日志中任何变量的数学表达式。例如:

graph sqrt(MAG.MagX**2+MAG.MagY**2+MAG.MagZ**2)

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

另一个非常有用的表达是对数据的低通滤波器:

graph IMU[0].AccX lowpass(IMU[0].AccX,0,.99)

语法是lowpass(variable to filter,tag,alpha) 其中“tag”是任意参考数字,“alpha”是当前滤波器输出的权重,1-alpha 是当前变量值的权重这个样本,这些是求和以提供下一个滤波器输​​出样本。

左右刻度

默认情况下,图形值显示在左侧轴刻度上,全部缩放在一起。要在右侧刻度上平面字段,只需在字段名称末尾使用“:2”。例如:

按飞行模式选择

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

FlightMode 菜单将显示您的飞行中的所有飞行模式更改,以及在该模式下的秒数。您可以通过选择适当的航班菜单项来选择要在后续图表中包含航班的哪些部分。如果没有选择,则绘制整个日志。

添加条件

您可以根据以可用日志变量的 Python 表达式表示的条件来限制图形。例如,如果您只想在 DataFlash 日志中绘制 GPS 速度高于 4 米/秒的位置,您可以这样做:

condition GPS.Spd>4

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

condition ''

显示地图

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

map

或从显示菜单中选择 MAP 菜单项。 根据当前情况会弹出一个地图,如下所示:

您可以使用鼠标和滚轮或 + 和 - 键放大和缩小。您可以使用两次左键单击来测量距离。颜色用于指示飞行模式。 您可以选择提供用于地图的消息类型。可以使用具有纬度和经度元素的任何消息类型。例如,要在 ArduPilot 日志文件中显示 GPS 和 POS 消息中的地图,您可以执行以下操作:

map GPS 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 的文件并将其放入其中以开始:

<graphs><graph name='Test/Test Graph'><description>My Test Roll</description><expression>degrees(ATTITUDE.roll)</expression><expression>ATT.Roll</expression></graph>
</graphs>

XML 文件的几个关键特性是:

  • 您可以在单个 XML 文件中拥有任意数量的图形
  • 每个图都有一个唯一的名称
  • 名称中的“/”分隔符确定图表在菜单结构中的显示位置
  • 每个图表都应该有文字说明
  • 每个图可以有多个表达式。适用于当前日志的第一个表达式用于生成图形。

因为一个图有多个表达式,您可以创建一个适用于遥测日志和数据闪存日志的图定义,并且适用于直升机、飞机和流动站。随着 ArduPilot 的发展,它还允许我们添加新的表达式来应对不断变化的字段名称。

重新加载图表

编辑 XML 文件以添加图形时,您无需退出并重新启动 MAVExplorer 即可试用新图形。只需运行“重新加载”命令或使用“重新加载图表”菜单项,您的新图表就会被加载到菜单中。

贡献图

MAVExplorer 中 XML 文件的主要原因之一是允许社区成员贡献对日志分析有用的新图表。如果您创建了一组有用的图表,请通过电子邮件将它们发送到 andrew-mavexplorer@tridgell.net 或针对 MAVProxy git 存储库打开拉取请求。

对于带有图表的拉取请求,请将图表添加到 MAVProxy/tools/graphs 目录

有用的命令

  • param <regular expression> :显示来自日志的参数,例如。显示 TECS 参数:“param TECS_*”或“param”显示所有
  • paramchange <正则表达式>:在整个日志中显示参数的变化
  • 消息:显示 GCS 消息
  • dump <log message>:转储该日志消息的所有实例,例如。 “转储 IMU”

ArduPilot日志系统探索(一)相关推荐

  1. 探索Java日志的奥秘:底层日志系统-log4j2

    前言 log4j2是apache在log4j的基础上,参考logback架构实现的一套新的日志系统(我感觉是apache害怕logback了). log4j2的官方文档上写着一些它的优点: 在拥有全部 ...

  2. 创业公司如何做数据分析(四)ELK日志系统

    作为系列文章的第四篇,本文将重点探讨数据采集层中的ELK日志系统.日志,指的是后台服务中产生的log信息,通常会输入到不同的文件中,比如Django服务下,一般会有nginx日志和uWSGI日志.这些 ...

  3. 系统分析之100亿级日志系统是怎么设计出来的?

    日志是记录系统中各种问题信息的关键,也是一种常见的海量数据. 日志平台为集团所有业务系统提供日志采集.消费.分析.存储.索引和查询的一站式日志服务. 主要为了解决日志分散不方便查看.日志搜索操作复杂且 ...

  4. 一个百亿级日志系统是怎么设计出来的?

    日志是记录系统中各种问题信息的关键,也是一种常见的海量数据. 日志平台为集团所有业务系统提供日志采集.消费.分析.存储.索引和查询的一站式日志服务. 主要为了解决日志分散不方便查看.日志搜索操作复杂且 ...

  5. 轻量级日志系统Loki原理简介和使用

    前言 这篇文章应朋友的要求,让写一篇loki日志系统,咱定义不容辞 一定要好好写 开干! 现实中的需求 公司的容器云运行的应用或某一个节点出现了问题,解决的思路 问题首先被prometheus监控 1 ...

  6. 轻量级日志系统 PLG(**Promtail + Loki + Grafana**)架构技术调研

    开源的容器云日志方案 1.Promtail Promtail 是代理,负责收集日志并将其发送给loki.对标ELK中的Logstash. Promtail是一个日志收集的代理,它的主要工作模式是发现存 ...

  7. 初识ELK(日志系统)

    1.ELK是Elasticsearch.Logstash. Kibana三大开源框架首字母大写简称.在市面上也被称之为Elastic Stack. 其中Elasticsearch是一个基于Lucene ...

  8. 使用 ClickHouse 构建通用日志系统

    使用 ClickHouse 构建通用日志系统 序言 ClickHouse 是一款常用于大数据分析的数据库,因为其压缩存储,高性能,丰富的函数等特性,近期有很多尝试 ClickHouse 做日志系统的案 ...

  9. flume+es+kibana日志系统

    上个公司做了个日志系统,其实之间断断续续搞了三套方案,一套就是前边说的hadoop方案,网上也有但是不全,自己搞了下发现太庞大不适合小型项目,这次搞了flume+ES+kibana方案,感觉非常不错哦 ...

  10. 基于C#中的Trace实现一个简单的日志系统

      最近在做的项目进入中期阶段,因为在基本框架结构确定以后,现阶段工作重心开始转变为具体业务逻辑的实现,在这个过程中我认为主要有两点,即保证逻辑代码的正确性和容错性.确定需求文档中隐性需求和逻辑缺陷. ...

最新文章

  1. android专栏目录
  2. 设置在桌面上不显示计算机,怎么在桌面上显示我的电脑 我的电脑桌面不显示怎么办...
  3. 四年后十大最赚钱行业
  4. 反思开发新需求节省时间的方法
  5. LeetCode Algorithm 204. 计数质数
  6. 如何用“区块链+稳定币”技术来提升资产证券化市场运作效率
  7. mongodb环境安装
  8. 一文读懂视频监控系统全过程内容
  9. MySQL 之 explain
  10. HOG + SVM 实现图片分类(python3)
  11. linux shell脚本EOF妙用
  12. Windows 7系统快捷键汇总
  13. 程序员如何用“撞针“拯救 35 亿地球人?
  14. git如何查看某个人提交的日志。
  15. mysql 正则表达式 regExp
  16. 代码管理(二)sourcetree 安装与使用
  17. PAT乙级刷题感想及踩坑总结
  18. 零基础安卓手游辅助开发入门视频教程
  19. Spring之Bean后处理器——InstantiationAwareBeanPostProcessor的使用与源码解析
  20. 随机数生成器python

热门文章

  1. 大楼通信综合布线系统_综合布线系统设计方案时需要注意的事项
  2. mysql 仓储系统规划与设计,仓库管理系统的设计与实现.doc
  3. vs插件supercharger注册码
  4. 开源究竟差哪了--- 关于开源软件和自由软件的区别
  5. Lrc2srt精灵,增加自定义输出编码
  6. 计算机网络冲突窗口,计算机网络基础试题及答案
  7. OldSkoolVerb Plus for Mac(算法混响插件)
  8. Laya位图字体制作
  9. 如何下载 MMS开头的视频资源
  10. matlab图像拼接 设计,MATLAB图像拼接算法及实现.doc