matlab绘制px4的飞行数据

前言:这几天手上正好有教研室垂起飞机的飞行数据,就借助matlab画出他的飞行轨迹。飞行数据已上传云盘


第一步:将飞行数据转换为csv格式


第二步:读取你需要的文件,这里我读取的是:

local_z=csvread('log_301_2020-3-12-14-34-46_vehicle_local_position_0.csv',1,6,[1 6 18919 6 ])
local_y=csvread('log_301_2020-3-12-14-34-46_vehicle_local_position_0.csv',1,5,[1 5 18919 5 ])
local_x=csvread('log_301_2020-3-12-14-34-46_vehicle_local_position_0.csv',1,4,[1 4 18919 4 ])

这里注意csvread函数的用法,后面的【1 6 18919 6】内的参数表示选取坐标(2,7)和(18920,7)构成对角线而形成的矩阵之间的元素填入local_z。

同理读取下面这个文件里local_position_setpoint数据:

log_301_2020-3-12-14-34-46_vehicle_local_position_setpoint_0.csv

第三步:数据处理
观察读取的数据都为负的,因为px4的坐标系下为正,所以我们要将数据*(-1)变为正的


第四步:画图

plot3(local_x,local_y,local_z,'r');
gird on;
hold on;
plot3(local_sp_x,local_sp_y,local_sp_z,'g');
legend('local position','local position setpoint');

效果:
在这里插入图片描述

这里演示的是位置的图,可以点住图片旋转角度观看不同的角度3d效果,其他的参数就不演示了,方法相同。


补充:
在读取csv数据时,也可以不用函数,可直接在路径栏双击文件,此时matlab会打开他:
在这里插入图片描述

然后我们选取我们要的数据,点击右上角的带入数据,此时工作区就可以看到,然后改下名字。但要注意,导出的数据为table格式,我们要用table2array函数将其转换为矩阵。

发布了183 篇原创文章 · 获赞 106 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/zouxu634866/article/details/105069197