最早的px4固件日志文件格式为.bin,后续又有了.log和.px4log格式的日志文件。较新的px4固件中多了logger日志记录module,生成的日志格式为.ulg。但是针对这种较新格式日志文件的数据分析资料并不多,missionplanner针对ulg格式的日志文件基本不可用,因此笔者注意到多数用户还是习惯于用老固件或老的日志文件格式以减少需要增加额外相关配置的麻烦。但是当用到这种格式日志文件时,该如何处理其数据呢?
首次日志文件处理过程及步骤:
1. 安装Python、pyulog、simplekml以及环境变量设置;
2. 利用pyulog处理.ulg日志文件生成.csv及.kml路径文件;
3. 当pyulog生成.kml文件失败时,利用Csv2kml.exe生成.kml路径文件;
4. 安装Google Earth,并用Google Earth打开.kml路径文件。
(一) Python、pyulog、simplekml的安装及环境变量设置
Python以及pip来说的话,估计搞飞控的人都会装上,建议python更新成最新版本。对于.ulg格式文件分析最关键的是pyulog,属于python中scripts的一种。联网状态下在命令行中输入
pip install pyulog
或者进入网址https://github.com/PX4/pyulog,下载pyulog-master安装包,解压之后,命令行进入包含setup.py文件的目录下,再输入命令行:
python setup.py build install
这时会发现在你的python安装目录下的scripts文件夹中多了好多ulog开头的.exe和script文件,实际上这些文件的名称就是你在命令行中针对日志文件操作的运行指令。
图1 python\scripts
此时,如果想要针对某一日志文件利用ulog2csv指令导出csv格式数据,只能在xx/python/scripts目录中进行,而不能在其他任意目录下进行,是因为还没有设置环境变量。若之前在安装python的过程中已经设置过环境变量,则不会出现这个问题,可以忽略。
环境变量设置步骤:右击此电脑(我的电脑or计算机),点击属性进入控制面板—系统和安全—系统,点击左侧高级系统设置,进入到系统属性。
图2 环境变量设置步骤1
点击右下角环境变量,进入到环境变量设置。
图3 环境变量设置步骤2
在xx的用户变量下拉栏中找到path,点击编辑,随后点击右侧新建,添加路径xx/python/scripts到其中(笔者添加的路径为D:\python3.6.5\Scripts),并点击确定。之后,你可以在系统内任意路径下调用pyulog中的相关命令。相关命令介绍如图5
图4 环境变量设置步骤2
图5 pyulog命令行介绍
为生成.kml文件,需要安装python下的simplekml这种script,联网状态下,在命令行中输入:
pip install simplekml
回车等待安装完毕即可。
(二) 利用pyulog生成.csv以及.kml文件
利用命令行进入到日志文件所在的目录下,输入相应的命令行进行相应的操作,如转成.csv格式数据:
ulog2csv xxx.ulg
此时发现日志文件所在目录下多了好多.csv格式文件:
这些数据可以利用matlab等软件进行处理分析,不再赘述。
同理生成.kml路径文件的命令为:
ulog2kml xxx.ulg
此时在日志文件所在的目录下会多出一个track.kml文件,利用Google Earth打开即可。
(三) ulog2kml命令失效情况下csv2kml.exe的应用
日志文件在生成的过程中,可能会出现空行,数据丢失的情况,导致生成kml文件不能进行,会出现如下图所示的报错。
此时可利用csv2kml.exe小程序生成.kml路径文件。程序下载地址为http://csv2kml.software.informer.com/1.0/。将上一步得到的.csv文件列表中的xx_vehicle_gps_position_0文件打开,并提取出经纬度数据,列成两列,另存为.csv格式文件,再利用csv2kml.exe小程序导入该csv文件,点击convert按钮转换,即可生成.kml文件。
图 6蕴含经纬度信息的文件名称
图 7 经纬度列表及csv2kml.exe运行界面
(四) 安装Google Earth,并用Google Earth打开.kml路径文件
Google Earth的安装不再赘述,将(二)或(三)中生成的kml路径文件导入到Google Earth中即可看到飞行路径。