ArduPilot日志系统探索(一)

2023-05-16

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

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

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

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

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

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

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

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

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

FieldDescription
MagX,MagY,MagZx、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自系统启动依赖,该样本被采集的时间
AccXX 轴的加速度
AccYY轴的加速度
AccZZ轴的加速度


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重复指标
mmsiMMSI
nav导航状态
rot转弯率(ROT)
sog対地速度SOG
pos定位精度
lon经度
lat纬度
cog地面课程COG
hed真航向HDG
sec时间戳
man机动指示器
raimRAIM 标志
rad电台状态

AIS4

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

US自系统启动以来的时间
rep重复指标
mmsiMMSI
year年(UTC)
mth月(UTC)
day日(UTC)
h时(UTC)
m分(UTC)
s秒(UTC)
fix修复质量
lon经度
lat纬度
epfdEPFD 的类型
raimRAIM标志
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”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ArduPilot日志系统探索(一) 的相关文章

  • ArduPilot之开源代码框架

    ArduPilot之开源代码框架 1 系统框架2 工程框架2 1 工程目录2 2 代码组成2 3 运行流程 4 硬件传感器总线4 1 I2C4 2 SPI4 3 UART4 4 CAN 5 软件设计概念6 总结7 参考资料 在研读ArduP
  • ArduPilot之开源代码基础知识&Threading概念

    ArduPilot之开源代码基础知识 amp Threading概念 1 源由2 基础知识2 1 The timer callbacks2 2 HAL specific threads2 2 1 AP HAL ChibiOS2 2 2 AP
  • 无人系统板载(任务)计算机设计----Ardupilot/PX4/ROS (阿木)

    摘自 https zhuanlan zhihu com p 115418045 无人系统板载 任务 计算机设计 Ardupilot PX4 ROS 阿木实验室 已认证的官方帐号 一 大型飞行管理系统介绍 目前的小型无人系统的飞行管理系统 x
  • PX4和ardupilot(APM)的对比

    经常看见有人在群里问这个 1 APM历史要远长于PX4 xff0c 因此功能更丰富 xff0c 经历的坑也更多 xff0c 填的坑也更多 xff0c 因此有 功能完善 运行稳定 的优势 xff08 这里的稳定指的是由于程序问题莫名其妙炸机的
  • ArduPilot Kakute F7 AIO DIYF450 without GPS配置

    ArduPilot Kakute F7 AIO DIYF450 without GPS配置 1 源由2 配置2 1 Kakute F7 AIO相关配置2 1 1 串口规划2 1 2 电传配置2 1 3 GPS配置2 1 4 CRSF接收机配
  • Ardupilot EKF3核心算法《气压计,GPS更新融合》

    目录 文章目录 目录 摘要 1 高度融合源的选择 2 GPS的速度和位置测量序列的融合 2 1 得到GPS的观测方程 2 2 得到GPS的观测方程中的H矩阵 2 3 计算卡尔曼增益 2 2 得到GPS的测量数据 2 3 得到GPS的观测噪声
  • ardupilot 最优化算法

    目录 文章目录 目录 摘要 1 最小二乘法 1 1定义 1 2 基本思想 1 3 基本原理 1 4举例子 1 5最小二乘法和梯度法区别 2 梯度下降法 2 1 什么是梯度 2 2 什么是梯度下降 3 牛顿迭代法 3 0 牛顿迭代 3 1 牛
  • Ardupilot 软件在环SITL仿真学习

    目录 文章目录 目录 摘要 1 配置SITL功能 2 SITL指令学习 1 如何起飞 2 如何上锁 3 如何降落 4 如何修改模式 5 如何修改遥控器输入 6 如何修改参数 摘要 本文主要学习Ardupilot 的软件在环SITL仿真功能
  • Ardupilot速率控制器rate_controller_run解析

    Ardupilot速率控制器rate controller run解析 PID速率控制器源码解析rate controller run PID运算积分限制update i get ff set xxx 内容补充 xff1a 函数中陀螺仪数据
  • UAV-5--链接飞控以及配置SITL以及ardupilot环境

    linux系统链接飞控以及配置SITL以及ardupilot环境 先更改本机host到对象的ip 再进行ssh的链接 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img meuTGFrN 1651933771950
  • Ardupilot自定义mavlink消息

    在ardupilot modules mavlink message definitions v1 0 commom xml文件结尾处添加自定义消息 lt 20220713WP 添加一个mavlink消息 gt lt message id
  • ArduPilot-sitl仿真-Mission Planner联合显示

    ArduPilot sitl仿真 Mission Planner联合显示 To start the simulator first change directory to the vehicle directory For example
  • Ardupilot SITL(Software in the Loop)软件仿真

    参考 xff1a http ardupilot org dev docs sitl native on windows html sitl native on windows 第一步 xff1a 下载MAVProxy 第二步 xff1a 下
  • ardupilot & px4 书写自己的app & drivers (二)

    新建任务列表任务 打印时间 任务列表 const AP Scheduler span class hljs tag Task span Copter span class hljs tag scheduler tasks span span
  • ArduCopter——ArduPilot——航点导航WPNav(一)

    版权声明 xff1a 本文为博主原创博文 xff0c 未经允许不得转载 xff0c 若要转载 xff0c 请说明出处并给出博文链接 现如今 xff0c 四旋翼飞行器已经从几年前的遥控航模变成真正可以超视距操控的无人机 xff0c 离不开伟大
  • 解决多个Ardupilot运行仿真环境冲突问题

    情况说明 分别安装了4 2和4 3两个版本的ardupilot工作环境 xff0c 出现运行4 3版本sim vehicle py时路径链接到4 2版本工作路径 解决 为防止文件识别错误 xff0c 更改sim vehicle py文件名为
  • ArduPilot/APM源码学习笔记(一)

    最近开始学习ArduPilot APM飞控的源码 xff0c 源码托管在github上 源码链接 xff1a https github com diydrones ardupilot 飞控主页 xff1a http ardupilot co
  • ardupilot的libraries之PID

    在源码的libraries中 xff0c 有两个关于PID的源文件文件夹 xff0c 一个叫AC PID xff0c 另一个是PID AC PID中又细分为AC HELI PID AC P和AC PID xff0c 这里我们只讨论AC PI
  • Ardupilot-SITL仿真模拟调试

    1 配置SITL仿真调试 span class token punctuation span span class token operator span waf configure span class token operator sp
  • ArduPilot之开源代码框架

    ArduPilot之开源代码框架 1 系统框架2 工程框架2 1 工程目录2 2 代码组成2 3 运行流程 4 硬件传感器总线4 1 I2C4 2 SPI4 3 UART4 4 CAN 5 软件设计概念6 总结7 参考资料 在研读ArduP

