📌 Hızlı Özet & Temel Çıkarım:
Sensör Füzyonu ve Extended Kalman Filtresi (EKF), farklı hata dinamiklerine ve gürültü karakteristiklerine sahip algılayıcıları (yüksek frekanslı ancak sürüklenmeye meyilli IMU ile düşük frekanslı ancak mutlak referans veren GNSS) istatistiksel kovaryans matrisleriyle harmanlayarak otonom aracın konum ve yönelimini (pose) en yüksek doğrulukla tahmin eden matematiksel omurgadır.


1. Denizde Konumlandırma Problemi ve Sensör Hataları

Otonom bir deniz aracı rotasında ilerlerken tek bir sensöre güvenmek felaketle sonuçlanabilir:

  • GNSS / GPS: Aracın mutlak enlem/boylam bilgisini sağlar. Ancak frekansı düşüktür (genellikle 5-10 Hz) ve köprü altları, liman yapıları veya troposferik bozulmalar nedeniyle anlık sıçramalar (multipath errors) yaşar.
  • IMU (Ataletsel Ölçüm Birimi): İvmeölçer ve jiroskop ile 100-400 Hz frekansta anlık açısal hız ve lineer ivme üretir. Ancak zamanla entegrasyon hatası (drift) birikir; 30 saniye içinde konum tahmini metrelerce sapabilir.
  • Manyetometre (Elektronik Pusula): Aracın manyetik kuzeye göre baş açısını verir. Ancak gövdedeki yüksek akımlı motor kabloları ve metal aksamlar nedeniyle yerel manyetik parazitlerden yoğun etkilenir.

Bu üç sensörün avantajlarını bir araya getirmek ve dezavantajlarını sönümlemek için Genişletilmiş Kalman Filtresi (Extended Kalman Filter - EKF) kullanılır.


2. EKF Matematiksel Döngüsü: Tahmin ve Güncelleme

Kalman filtresi iki temel aşamadan oluşan sonsuz bir döngüdür:

  1. Tahmin (Prediction) Aşaması: Bir önceki durum kestirimi ve IMU ivme verileri kullanılarak aracın bir sonraki andaki konumu fiziksel hareket denklemleriyle hesaplanır. Bu aşamada belirsizlik (kovaryans) artar.
  2. Güncelleme (Update / Correction) Aşaması: GNSS’ten yeni bir koordinat veya pusuladan yeni bir yönelim bilgisi geldiğinde, sensörün gürültü matrisi (R) ile tahmin kovaryansı (P) kıyaslanır. Kalman Kazancı ($K$) hesaplanarak durum vektörü düzeltilir.

ROS 2 ekosisteminde bu karmaşık matris işlemlerini sıfırdan yazmak yerine endüstri standardı olan robot_localization paketi kullanılır.

Aşağıda tipik bir çift EKF (Local Odometry + Global Navsat) yapılandırma örneği verilmiştir:

ekf_filter_node_map:
  ros__parameters:
    frequency: 30.0
    sensor_timeout: 0.1
    two_d_mode: true # Deniz yuzeyinde Z ekseni degisimi ihmal edilir
    transform_time_offset: 0.0
    transform_tolerance: 0.05

    # IMU Yapilandirmasi
    imu0: /sensors/imu/data
    imu0_config: [false, false, false,  # x, y, z konumlari
                  true,  true,  true,   # roll, pitch, yaw acilari
                  false, false, false,  # x, y, z hizlari
                  true,  true,  true,   # roll, pitch, yaw acisal hizlari
                  true,  false, false]  # x ivmesi
    imu0_differential: false
    imu0_relative: false

    # GNSS Odometri Yapilandirmasi (navsat_transform uzerinden)
    odom0: /odometry/gps
    odom0_config: [true,  true,  false, # x, y (enlem, boylam donusumu)
                   false, false, false,
                   false, false, false,
                   false, false, false,
                   false, false, false]
    odom0_differential: false

3. Kovaryans Matrislerinin Kalibrasyonu

