Kalman Filtresini Anlamak: Q, R, P ve K Matrislerinin Matematiksel Temelleri
durum kestirimi hata kovaryansı kalman filtresi ölçüm gürültüsü süreç gürültüsü
Kalman Filtresinin Matematiksel Temelleri: K, Q, R ve P Ne Anlama Gelir?
Bir Kalman filtresini anlamak için yalnızca ölçüm ve tahmin aşamalarını bilmek yeterli değildir. Filtrenin asıl gücü, sistemin ne kadar belirsiz olduğunu matematiksel olarak ifade edebilmesinden gelir.
Bir otonom aracın hızını, konumunu veya yönelimini tahmin ettiğimizi düşünelim. Araç üzerindeki sensörlerden gelen veriler hiçbir zaman kusursuz değildir. IMU ölçümleri gürültü içerir, GPS konumunda sapmalar oluşabilir, tekerlek hız sensörleri kayma nedeniyle gerçek hızı yansıtmayabilir. Üstelik aracın hareketini tanımlamak için kullandığımız matematiksel model de gerçek dünyayı tamamen temsil edemez. Kalman filtresi, tam olarak bu iki belirsizlik kaynağı arasında bir denge kurmaya çalışır: model belirsizliği ve ölçüm belirsizliği. Model belirsizliği sistemimizin nasıl hareket ettiğine ilişkin tahminlerimizdeki hatay ifade ederken ölçüm belirsizliği sensörlerden elde ettiğimiz verilerdeki hatayı ifade eder. Bu dengeyi kurarken karşımıza dört temel matris çıkar: , , ve .
Öncelikle bu matrislerin neyi temsil ettiğini, ardından nasıl hesaplandıklarını ve gerçek bir otonom araçta nasıl belirlendiklerini inceleyelim.
1. Kalman filtresinin matematiksel zemini
Kalman filtresindeki dört matrisi anlamak için öncelikle sistemin nasıl modellendiğine bakalım. Doğrusal bir sistemin durum uzayı gösterimi şöyledir:
Burada:
Sembol | Anlamı |
|---|---|
Sistemin gerçek durum vektörü | |
Önceki durumu yeni zamana taşıyan geçiş matrisi | |
Kontrol girdisinin sisteme etkisi | |
Kontrol girdisi | |
Süreç gürültüsü | |
Sensörlerden elde edilen ölçüm | |
Durum vektörünü ölçüm uzayına dönüştüren matris | |
Ölçüm gürültüsü |
Burada önemli bir ayrıntı var: , sistemin gerçek durumunu temsil eder ancak gerçek hayatta bu vektörü doğrudan ve kusursuz biçimde bilemeyiz. Zaten Kalman filtresinin amacı da bu durumu tahmin etmektir. Bu nedenle tahmin edilen durum vektörünü ile göstereceğiz.
Kalman filtresi her zaman adımında iki temel işlem gerçekleştirir:
Tahmin (Prediction): Önceki durum bilgisi ve sistem modeli kullanılarak yeni durum tahmin edilir.
Güncelleme (Update): Sensör ölçümleri kullanılarak tahmin düzeltilir.
Şimdi bu iki aşamada kullanılan matrisleri inceleyelim.
2. P matrisi: Tahminimizin ne kadar belirsiz olduğunu nasıl biliriz?
, Kalman filtresinin hata kovaryans matrisidir (Error Covariance Matrix). Başka bir ifadeyle, filtrenin kendi durum tahminine ne kadar güvendiğini matematiksel olarak ifade eder. Örneğin bir otonom aracın hızını 20 m/s olarak tahmin ettiğimizi düşünelim. Ancak bu tahminin gerçek hızdan 0.1 m/s mi yoksa 3 m/s mi sapabileceğini de bilmemiz gerekir. Burada matrisi bu belirsizliği temsil eder. Matematiksel olarak:
bu şekilde ifade edilir. Burada , yani gerçek durum ile tahmin edilen durum arasındaki hata vektörüdür. beklenen değer operatörünü, ise matrisin transpozunu ifade eder. Daha açıklayıcı olması adına örnek üstünden gidelim, elimizde iki boyutlu bir durum vektörü var :
Burada konumu, ise hızı temsil etsin. Hata kovaryans matrisi şu şekilde yazılabilir:
Matrisin köşegen elemanları, ilgili durum değişkenlerinin hata varyanslarını gösterir.
: Konum tahmininin varyansı.
: Hız tahmininin varyansı.
: Konum ve hız tahmin hataları arasındaki kovaryans.
Köşegen dışındaki elemanlar da önemlidir. Çünkü konum ve hız tahminindeki hatalar birbirinden tamamen bağımsız olmayabilir.
Peki P matrisi nasıl hesaplanır? Kalman filtresinin tahmin aşamasındaki denkleme geri dönelim:
Bu denklemde , ölçüm alınmadan önceki tahmin belirsizliğini ifade eder. Ölçüm güncellemesinden sonra ise:
şeklinde güncellenir. Sayısal kararlılık açısından pratik uygulamalarda Joseph formu da tercih edilebilir. Buradaki temel fikir oldukça basittir: Modelimizi kullanarak geleceğe doğru ilerledikçe belirsizliğimiz genellikle artar. Yeni ölçümler aldığımızda ise bu belirsizliği azaltabiliriz. Ancak ne kadar azaltabileceğimiz, sensörlerimize ne kadar güvendiğimize de bağlıdır. Bu bizi bir sonraki matrise götürür.
3. R matrisi: Sensörlerimize ne kadar güvenmeliyiz?
, ölçüm gürültüsünün kovaryans matrisidir (Measurement Noise Covariance). Bir sensörün ölçümlerinin ne kadar değişkenlik gösterdiğini matematiksel olarak ifade eder. Örneğin bir GPS alıcısının gerçek konumu 10 metre hassasiyetle ölçtüğünü varsayalım. Burada GPS'in her ölçümde tam olarak aynı sonucu vermesini bekleyemeyiz. Ölçümlerdeki bu değişkenlik, matrisiyle temsil edilir. Matematiksel gösterimi:
Örneğin aracımızın GPS üzerinden X ve Y konumlarını ölçtüğünü düşünelim:
Ölçüm gürültüsü kovaryansı şöyle olabilir:
Bu örnekte X ve Y ölçüm hatalarının birbirinden bağımsız olduğu varsayılmıştır.
Peki nasıl belirlenir?
Bunun en doğrudan yollarından biri sensörün gerçek verilerini kullanmaktır. Örneğin GPS alıcısını sabit bir noktaya yerleştirip uzun süre boyunca ölçüm alabiliriz. GPS'in gerçek konumu değişmediği hâlde ölçülen koordinatların nasıl dağıldığını inceleyebiliriz. Ölçüm hatalarını hesaplayarak:
varyansı elde edebiliriz:
Burada , ölçüm sayısını; ise ortalama ölçüm hatasını ifade eder. Bulduğumuz varyans, ilgili sensör ölçümü için matrisinin köşegen elemanını belirlememize yardımcı olur.
Bir başka yöntem ise sensör üreticisinin sağladığı teknik dokümanlardaki ölçüm hassasiyeti değerlerinden yararlanmaktır. Ancak burada dikkat edilmesi gereken nokta, hassasiyet, standart sapma ve varyans kavramlarının birbirinin yerine kullanılamamasıdır. Örneğin sensörün standart sapması 0.5 metre ise varyansı: olacaktır. Dolayısıyla matrisine 0.5 değil, 0.25 yazılması gerekir.
Özetle: büyüdükçe filtre ölçümlere daha az güvenir. küçüldükçe sensör ölçümlerine daha fazla ağırlık verir.
4. Q matrisi: Modelimizin ne kadar yanılabileceğini nasıl belirleriz?
Şimdi Kalman filtresinin en önemli ve uygulamada en çok kafa karıştıran parametrelerinden birine geldik. , süreç gürültüsünün kovaryans matrisidir (Process Noise Covariance). Önce süreç gürültüsünün ne olduğunu anlayalım.
Bir otonom aracın hareketini tanımlamak için kinematik bisiklet modelini kullandığımızı düşünelim. Modelimiz aracın hızını, direksiyon açısını ve hareket denklemlerini kullanarak bir sonraki konumunu tahmin ederAncak gerçek araç her zaman modelimizin öngördüğü şekilde hareket etmez.
Örneğin:
Lastikler yol üzerinde kayabilir.
Yol eğimi aracın hareketini etkileyebilir.
Aerodinamik direnç ve yuvarlanma direnci modelde tam olarak temsil edilmeyebilir.
Direksiyon sisteminde gecikmeler oluşabilir.
Modelimizde kullandığımız parametreler gerçek araçla birebir örtüşmeyebilir.
Bunların sonucunda gerçek sistemin davranışı ile matematiksel modelimizin tahmini arasında fark oluşur. İşte modelimizin açıklayamadığı bu etkileri süreç gürültüsüyle temsil ederiz. Matematiksel modelimizde:
Buradaki , süreç gürültüsüdür. Sıfır ortalamalı ve kovaryansı olan bir rassal değişken olarak modellenir:
Burada önemli bir ayrım yapalım: Süreç gürültüsü, mutlaka sensörlerden gelen bir gürültü değildir. Sistemin fiziksel davranışını modelimizin tam olarak açıklayamamasından kaynaklanan belirsizliği temsil eder.
Q matrisi nasıl hesaplanır?
Q matrisi genellikle R gibi doğrudan bir sensörün ölçümlerinden elde edilmez. Çünkü süreç gürültüsü, sistemin modeline ve modelde temsil edilmeyen fiziksel etkilere bağlıdır. Bu nedenle Q matrisini belirlemek için birden fazla yöntem kullanılabilir.
Yöntem 1: Fiziksel model üzerinden hesaplama
En anlamlı yaklaşımlardan biri, sistemin fiziksel modelini inceleyerek süreç gürültüsünün hangi durum değişkenlerini nasıl etkilediğini belirlemektir. Örneğin bir aracın doğrusal hareketini ele alalım. Durum vektörümüz:
Burada konumu, ise hızı ifade etsin. Aracın ivmesini sabit kabul ettiğimiz basit bir hareket modeli için:
Bu modelde:
Ancak aracın gerçek ivmesi, modelimizin varsaydığı ivmeden farklı olabilir. Bu farkı beyaz ivme gürültüsü (white acceleration noise) olarak modelleyebiliriz. Süreç gürültüsünün konum ve hıza etkisini gösteren matris:
olarak tanımlanabilir. İvme gürültüsünün varyansını ile gösterirsek:
Buradan:
elde edilir.
Bu denklem oldukça önemlidir. Çünkü Q matrisinin yalnızca rastgele seçilen sayılardan oluşması gerekmediğini, sistemin fiziksel hareket modelinden türetilebileceğini gösterir. Buradaki , ivme gürültüsünün varyansını temsil eder. Dolayısıyla sistemin ivmesindeki belirsizlik arttıkça Q da büyür. Bir başka ifadeyle, aracımızın hareketinin tahmin edilenden daha fazla değişebileceğini düşünüyorsak süreç gürültüsünü daha yüksek modellememiz gerekir.
Not: Bu türetimde ivme gürültüsü her örnekleme aralığında sabit kabul edilmiştir. Sürekli zamanda beyaz ivme gürültüsünün güç spektral yoğunluğu üzerinden yapılan ayrıklaştırmada farklı bir Q ifadesi elde edilir. Bu iki model birbirine karıştırılmamalıdır.
Yöntem 2: Simülasyon ve Ground Truth karşılaştırması
Peki bir otonom araçta veya dronda simülasyonun Ground Truth verilerini kullanarak Q hesaplayabilir miyiz? Evet. Hatta bu, süreç gürültüsünü incelemek ve modelin davranışını doğrulamak için oldukça faydalı bir yöntemdir. Örneğin Gazebo üzerinde bir otonom araç simülasyonu gerçekleştirdiğimizi düşünelim. Simülasyonda aracın gerçek konumunu, hızını ve yönelimini Ground Truth üzerinden elde edebiliriz. Aynı zamanda kendi hareket modelimizi kullanarak aracın durumunu tahmin edebilir, iki değer arasındaki farkı hesaplayabiliriz:
Burada , simülasyonun sağladığı gerçek durum bilgisidir. Bu şekilde farklı zaman adımlarında süreç modelimizin tahmin hatalarını elde ederiz. Ardından bu hata örneklerinin kovaryansını hesaplayabiliriz:
Bu yaklaşımın önemli bir avantajı vardır: Modelimizin gerçek sistemin hareketini ne ölçüde açıklayabildiğini sayısal olarak görebiliriz. Ancak burada dikkat edilmesi gereken bir nokta var. Ground Truth ile model tahmini arasındaki farkın tamamı doğrudan süreç gürültüsü değildir. Modeldeki sistematik hatalar, yanlış parametreler, zaman senkronizasyonu sorunları ve modellenmeyen kontrol girdileri de bu farkın içerisinde bulunabilir. Dolayısıyla bu yöntemle elde edilen değer, ancak kullanılan modelin ve deney koşullarının varsayımları altında anlamlı bir süreç gürültüsü tahmini olur. Ayrıca simülasyonda elde ettiğimiz Q değerinin gerçek araçta da geçerli olacağını düşünmemeliyiz. Simülasyonun lastik modeli, yol koşulları ve dinamik davranışı gerçek araçtan farklı olabilir.
Yöntem 3: Gerçek araçtan toplanan verilerle hesaplama
Simülasyondan gerçek araca geçtiğimizde de benzer bir yaklaşım uygulayabiliriz. Örneğin Formula Student aracında IMU, tekerlek hız sensörleri ve direksiyon açısı sensörlerinden veri topladığımızı düşünelim. Öncelikle aracın hareket modelini kullanarak bir sonraki durumunu tahmin ederiz. Ardından mümkün olduğunca güvenilir bir referans sisteminden elde ettiğimiz durum bilgileriyle model tahminlerini karşılaştırırız. Bu referans sistem, yüksek hassasiyetli bir GNSS/INS sistemi, optik takip sistemi veya kontrollü test ortamında kullanılan başka bir referans ölçüm düzeneği olabilir.
Modelin tahmin hatalarını farklı sürüş koşullarında inceleyerek süreç gürültüsünü istatistiksel olarak tahmin edebiliriz. Burada önemli olan, referans sisteminin kendi ölçüm belirsizliğini de hesaba katmaktır. Aksi hâlde referans sisteminin hatalarını yanlışlıkla süreç gürültüsü olarak değerlendirebiliriz. Ayrıca aracın düz yolda, virajda, hızlanma ve frenleme sırasında aynı model belirsizliğine sahip olması beklenmez. Bu nedenle farklı sürüş koşullarında veri toplamak daha gerçekçi bir Q belirlememizi sağlar.
Peki Q rastgele ayarlanabilir mi?
Uygulamada Q ve R matrisleri bazen deneysel olarak ayarlanır ve buna tuning denir. Örneğin başlangıçta fiziksel modelden veya sensör kalibrasyonundan elde edilen değerler kullanılır. Daha sonra filtrenin gerçek veriler üzerindeki performansı incelenir.
Tahminler gerçek hareketi takip etmekte zorlanıyorsa model belirsizliği yeniden değerlendirilir.
Filtre sensör ölçümlerindeki değişimlere gereğinden fazla tepki veriyorsa Q ve R arasındaki denge incelenir.
Tahminler sürekli gecikiyorsa süreç modelinin doğruluğu ve süreç gürültüsü varsayımları tekrar değerlendirilir.
Ancak önemli bir ayrıntı var: Q değerini artırmak her zaman daha iyi sonuç vermez. Çünkü Q büyüdüğünde filtre, model tahminine daha az; yeni ölçümlere ise görece daha fazla ağırlık verme eğilimindedir. Dolayısıyla Q belirlemek, yalnızca bir sayıyı büyütüp küçültmek değil, sistemin fiziksel belirsizliğini doğru temsil etme problemidir.
5. K matrisi: Model ve ölçüm arasında nasıl karar verilir?
Şimdiye kadar P, Q ve R matrislerinin neyi temsil ettiğini gördük. P, tahminimizin belirsizliğini; Q, model kaynaklı belirsizliği; R ise sensör ölçümlerinin belirsizliğini ifade ediyordu. Peki filtre bu bilgileri kullanarak yeni ölçümlere ne kadar güveneceğine nasıl karar verir? Bu noktada Kalman Kazancı (Kalman Gain) olarak adlandırılan matrisi devreye girer. Kalman kazancı, model tahmini ile sensör ölçümü arasındaki düzeltmenin ne kadar yapılacağını belirler. Öncelikle tahmin aşamasında:
elde edilir. Ardından sensör ölçümünden beklenen değer hesaplanır:
Gerçek ölçüm ile beklenen ölçüm arasındaki fark ise yenilik (innovation) olarak adlandırılır:
Filtre, bu farkı kullanarak tahminini düzeltir:
Burada K matrisi şu şekilde hesaplanır:
Bu denklem Kalman filtresinin temel matematiksel ilişkilerinden biridir. Denklemin mantığını anlamak için iki farklı senaryo düşünelim.
Senaryo 1: Sensör ölçümlerine daha fazla güveniyoruz.
R matrisi küçük olduğunda, sensör ölçümlerinin belirsizliği düşük kabul edilir. Bu durumda Kalman kazancı genellikle büyür ve filtre yeni ölçümlere daha fazla ağırlık verir.
Senaryo 2: Sistem modelimize daha fazla güveniyoruz.
P matrisi küçük olduğunda, modelimizin tahmin belirsizliği düşük kabul edilir. Bu durumda Kalman kazancı genellikle küçülür ve filtre mevcut tahminini daha fazla korur. Yani Kalman kazancı, model tahmini ile sensör ölçümleri arasındaki matematiksel dengeyi kurar. Burada önemli bir ayrıntı daha var: K matrisi sabit bir ağırlık değildir. P, Q ve R değerlerine bağlı olarak her ölçüm güncellemesinde yeniden hesaplanır.
6. Dört matrisin birbirleriyle ilişkisi
Artık dört temel matrisin görevlerini biliyoruz. Ancak bunları birbirinden bağımsız düşünmek doğru olmaz. Kalman filtresinin çalışma mantığı, bu matrislerin birbirleriyle olan ilişkisine dayanır.
Matris | Temel görevi | Temel soru |
|---|---|---|
Tahmin hatasının belirsizliği | Tahminime ne kadar güveniyorum? | |
Süreç gürültüsü kovaryansı | Hareket modelim ne kadar belirsiz? | |
Ölçüm gürültüsü kovaryansı | Sensörlerime ne kadar güveniyorum? | |
Kalman kazancı | Yeni ölçümü tahminime ne kadar yansıtmalıyım? |
Bunu küçük bir örnekle somutlaştıralım. Yine bir önceki örneklerdeki gibi bir aracın hızını tahmin ettiğimizi düşünelim.
Hareket modelimiz aracın hızını 20 m/s olarak tahmin ediyor.
GPS veya başka bir sensör üzerinden elde ettiğimiz hız ölçümü 22 m/s.
Modelimizin tahmin belirsizliği düşük, ancak sensör ölçümünün belirsizliği yüksek.
Bu durumda filtre, 20 m/s değerine daha fazla ağırlık verecektir ancak sensörümüzün güvenilirliği artarsa veya modelimizin belirsizliği yükselirse bu denge değişecektir. Kalman filtresi, bu kararı her ölçüm adımında matematiksel olarak yeniden verir.
Kalman filtresinin temel işlem akışı
1. Tahmin aşaması
2. Kalman kazancının hesaplanması
3. Durum güncellemesi
4. Hata kovaryansının güncellenmesi
Sonraki ölçüm geldiğinde süreç yeniden başlar.
7. Gerçek bir otonom araçta Q ve R nasıl belirlenmeli?
Teorik kısmı bir kenara bırakıp uygulamaya geçelim ve durum vektörümüzü şöyle tanımlayalım:
Burada:
: Aracın konumu
: Yönelim açısı
: Boylamsal ve yanal hız
: Yaw rate (açısal hız)
Sensörlerimizin IMU, tekerlek hız sensörleri ve GPS olduğu bir sistemde Q ve R matrislerini belirlerken şu yaklaşım izlenebilir:
1. Öncelikle sensörlerin ölçüm belirsizliklerini belirleriz.
IMU'nun açısal hız ölçümleri, tekerlek hız sensörlerinin hız ölçümleri ve GPS'in konum ölçümleri ayrı ayrı incelenir. Sabit veya kontrollü koşullarda veri toplanarak sensörlerin varyansları hesaplanır. Böylece R matrisinin başlangıç değerleri elde edilir.
2. Hareket modelinin belirsizliğini belirleriz.
Kullandığımız kinematik veya dinamik araç modelinin gerçek aracın hareketini ne kadar doğru temsil ettiğini inceleriz. Modelin açıklayamadığı etkileri ve belirsizlik kaynaklarını değerlendirerek Q matrisi oluşturulur.
3. Simülasyon ortamında doğrulama yaparız.
Gazebo gibi bir simülasyon ortamında EKF çalıştırılır. Ground Truth verileri referans alınarak tahmin hataları incelenir. Burada yalnızca konum hatasına bakmak yeterli değildir. Durum vektöründeki her değişkenin tahmin performansı ayrı ayrı değerlendirilmelidir. Örneğin:
Bunların yanı sıra filtre tutarlılığını değerlendirmek için RMSE (Root Mean Square Error), NEES (Normalized Estimation Error Squared) ve NIS (Normalized Innovation Squared) gibi istatistiksel testler de kullanılabilir.
Önemli: RMSE düşük olması tek başına EKF'nin iyi tasarlandığını kanıtlamaz. Bir filtre düşük RMSE üretebilir ama matrisini hatalı hesaplayabilir. Örneğin gerçekte olduğundan çok daha emin davranabilir. NEES ve NIS bu tür tutarsızlıkları ortaya çıkarmaya yardımcı olur.
Küçük ama önemli ayrıntı: NEES ve NIS değerlerini tek bir örnek üzerinden yorumlamak yerine, çok sayıda örnek veya Monte Carlo simülasyonu üzerinden istatistiksel sınırlarla karşılaştırmak gerekir. Ayrıca durum vektörünün boyutu NEES'in, ölçüm vektörünün boyutu ise NIS'in beklenen istatistiksel dağılımını belirler.
4. Gerçek araç testleriyle doğrularız.
Simülasyonda başarılı sonuç veren Q ve R değerleri doğrudan gerçek araca aktarılmamalıdır. Gerçek araçtan veri toplanmalı, referans sistemleriyle karşılaştırma yapılmalı ve farklı sürüş koşullarında filtre yeniden değerlendirilmelidir. Bu süreçte Q ve R sabit tutulabileceği gibi sürüş koşullarına bağlı olarak uyarlamalı biçimde de belirlenebilir.
8. Sonuç: Q ve R için tek bir doğru değer var mı?
Hayır. Kalman filtresinde Q ve R için bütün araçlarda, bütün sensörlerde ve bütün koşullarda geçerli tek bir değer bulunmaz. Bu matrisler kullanılan matematiksel modele, sensörlerin özelliklerine, örnekleme frekansına ve sistemin çalışma koşullarına bağlıdır. Özellikle Q matrisi, yalnızca deneyerek ayarlanacak bir parametre olarak görülmemelidir. Öncelikle fiziksel modelden türetilmeli, ardından simülasyon ve gerçek sistem verileriyle doğrulanmalıdır. Ground Truth karşılaştırması bu süreçte oldukça değerlidir; ancak tek başına bütün belirsizlikleri açıklamaz.