sensor füzyonu şu. bir dronu yönetmek için bize ne lazım yaw-pitch-roll verisi. elimizde girdi neler var accelerometer, gyroscope ve compass.
drona gaz verdin ve bir yöne dönme eğilimi gösterdi bunu çok kısa zaman aralığı için direkt gyro ile kompanse edebiliriz ama tüm gyrolarda gyro drift sorunu var uzun vadede iş görmüyor. yere göre olan eğimi accelerometre ile ölçelim. bunu da yapabiliriz ama bu defa da accelerometrenin gürültü sorunu ortaya çıkıyor. gürültüyü low pass filtre ile yok edebiliriz fakat gecikmeler olacak bu da dronu kontrol etmeyi zorlaştırır. pusula ise çok tutarsız veriler üretiyor 5-10 derece kaçıklık ve etraftaki manyetik alanlardan etkileniyor. hiçbir sensor tek başına ve ham data olarak işimizi görmüyor.
bu durumda ne yapacağız bu üç sensorden gelen veriyi de bir füzyon algoritması ile işleyerek stabil, hızlı tepki veren yaw-pitch-roll verisi elde edeceğiz.
sensor füzyonu için oturup kendi algoritmanı yazmayacaksan temelde iki kaynak var madgwick ve mahony. bir de sensorlerin kendi içinde gömülü füzyon algoritmaları var. mpu6050-9250 aynı çalışıyor. bir yeni nesil ICM20948 biraz daha iyi. ama invensense bu konuda çok kapalı arkada ne döndüğünü bilmiyorsun. fakat asıl dert gyro ve IMU kalibrasyonu yaptın bunu kaydedip bir dahaki sefere hızlıca sistemi başlatamıyorsun.
Bosch sensorler bu konuda çok daha iyi ama epey pahalılar. ST sensorleri için kendi fuzyon kütüphanesini kaynak kod olarak paylaşıyor diye hatırlıyorum. invensense ise en yeni modellerde sensor füzyonu için derlenmiş bir arm kütüphanesi veriyor api mantığında erişerek kontrol ediyosun. kendin sensor füzyonu yazacaksan complementary filter ile başlamak en kolayı olur.
bütçe olarak de imudan başlamak en mantıklısı. black pill yerine benzer işlemcili bir nucleo board tavsiye ederim çünkü bu süreçte. adım adım debug ve çalışan kod içinden değişkenlerin gözlemlenmesi ve uart çıktıları ile bu değerlerin bir grafikte görselleştirilmesi gibi ihtiyaçlar olacak.
elinde stlink varsa bunu uygun pinlerden black pille bağlayarak da yapabilirsin. ama tek platerde sadece usb kablo ile sistemi çalıştırmak pratik olur.
ahrs.readthedocs.io
ahrs.readthedocs.io