Contents — find the section you need

Change parameters and verify

Open the panel, then press Run to load Python. You can stop execution and reset parameters. Results are computed on this device. No Python installation is required.

Local execution steps below are optional for reproducing the source results; they are not required for the browser experiment.

The experiment controls are in English.

Open experiment panel in a new tab

Download reproduction source

Kalman ayarı, bir hareket modelindeki ve gözlemlerindeki belirsizliği ifade eder. Bu deney, konum ve hızı tahmin eder, ardından eksik veriler sırasında tahmini, aykırı değerlere verilen tepkileri ve aşırı güven nedeniyle oluşan redleri karşılaştırır. Tüm girdiler sentetiktir; sayılar donanım doğruluğu iddiaları değildir.

Model ve birimler

Durum, konum [m] ve hız [m/s] içerir. Sadece konum her 0,1 saniyede bir gözlemlenir:

x_k=F x_{k-1}+w_k,\qquad F=\begin{bmatrix}1&0.1\\0&1\end{bmatrix},\qquad z_k=H x_k+v_k,\quad H=\begin{bmatrix}1&0\end{bmatrix}

Gözlem standart sapması 0,7 m'dir ve bu da R=0,49 m² verir. İşlem kovaryansı, g=(dt²/2, dt) ile q ggᵀ'dir ve her adımda bağımsız bir ivme bozulmasını temsil eder. Burada q=0,4'ün birimleri (m/s²)²'dir; sürekli bir beyaz gürültü spektral yoğunluğu değildir. Anlamını kontrol etmeden bu değeri başka bir ayrıştırmaya aktarmayın. Tahmin ve güncelleme türevleri için Kalman filtresi girişine bakınız.

Teori için Simo Särkkä (2013), Bayes Filtreleme ve Düzeltme, bölüm 4.3'e bakınız. Buradaki yörünge, kapı ve karşılaştırma koşulları kendi deney tasarımımızdır.

Dört konfigürasyon, özdeş giriş

Deney betiğini boş bir çıktı dizinine kaydedin ve çalıştırın:

python3 engineering_labs.py

Çalıştırma, Python 3.12.3, NumPy 1.26.4 ve Matplotlib 3.6.3 ile kontrol edilmiştir. Dosya ayrıca bağlantılı diğer mühendislik deneylerini de üretir. 42 tohum ve 300 örnek kullanır. Gerçek hız 12 saniyede 1'den 1,4 m/s'ye değişir. 7.0 ile 9.9 saniye arasındaki otuz gözlem eksik ve 16 saniyedeki gözleme 12 m eklenmiştir. Başlangıç pozisyonu/hızı 0 m ve 1 m/s'dir; başlangıç kovaryansının köşegen elemanları 1 m² ve 1 (m/s)²'dir. Her konfigürasyon tam olarak aynı gözlemleri alır.

Kalıntıyı Normalleştirme

Düzeltme öncesi gözlem kalıntısı e ve tahmini varyansı S olsun. Kapı, aşağıdaki durumlarda bir gözlemi reddeder:

e=z-H\hat{x}^{-},\qquad S=HP^{-}H^T+R,\qquad e^2/S>9

Bu eşik, keyfi olarak çok boyutlu gözlemlere değil, bu skaler normalleştirilmiş kalıntıya uygulanır. Eksik veya reddedilen ölçümler, düzeltme yapılmadan tahmini tetikler. Uygulama, Joseph kovaryans güncellemesini kullanır ve pozitif yarı kesinliği kontrol eder. Belirsizlik eksik veriler sırasında artar, bu nedenle bu, metre cinsinden sabit bir reddetme mesafesinden farklıdır.

Sonuçlar aşırı güveni ortaya koyuyor

Konfigürasyon Pozisyon RMSE [m] Reddedilen
q=0.4, R=0.49, kapı yok 0.262 0
q=0.4, R=0.49, kapılı 0.178 2
q=0.002, R=0.49, kapılı 0.393 4
q=0.4, R=0.0049, kapılı 11.251 237
Diagram 1 · Use the button to switch views
Saniyeler üzerinden metre cinsinden sentetik KF konum hataları, eksik gözlemler gölgelendirilmiştir.

