Docs » Logs » Diagnosing problems using Logs

来源:互联网 发布:java 时间转换 毫秒 编辑:程序博客网 时间:2024/06/04 17:50

原文:http://ardupilot.org/copter/docs/common-diagnosing-problems-using-logs.html

本页旨在向您展示如何诊断影响Copter的最常见的五大问题,特别是在某种程度上对Plane和Rover也是如此。

日志类型(Dataflash vs tlogs)

有两种记录飞行数据的方式。 除了一些例外,这两种方法记录非常相似的数据,但是以不同的方式:
(1)Dataflash日志使用Pixhawk(或APM2.x)板载数据闪存,您可以在飞行后下载。 在Plane和Rover上,数据闪存日志将在启动后立即创建。 在Copter上,他们是在你第一次解锁之后创建的。
(2)遥测记录(也称为“tlog”)由Mission Planner(或其他地面站)记录,当您通过无线电台将ArduPilot连接到计算机时。
如果您还不熟悉这些日志文件的基础知识,请先阅读介绍页以了解这些日志的存储位置,以及如何下载和查看其中保存的信息。

机械故障

常见的机械故障包括电机或ESC故障(包括ESC同步故障),螺旋桨滑落或脱落等。这些出现在log中,因为所需的滚动和俯仰与车辆实际滚动和俯仰之间突然发散。 在数据闪存日志中,通过绘制ATT消息的Roll-In对Roll和Pitch-In vs Pitch以及在NavYaw vs Yaw中,这种差异最为明显。
这里写图片描述
在上面的示例中,vehicle的实际滚动(“滚动”)紧跟着日志的第一部分所需的滚动(“滚动”),但是突然发散。 飞行控制器希望滚筒保持水平(0滚动),但不能意味着机械故障。 这与飞行控制器出现的软件故障非常不同,而且由于某些奇怪的原因突然想要让上升机上下,因为在这种情况下,所需的滚动也将是疯狂的,实际的滚动将会跟随。
额外备注:
(a) tlog 在这种情况下通常更难使用, 因为虽然我们有 nav_roll 和 nav_pitch, 他们是roll和pitch的期望值, 他们只会在 RTL, Loiter或Auto飞行模式下更新。
(b) 在 AC3.1 (和更高) 中,在稳定模式下roll-in和pitch-in只持有所期望的roll和pitch。在自动驾驶仪模式下, 您必须查看 NTUN 消息的 DRol 和 DPit 列。(没看懂这句)

振动

高振动导致Copter的用于高度和水平位置估计的加速度计漂移于实际, 导致alt hold (通常飙升到天空) 或游荡 (漂流)的问题 。
最好通过绘制 dataflash 的 AccX、AccY 和 AccZ 值的图形来查看振动。AccX 和 AccY 值 (主要用于水平位置控制) 应介于-3 和 +3 米/秒/秒之间, AccZ 应介于-15 和-5 米/秒/秒之间。当Copter上下移动时, 加速度计的值会随时变化, 这就是为什么最好从直升机的大部分静止的地方拉出数据, 但是即使是Copter移动, 你仍然可以通过比较 “草” 的顶部和底部的区别来看到振动的水平。偶尔会有一棵小草越过这条线是可以的, 但是如果它是持续的, 那么它可能是一个真正的振动问题。
下面的图表显示了可接受的振动水平。
这里写图片描述
Tlog 的 RAW_IMU xacc、yacc 和 zacc 也可以使用, 但它们的更新速度要比 dataflash 日志 (50hz) 慢得多 (一般少于 10hz), 因此更难看出加速度计值的变化是否是由于Copter移动或只是振动.
如果使用 tlog 的规模是在毫 Gs, 所以可接受的范围为 xacc 和 yacc 是-300 〜 + 300, 并为 zacc 是-500 〜-1500。请注意, 在下面的图像中, 值会出现在该范围内, 这可能表示振动问题, 虽然该用户没有抱怨 AltHold 或游荡问题, 所以更有可能这些变化是因为直升机不是在一个稳定的悬停和更新率较低。
这里写图片描述

