在Mission Planner地面站中下载和分析数据日志

Dataflash 日志存储在(飞行)控制器上,可在飞行后下载。默认情况下,它们是在首次上膛飞行器后创建的。本主题介绍如何配置和访问 Dataflash 日志。

根据(飞行)控制器的类型和配置,数据闪存日志可保存在 SD 卡、数据闪存芯片上,或通过 MAVLink 遥测端口串流。MAVLink 选项需要高速遥测端口,通常为 921600 波特。

备注

遥测日志 (又称 "tlogs")收集的信息与数据闪存日志(见 使用日志诊断问题 了解更多信息)。

备注

如果您的载具在生成数据闪存日志时出现问题,包括臭名昭著的 "无 IO 心跳 "诊断信息,请尝试更换 SD 卡。您也可以选择使用专用工具测试该卡,例如 H2testw.众所周知,电路板电压过低也会导致记录问题。

日志参数

常用的参数有

  • 日志后端类型:用于保存日志的位掩码。常用值包括:"0 "表示禁用日志记录;"1"(位 0 设置)表示记录到 SD 卡文件;"2"(位 1 设置)表示通过 MAVLink 传输数据流;"4"(位 2 设置)表示记录到板卡闪存(如有)。

  • LOG_BITMASK:记录项目的位掩码。通常使用默认值,或使用 "0 "来禁用日志记录。

  • 日志_解除警报:设置为 1 将在接通电源时开始记录,而不是在载具首次上膛时。这在调试预上膛故障时非常有用。设置为 2 将仅在 USB 电源以外的电源应用时记录日志,以防止在工作台上设置时记录日志。设置为 3 还将删除载具未进入上膛状态的任何日志。这样可以防止在工作台或现场配置时积累大量日志。参见 日志消耗率最大值 还用于在日志记录解除时管理日志文件大小。

  • 日志文件:设置该位将在解除上膛、等待 15 秒然后重新上膛后强制创建新的日志文件。通常情况下,(飞行)控制器的每个电源周期(从首次上膛开始)都会有一个日志文件。

  • 日志文件已空:该参数设置记录介质上开始记录前的最小可用空间。如果没有可用空间,则将删除旧日志,以便在初始化过程中提供可用空间。默认值为 500MB。

  • 日志文件最大比率:这将设置流日志信息记录到文件后端的最大速率,以限制文件大小。值为零(默认值)意味着正常日志记录没有限制,这取决于 调度循环速率 值(50Hz:飞机,300Hz:垂直起降机/UGV无人车,400Hz:旋翼飞行器,通常)。请注意,类似于 log_blk_ratemax记录最大飞行速度 分别对 BLOCK 日志流和 MAVLink 日志流执行相同的可选限制。

  • LOG_MAX_FILES:在开始旋转日志编号之前写入数据闪存或 SD 卡的日志文件的最大数量。上限为最多 500 个日志。

备注

如果怀疑由于记录速度过快而遗漏了记录条目,可以检查 DSF.Dp 日志信息,查看遗漏条目的数量。

备注

可以通过使用 RCx_OPTION 发送机通道上的辅助功能 "164"。将该通道切换为高电平将暂停这些信息,但不会暂停事件、模式更改、警告等。这使得记录能力有限的(飞行)控制器(即使用块记录到芯片内存而没有 SD 卡)仅在飞行过程中需要时才记录,例如在飞行稳定调整阶段或确定 TECs 参数等。您还可以使用 LOG_BITMASK 以减少日志大小

重放日志

ArduPilot 具有记录日志的功能,通过实际重放与代码更改相对应的日志,可以更轻松地验证 EKF/AHRS 问题的解决方案,查看解决方案是否会产生所需的修正行为。这就要求日志显示要解决的问题时,日志必须在解除期间处于激活状态(用 日志_解除警报 设置为非零值,最好是 3)和 日志播放 =1 ,从而记录比正常情况下更多的传感器数据。

SD 卡记录问题

如果您遇到 SD 卡记录错误的问题,可以尝试以下方法。

  • 将存储卡格式化为 FAT32 或 vFAT(新格式可与新版 Ardupilot 和更好的硬件配合使用)。

  • 执行完全格式化,检查坏扇区。

  • 检查卡是否有写保护。

  • 检查卡片触点。

  • 有些卡有问题,请尝试使用不同的卡。

  • 确保存储卡的速度足以满足日志记录的需求(10 级存储卡适用于很多人,但低速存储卡也可以使用)。

  • 减少日志中 LOG_BITMASK 的数据量。

  • 递增 BRD_SD_SLOWDOWN,最大为 32(默认为 0)。

