电脑:Windows/Linux/MacOS皆可,此处使用Windows
软件:安装 pyulog,教程 https://github.com/PX4/pyulog
飞控:Pixhawk2.4.8,固件版本 PX4FMU_V2


一、获取与转换日志

  1. 将PX4存储卡插入读卡器,接入电脑,很容易找到日志文件,以 .ulg 结尾。比如我的叫 log001.ulg,复制一份到自己的电脑上;
  2. 安装好 pyulog,进入 .ulg 文件所在文件夹下;
  3. 输入命令 ulog2csv log001.ulg,则在当前文件夹下生产一系列导出文件,如下图:


二、日志含义

log001.ulg 导出了一系列 .csv 文件,个人比较关心原始加速度计与陀螺仪数据、期望姿态与期望角速度、估计姿态与估计角速度、输入油门值与输出PWM波占空比几个数据,经查找如下:

物理量 所在文件 变量 单位
原始加速度 log001_sensor_combined_0.csv accelerometer_m_s2 m/s2{\rm m/s^2}m/s2
原始角速度 log001_sensor_combined_0.csv gyro_rad rad/s\rm{rad/s}rad/s
期望姿态(四元数) log001_vehicle_attitude_setpoint_0.csv q_d 单位1
期望姿态(欧拉角) log001_vehicle_attitude_setpoint_0.csv roll_body, pitch_body, yaw_body rad{\rm rad}rad
期望角速度 log001_vehicle_rates_setpoint_0.csv roll, pitch, yaw rad/s\rm{rad/s}rad/s
估计姿态(四元数) log001_vehicle_attitude_0.csv q 单位1
估计角速度 log001_vehicle_attitude_0.csv rollspeed, pitchspeed, yawspeed rad/s{\rm rad/s}rad/s
遥控器输入值 log001_input_rc_0.csv values 遥控器原始值
输入PWM波占空比(比较值) log001_actuator_outputs_0.csv output 计数器比较值
输入PWM波占空比(归一化) log001_actuator_outputs_0_0.csv control -1~1

注:PX4的 timestamp 每 1ms 加 1


三、MATLAB数据读取与显示


原始数据链接:链接:https://pan.baidu.com/s/1lHGjgfOT_EJO-C3LEMDZ-A 提取码:51rb