罗盘干扰

在 APM 或 PX4 附近的配电板、电机、电池、esc 和其他电气设备的干扰可能会导致旋转罗盘的航向 (又名 “马桶保龄球”), 甚至是完全错误方向的直升飞机。绘制 tlog 的 mag_field (在 “CUSTOM” 下发现) 和油门 (在 VFR_HUD 下发现) 值是快速查看干扰量的最简单的方法。
在图的下面显示了一个可接受的磁干扰量。你可以看到 mag_field 波动时, 油门是上升, 但只移动约10% 〜20%。低于30% 干扰是可以接受的。在 30% ~ 60% 之间的灰色地带, 它可能是 ok (一些用户是确定的, 有些没有) 和真正的坏的磁干扰将显示为跳跃超过60% 时, 油门是上升。
这里写图片描述
额外备注:
(a)mag_field 的长度可以是120〜550因为在地球上一般都是这个范围, 但它通常是大约330。
(b)磁干扰作为总 mag 场的百分比, 也显示在 compassmot 设置程序的末尾。
(c) Dataflash 日志的罗盘信息持有罗盘的原始 x, y 和 z 轴值 (称为 MagX, MagY, MagZ), 这相当于 tlog 的 RAW_IMU xmag, ymag 和 zmag 领域。通过先将 dataflash 日志文件加载到 excel 中, 通过罗盘信息进行过滤, 然后使用公式 mag_field = sqrt (MagX ^ 2、MagY^2、MagZ^2) 计算 mag 场, 可以计算 mag 场长度。请注意, 在 dataflash 日志中默认情况下不会启用指南针消息, 因为它在50hz 运行, 并会对 CPU 性能产生一点影响。
(d)另一件一般的事情检查指南针是应该下注在-150 〜150之间的偏移量。这些发现在 tlog 的 SENSOR_OFFSET 组, 如 mag_ofs_x, mag_ofs_y, mag_ofs_z 和 dataflash 的罗盘信息 OfsX, OfsY, OfsZ。它们也可以在参数中看到, 如 COMPASS_OFS_X, COMPASS_OFS_Y, COMPASS_OFS_Z。
(e)上面的图像在图的开头显示一个短的尖峰, 但这可以被忽略, 因为它是在油门升起之前, 所以它可能只是当用户插入一些其他的电气设备。

GPS 故障

当在自动驾驶仪模式 (Loiter, RTL, AUTO) 位置错误的 GPS 可能导致Copter认为它突然在错误的位置, 并导致积极飞行, 以纠正知觉错误。这些 “小故障” 出现在 tlog 和 dataflash 日志中, 这是因为卫星数量的减少和 hdop 的增加。
如果使用 tlog 图, 您可以通过绘制 GPS_RAW_IT 组的 “eph” 和 “satellites_visible” 值来完成此项。hdop 值为 1.5 (显示为 150) 或更低是非常好的。超过 2.0 (即 200) 表示错误的位置值。低于9的卫星数量也很糟糕。这两个值的重大变化往往伴随着 GPS 位置的变化。
这里写图片描述
在 Dataflash 日志的 GPS 信息中, 您将找到 “HDop” 和 “NSats” 列。注意 hdop 值位于 dataflash 中的正确单位 (即不像 tlog 那样大的 100x)。
这里写图片描述
AC 3.1 包括 GPS 故障检测, 它试图通过对位置的完整性检查来忽略故障。

电源问题 (限电等)

