先把官方网站上日志相关的说明翻译下来:
ArduPilot Documentation — ArduPilot documentation
页面:Logs — Copter documentation
与日志记录和分析相关的主题
- 使用日志诊断问题 Diagnosing problems using Logs — Copter documentation
- 数据闪存日志 Downloading and Analyzing Data Logs in Mission Planner — Copter documentation
- 直升机日志信息 Onboard Message Log Messages — Copter documentation
- 测量振动 Measuring Vibration — Copter documentation
-
使用IMU批量采样器测量振动 Measuring Vibration with IMU Batch Sampler — Copter documentation
- 遥测日志 Telemetry Logs — Mission Planner documentation
日志分析相关工具
- MAVExplorer Using MAVExplorer for log analysis — Dev documentation
- MissionPlanner
- QGroundControl
- DroneePlotter
- UAV LogViewer
目录
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 扩展名:
- 下载日志文件。记下它下载到的计算机上的位置。 (例如,它可能是 C:\Downloads)
- 打开Mission Planner
- 导航到“Flight Data”页面(左上角)
- 选择“Dataflash Logs”选项卡(屏幕中间,左侧)
- 选择“Review a Log”按钮。
- 标准的 Windows“选择文件”框可让您在下载位置找到已下载的 .bin 文件。 (根据上面的示例,它位于 C:\Downloads 中)选择该文件。
- 阅读日志后,将打开手动日志审查窗口,您可以在其中绘制日志中的数据以供检查。 (见下文)
查看日志数据
选择所需的日志后,您将获得如下图表。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”