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.
barissamanci.net adresinde gerekli bilgileri bulabilirsiniz.
Gayet güzel bir anlatım, tavsiye ederim:
http://www.hakancakiroglu.com/wordpress/?p=264 (http://www.hakancakiroglu.com/wordpress/?p=264)
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.
Çı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
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.
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.
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.
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.
http://www.x-firm.com/?page_id=191 (http://www.x-firm.com/?page_id=191)
http://www.hobbytronics.co.uk/accelerometer-gyro (http://www.hobbytronics.co.uk/accelerometer-gyro)
Şuralarda bu konuyla ilgili güzel bilgiler var.
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.
@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.
Hazır kullandım hocam, bu proje direkt çalışıyor: https://github.com/Harinadha/STM32_MPU9150eMPL (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 (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.
Paylaşımınız için teşekkürler inceleyeceğim ama amacım öğrenmek.