4 poin oleh GN⁺ 2026-04-10 | 1 komentar | Bagikan ke WhatsApp
  • Filter Kalman adalah algoritma estimasi keadaan optimal yang memperkirakan keadaan sistem dan memprediksi masa depan di lingkungan dengan banyak noise
  • Dengan contoh radar pelacak pesawat, dijelaskan proses meningkatkan akurasi dengan mengulangi tahap prediksi dan pembaruan menggunakan nilai pengukuran jarak dan kecepatan
  • Pada tiap tahap, dihitung vektor keadaan, matriks kovarians, dan Kalman Gain untuk menggabungkan nilai pengukuran dan prediksi secara berbobot
  • Dengan mempertimbangkan sekaligus ketidakpastian pengukuran dan ketidakpastian model, ditunjukkan secara numerik bahwa galat estimasi (ketidakpastian) berkurang seiring waktu
  • Melalui contoh numerik yang intuitif dan perhitungan langkah demi langkah, materi ini memberikan landasan pemahaman untuk merancang dan mengimplementasikan filter secara langsung

Pengantar Filter Kalman

  • Kalman Filter** adalah algoritma estimasi keadaan yang memperkirakan dan memprediksi keadaan sistem di lingkungan yang memiliki ketidakpastian, seperti noise pengukuran atau faktor eksternal

    • Digunakan sebagai alat inti di berbagai bidang seperti pelacakan objek, navigasi, robotika, dan kontrol
    • Misalnya, dipakai untuk mengurangi noise pada jejak mouse agar gerakannya lebih halus, mendeteksi tren pada data finansial, atau untuk prediksi cuaca
    • Materi ini menyoroti bahwa banyak bahan pembelajaran terlalu berfokus pada penurunan matematis sehingga kurang contoh nyata, dan karena itu menyediakan penjelasan intuitif berbasis contoh numerik
    • Juga membahas kasus ketika filter yang dirancang dengan buruk gagal melacak target, beserta cara mengoreksinya
    • Tujuannya adalah membangun pemahaman agar pembaca dapat merancang dan mengimplementasikan Filter Kalman sendiri

Jalur belajar

  • Ringkasan satu halaman: memperkenalkan konsep inti dan rumus utama secara singkat, hanya memerlukan pengetahuan dasar statistik dan aljabar linear
  • Tutorial web gratis: tutorial online dengan contoh numerik langkah demi langkah untuk membangun intuisi, tanpa prasyarat pengetahuan
  • Kalman Filter from the Ground Up (buku): 14 contoh numerik lengkap, filter nonlinier (Extended/Unscented) dan fusi sensor, termasuk kode Python·MATLAB

Mengapa prediksi diperlukan

  • Menjelaskan perlunya estimasi keadaan dan prediksi melalui contoh radar pelacak pesawat
    • Keadaan sistem adalah posisi pesawat (jarak (r)), dan radar menghitung jarak dengan mengukur waktu pantulan pulsa
    • Kecepatan (v) dapat diukur melalui efek Doppler
  • Prediksi posisi setelah selang waktu tertentu (\Delta t) dilakukan melalui model dinamis
    • Contoh: (r_{t_1} = r_{t_0} + v \cdot \Delta t)
    • (\Delta t = 5s), (r_{t_0}=10,000m), (v=200m/s) → (r_{t_1}=11,000m)
    Iklan
  • Di lingkungan nyata terdapat noise pengukuran (Measurement Noise) dan ketidakpastian model (Process Noise)
    • Bahkan jika beberapa radar mengukur secara bersamaan, hasilnya bisa sedikit berbeda
    • Asumsi kecepatan konstan bisa rusak akibat faktor eksternal seperti angin
  • Filter Kalman melakukan estimasi keadaan saat ini dan prediksi keadaan masa depan secara bersamaan, sambil menyediakan ketidakpastian (varians) dari tiap estimasi
    • Ini adalah algoritma optimal yang meminimalkan ketidakpastian estimasi keadaan