%% 文件实现读取PX4日志(.scv)数据并绘图
%% 读取数据
imu_data = importdata('log001_sensor_combined_0.csv');
atti_d_data = importdata('log001_vehicle_attitude_setpoint_0.csv');
atti_data = importdata('log001_vehicle_attitude_0.csv');
rate_d_data = importdata('log001_vehicle_rates_setpoint_0.csv');
rc_data = importdata('log001_input_rc_0.csv');
pwm_data = importdata('log001_actuator_outputs_0.csv');
pwm1_data = importdata('log001_actuator_controls_0_0.csv');%% 数据选择
% 原始IMU数据 imu
t_imu = imu_data.data(:,1)*1e-6;
gyro = imu_data.data(:,2:4);   % gyrox, gyroy, gyroz
acc = imu_data.data(:,7:9);     % accx, accy, accz% 期望姿态 atti_d
t_atti_d = atti_d_data.data(:,1)*1e-6;
atti_d = atti_d_data.data(:,2:4);    % 期望角速度(欧拉角)atti_dq = atti_d_data.data(:,6:9);   % 期望角速度(四元数)
q0 = atti_dq(:,1);q1=atti_dq(:,2);q2=atti_dq(:,3);q3=atti_dq(:,4);
roll_d = atan((2*(q0.*q1+q2.*q3)) ./ (1 - 2*(q1.^2+q2.^2)));
pitch_d = asin(2*(q0.*q2 - q1.*q3));
yaw_d = atan(2*(q0.*q3 + q1.*q2) ./ (1-2*(q2.^2+q3.^2)));% 估计姿态 atti
t_atti = atti_data.data(:,1)*1e-6;
atti_q = atti_data.data(:,5:8);
q0 = atti_q(:,1);q1=atti_q(:,2);q2=atti_q(:,3);q3=atti_q(:,4);
roll = atan((2*(q0.*q1+q2.*q3)) ./ (1 - 2*(q1.^2+q2.^2)));
pitch = asin(2*(q0.*q2 - q1.*q3));
yaw = atan(2*(q0.*q3 + q1.*q2) ./ (1-2*(q2.^2+q3.^2)));% 期望角速度 rate_d
t_rate_d = rate_d_data.data(:,1)*1e-6;
rate_d = rate_d_data.data(:,2:4);% 估计角速度 rate
t_rate = atti_data.data(:,1)*1e-6;
rate = atti_data.data(:,2:4);% 输入rc
t_rc = rc_data.data(:,1)*1e-6;
rc = rc_data.data(:,8:11);% 输出PWM
t_pwm = pwm_data.data(:,1)*1e-6;        % 原始值
pwm = pwm_data.data(:,3:6);t_pwm1 = pwm1_data.data(:,1)*1e-6;      % 归一化
pwm1 = pwm1_data.data(:, 3:6);  %% 绘图
plot(t_atti_d, roll_d, '-',t_atti, roll, '-');legend('期望滚转角', '估计滚转角');xlabel('时间t (s)');ylabel('rad');
plot(t_atti_d, pitch_d, '-',t_atti, pitch, '-');legend('期望俯仰角', '估计俯仰角');xlabel('时间t (s)');ylabel('rad');
plot(t_atti_d, yaw_d, '-',t_atti, yaw, '-');legend('期望偏航角', '估计偏航角');xlabel('时间t (s)');ylabel('rad');plot(t_rate_d, rate_d(:,1), t_rate, rate(:,1));legend('期望x角速度', '估计x角速度');xlabel('时间t (s)');ylabel('rad/s');
plot(t_rate_d, rate_d(:,2), t_rate, rate(:,2));legend('期望y角速度', '估计y角速度');xlabel('时间t (s)');ylabel('rad/s');
plot(t_rate_d, rate_d(:,3), t_rate, rate(:,3));legend('期望z角速度', '估计z角速度');xlabel('时间t (s)');ylabel('rad/s');plot(t_rc, rc); legend('CH1', 'CH2', 'CH3', 'CH4');         % 遥控器输入
plot(t_pwm, pwm); legend('Output1', 'Output2', 'Output3', 'Output4');   % 电机输出(原始值)
plot(t_pwm1, pwm1);legend('Output1', 'Output2', 'Output3', 'Output4');   % 电机输出(归一化)

其中,第一张图片如下,其他略。


PX4日志分析官网教程:http://docs.px4.io/master/zh/log/flight_log_analysis.html

