利用加速度求解位置的算法——三軸傳感器對比


早晨看到了一個加速度求法,原文章地址在這里:

利用加速度求解位置的算法——三軸傳感器

里面主要講積分后的累計誤差中的采樣誤差,

 

積分的值可以約等於區域面積之和。
如果采樣時間趨近於0,那么結論將是正確的。但在實際中,將會產生如下錯誤,在處理的過程中,這個誤差將會一直累積。
Ashampoo_Snap_2015.03.27_23h50m46s_004_.png           
這些錯誤稱為采樣損失。為了減少這些錯誤,我們再做進一步的假設。結果區域能夠看成由兩塊小的區域的組合:
Ashampoo_Snap_2015.03.27_23h57m54s_005_.png
區域1是前一次采樣的值(方形),區域2是一個三角形,是前一次采樣和當前采樣之差的一半。
 
最后得到一個近似公式:
Ashampoo_Snap_2015.03.28_00h06m26s_006_.png
注意:這里的信號應該采用當前周期信號,即A(n) = S(n) + abs(S(n)-S(n-1))/2 如果使用A(n) = S(n-1) + abs(S(n)-S(n-1))/2,會出現明顯的信號延時現象。
當T=1時,就是一種移動均值的濾波處理了。
我們的采樣周期只要足夠小,我們的求解就越貼近我們的采樣樣本,反過來采樣的樣本間隔越大,我們的誤差越大,相對應的處理出來的信號延時也會越明顯。
當T為0.1時,
 

基本看不出區別,但是隨着時間的推移,數據出現的大幅度的漂移。

而在T最小,采樣效果越好,數據越靠近真實情況。

這樣的話,當采樣周期足夠小的時候,采樣的數據的采樣誤差就會被彌補啦。

clc;
clear;
load('walk3.1.txt');

y = walk3_1(:,6)/8192;
%y = signal;
velocity =[];
for i=1:1194
	velocity =[velocity;(sum(y(1:i)))];
end    
distance = [];
for i=1:1194
	distance =[distance;(sum(velocity(1:i)))];
end    
figure;
hold on
plot(y)
y1 = [];
y1(1,:) = y(1,:);
for i = 2:1194
    y1 = [y1;(y(i,:)+abs(y(i,:)-y(i-1,:))*0.1/2)];
end
plot(y1)

y2 = [];
y2(1,:) = y(1,:);
for i = 2:1194
    y2 = [y2;(y(i,:)+(y(i,:)-y(i-1,:))*0.5/2)];
end
%plot(y2)
y3 = [];
y3(1,:) = y(1,:);
for i = 2:1194
    y3 = [y3;(y(i,:)+abs(y(i,:)-y(i-1,:))*1/2)];
end
%plot(y3)



velocity1=[];
for i=1:1194
	velocity1 =[velocity1;(sum(y(1:i)))];
end    
distance1 = [];
for i=1:1194
	distance1 =[distance1;(sum(velocity1(1:i)))];
end    


velocity2=[];
for i=1:1194
	velocity2 =[velocity2;(sum(y1(1:i)))];
end    
distance2 = [];
for i=1:1194
	distance2 =[distance2;(sum(velocity2(1:i)))];
end 

velocity3=[];
for i=1:1194
	velocity3 =[velocity3;(sum(y3(1:i)))];
end    
distance3 = [];
for i=1:1194
	distance3 =[distance3;(sum(velocity3(1:i)))];
end    
figure;
subplot(2,1,1)
hold on
plot(velocity1,'p')
plot(velocity2)
plot(velocity3,'--')
subplot(2,1,2)
hold on
plot(distance1,'p')
plot(distance2)
plot(distance3,'--')

 這里對比的數據采集自MPU6050。

 

參考資料:

【翻譯】利用加速度求解位置的算法——三軸傳感器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM