matlab练习程序(可视化旋转角)
比如我们拿到了一组imu的原始加速度和角速度数据。
通过卡尔曼或互补滤波得到了三个旋转角,想要可视化一下。
可以用下面这种方法,转成旋转矩阵后简单组合一下即可。
matlab代码如下:
clear all;close all;clc; ang = load('ang.txt'); roll = ang(:,1); pitch = ang(:,2); yaw = ang(:,3); figure(1); plot(roll,'r'); hold on; plot(pitch,'g'); plot(yaw,'b'); for i=1:5:length(ang) eul = [roll(i) pitch(i) yaw(i)]; rotmXYZ = eul2rotm(eul,'XYZ'); x=rotmXYZ(1,:); y=rotmXYZ(2,:); z=rotmXYZ(3,:); figure(2); plot3( ... [0,x(1)],[0,x(2)],[0,x(3)],'r',... [0,y(1)],[0,y(2)],[0,y(3)],'g',... [0,z(1)],[0,z(2)],[0,z(3)],'b'); axis([-1 1 -1 1 -1 1]); grid on; % F=getframe(gcf); % I=frame2im(F); % [I,map]=rgb2ind(I,256); % if i == 1 % imwrite(I,map,'test.gif','gif','Loopcount',inf,'DelayTime',0.05); % else % imwrite(I,map,'test.gif','gif','WriteMode','append','DelayTime',0.05); % end end
结果如下:
测试数据点击这里。