ivme ve gyro sensöründeki yataydaki ivmelenmeyi filtrelemek?

Başlatan görkem, 27 Şubat 2016, 17:17:07

görkem

ivme ve gyro sensöründen aldığım verileri tamamlayıcı filtre ile açı bilgisini elde edebiliyorum burada sıkıntı yok fakat yatay da bir hareket olduğunda da açı bilgisi görünüyor.yataydaki ivmelenmeyi nasıl önleyebilirim.

berat23

tamamlayıcı filtre'de gyro etkisini arttırabilirisn yani katsayıyı küçült.

aslında gerçek çözüm için hızını bilmem gerekir ki bu kolay bir iş değildir.

görkem

Gayro etkisini arttırınca hareket olmadığında açı sürekli sıfırda kalıyo.gyro yapısı gereği hareket olmadığında değer sıfıra döndüğü için işime yaramıyor.hız sabit olmadığı için hız bilgisini veremiyorum şöyleki ani bir yatay hareketi açı olarak algılamaması gerekiyor sadece açı oluştuğunda bilgi gelmesi gerek ve açı bilgisini koruması lazım 0 a dönerse gyro yüzünden sıkıntı yaratır.0 derecedeyken anlık bir yatay hızlanma oluştuğunda o anlık ivmelenmeyi yok etmem gerekiyor aynı 0 dereceyi okumam gerek.magnetometre çözüm olurmu referans olarak gy273?

memo333

herhangi bir eksende uyguladığın ivmenin vektörünü çıkarırsan 1glik yerçekimi ivmesini bulursun. buradan açı hesaplanabilir..
Gömülü Linux Notları --> http://linuxedu.xyz/

görkem

Normal şartlarda açı bilgisini elde edebiliyorum fakat yatay harekette açı görmemem gerekiyor yatay hareketteki açıyı engellemem gerekiyor sadece eğim olduğunda açı bilgisini elde etmeliyim nasıl bir yol izlemeliyim gayro ve ivmeden tamamlayıcı filtre ile açıyı elde ediyorum

berat23

Alıntı YapGayro etkisini arttırınca hareket olmadığında açı sürekli sıfırda kalıyo.
cümlesiyle yanlış yolda olduğunu anlıyorum.

forumda defalarca sorulan bir konu, tam cevabını verelim de bir kere kalsın.

şimdi temelden gelelim, gyro açısal hızı, ivmeölçer de ivmeyi ölçer. biim aletin yere göre açılarını aslında ben gyro rate'lerinin integralini alarak elde edebilirim. fakat sensör bias tan dolayı output sürekli artacaktır. sabitken bile bu artış çok fazla olacaktır. biası yok etmek için brkaç metod var;

1. biası az ya da iyi(burası karışık şimdilik böyle kalsın) bir gyro kullanalım, mesela fog, rlg, mekanik gibi. bu tipte gyroların fiyatlarını düşünürsek bizim için anlamsız olduğu ortaya çıkar.
2. biası estimate edelim. bu 1. maddede tanımladığım iyi sesnsörler için mümkün fakat bol matematikli. şimdilik geçelim.
3. hatası sabit bir aralıkta bir ölçümle düzeltelim. bu en mantıklısı. kalman ya da complementary filter kullanılabilir. biz şimdilik basit ama etkili complementary kullanalım.

hatası sabit bir açı kaynağı olarak roll  ve pitch açıları için yerçekimini kullanabiliriz. ivmeölçerin ölçtüğü ivme aşağıdaki bileşenleri içerir,

yerçekimi + hızsal ivme + dönüsel ivme + corriolis

denilebilir. corriolisin etkin olabilmesi için mach mertebesinde hızlarda olmamız lazım, onu doğrudan eliyoruz. bir araç üzerinde olmadığından dolayı dönüşü de eliyebiliriz. hız ise senin asıl sorunun. bize ölçülen ivmenin sadece yerçekimsel kısmı lazım ki onu tam olarak bilmek için hıza ihtiyacımız var orası şimdilik kalsın.

hesaba gelirsek, öncelikle sensörden aldığın verilerin body frame de, bizim istediğimiz açılar ise earth frame. o yüzden rotation yapmalıyız. kullandığın eksenlere göre dcm matrix'i oluşturup ham sensör ölçümleri ile çarpıp dönşümü yapmalıyız. yani dcm bir metod değil gereklilik.

rotation sonucunda elimizde intergrali alınınca açılar olan veriler olacak. göndülürmüş gyro verilerinin integralini alnırsa bias lı açılar elde edilir. gelelim bunu düzeltmeye, ivmeler ile atan lı bulduğumuz açılar, hızın olmadığı durumda sabit bir hata ile açıyı verir. bu açıyı düzeltici olarak farkını belli bir katsayı ile çarpıp biaslı açı ile toplarsak biası yok edilmiş bir açı buluruz sabit durumda.

şimdi sorunun başına dönersek, hızdan gelen ivme bizim açıları bozar. bu durumda hızımızı bilirsek bu ivmeleri düzeltebiliriz. hızı bulmak bu açılar kadar sorun. eğer elinde gps olsaydı ve hareket eden bir araç olsaydı gps hızları ile yapılabilirdi. bu yüzden hız etkisini azaltmak için yapman gereken comp. filter katsayısını küçültmek. hesabın baştan hatalı bu arada.

görkem




@berat23 bu şekilde dcm matrix oluşturdum, oluşturduktan sonra integralini nasıl alabilirim.İntegrali alındığında açı bilgisini elde edicez demişsiniz, ben direk ivme için atanı kullanıyordum integrali alındıktan sonra tekrar atanı kullanılacakmı.