Dikey aralık karşılaştırma için -3 ila 4 m ile sınırlandırılmıştır. 12 m'lik aykırı değer ve küçük R ile büyük hatalar bunun ötesine uzanmaktadır. Kırpılmamış değerler için kapılı CSV, küçük R CSV ve tam özet dosyalarını inceleyin. CSV'deki eksik gözlemler nan'dır ve reddedilme olarak sayılmaz.

Kapı, yalnızca bir yapay aykırı değer eklenmiş olmasına rağmen iki gözlemi reddeder. Bir eşik, yalnızca kasıtlı olarak bozulmuş örnekleri belirlemez. Gözlem varyansının 100 kat düşük tahmin edilmesi 237 reddedilmeye neden olur: normal dağılım, filtrenin güveniyle uyumsuz hale gelir. Kayıp düzeltmeler daha sonra hız değişimini izlemeyi engeller ve artıkları daha da büyük hale getirir. Yalnızca bir kapı eklemek sağlamlık yaratmaz.

Kendi loglarınıza geçme

Önce zaman damgalarını, birimleri ve kareleri kontrol edin. Durağan aralıklarda gözlem varyansını tahmin edin, ardından hareket sırasında hareket modeli hatalarını ve artıkları inceleyin. Geçit işlemini en sona bırakın ve RMSE ile birlikte eksik veri oranı, reddetme oranı ve belirsizliği raporlayın. Gerçek donanım, karşılaştırılabilir hataları hesaplamak için bağımsız bir referansa ihtiyaç duyar.

Küçük Q değerleri, gecikmeyi artırırken eğriyi pürüzsüz hale getirebilir. Q'yu artırmak da her zaman daha iyi sonuç vermez. Bu sıralamalar yalnızca bu yörünge, başlatma, gürültü ve değerlendirme penceresi için geçerlidir.

Takip kontrolü

sigma_m sütunu, tahmini konum standart sapmasını gösterir. Tahmini artı/eksi iki sigma ile çizin ve eksik veri aralığını hız değişimiyle karşılaştırın. Bu, gerçek hatayı tahmin edicinin kendi değerlendirmesinden ayırır. Kovaryansı değiştirmeden önce zamanlama ve TF'yi teşhis etmek için sensör füzyon hata ayıklamasına devam edin.

Aynı hesaplamayı yerel olarak çalıştırın

Çalıştırılabilir kaynak ZIP dosyasını çıkarın veya deney giriş noktasını, oluşturulan çekirdekleri ve orijinal PID kaynağını tek bir klasöre kaydedin. PID, Python standart kütüphanesini kullanır; Kalman ve ICP, NumPy gerektirir. Orijinal şekil oluşturma komutları kullanılabilir durumda kalır.

python3 -m pip install numpy==1.26.4
python3 experiment.py kalman --parameters '{"q":0.4,"r":0.49,"gate":false}' > result.json

Aykırı değer yanıtını karşılaştırmak için kapıyı değiştirin, ardından q'yu 0,002 veya r'yi 0,0049 olarak ayarlayın ve RMSE ile reddetme sayısını karşılaştırın. Gözlemler, kaydedilen CSV dosyasından çalıştırmalar arasında sabittir.

Code, data and reproduction

The ZIP contains the same computation code as the browser, synthetic data and comparison cases. These are not physical measurements.

Download reproduction package · Instructions (EN/JA) · Files and experiment conditions (JSON)

Extract the ZIP into a new directory, then run:

python3 reproduce.py --experiment kalman

This Lab compares 4 cases. PID uses Python’s standard library; Kalman/ICP require NumPy. See the instructions for dependencies and tested versions.

Related reading

Check timing, TF and units before tuning.Sensör füzyonunun başarısız olmasının nedenleri — zamanlama, kareler ve dışsal kalibrasyonExplore another aspect of this fieldMPC Laboratuvarı — bir ufuk ve direksiyon sınırları içinde eğrilik dizisini yeniden çözmeExplore another aspect of this fieldYol takibi karşılaştırma Laboratuvarı — PP, APP, RPP, Stanley ve MPC'yi aynı koşullar altında çalıştırın