Contoh Filter Kalman

  • Radar 1 dimensi mengukur jarak (r) dan kecepatan (v) pesawat

    • Vektor keadaan (\boldsymbol{x} = [r, v]^T)
    • Sistem direpresentasikan dengan vektor dan matriks
  • Iteration 0 — inisialisasi dan prediksi

  • Inisialisasi

    • Filter diinisialisasi dengan nilai pengukuran pertama (\boldsymbol{z}_0 = [10{,}000, 200]^T)
    • Ketidakpastian pengukuran (simpangan baku): jarak 4m, kecepatan 0.5m/s (\boldsymbol{R}_0 = \begin{bmatrix}16 & 0 \ 0 & 0.25\end{bmatrix})
    • Estimasi keadaan awal (\hat{\boldsymbol{x}}_{0,0} = \boldsymbol{z}_0)
    • Kovarians awal (\boldsymbol{P}_{0,0} = \boldsymbol{R}_0)
  • Tahap prediksi

    • Selang waktu (\Delta t = 5s)
    • Matriks transisi keadaan (\boldsymbol{F} = \begin{bmatrix}1 & 5 \ 0 & 1\end{bmatrix})
    • Keadaan prediksi (\hat{\boldsymbol{x}}{1,0} = \boldsymbol{F}\hat{\boldsymbol{x}}{0,0} = [11{,}000, 200]^T)
    • Prediksi kovarians (tanpa noise proses): (\boldsymbol{P}{1,0} = \boldsymbol{F}\boldsymbol{P}{0,0}\boldsymbol{F}^T = \begin{bmatrix}22.25 & 1.25 \ 1.25 & 0.25\end{bmatrix})
    • Menambahkan noise proses ((\sigma_a = 0.2m/s^2)): (\boldsymbol{Q} = \begin{bmatrix}6.25 & 2.5 \ 2.5 & 1\end{bmatrix})
    • Kovarians prediksi akhir: (\boldsymbol{P}_{1,0} = \begin{bmatrix}28.5 & 3.75 \ 3.75 & 1.25\end{bmatrix})
    Iklan
  • Ringkasan Iteration 0

    • Menginisialisasi keadaan dan kovarians dengan pengukuran pertama
    • Menggunakan model transisi keadaan untuk memprediksi keadaan berikutnya dan ketidakpastiannya
    • Rumus prediksi
      • Prediksi keadaan: (\hat{\boldsymbol{x}}{n+1,n} = \boldsymbol{F}\hat{\boldsymbol{x}}{n,n} + \boldsymbol{G}\boldsymbol{u}_n)
      • Prediksi kovarians: (\boldsymbol{P}{n+1,n} = \boldsymbol{F}\boldsymbol{P}{n,n}\boldsymbol{F}^T + \boldsymbol{Q})
  • Iteration 1 — pembaruan dan prediksi

  • Pembaruan filter

    • Pengukuran kedua: (\boldsymbol{z}_1 = [11{,}020, 202]^T)
    • Ketidakpastian pengukuran meningkat (simpangan baku: jarak 6m, kecepatan 1.5m/s) (\boldsymbol{R}_1 = \begin{bmatrix}36 & 0 \ 0 & 2.25\end{bmatrix})
    • Saat dibandingkan dengan kovarians prediksi (\boldsymbol{P}_{1,0}), ketidakpastian prediksi lebih kecil
    • Filter Kalman menggabungkan pengukuran dan prediksi sebagai rata-rata berbobot
      • Bobot (K_1): Kalman Gain
      • Rumus pembaruan keadaan: (\hat{\boldsymbol{x}}{1,1} = \hat{\boldsymbol{x}}{1,0} + \boldsymbol{K}_1(\boldsymbol{z}1 - \boldsymbol{H}\hat{\boldsymbol{x}}{1,0}))
      • Matriks observasi (\boldsymbol{H} = \boldsymbol{I})
    • Perhitungan Kalman Gain: (\boldsymbol{K}1 = \boldsymbol{P}{1,0}\boldsymbol{H}^T(\boldsymbol{H}\boldsymbol{P}_{1,0}\boldsymbol{H}^T + \boldsymbol{R}_1)^{-1}) Hasil: (\boldsymbol{K}_1 = \begin{bmatrix}0.4048 & 0.6377 \ 0.0399 & 0.3144\end{bmatrix})
    • Inovasi (innovation): (\boldsymbol{z}1 - \hat{\boldsymbol{x}}{1,0} = [20, 2]^T)
    • Nilai koreksi: (\boldsymbol{K}_1[20, 2]^T = [9.37, 1.43]^T)
    • Keadaan hasil pembaruan: (\hat{\boldsymbol{x}}_{1,1} = [11{,}009.37, 201.43]^T)
  • Pembaruan kovarians

    • Menggunakan bentuk yang disederhanakan: (\boldsymbol{P}_{1,1} = (\boldsymbol{I} - \boldsymbol{K}1)\boldsymbol{P}{1,0})
    • Hasil: (\boldsymbol{P}_{1,1} = \begin{bmatrix}14.57 & 1.43 \ 1.43 & 0.71\end{bmatrix})
    • Setelah pembaruan, ketidakpastian lebih kecil daripada ketidakpastian prediksi maupun pengukuran → menggabungkan pengukuran dan prediksi selalu mengurangi ketidakpastian
  • Tahap prediksi

    • Prediksi untuk waktu berikutnya (t_2)
      • Prediksi keadaan: (\hat{\boldsymbol{x}}{2,1} = \boldsymbol{F}\hat{\boldsymbol{x}}{1,1} = [12{,}016.5, 201.43]^T)
      • Prediksi kovarians: (\boldsymbol{P}{2,1} = \boldsymbol{F}\boldsymbol{P}{1,1}\boldsymbol{F}^T + \boldsymbol{Q} = \begin{bmatrix}52.86 & 7.47 \ 7.47 & 1.71\end{bmatrix})
      Iklan
    • Seiring waktu, jika tidak ada pengukuran, ketidakpastian akan meningkat lagi
  • Ringkasan Iteration 1

    • Tahap pembaruan: menggabungkan prediksi dan pengukuran dengan Kalman Gain
    • Tahap prediksi: meneruskan keadaan yang telah diperbarui ke waktu berikutnya
    • Rumus utama
      • Pembaruan keadaan: (\hat{\boldsymbol{x}}{n,n} = \hat{\boldsymbol{x}}{n,n-1} + \boldsymbol{K}_n(\boldsymbol{z}n - \boldsymbol{H}\hat{\boldsymbol{x}}{n,n-1}))
      • Pembaruan kovarians (Joseph form): (\boldsymbol{P}_{n,n} = (\boldsymbol{I} - \boldsymbol{K}n\boldsymbol{H})\boldsymbol{P}{n,n-1}(\boldsymbol{I} - \boldsymbol{K}_n\boldsymbol{H})^T + \boldsymbol{K}_n\boldsymbol{R}_n\boldsymbol{K}_n^T)
      • Kalman Gain: (\boldsymbol{K}n = \boldsymbol{P}{n,n-1}\boldsymbol{H}^T(\boldsymbol{H}\boldsymbol{P}_{n,n-1}\boldsymbol{H}^T + \boldsymbol{R}_n)^{-1})