PX4日志读取并转化为.scv文件、MATLAB显示相关推荐

  1. matlab读取表格读成mat文件,MATLAB 视频读取 Excel读写 Excel2txt txt2mat 按文件夹读取文件...

    视频转图片,图片取大小 clc;clear; obj=VideoReader('双闪.avi'); numFrames = obj.NumberOfFrames;% 帧的总数 for i=1:numF ...

  2. xps数据怎么导出为txt_WFP: 读取XPS文件或将word、txt文件转化为XPS文件

    读取XPS格式文件或将doc,txt文件转化为XPS文件,效果图如下: 1.XAML页面代码: xmlns="http://schemas.microsoft.com/winfx/2006/ ...

  3. 后缀为.adf 文件读取,转化为tiff(shp)格式,并输出netcdf格式的数据

    .adf文件读取,转化为shp或者tif格式,并输出Netcdf格式的数据文件 使用工具为arcgis,本人安装的是arcgis10.8,安装包可自行下载,或者私信我. 以海报高度地形数据的读取为例 ...

  4. Image 图像转化为 PDF 文件

    开发中如果有这样的需求把 Image 图像转化为 PDF 文件你会怎么做呢?你可能会在网上狂找资料寻找解决方案,但是事实上网上这方面的资料非常少,有的作者没有给出一个完整的内容或者给出的内容不适合现在 ...

  5. Python读取 npy, npz, h5, pkl 文件

    文章目录 1. npy文件 2. npz文件 3. h5文件 4. pkl文件 我们在进行数据处理及分析时,常常会用到CSV文件.当CSV文件中数据量较大时,处理数据的速度非常慢,且所占存储空间大.这 ...

  6. linux 内存block读取6,Linux硬盘 和文件系统维护

    1. 分区 MBR(Master Boot Recorder)主引导分区仅提供最多4个分区,主分区(Primary,P)与扩展分区(Extended,E),如3P+1E,扩展分区最多只好 有1个. 2 ...

  7. JAVA读取WORD,EXCEL,POWERPOINT,PDF文件的方法

    OFFICE文档使用POI控件,PDF可以使用PDFBOX0.7.3控件,完全支持中文,用XPDF也行. java2word 是一个在java程序中调用 MS Office Word 文档的组件(类库 ...

  8. zip压缩文件转换为可传输byte[]流和不解压下读取指定zip包中文件

    一.背景 最近做了一个项目,里面有这么一个需求:将zip文件存放到json字符串中.然后封装成报文发送给终端,终端在得到报文之后发送给终端,终端在获取到json字符串后读取内容并还原成zip文件包,而 ...

  9. java scel_使用java将搜狗词库.scel文件转化为.txt文件

    需求:批量将.scel文件转化为可视的txt文件(支持1对1,多对1,多对多),并从中提取中文词(去重),支持追加内容. 成果: 使用: package com.hxl.files; import j ...

  10. ubuntu 查询程序崩溃日志_ubuntu查看系统日志及相关文件介绍

    1.在ubuntu服务器上,日志是通过syslogd进程处理的.该进程读取如下配置文件: 该文件主要配置哪些信息需要记录日志,记录到什么地方. 在该配置文件的第一部分,是对系统设施日志的配置,主要有: ...

最新文章

  1. 《精通自动化测试框架设计》—第2章 2.3节测试数据交互基本方法
  2. Python 基础 - Day 5 Learning Note - 模块 之 标准库:xml (9)
  3. Windows7查看本地Java安装是否成功和路径的方法
  4. Hibernate中的一对多XML映射
  5. FIle类和递归方法的使用
  6. vue实现一个简单的购物车功能
  7. linux系统优化配置
  8. 机器是没有思想的,只会安装规定好的电路工作机器是没有思想的,只会安装规定好的电路工作
  9. C++面试题-指针-指针数组与数组指针
  10. RedisSingleUtils 工具类
  11. 计算机图形学_bresenham画线算法的最简洁实现(已验证)
  12. 在php中使用守护进程
  13. STL源码剖析(侯杰)——读书笔记
  14. 教你给视频画面打马赛克
  15. 数据结构 Java数据结构 --- 二叉树
  16. MTK平台 后视镜系列 声控参数调整方法
  17. think php5 离线手册,thinkphp5.0离线手册下载
  18. com lofter android,LOFTER
  19. 【中创福利】有一种年味叫公司发年货
  20. 登录Linux操作系统并执行第一个C语言代码

热门文章

  1. 创建美区苹果账户ID
  2. 如何经营好(开好)一家淘宝店铺
  3. 视频录制直播软件——OBS(录制MP4文件)
  4. 2022年大厂中秋礼盒大赏,卷的就是创意!
  5. linux下Sublime的安装使用
  6. SAR空间自回归模型
  7. 简单通用的Makefile编写例子
  8. ict中的it和ct_ICT.Social – IT专业人员的社交网络
  9. 联想M7650DF加粉和重置/清零的正确方法
  10. java opencv 摄像头,OpenCV使用摄像头