我怎么能修复轴情节翻转180°达到吗?

5视图(30天)
大家好,
我用加速度计和陀螺仪数据从一个不知名的品牌IMU,收购在833赫兹。
我想代表了IMU取向在审判期间使用 imufilter 命令。当我画出定位数据,整体输出似乎是合理的,但轴翻转180°~ 20份样本,我不知道如何解决这个问题。
我试着使用 打开 命令,但到目前为止没有成功。
你能帮我吗?
我附上一个ZIP和上述情节的图像和数据矩阵。
谢谢你!
尼科
关闭所有
清晰的所有% #好< CLALL >
clc
% %加载数据
dataA =负载(“accelReadings.mat”);
accelReadings = dataA.accelReadings;
dataG =负载(“gyroReadings.mat”);
gyroReadings = dataG.gyroReadings;
% %插入Fs和时间
Fs = 833;%抽样频率(赫兹)
时间= linspace (0、7850、7851) / 833;%的时间向量[s]
Ts =意味着(diff(时间));%采样间隔
% %卡尔曼
accelReadings = sgolayfilt (accelReadings 3 11);%过滤器
gyroReadings = sgolayfilt (gyroReadings 3 11);%过滤器
% gyroReadings =打开(gyroReadings);
保险丝= imufilter (“SampleRate”Fs);
q =保险丝(accelReadings gyroReadings);
情节(时间,eulerd (q,“ZYX股票”,“帧”))%情节角度
标题(' 3 ^ {rd}自行车特技:估计取向”)
传奇(z轴的,“轴”,“轴”)
包含(“时间[s]”)
ylabel (“旋转(°)”)
网格
clearvarsdataA dataG

接受的答案

Ananya特瓦芮
Ananya特瓦芮 2021年3月23日
我知道你想要 打开 在轴反转过的样品。
打开 函数接受的阈值 弧度 。所以轴样本转换成弧度,然后使用打开 π 弧度应该解决这个问题
q =保险丝(accelReadings gyroReadings);
%将四元数转换为欧拉角
k = eulerd (q,“ZYX股票”,“帧”);
%将轴角转换为使用打开的弧度
x =打开(函数(k(:, 3)),π);
%转换为弧度回到度
x = rad2deg (x);
%更新取向角度
k (:, 3) = x;
%情节角度
情节(时间,k)
标题(' 3 ^ {rd}自行车特技:估计取向”)
传奇(z轴的,“轴”,“轴”)
包含(“时间[s]”)
ylabel (“旋转(°)”)
网格
以下代码的输出:

更多的答案(0)

s manbetx 845


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!