Ringkasan contoh

  • Tiga tahap Filter Kalman: inisialisasi → prediksi → pembaruan
  • Setelah itu, loop prediksi-pembaruan diulang terus
  • Setiap kali pengukuran baru ditambahkan, ketidakpastian berkurang dan estimasi keadaan sistem menjadi semakin presisi
  • Materi pembelajaran tambahan
    • Tutorial online gratis: menyediakan contoh numerik langkah demi langkah
    • Buku Kalman Filter from the Ground Up: mencakup filter linear·nonlinear, panduan implementasi, serta kode Python/MATLAB

1 komentar

 
GN⁺ 2026-04-10
Komentar Hacker News
  • Saya penulisnya. Baru-baru ini saya memperbarui halaman utama tutorial Kalman Filter saya. Saya menambahkan contoh pelacakan radar yang sederhana, agar orang yang hanya memahami dasar statistik dan aljabar linear pun bisa memahaminya
    Saya berusaha meminimalkan penurunan rumus, sambil tetap menunjukkan secara intuitif proses penggabungan noise pengukuran, model prediksi, dan filter. Saya ingin mendengar masukan tentang tingkat matematikanya maupun kejelasan penjelasannya

    • Saya sempat membacanya sekilas, dan terasa seperti matriks noise proses Q muncul begitu saja. Mungkin ada penjelasannya di buku, tetapi akan lebih baik jika ada alasan singkat mengapa nilainya seperti itu
    • Secara keseluruhan jelas. Namun di bagian awal, perbedaan antara model sistem dan Kalman filter itu sendiri agak samar. Sampai bagian membuat matriks keadaan saya mengira itu masih penjelasan model, tetapi lalu langsung berlanjut ke persamaan filter sehingga agak membingungkan
    • Saya sangat suka menu aksesibilitasnya. Sangat mudah menyesuaikan keterbacaan halaman
    • Sekitar 6 bulan lalu saya sempat mencoba mengimplementasikan Kalman filter sendiri, tetapi strukturnya cukup berbeda tergantung domain aplikasinya jadi saya berhenti di tengah jalan. Saya berharap materi kali ini akan sangat membantu saya menuntaskannya
    • Ungkapan “algoritma optimal” di awal tutorial terasa agak abstrak. Akan bagus jika artinya dijelaskan singkat sebelum masuk ke matematika
  • Panduan intuitif menurut saya adalah sebagai berikut

    1. Pahami metode kuadrat terkecil berbobot, lalu pelajari cara memperbarui estimasi yang ada dengan menggunakan pengukuran baru dan ketidakpastiannya
    2. Jika diasumsikan nilai rata-rata sebenarnya tidak berubah, pendekatan ini bekerja dengan baik
    3. Tetapi jika nilai rata-rata berubah, Kalman filter menggunakan model yang memprediksi perubahan itu
    4. Setelah prediksi, kita kembali lagi ke persoalan seperti pada (1)
      Pada akhirnya inti utamanya adalah metode kuadrat terkecil, dan di bawah asumsi tertentu dapat dibuktikan bahwa ini optimal
  • Tulisan “How a Kalman Filter Works in Pictures” sangat bagus

    • Saya juga menyukai gaya penjelasan visual di tulisan itu. Namun tutorial saya bertujuan membahas intuisi dan jebakan secara bersamaan dengan berfokus pada contoh radar langkah demi langkah
    • Tetapi bahkan “penjelasan sederhana” seperti ini pun kadang terasa terlalu rumit dalam praktik. Kalman filter pada dasarnya adalah salah satu jenis estimator.
      Misalnya, low-pass filter juga merupakan semacam estimator, tetapi Kalman filter menambahkan model proses dan perhitungan kovarians sehingga dapat menyesuaikan diri secara dinamis.
      Ia merefleksikan hubungan antarvariabel yang saling berkorelasi seperti posisi dan kecepatan, sehingga satu nilai pengukuran dapat memengaruhi estimasi variabel lain juga.
      Namun karena berbasis aljabar linear, ia mengasumsikan noise Gaussian, dan untuk masalah nonlinier dibutuhkan varian seperti EKF atau UKF
  • Untuk memahami Kalman filter, Anda perlu mengetahui empat hal berikut

    1. Model sistem
    2. Keadaan internal
    3. Definisi estimasi optimal
    4. Konsep kovarians
      Filter ini adalah solusi matematis untuk mengestimasi secara optimal keadaan internal sistem dan kovariansnya berdasarkan nilai pengukuran.
      Menurut saya buku Alex Becker adalah pengantar yang sangat bagus untuk topik ini. Contohnya banyak dan sangat membantu membangun intuisi
    • Terima kasih atas masukannya. Saya sedang mempertimbangkan volume 2 yang membahas topik lebih lanjut. Namun saya ingin menjelaskan dengan tegas bahwa EKF maupun UKF bersifat aproksimatif, jadi bukan solusi optimal yang sepenuhnya
  • Saat mempelajari Kalman filter, konsepnya jauh lebih mudah dipahami secara intuitif ketika ada dua atau lebih input dengan karakteristik noise yang berbeda. Namun sebagian besar tutorial hanya membahas satu input

    • Di buku saya ada bab yang memperkenalkan konsep sensor fusion. Jika ingin belajar lebih dalam, saya merekomendasikan buku karya Bar-Shalom atau Blackman
    • Sebenarnya esensi Kalman filter adalah estimasi keadaan. Sensor fusion hanyalah salah satu penerapannya, jadi menyamakan keduanya bisa menimbulkan salah paham
  • Kalman filter memang banyak dipakai di dunia nyata. Misalnya, Sendspin menggunakannya untuk sinkronisasi speaker
    Anda bisa melihat demo langsung dan dokumentasi implementasi

  • Saya penasaran apakah konsep Kalman filter juga bisa diterapkan pada kesaksian manusia

    • Gagasan yang menarik. Pengamatan manusia bisa dipandang sebagai sensor yang berisik. Namun Kalman filter standar mengasumsikan noise Gaussian tanpa bias, jadi untuk manusia masih dipertanyakan apakah asumsi itu berlaku
  • Penjelasan sederhana juga bisa dilihat di thekalmanfilter.com

  • Tulisan ini terlihat seperti iklan buku mahal. Padahal sudah ada banyak materi gratis, misalnya Kalman and Bayesian Filters in Python dan semacamnya. Saya penasaran apa keunggulan khusus buku ini

    • Pertanyaan yang bagus. Isi inti tentang Kalman filter tersedia gratis untuk publik. Di bukunya, saya membahas lebih jauh hal-hal seperti tuning, pertimbangan desain, dan contoh tambahan
    • Buku Roger Labbe dan notebook Jupyter-nya benar-benar luar biasa. Itu sangat membantu bukan hanya untuk Kalman filter, tetapi juga untuk memahami pendekatan terhadap masalah estimasi secara umum
    • Saya juga sudah melihat banyak materi lain, tetapi buku ini layak direkomendasikan karena penjelasan detailnya sangat lengkap. Tutorial gratisnya juga bisa dilihat di sini
    • Materi yang ditautkan itu adalah karya klasik
    • Materi yang bagus memang tidak banyak. Dari yang pernah saya lihat, yang benar-benar dibuat dengan baik hanya segelintir. Ini adalah materi yang terasa menunjukkan upaya untuk memahami Kalman filter dari sudut pandang yang baru