加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

PX4log日志文件导入MATLAB分析

(2017-07-25 22:05:44)
标签:

it

分类: Pixhawk飞控系统

PX4 官方的 github 库中,悄悄的推出了日志分析 Matlab 脚本文件。 
链接:https://github.com/PX4/ecl/tree/master/matlab/analysis

[ Matlab 版本需高于2013a ]


本文只作简单的用法讲解,日志文件的解析之后有时间会跟上~


 

文件目录

包含三个 .m 文件:


estimatorLogViewerPX4.m     //估计分析;
importPX4log.m              //导入PX4log 文件;
usageSamples.m              //以上两个文件的用法示例;
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

.PX4log 导入 MATLAB

三个 .m 文件 与 .PX4log 文件放入同一个文件夹,将该路径添加工作路径,且为当前路径。

 


http://img.blog.csdn.net/20161203171031966  

 

文件导入方法如下:【usageSamples.m】


fname ='mytest2.px4log';

%% entire log  导入整个 px4log 文件;
wholeLog = importPX4log(fname,{});

%% attitude message 导入 姿态 信息;
attitudeData = importPX4log(fname,{'ATT'});

%% estimator messages  导入 估计 信息;
estimatorData = importPX4log(fname,{'EST0','EST1','EST2','EST3','EST4','EST5','EST6'});

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

导入后为一个结构体,结构如下: 


http://img.blog.csdn.net/20161203171813017  

 


     ATT: [1x1 struct]
    ATSP: [1x1 struct]
     IMU: [1x1 struct]
    IMU1: [1x1 struct]
    IMU2: [1x1 struct]
    SENS: [1x1 struct]
    AIR1: [1x1 struct]
    LPOS: [1x1 struct]
    LPSP: [1x1 struct]
     GPS: [1x1 struct]
    DGPS: [1x1 struct]
    ATTC: [1x1 struct]
    ATC1: [1x1 struct]
    STAT: [1x1 struct]
    VTOL: [1x1 struct]
     CTS: [1x1 struct]
      RC: [1x1 struct]
    OUT0: [1x1 struct]
    OUT1: [1x1 struct]
    AIRS: [1x1 struct]
    ARSP: [1x1 struct]
    FLOW: [1x1 struct]
    GPOS: [1x1 struct]
    GPSP: [1x1 struct]
     ESC: [1x1 struct]
    GVSP: [1x1 struct]
    BATT: [1x1 struct]
    DIST: [1x1 struct]
    TEL0: [1x1 struct]
    TEL1: [1x1 struct]
    TEL2: [1x1 struct]
    TEL3: [1x1 struct]
    EST0: [1x1 struct]
    EST1: [1x1 struct]
    EST2: [1x1 struct]
    EST3: [1x1 struct]
    EST4: [1x1 struct]
    EST5: [1x1 struct]
    EST6: [1x1 struct]
     PWR: [1x1 struct]
    MOCP: [1x1 struct]
    VISN: [1x1 struct]
    GS0A: [1x1 struct]
    GS0B: [1x1 struct]
    GS1A: [1x1 struct]
    GS1B: [1x1 struct]
    TECS: [1x1 struct]
    WIND: [1x1 struct]
    ENCD: [1x1 struct]
    TSYN: [1x1 struct]
    MACS: [1x1 struct]
    CAMT: [1x1 struct]
    RPL1: [1x1 struct]
    RPL2: [1x1 struct]
    RPL3: [1x1 struct]
    RPL4: [1x1 struct]
    RPL5: [1x1 struct]
    RPL6: [1x1 struct]
    LAND: [1x1 struct]
    LOAD: [1x1 struct]
    TIME: [1x1 struct]
     VER: [1x1 struct]
    PARM: [1x1 struct]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63


以 ATT 为例:

 


http://img.blog.csdn.net/20161203172116613  
此处由于 estimatorData 导入时未添加 ATT 字段,故值为空。 

 

估计分析

  • 注意: estimatorLogViewerPX4.m 需重命名为: estimatorLogViewer.m
  • 注意: estimatorLogViewer('ift.mat'); 函数中的 ift.mat 必须是名为 estimatorData 的结构体。

若执行过程出现以下 error ,请参照 注意第二条 。


未定义变量 "estimatorData" 或类 "estimatorData.EST0"。
出错 estimatorLogViewer (line 5)
stateFieldNames = [fieldnames(estimatorData.EST0);fieldnames(estimatorData.EST1)]; 
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

estimatorLogViewer用法


%% estimator messages  导入 估计 数据;
estimatorData = importPX4log(fname,{'EST0','EST1','EST2','EST3','EST4','EST5','EST6'});

%% to save 保存为 ift.mat 文件;
save ift estimatorData;

%% to run viewer  运行 viewer;
estimatorLogViewer('ift.mat');
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8


效果如下:

 


http://img.blog.csdn.net/20161203173333068
勾选 show variance,显示状态估计的方差信息。 

 




wiki 中日志分析介绍:http://dev.px4.io/flight_log_analysis.html



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有