板载数据闪存记录

有些电路板没有用于记录日志的 SD 卡接口,而是使用有限的数据闪存,通常为 16MB。它以类似循环缓冲区的方式保存日志文件。一旦闪存被填满,最旧的日志文件就会被当前的日志数据覆盖。如果闪存空间用完时只有一个文件,则会停止记录。

新日志文件将在启动后、上膛时或在下列情况下立即启动 日志_解除警报 为 1。

如果 日志文件 启用后,任何撤膛操作都将停止记录,并在下一次撤膛时启动一个新文件。 日志_解除警报 否则,重新启动时将恢复对当前文件的记录。任何一次重启都会停止记录到当前文件。

为了最大限度地利用有限的闪存空间,可以采取几种方法:

  • 减少使用记录的内容 LOG_BITMASK.

  • 取消记录 EKF3 信息,因为这些信息数量庞大,通常只在诊断问题时需要使用 EK3_LOG_LEVEL 参数。

  • 只有在飞行过程中需要时才记录日志,例如调试、为 TECS 调试收集数据等,使用设置为 "164 "的 RC 辅助开关来启动和停止日志写入。

  • 通过设置 log_blk_ratemax 默认为不受限制。

  • 每次飞行下载并清除日志,每次飞行只记录一个文件

备注

某些数据闪存芯片的速度特别慢,导致日志中出现空白。设置 log_blk_ratemax 调低数值有助于消除这些间隙。

自动分析日志

../_images/MissionPlanner_AutomaticLogAnalysis_Buttons.png

Mission Planner地面站:启动日志分析

最简单的分析是生成一份基本的自动报告,突出显示常见问题区域。为此,请单击 "日志分析 "并选择已保存到 MissionPlanner/logs 目录中的日志。它们将被放在以载具类型命名的文件夹中,如 QUADCOPTER 或 ROVER。选中需要的日志后,就会生成类似下面的报告:

../_images/Capture3.png

手动查看日志

要进行更详细的分析,请单击 "查看日志 "并选择已保存到 MissionPlanner/logs 目录中的日志。同样,这些日志将放在以载具类型命名的文件夹中,如 QUADCOPTER 或 ROVER。

查看从互联网或载具上下载的日志的步骤

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

  1. 下载日志文件。请注意该文件在计算机上的下载位置。(例如,可能是 C:\Downloads)

  2. 打开Mission Planner地面站

  3. 导航至 "飞行数据 "页面(左上角)

  4. 选择 "数据闪存日志 "选项卡(屏幕中间左侧)

  5. 选择 "查看日志 "按钮。

  6. 标准的 Windows "选择文件 "框会让你在下载的位置找到下载的 .bin 文件(根据上面的例子,它位于 C:\Downloads)。(根据上面的例子,它位于 C:\Downloads)选择该文件。

  7. 读取日志后,将打开一个手动日志查看窗口,您可以通过该窗口绘制日志中的数据进行检查。(见下文)

查看日志数据

一旦选择了所需的日志,就会得到如下图表。数据闪存的基本格式是

  • 行号显示在查看器的最左侧

  • 软件版本和电路板类型显示在顶部

  • 接下来是 FMT 报文,它告诉Mission Planner地面站每种报文类型的列标题

  • PARM 行显示每个参数(按其在 eeprom 中出现的顺序)及其在飞行开始时的值

  • 飞行数据信息,包括 GPS、IMU 等。

./_images/mp_dataflash_format.png

首先点击相应的行,您会看到列标题相应地更新。然后找到要绘制图表的列,点击该列,然后按下 "绘制该数据图表 "按钮。在上面的示例中,ATT 的 "滚入 "和 "滚动 "数据已经绘制成图表。鼠标滚轮可用于放大或缩小。您还可以选择图表的某个区域进行放大。单击鼠标右键并选择 "将缩放比例设为默认值 "即可缩小。 下面是 使用该功能的迷你教程。您也可以只过滤第一列(飞行数据报文类型),方法是点击第一列并从下拉菜单中选择报文类型。这对于查看任务中使用的不同飞行模式(称为 "MODE "信息)非常有用。再次点击第一列,按 "取消 "键清除过滤。