3dr 电源模块的引入使人们更容易为他们的 APM/PX4 提供可靠的电源。这导致了大量减少低电压检测的报道, 但仍有发生。他们通常可以被识别,通过发现日志突然结束, 而直升机仍然在空中 (即气压计或 inerital 导航高度仍然远远高于零)。
尝试绘制:
•Dataflash 日志的 CTUN 消息的大气 Alt
•Dataflash 日志的 GPS 信息的 RelAlt (联合加速度计 + 气压计高度估计)
•Tlog 的 VFR_HUD alt (联合加速度计 + 气压计高度估计)
•Tlog 的 GLOBAL_POSITION relative_alt
这里写图片描述
电路板电压的变化也可能是电力问题的征兆。0.10 到0.15 伏的变化是正常的。除此之外, 还有一个迹象表明, 与 APM 共享电源的其他设备会导致电源出现波纹, 从而导致电或其他怪异行为。板的电压可以用图表来绘制:
•Dataflash CURRENT message’s VCC
•Tlog HWSTATUS’s Vcc
在下面的图像直接显示的板电压下沉的0.15V 时, 油门是上升。这通常不是一件好事, 但因为它只有 0.15V, 它可能是确定的。下面的第二图 (一个来自不同用户日志的 dataflash 图) 显示了一个更随机的电压变化, 但也有一个典型的0.15V。
这里写图片描述
这里写图片描述

意外错误

当飞行控制器出现意外的行为时 (特别是当用户抱怨copter不再响应他们的输入时), 通常是由一个故障的触发引起的。有5个故障可以被激活: 油门故障, GPS 故障, GCS 安全系统 (地面站故障安全), 电池故障保险和围栏。
找到这些的最简单方法是查看 dataflash 日志, 并通过 “ERR” 筛选第一列。
这里写图片描述
Subsys (又名子系统) 给出了产生错误的区域, ECode (又名错误代码) 告诉你具体的错误是什么。在 Copter defines.h file的底部可以找到非常有限的子系统数和错误代码。
子系统/错误代码
1: Main (never used)
2: Radio
ECode 1: “后期帧”, 这意味着 APM 的机载 ppm 编码器没有提供至少2秒的更新
ECode 0: 错误解决这意味着 ppm 编码器开始再次提供数据
3: Compass
ECode 1: 指南针未能初始 (可能是硬件问题)
ECode 2: 尝试从指南针中读取单个值时出现故障 (可能是硬件问题)
ECode 0: 以上错误已解决
4: Optical flow
Ecode 1: 未能初始 (可能是硬件问题)
5: Throttle failsafe
ECode 1: 油门下降低于 FS_THR_VALUE 意味着可能失去联系之间的 RX/TX
ECode 0: 上述错误解决意义 RX/TX 联系可能恢复
6: Battery failsafe
ECode 1: 电池电压下降低于 LOW_VOLT 或总电池容量使用超过 BATT_CAPACITY
7: GPS failsafe
ECode 1: GPS 锁定丢失至少5秒
ECode 0: GPS 锁定恢复
8: GCS (Ground station) failsafe
ECode 1: 从地面站操纵杆的更新丢失了至少5秒
ECode 0: 从地面站恢复的更新
9: Fence
ECode 1: 高度护栏被攻破
ECode 2: 违反了圆形围栏
ECode 3: 高度和环形围栏被攻破
ECode 0: 飞机回到围栏内
10: Flight Mode
ECode 0 ~ 10: 飞机无法进入所需的飞行模式
(0=Stabilize, 1=Acro, 2=AltHold, 3=Auto, 4=Guided, 5=Loiter, 6=RTL, 7=Circle, 8=Position, 9=Land, 10=OF_Loiter)
11: GPS
ECode 2: GPS 故障
ECode 0: 清除 GPS 故障
12: Crash Check
ECode 1: 检测到炸机
13: Flip(翻转)
ECode 2: 翻转放弃 (由于2秒超时)
14: AutoTune(调谐)
ECode 2: 不良增益 (未能确定适当增益)
15: Parachute(降落伞)
ECode 2: 过低, 无法部署降落伞
16: EKF/InertialNav Check
ECode 2: 错误的方差
ECode 0: 清除了错误的方差
17: EKF/InertialNav Failsafe
ECode 2: EKF 故障触发
18: Baro glitch
ECode 2: 气压故障
ECode 0: 气压故障清除

原创粉丝点击