EKF’nin performansı, filtreye verdiğiniz sensör gürültü kovaryans matrislerinin ($Q$ ve $R$) doğruluğuna doğrudan bağlıdır:

  • Eğer GPS kovaryansını çok küçük (aşırı güvenilir) tanımlarsanız, GPS sinyali anlık sıçradığında araç aniden yön değiştirir ve rotasından savrulur.
  • Eğer IMU kovaryansını çok büyük tanımlarsanız, filtre jiroskop verilerini dikkate almaz ve yönelim hesabı gecikmeli hale gelir.

Doğru yaklaşım; aracı sakin bir havuzda veya dock’ta sabit tutarak en az 1 saat boyunca statik veri toplamak, Allan Variance analizi ile jiroskop yürüyüş (random walk) katsayılarını hesaplamak ve bu değerleri sürücü parametrelerine işlemektir.


4. İlgili Konular ve İç Bağlantılar


5. Sıkça Sorulan Sorular

Neden standart Kalman Filtresi yerine Extended Kalman Filtresi (EKF) kullanılır?

Standart Kalman filtresi yalnızca doğrusal (lineer) sistemleri modelleyebilir. Bir deniz aracının açısal yönelimi (Euler açıları veya Kuaterniyonlar) ve dönüş kinematiği trigonometrik fonksiyonlar içerdiğinden sistem gayri doğrusaldır (non-linear). EKF, birinci dereceden Taylor serisi açılımı (Jakobiyen matrisleri) ile sistemi her adımda doğrusallaştırarak çözer.

RTK-GPS kullanıldığında EKF’ye hala ihtiyaç var mıdır?

Evet. RTK-GPS santimetre hassasiyetinde mutlak konum verse bile güncelleme hızı genellikle 5-10 Hz ile sınırlıdır ve aracın baş açısını (heading) doğrudan veremez (çift antenli pahalı sistemler hariç). Dalgalı bir denizde 50 Hz frekansında kararlı kontrol yapabilmek için yüksek hızlı IMU ile RTK-GPS’in füzyonu zorunludur.

6. GNSS Multipath Yansımaları ve Sapan Ölçümlerin İstatistiki Tespiti (Mahalanobis Distance)

Deniz operasyonlarında gemi gövdesi metal liman rıhtımlarına, köprülere veya yüksek bordalı kargo gemilerine yaklaştığında GNSS uydu sinyalleri doğrudan değil, yansıyarak antene ulaşır (multipath). Bu durum GPS alıcısının aniden 15-20 metre sapmış sahte bir koordinat bildirmesine yol açar.

Standart bir Kalman filtresi bu sapmayı anında filtreleyemez ve aracı rıhtıma doğru savurabilir. Bunun önüne geçmek için Mahalanobis Mesafesi ($D_M$) ile artık (residual) denetimi yapılır:

$$D_M = \sqrt{(z - h(\hat{x}))^T S^{-1} (z - h(\hat{x}))}$$

Burada $z$ gelen yeni ölçüm, $h(\hat{x})$ filtre tahmini ve $S$ inovasyon kovaryans matrisidir.

Aşağıdaki Python algoritması, GNSS sıçramalarını tespit ederek filtreye girmesini engelleyen bir ön savunma filtresidir:

import numpy as np

def validate_gnss_measurement(z_meas, z_pred, S_cov, threshold=9.21):
    """
    Chi-Square 2 serbestlik derecesi icin %99 guven esigi: 9.21
    """
    residual = z_meas - z_pred
    try:
        inv_S = np.linalg.inv(S_cov)
        mahalanobis_dist_sq = residual.T @ inv_S @ residual
    except np.linalg.LinAlgError:
        return False # Matris tekil ise guvenlik geregi reddet

    if mahalanobis_dist_sq > threshold:
        # Olcum sapan (outlier) veri olarak isaretlenir ve yok sayilir
        return False
    return True

Bu mekanizma sayesinde liman yanaşma manevralarında sıçrayan GNSS sinyalleri otomatik elenir; araç güvenle yalnızca IMU ve yerel LiDAR odometrisiyle santimetre hassasiyetini koruyarak seyre devam eder.