随机推荐

  • Ubuntu18.04 NX下用ZED2 双目立体相机进行SLAM

    NX下的ZED2开发 安装流程问题开始了看效果安装ZED2 ROS工具 新故事篇章 zed2测距开始实现 安装流程 了解zed参数 因为网上的安装流程还是不太完整 xff0c 我补充一下 希望对其他人也有帮助 部分流程参考这位 xff1a
  • ubuntu16.04备份和迁移

    ubuntu16 04备份和迁移 背景实践1 备份整个系统2 重装Ubuntu16 043 恢复系统 题外话 xff1a 修改主机名参考文章 背景 此文用来快速记录备份和恢复的过程步骤 xff0c 具体命令意思不做过多介绍 因为不想新设备重
  • Ubuntu apt-get报错

    昨天晚上更新源 xff0c 居然报错了 zcidcs 64 ubuntu sudo apt get upgrade sudo password for zcidcs Reading package lists Done Building d
  • 2014阿里巴巴面试总结

    刚结束的一面 xff0c 可能昨天笔试题目做得还行 xff0c 今天中午电话我叫我1 30去面试 xff0c 时间紧急 xff0c 我吃完饭赶紧回宿舍小休息一会儿 xff0c 然后奔赴文三路的华星时代大厦 人太多了 xff0c 等到了2 2
  • 基类指针,子类指针,虚函数,override与final

    一 xff1a 基类指针与子类指针 span class token macro property span class token directive keyword include span span class token strin
  • web开发中实现页面记忆的几种方式

    一 前言 在前段时间公司有个需求是对前一个页面的操作进行记忆 xff0c 例如分页的样式 xff0c 选中的条件等 之前是用的session去存储记忆数据 xff0c 老大让我调研一下目前比较合理的方式然后分析一下 xff0c 这里以本篇博
  • 基于VINS与FastPlanner的无人机自主飞行Gazebo仿真

    项目来源及展示 xff1a https www bilibili com video BV1WK4y1V7um from 61 search amp seid 61 12548150687335659873 基本思路 xff1a 采用Gaz
  • RGB-D SLAM 相关总结

    目录 一 RGB D SLAM是什么 xff1f 二 D435i说明 三 RGB D SLAM研究现状 1 现有的RGB D SLAM方法 1 1 前端 1 2 后端 1 3 闭环检测 1 4 制图 2 优秀RGB D SLAM介绍 2 1
  • VINS-Mono学习(一)——数据预处理

    void push back double dt const Eigen Vector3d amp acc const Eigen Vector3d amp gyr dt buf push back dt acc buf push back
  • VINS-Mono学习(四)——回环检测与重定位

    目录 1 闭环检测常用方法有哪些 xff1f 2 ORB SLAM2中Loop Closing的具体实现流程是怎样的 xff1f 3 VINS回环检测与重定位 四自由度位姿图优化 3 1 第一部分 xff1a 回环检测与重定位 3 1 1
  • LADRC的学习——总概

    作者 xff1a 墨心 日期 xff1a 2019 7 25 xff1b 学习LADRC结构 xff1a 1 学习PID的相关知识 xff0c 作为学习ADRC的基础铺垫 xff0c 在simulink中搭建模块 xff0c 通过调节参数
  • LADRC的学习——PID的学习

    PID部分的学习 上文介绍了ADRC的理论 xff0c 并试着按照自己的理解用Matab编程实现韩老师论文中的算法 xff0c 但是对调节参数和一些地方还不太懂 xff0c 因此我打算从头开始理解 xff0c 从PID的好坏开始学习理解 x
  • LADRC的学习——换被控对象进行仿真测试

    LADRC控制器的检验 用不同的被控对象测验 一 前文总结 这篇文章主要根据清华大学的硕士陈星写的论文 xff1a 自抗扰控制器参数整定方法及其热工过程中的应用 进行学习 参考文献为 xff1a 1 Zhiqiang Gao Scaling
  • ROS-3DSLAM(二)lvi-sam项目认识

    2021SC 64 SDUSC xff08 二 xff09 lvi sam项目认识 一 SLAM简介 SLAM是Simultaneous Localization and Mapping xff08 同时定位 43 建图 xff09 独立的
  • KMP算法——字符串匹配问题

    贴上原址 xff1a http www ruanyifeng com blog 2013 05 Knuth E2 80 93Morris E2 80 93Pratt algorithm html 感觉这篇文章讲得很不错 xff0c 很容易懂
  • ROS-3DSLAM(十六)lvi-sam项目总结

    2021SC 64 SDUSC 学习内容概览 本次的项目lvi sam主要分为两个大的模块 xff1a lidar模块和visual模块 我们小组学习先进行了lidar模块的学习 xff0c 然后进行的visual模块 每个模块都分成了若干
  • 项目实训 - 智能车系统 - 第八周记录

    项目实训 智能车系统 第八周记录 日期 xff1a 4 11 4 17 项目进度 本周工作进展 xff1a 完成了雷达驱动的编写 xff08 未测试 xff09 完成imu驱动的编写 xff08 未测试 xff09 与可视化部分进行对接 1
  • IIC详细解答+ 面试 + 代码

    目录 IIC背景提炼部分 xff08 面试 xff09 xff08 详解 43 代码 xff09 协议部分IIC部分初始化 IIC 的 IO 口IIC 开始信号IIC发送一个字节IIC 读一个字节响应ACK和非响应NACKIIC 停止信号
  • FreeRTOS内核学习高级篇-调度器使用

    学习资料链接 http wiki csie ncku edu tw embedded freertos https freertos blog csdn net article details 51190095 介绍 调度器是FreeRTO
  • ArduPilot日志系统探索(一)

    先把官方网站上日志相关的说明翻译下来 xff1a ArduPilot Documentation ArduPilot documentation 页面 xff1a Logs Copter documentation 与日志记录和分析相关的主