飞行数据分析
注意:本教程适用于所有Kerloud VTOL产品
飞机坠毁的背后
飞机坠毁,对于用户来说绝对是一场噩梦。我们强烈建议为每次飞行做好全部安全准备,避免人员受伤。造成坠机的原因有很多,硬件、软件都有可能。硬件层面来说,用户需要确保传感器正确校准、桨叶正确安装、飞机机械性能良好。
在这一章节,我们将介绍从飞行数据日志中能获取到哪些信息。有兴趣的用户也可以参考PX4的官方文档,链接为: https://docs.px4.io/master/en/log/flight_log_analysis.html
飞行数据日志
飞行数据日志(ulg格式)存储在Kerloud飞控单元的SD卡中,可以直接使用SD读卡器或者USB连接Qgroundcontrol地面站来读取。日志默认在每次ARM时自动开始记录(可设置),每段日志以飞行时间或会话ID命名。
使用SD读卡器,可以在log目录下找到数据日志,如下图所示:

Qgroundcontrol地面站上,单击Analyze标签下的刷新按钮就可以看到数据日志,这些日志是按飞行时间排序的。注意:这里不建议使用数传进行连接,因为无线传输很慢。

工具
数据分析用到的推荐工具列举如下:
python 2 or 3 环境
pyulog python软件包
Matlab (2010之后的版本即可)
首先,必须在Windows或Ubuntu中安装python 2 or 3环境。对于Windows用户,可在https://www.howtogeek.com/197947/how-to-install-python-on-windows/ 和https://phoenixnap.com/kb/install-pip-windows中获取简易教程。对于Ubuntu用户,python环境通常是默认安装的,也可以使用sudo apt命令轻松设置。
pyulog软件包可通过pip包管理器或源码进行安装,源码链接为:https://github.com/PX4/pyulog
pip安装命令为:
pip install pyulog
数据可视化及分析
首先需要借助pyulog软件包将数据日志转化为csv格式,操作命令如下。对于Windows用户,该命令可在PowerShell或命令提示符中执行。
ulog2csv <filename>.ulg
我们为客户提供了一个方便的Matlab脚本,可通过更改相应的文件名设置来执行。该脚本将绘制姿态、速度、位置、导航状态等曲线,用户可以根据自己的兴趣进行修改。
下图展示了一个姿态跟踪图来用于说明,红色、蓝色曲线分别表示参考数据和真实数据。飞机坠毁通常是由姿态不稳定引起的,当姿态控制无效时,用户可通过放大时间间隔来精确跟踪坠机时间。从图中可看出,姿态跟踪是令人满意的。

下文的位置跟踪图可以基于同样的方式进行分析。对于正常的航路点飞行任务,位置跟踪性能非常重要。

最后还列举了电池状态、导航状态和EKF估计协方差的图例,可对飞机的供电状态、系统状态及状态估计精度进行定量评估,有助于对异常飞行行为进行故障分析。


