Acc. Gyro kalman fusionda zurnanın zırt ettiği yer

Başlatan zengdai, 27 Temmuz 2015, 19:30:43

zengdai

Acc. ve gyro dan açı çıktılarını alıyorum. Bunu kalman filtresinde nasıl kullanacağımı tam çözemedim. İvme sensörü ani hareketlerde yanlış açı ölçecek yanılmıyorsam. Bu durumda gyro sensörüne bakmak gerekir. İşte tam bu işlemi nasıl yapacağız. Yani ivme ve gyronun yaklaşık aynı açıyı gösterdiğinden emin olup, açıları kaynaştırıp tek açıyı nasıl çıkarıyoruz. Yardım ederseniz sevinirim. Selemetle.

LukeSkywalker


Gökhan BEKEN

Özel mesaj okumuyorum, lütfen göndermeyin.

Icarus

Hareket denklemlerini yaz, koordinat dönüşümlerini yap, girdilerin gaussian dağılımlı raslantı değişkenlerini olduğunu varsay...
Sonuç çıkacak. Daha basit bir anlatımı yok.

zengdai

#4
Çıktılarını aldım.  Oturup çalışacağım bakalım. Ha bu arada  icarus bey kullandığınız cümleler çok yalın ve anlaşılır gerçekten  ;D
Alıntı Yapgirdilerin gaussian dağılımlı raslantı değişkenlerini olduğunu varsay

Icarus

Malesef daha sade anlatmak mümkün değil. mesela sizin acc'niz "wandering" yapıyorsa kalman filitresi hiçbir işinize yaramaz... Tüm gelen verilerin beyaz gürültüye gelmesi lazım ki kalman çalışsın, yoksa boşa bir çaba olur.
Herşeyi kalman'nın sihirli birşekilde birleştirdiğini düşünmek doğru değil.

zengdai

Peki bu multicopterlerde kullanılan kalman da wandering hiç olmuyormu yada oluyorsa kalman hangi açıyı esas alıp işler. Gerçi kalman tahminleri ani farklara hızlı yanaşmazlar bildiğim kadarıyla ve bu acc. den kaynaklı wanderingler (her halde şok zamanlarında oluşurlar) çok kısa süreli olacaklarını düşünüyorum.

LukeSkywalker

Multicopterde kalman kullanılmasına gerek yok ki.   Multikopter yapmak isteyen herkes kalman öğrenmesi gerektiğini düşünüyor ama bence bu hatalı bir düşünme biçimi. Amaç multikopter yapmak ise  önce uçuş dinamiklerini iyice öğrenmek olmalı. Multikopterde sadece gyro kullanarak bile stabil bir uçuş yapılabilir.  Bir sürü filtreleme yöntemi var. Kalman filtresi de tek çeşide sahip bir kavram değil.  İlla kalman öğrenilecek ise multikopterden bağımsız bir şekilde önce oturulup tüm yönleriyle öğrenilip daha sonra multicoptere uygulamak lazım.  IMU verilerini filtrelemeyle de bitmiyor iş ayrıca, multicopteri uçurabilmek için daha pek çok algoritma yazmak gerekiyor.

zengdai

Hayır amacım multicopter yapmak değil. Sadece sensörlerden oryantasyon değerlerini berrak olarak almak istiyorum. Belki daha sonra tatmin olmak için balans bot yaparım. Aslında kalmanın nasıl 2 sensör çıkışını kaynaştırdığını öğrenmek istiyorum. Daha önce kalmanı bir sensörün çıktılarını gürültülerden arındırmak için kullanmıştım.

LukeSkywalker


Gökhan BEKEN

mpu6050 kendi başına size quaternion verileri verebiliyor. Bu verileri açıya çevirebiliyorsunuz. İşin nasıl yapıldığını öğrenmemiş oluyorsunuz ama işinizi görüyor. Gürültü sorunu felan olmuyor, tertemiz açı alıyorsunuz.
Özel mesaj okumuyorum, lütfen göndermeyin.

LukeSkywalker

@Gökhan BEKEN, Ben MPU6050'nin DMP dökümanını bulamadım internette bütün aramalarıma rağmen. Arduino ile yapılmış bir uygulama var fakat kodlardan pek birşey anlaşılmıyor. Siz hazır kod mu kullandınız yoksa kendiniz mi DMP verilerini okudunuz?

Saygılar.

Gökhan BEKEN

#12
Hazır kullandım hocam, bu proje direkt çalışıyor: https://github.com/Harinadha/STM32_MPU9150eMPL
şu geliştirme kartını alırsanız uyarlama yapmanıza gerek kalmaz: http://www.embeddedtrading.com/products/469-stm32-p103.aspx
proje iar ile yapılmış.

Ekleme: DMP verilerinin dökümanını para ile satılıyorlar. Ücretsiz datasheetlerde DMP hakkında hiç bir bilgi yok. Arduino koları veya yukarıdaki verdiğim linkteki programı incelerseniz, firmware yüklemesi yapılıyor I2C üzerinden. O kodları yüklemezseniz DMP özelliğini kullanamıyorsunuz.
Özel mesaj okumuyorum, lütfen göndermeyin.

zengdai

Paylaşımınız için teşekkürler inceleyeceğim ama amacım öğrenmek.