../_images/MissionPlanner_CLI_openDataflashFilter.png

设置要记录的数据

"这款" LOG_BITMASK 参数控制记录在日志中的信息。不同载具的位数不同。上图是 Copter 的图片。

../_images/mp_dataflash_log_bitmask.png

信息详情(旋翼飞行器专用)

备注

许多信息在 机载信息日志信息 页面。

ATT(态度信息):

DesRoll

飞行员所需的滚转角度,单位为度(向左滚转为负,向右滚转为正)。

卷轴

载具的实际侧倾角度(左侧倾为负,右侧倾为正)。

DesPitch

飞行员所需的俯仰角,单位为度(向前俯仰为负,向后俯仰为正)。

间距

载具的实际俯仰角,单位为度(向前俯仰为负,向后俯仰为正)。

DesYaw

飞行员的预期航向,单位为度,0 = 向北

亚乌

载具的实际航向,单位为度,0 = 北

ErrRP

滚动/俯仰误差估计值的平均大小(数值介于 0 和 1 之间)

ErrYaw

偏航误差估计值的平均大小(数值介于 0 和 1 之间)

ATUN(自动调整概览):

轴:0 = 滚轴,1 = 螺距

TuneStep

0 = 回归水平(测试前或测试后),1 = 测试(即进行抽动以测试反应),2 = 更新增益(完成抽动并调整增益)

最低费率

测试期间的最低记录速率

最大费率

测试期间记录的最大速率

RPGain

正在测试的速率 P 增益值

RDGain

正在测试的 D 级增益值

SPGain

稳定正在测试的 P 增益

ATDE(自动调整步骤详情):

角度

被测轴的角度(厘度)x

费率

测试轴的旋转速度

CAM(相机快门启动的时间和位置):

全球定位系统时间

以毫秒为单位的 GPS 报告的自纪元以来的时间

纬度

加速度计 + GPS 纬度估算

Lng

加速度计 + GPS 经度估算

Alt

加速度计+气压计估算的离地高度(厘米

卷轴

载具侧倾角(厘度

间距

载具俯仰角(厘度

亚乌

载具航向(厘度

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

计算结果

任务中命令的总数

CNum

该命令在任务中的编号(0 表示总是原点,1 表示第一个命令,等等)

CId

"这款" MAVLink 信息 ID

科普特人

选项参数(用于多种不同目的)

Prm1

命令参数(用于多种不同目的)

Alt

指令的高度,以米为单位

纬度

指令的纬度位置

Lng

指令的经度位置

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

现场

说明

MagX, MagY.

x 轴、y 轴和 z 轴的原始磁场值

OfsX、OfsY、OfsZ

原始磁偏角(只有当 COMPASS_LEARN 参数为 1 时才会更改)

MOfsX, MOfsY, MOfsZ

节流或电流的 Compassmot 补偿

CURRENT(电池电压、电流和电路板电压信息):

领域

说明

先导输入节流阀范围为 0 ~ 1000

ThrInt

综合节流阀(即本次飞行的总节流阀输出总和)

伏特

电池电压(伏特)* 100

Curr

电池电流(安培)*100

Vcc

电路板电压

CurrTot

电池总电流

CTUN(控制、油门和高度信息):

领域

说明

美国时间

以微秒为单位的信息时间戳(可忽略)

飞行员的油门输入为 0 至 1000 之间的数字

ABst

角度提升:由于旋翼飞行器倾斜而增加油门(从 0 到 1000)(自动添加到所有飞行员和(飞行)控制器油门中,以减少倾斜时的高度损失)

ThO

发送至电机的最终节流阀输出(0 ~ 1000)。在稳定模式下通常等于 ThrI+ABst。

ThH

在 0 ~ 1 范围内悬停所需的节流阀估计值

DAlt

在 AltHold、Loiter、RTL 或 Auto 飞行模式下的期望高度。它受 EKF 原点的影响,在 3.5.X 中,EKF 原点由 GPS 高度校正。这一功能在 3.6.X 中被关闭,可通过 EKF_OGN_HGT_MASK 打开。

Alt

当前的 EKF 高度

BAlt

气压高度:气压计显示的地面高度

DSAlt

与地面或天花板的预期距离,以厘米为单位(仅在声纳可用时可见)。

SAlt

声纳高度:根据声纳显示的离地高度(仅声纳可用时可见)

TAlt

地形高度(默认不使用)

DCRt

预期爬升率(厘米/秒

CRt

爬升率(厘米/秒

N

陀螺仪谐波带阻滤波电流中心频率(赫兹

D32、DU32(有符号 32 位整数或无符号 32 位整数的单个数据值):

领域

说明

本我

变量的标识号。只有两种可能的值:

  • 7 = 内部状态的比特掩码(各个比特的含义可在 "内部状态 "的定义中找到)。 ap 结构

  • 9 = 简单模式的初始航向(厘度

EKF(扩展卡尔曼滤波器):

在此登录信息 (开发维基)。概述 这里.

ERR(错误信息):

子系统和错误代码如下

子系统 EC 代码和说明
2 = 无线电
  • 0 = 错误已解决

  • 2 = 延迟帧:两秒钟内未收到接收机的更新信息

3 = 指南针
  • 0 = 错误已解决

  • 1 = 初始化失败(可能是硬件问题)

  • 4 = 不健康:传感器读数失败

5 = 无线电故障安全
  • 0 = 故障安全已解决

  • 1 = 触发故障安全

6 = 电池故障安全
  • 0 = 故障安全已解决

  • 1 = 触发故障安全

8 = GCS 故障安全
  • 0 = 故障安全已解决

  • 1 = 触发故障安全

9 = 栅栏故障安全
  • 0 = 故障安全已解决

  • 1 = 突破高度栅栏,触发故障安全保护

  • 2 = 圆形栅栏破损,触发故障安全保护

  • 3 = Alt 和环形栅栏均被破坏,触发故障安全保护

  • 4 = 多边形围栏被破坏,触发故障安全保护

10 = 飞行模式更改失败

由于位置估计错误,载具无法正常进入所需的飞行模式

参见 这里的飞行模式编号

11 = GPS
  • 0 = 故障清除

  • 2 = GPS 出现故障

12 = 碰撞检查
  • 1 = 检测到撞击地面。通常情况下,载具在撞击后很快就会解除警报。

  • 2 = 检测到失控。通常情况下,降落伞会在

13 = 翻转模式 2 = 放弃翻转(未上膛、先导输入或超时)
15 = 降落伞
  • 2 = 未部署,载具太低

  • 3 = 未部署,载具着陆

16 = ECF 检查
  • 0 = 差值清除(位置估计确定)

  • 2 = 差异(位置估计错误)

17 = EKF 故障安全
  • 0 = 故障安全已解决

  • 1 = 触发故障安全

18 = 气压计
  • 0 = 错误已解决

  • 4 = 不健康:传感器读数失败

19 = CPU 负载看门狗
  • 0 = 故障安全已解决

  • 1 = 触发故障安全(通常为载具撤膛)

20 = ADSB 故障安全
  • 0 = 故障安全已解决

  • 1 = 不采取行动,只向飞行员报告

  • 2 = 载具通过爬坡或下坡避险

  • 3 = 载具通过水平移动躲避

  • 4 = 载具与其他载具垂直行驶以避免碰撞

  • 5 = 调用 RTL

21 = 地形数据 2 = 缺少地形数据
22 = 导航
  • 2 = 设置目的地失败

  • 3 = 重新启动 RTL

  • 4 = Circle 初始化失败

  • 5 = 目的地在围栏外

23 = 地形故障安全
  • 0 = 故障安全已解决

  • 1 = 触发故障安全(通常为载具 RTL)

24 = 已更改 EKF 初级
  • 0 = 第 1 个 EKF 已成为主要

  • 1 = 第 2 个 EKF 已成为主要

25 = 检查推力损失
  • 0 = 恢复推力

  • 1 = 检测到推力损失(高度可能优先于偏航控制)。

26 = 传感器故障安全(次级)
  • 0 = 传感器故障安全解除

  • 1 = 传感器故障安全触发

27 = 漏电故障安全(次级)
  • 0 = 已清除泄漏故障安全

  • 1 = 触发检漏仪故障安全保护

28 = 先导输入超时故障安全(仅限子局)
  • 0 = 先导输入故障安全解除

  • 1 = 触发先导输入失效保护

29 = 振动故障安全
  • 0 = 取消过大振动补偿

  • 1 = 已启动过度振动补偿功能

EV:(事件编号).可能发生的事件的完整列表请参见 AP_Logger.h 但最常见的是

事件编号

说明

10

上膛

11

解除上膛

15

自动上膛(飞行员已将油门升至零以上,(飞行)控制器可自由控制油门)

18

土地完整

25

设置原点(原点位置坐标已捕获)

28

未着陆(又称起飞完成)

GPA:(全球定位精度)

领域

说明

VDop

精度的垂直稀释,精度的无单位度量 https://en.wikipedia.org/wiki/Dilution_of_precision

HAcc

GPS 模块报告的水平精度,以米为单位

VAcc

GPS 模块报告的垂直精度,以米为单位

SAcc

GPS 报告的速度精度,单位 m/s/s

VV

指示 GPS 是否报告垂直速度的标志

0 无垂直速度数据 1 GPS 有垂直速度数据

短信

精度/GPS 定位数据相关的自动驾驶时间(毫秒)。

三角洲

(飞行)控制器解析上一条 GPS 信息和当前 GPS 信息之间的时间间隔(毫秒)。

全球定位系统:

领域

说明

现状

0 = 无 GPS,1 = 有 GPS 但无定位,2 = 有 2D 定位的 GPS,3 = 有 3D 定位的 GPS

时间

以毫秒为单位的 GPS 报告的自纪元以来的时间

NSats

目前使用的卫星数量

HDop

衡量 GPS 精确度的标准(1.5 为好,2.0 则不太好) https://en.wikipedia.org/wiki/Dilution_of_precision

纬度

根据 GPS 显示的纬度

Lng

根据 GPS 确定的经度

RelAlt

加速度计 + Baro 高度(米

Alt

GPS 报告高度((飞行)控制器不使用)

SPD

水平地面速度(米/秒

GCrs

地面航向,单位为度(0 = 北)

IMU(加速度计和陀螺仪信息):

领域

说明

GyrX、GyrY、GyrZ

以弧度/秒为单位的原始陀螺仪旋转率

AccX, AccY, AccZ

以 m/s/s 为单位的加速度计原始值

模式(飞行模式):

领域

说明

模式

以字符串形式显示的飞行模式(如稳定、降落等)。

ThrCrs

油门巡航(0 ~ 1000)是(飞行)控制器对保持稳定悬停所需的油门的最佳猜测

Rsn

模式更改的原因(TX 命令、故障安全等)。代码值的含义请参见 模式原因

NTUN(导航信息):

领域

说明

WPDst

到下一个航点(或停机目标)的距离,单位为厘米。仅在 Loiter、RTL、Auto 模式下更新。

WPBrg

到下一个航点的方位(度

PErX

旋翼飞行器与纬度方向下一个航点之间的中间目标距离

教育

旋翼飞行器与经度方向下一个航点之间的中间目标距离

DVelX

纬度方向的预期速度(厘米/秒

DVelY

经度方向的预期速度(厘米/秒

VelX

纬度方向的实际加速度计+GPS 速度估算值

VelY

实际加速度计+GPS 经度方向速度估计值

DAcX

纬度方向的预期加速度(厘米/秒/秒

DAcY

经度方向的预期加速度(厘米/秒/秒

DRol

预期滚动角度(厘度

DPit

预期俯仰角(厘度

PM(性能监测):

领域

说明

NLon

运行时间较长的主循环次数(即运行时间超过 20% 的循环次数)。 调度循环速率 - 例如,400Hz 速率为 3ms)

NLoop

自上次显示 PM 信息以来的循环总数。这样就可以计算出运行缓慢的循环所占的百分比(不应高于 15%)。请注意,该值将取决于(飞行)控制器的时钟速度

MaxT

自上次 PM 消息发出后,任何循环所耗费的最长时间。该时间不应超过调度程序循环周期的 120%,但在电机处于上膛状态的时间间隔内,该时间会更长。

备忘录

可用内存(以字节为单位

载荷

使用 CPU 的调度器循环周期百分比(乘以 10

RCOUT(pwm 输出至单个 RC 输出):

RC1、RC2 等:(飞行)控制器向 esc/电机/RC 输出发送的 pwm 命令

查看 KMZ 文件

从(飞行)控制器下载数据闪存日志文件时,它会自动创建一个 KMZ 文件(扩展名为 .kmz 的文件)。该文件可通过 Google Earth 打开(只需双击该文件),以便在 Google Earth 中查看飞行情况。请参阅 遥测日志页面 了解更多详情。

视频教程