ROBOTICS ESTIMATION MATH
v1.0 · 2026
// CURRICULUM MODULE · MATEMATIKA LANJUT

Matematika Estimasi dalam Robotika

Panduan komprehensif teori estimasi state, filter probabilistik, dan sensor fusion untuk sistem robotika modern

9 Topik Utama
Kalman · EKF · UKF · Particle
Bayes · SLAM · Odometri
Blue Dragon Security Research
01

Konsep Dasar Estimasi State

Dalam robotika, state adalah kumpulan variabel yang cukup untuk mendeskripsikan kondisi sistem pada suatu waktu. Posisi robot (x, y, θ), kecepatan, orientasi, atau posisi sendi adalah contoh state.

// Definisi State Estimation

Estimasi state adalah proses menentukan nilai state sistem yang tidak dapat diukur secara langsung, menggunakan pengukuran sensor yang mengandung noise dan model dinamika sistem.

1.1 Masalah Fundamental

Dua sumber ketidakpastian utama:

  • Process noise (noise proses): ketidakpastian pada model dinamika, gangguan eksternal, dan error aktuator.
  • Measurement noise (noise pengukuran): ketidakpastian pada sensor, kalibrasi, dan lingkungan.
// Model Umum Sistem Diskrit
xk = f(xk−1, uk) + wk // persamaan proses zk = h(xk) + vk // persamaan pengukuran // dimana: xk ∈ ℝⁿ → state vektor pada waktu k uk ∈ ℝᵐ → input kontrol zk ∈ ℝᵖ → vektor pengukuran wk ~ N(0, Q) → process noise, kovarians Q vk ~ N(0, R) → measurement noise, kovarians R

1.2 Kriteria Estimator yang Baik

KriteriaDefinisi MatematisArti Praktis
Unbiased E[x̂] = x Rata-rata estimasi sama dengan nilai sesungguhnya
Consistent lim P(|x̂−x|>ε) = 0 Error mengecil seiring bertambahnya data
Efficient (MMSE) min E[||x̂−x||²] Meminimalkan mean-squared error
MAP argmax p(x|z) Memaksimalkan posterior probability

1.3 Distribusi Gaussian (Normal)

Filter Kalman dan banyak estimator bergantung pada asumsi distribusi Gaussian karena sifatnya yang tertutup terhadap operasi linier.

// Probability Density Function Gaussian
p(x) = 1 / (√(2π|Σ|)) · exp(−½ (xμ)ᵀ Σ⁻¹ (xμ)) // Notasi ringkas: x ~ N(μ, Σ) μ = E[x] → mean vektor (n × 1) Σ = E[(x−μ)(x−μ)ᵀ] → matriks kovarians (n × n) |Σ| → determinan Σ
// Properti Kunci Gaussian

Transformasi linier dari Gaussian menghasilkan Gaussian. Jika x ~ N(μ, Σ) dan y = Ax + b, maka y ~ N(Aμ + b, AΣAᵀ). Inilah mengapa Kalman Filter bekerja secara optimal untuk sistem linier-Gaussian.

02

Bayesian Estimation

Framework Bayesian adalah fondasi matematis untuk semua estimasi probabilistik. Seluruh filter (Kalman, Particle) adalah implementasi khusus dari Bayes filter.

2.1 Teorema Bayes

// Teorema Bayes
p(x|z) = p(z|x) · p(x) / p(z) // terminologi: p(x|z) → posterior : probabilitas state x setelah observasi z p(z|x) → likelihood : probabilitas pengukuran z jika state adalah x p(x) → prior : kepercayaan awal sebelum pengukuran p(z) → evidence : normalizing constant = ∫ p(z|x) p(x) dx

2.2 Bayes Filter (Recursive)

Bayes Filter memperbarui belief (distribusi probabilitas state) secara rekursif dalam dua langkah.

ALGORITMA Bayes Filter Rekursif
Input: bel(xk−1), uk, zk Output: bel(xk) STEP 1 PREDICTION (Chapman-Kolmogorov): b̄el(xk) = ∫ p(xk | xk−1, uk) · bel(xk−1) dxk−1 STEP 2 UPDATE (Bayes): bel(xk) = η · p(zk | xk) · b̄el(xk) η = normalizing constant agar ∫ bel(xk) dx = 1

2.3 MAP vs MMSE

EstimatorFormulaKeterangan
MAP (Maximum A Posteriori) x̂_MAP = argmax p(x|z) Mode dari distribusi posterior. Robust terhadap outlier
MMSE (Min Mean Sq Error) x̂_MMSE = E[x|z] = ∫ x p(x|z) dx Mean dari posterior. Optimal untuk Gaussian
ML (Maximum Likelihood) x̂_ML = argmax p(z|x) Tidak menggunakan prior. Tidak cocok jika prior informative
// Catatan Penting

Untuk distribusi Gaussian, MAP = MMSE = Mean posterior. Ini adalah alasan kuat mengapa Kalman Filter yang mengasumsikan Gaussian adalah estimator optimal (MMSE) untuk sistem linier.

03

Representasi State Space

State space representation adalah cara matematis untuk mendeskripsikan sistem dinamis menggunakan variabel state internal.

3.1 Model Diskrit-Waktu Linier

// State Space Linier Diskrit
xk = F xk−1 + B uk + wk zk = H xk + vk // matriks sistem: F ∈ ℝⁿˣⁿ → state transition matrix B ∈ ℝⁿˣᵐ → control input matrix H ∈ ℝᵖˣⁿ → observation (measurement) matrix Q ∈ ℝⁿˣⁿ → process noise covariance (simetrik, PSD) R ∈ ℝᵖˣᵖ → measurement noise covariance (simetrik, PD)

3.2 Contoh: Model Gerak Robot 2D

Robot bergerak pada bidang datar. State: posisi dan kecepatan pada sumbu x dan y.

// State Vektor & Matriks Transisi
xk = [x, ẋ, y, ẏ]ᵀ // 4-dimensi state // F dengan Δt = interval waktu sampling: F = ⎡ 1 Δt 0 0 ⎤ ⎢ 0 1 0 0 ⎥ ⎢ 0 0 1 Δt ⎥ ⎣ 0 0 0 1 ⎦ // Jika sensor hanya mengukur posisi (bukan kecepatan): H = ⎡ 1 0 0 0 ⎤ ⎣ 0 0 1 0 ⎦ // 2×4, observasi x dan y saja

3.3 Model Non-Linier Umum

Kebanyakan robot menggunakan model non-linier karena kinematika dan sensor yang melibatkan fungsi trigonometri.

// Model Non-Linier (EKF/UKF/Particle)
xk = f(xk−1, uk) + wk zk = h(xk) + vk // Contoh: unicycle robot model f(x, u) = ⎡ x + v·cos(θ)·Δt ⎤ ⎢ y + v·sin(θ)·Δt ⎥ ⎣ θ + ω·Δt ⎦ // dimana u = [v, ω]ᵀ (linear speed, angular speed) // Contoh: sensor range-bearing h(x) = ⎡ √((mx−x)² + (my−y)²) ⎤ // jarak ke landmark ⎣ atan2(my−y, mx−x) − θ ⎦ // sudut ke landmark
04

Kalman Filter (KF)

Kalman Filter (1960) adalah estimator optimal rekursif untuk sistem linier dengan noise Gaussian. Memberikan estimasi minimum variance unbiased (MVUE).

// Asumsi Kalman Filter

1. Model sistem linier: xk = Fxk−1 + Buk + wk
2. Noise Gaussian putih: wk ~ N(0,Q), vk ~ N(0,R)
3. Noise proses dan pengukuran tidak berkorelasi: E[wkvjᵀ] = 0
4. Prior Gaussian: x0 ~ N(μ0, P0)

4.1 Model Sistem Kalman Filter

// Definisi Lengkap Model KF
// === PERSAMAAN PROSES === xk = Fk xk−1 + Bk uk + wk // === PERSAMAAN PENGUKURAN === zk = Hk xk + vk // === STATISTIK NOISE === E[wk] = 0 E[wk wjᵀ] = Qk δkj // δ = Kronecker delta E[vk] = 0 E[vk vjᵀ] = Rk δkj E[wk vjᵀ] = 0 ∀k,j

4.2 Algoritma: Predict & Update

ALGORITMA Kalman Filter — 5 Persamaan
INISIALISASI: 0|0 = μ0 // estimasi awal state P0|0 = P0 // kovarians error awal ── FASE PREDICT ────────────────────────── 1 State prediction: k|k−1 = Fkk−1|k−1 + Bk uk 2 Covariance prediction: Pk|k−1 = Fk Pk−1|k−1 Fkᵀ + Qk ── FASE UPDATE ─────────────────────────── 3 Innovation (residual): k = zk − Hkk|k−1 // measurement residual 4 Innovation covariance: Sk = Hk Pk|k−1 Hkᵀ + Rk 5 Kalman Gain: Kk = Pk|k−1 Hkᵀ Sk⁻¹ 6 State update: k|k = x̂k|k−1 + Kkk 7 Covariance update (Joseph form): Pk|k = (I − Kk Hk) Pk|k−1 (I − Kk Hk)ᵀ + Kk Rk Kk // Joseph form: numerically stable, selalu PSD // Simplified: Pk|k = (I − Kk Hk) Pk|k−1 (hanya valid jika K optimal)

4.3 Interpretasi Kalman Gain

// Analisis Kalman Gain K
Kk = Pk|k−1 Hkᵀ (Hk Pk|k−1 Hkᵀ + Rk)⁻¹ // Case 1: Sensor sangat akurat → R → 0 KH⁻¹ // filter percaya penuh pada sensor k|kH⁻¹ zk // langsung pakai pengukuran // Case 2: Model sangat akurat → P → 0 K0 // filter percaya penuh pada prediksi k|kk|k−1 // abaikan pengukuran // Kenyataannya: K adalah weighted trade-off optimal antara keduanya
// Intuisi Kalman Gain

Kalman Gain adalah bobot yang menyeimbangkan kepercayaan antara prediksi model dan pengukuran sensor. Semakin besar P (ketidakpastian prediksi) relatif terhadap R (ketidakpastian sensor), semakin besar bobot diberikan ke sensor.

4.4 Contoh Numerik: 1D Position Tracking

// KF 1 Dimensi — Robot Melacak Posisi
// State: x = [posisi, kecepatan]ᵀ, Δt = 0.1s F = [[1, 0.1], [0, 1]] H = [[1, 0]] // hanya posisi diukur Q = [[0.001, 0],[0, 0.001]] R = [[0.5]] // sensor GPS noise σ²=0.5m² // Iterasi k=1, x̂₀ = [0,0]ᵀ, P₀ = I·10 // PREDICT: ₁|₀ = [[1,0.1],[0,1]] · [0,0]ᵀ = [0, 0]ᵀ P₁|₀ = F·P₀·Fᵀ + Q ≈ [[10.001, 1.0], [1.0, 10.001]] // Misalkan z₁ = 0.5m (GPS ukur 0.5m) // UPDATE: S = H·P₁|₀·Hᵀ + R = 10.001 + 0.5 = 10.501 K = P₁|₀·Hᵀ/S = [10.001/10.501, 1.0/10.501]ᵀ ≈ [0.952, 0.095]ᵀ ₁|₁ = [0,0]ᵀ + K·(0.5−0) = [0.476, 0.048]ᵀ // Estimasi posisi: 0.476m (antara prediksi 0 dan sensor 0.5)
05

Extended Kalman Filter (EKF)

EKF adalah ekstensi Kalman Filter untuk sistem non-linier dengan melakukan linearisasi orde pertama menggunakan Jacobian.

// Keterbatasan KF → Motivasi EKF

Robot nyata menggunakan model kinematika non-linier (unicycle, differential drive, arm robot). Sensor seperti LIDAR dan kamera menghasilkan data yang hubungannya non-linier dengan state. KF standar tidak bisa menangani ini.

5.1 Linearisasi dengan Jacobian

// Taylor Expansion Orde Pertama
// Fungsi non-linier: xk = f(xk−1, uk) + wk zk = h(xk) + vk // Linearisasi sekitar estimasi saat ini x̂: f(x) ≈ f() + F(x) // F adalah Jacobian df/dx h(x) ≈ h() + H(x) // H adalah Jacobian dh/dx // Jacobian matriks (partial derivatives): Fk = ∂f/∂x |x=x̂k−1|k−1 // n×n Hk = ∂h/∂x |x=x̂k|k−1 // p×n

5.2 Algoritma EKF

ALGORITMA Extended Kalman Filter
── FASE PREDICT ────────────────────────── 1 State prediction (non-linier): k|k−1 = f(x̂k−1|k−1, uk) 2 Hitung Jacobian Fk: Fk = ∂f/∂x |k−1|k−1 3 Covariance prediction (linearisasi): Pk|k−1 = Fk Pk−1|k−1 Fkᵀ + Qk ── FASE UPDATE ─────────────────────────── 4 Hitung Jacobian Hk: Hk = ∂h/∂x |k|k−1 5 Innovation: k = zk − h(x̂k|k−1) // gunakan h non-linier di sini 6 Innovation covariance: Sk = Hk Pk|k−1 Hkᵀ + Rk 7 Kalman Gain: Kk = Pk|k−1 Hkᵀ Sk⁻¹ 8 State update: k|k = x̂k|k−1 + Kkk 9 Covariance update: Pk|k = (I − Kk Hk) Pk|k−1

5.3 Contoh: Jacobian Unicycle Model

// Derivasi Jacobian untuk Unicycle Robot
// Model proses: f(x, u) dengan x=[x,y,θ]ᵀ, u=[v,ω]ᵀ f([x,y,θ], [v,ω]) = ⎡ x + v·cos(θ)·Δt ⎤ ⎢ y + v·sin(θ)·Δt ⎥ ⎣ θ + ω·Δt ⎦ // Jacobian F = ∂f/∂x : F = ∂f/∂[x,y,θ] = ⎡ 1 0 −v·sin(θ)·Δt ⎤ ⎢ 0 1 v·cos(θ)·Δt ⎥ ⎣ 0 0 1 ⎦ // Model sensor bearing-only: h(x) = atan2(my−y, mx−x) − θ // Jacobian H = ∂h/∂x : dx = mx − x, dy = my − y, q = dx² + dy² H = [ dy/q, −dx/q, −1 ] // 1×3 row vector
// Kelemahan EKF

EKF menggunakan linearisasi orde pertama yang bisa mengakumulasi error saat non-linearitas kuat. Divergensi filter dapat terjadi jika inisialisasi buruk atau kovarians tidak akurat. Untuk non-linearitas tinggi, gunakan UKF atau Particle Filter.

06

Unscented Kalman Filter (UKF)

UKF menggunakan Unscented Transform (UT) untuk mempropagasi distribusi melalui fungsi non-linier menggunakan kumpulan titik deterministik (sigma points) tanpa menghitung Jacobian.

6.1 Unscented Transform

// Sigma Point Generation — UT
// Diberikan: distribusi x ~ N(x̂, P), dimensi n // Parameter: α, β, κ (biasanya α=1e-3, β=2, κ=0) λ = α² (n + κ) − n // 2n+1 sigma points: χ⁰ = χⁱ = + (√((n+λ)P))i i = 1, ..., n χⁱ = − (√((n+λ)P))i−n i = n+1, ..., 2n // (√((n+λ)P))i adalah kolom ke-i dari matrix square root // Bobot untuk mean dan covariance: Wm⁰ = λ/(n+λ) Wc⁰ = λ/(n+λ) + (1 − α² + β) Wmⁱ = Wcⁱ = 1 / (2(n+λ)) i = 1, ..., 2n

6.2 Algoritma UKF Lengkap

ALGORITMA Unscented Kalman Filter
── FASE PREDICT ────────────────────────── 1 Generate sigma points: χk−1 = SigmaPoints(x̂k−1|k−1, Pk−1|k−1) 2 Propagasi sigma points (non-linier): χ*k|k−1ⁱ = f(χk−1ⁱ, uk) untuk i = 0,...,2n 3 Predicted mean: k|k−1 = Σ Wmⁱ · χ*k|k−1 4 Predicted covariance: Pk|k−1 = Σ Wcⁱ (χ*ⁱ−x̂)(χ*ⁱ−x̂)ᵀ + Qk ── FASE UPDATE ─────────────────────────── 5 Propagasi sigma points ke observation space: γkⁱ = h(χ*k|k−1ⁱ) 6 Predicted measurement mean: k = Σ Wmⁱ · γk 7 Innovation covariance S & cross-covariance C: Sk = Σ Wcⁱ (γⁱ−ẑ)(γⁱ−ẑ)ᵀ + Rk Ck = Σ Wcⁱ (χ*ⁱ−x̂k|k−1)(γⁱ−ẑ)ᵀ 8 Kalman Gain: Kk = Ck Sk⁻¹ 9 State & Covariance update: k|k = x̂k|k−1 + Kk (zk − ẑk) Pk|k = Pk|k−1 − Kk Sk Kk

6.3 Perbandingan KF vs EKF vs UKF

AspekKFEKFUKF
Model Sistem Linier Non-linier Non-linier
Pendekatan Eksak Linearisasi Jacobian Sigma Points (UT)
Butuh Jacobian Tidak Ya Tidak
Akurasi Optimal (linier) Orde 1 Orde 3 (lebih baik)
Komputasi O(n²) O(n²) + Jacobian O(n²) sigma points
Mudah Implementasi Tinggi Sedang (perlu derivatif) Tinggi (no derivatif)
07

Particle Filter (Sequential Monte Carlo)

Particle Filter merepresentasikan distribusi posterior sebagai kumpulan sampel berbobot (partikel). Dapat menangani distribusi multi-modal dan model non-Gaussian secara penuh.

7.1 Konsep Dasar

// Representasi Particle
// Posterior diaproksimasikan oleh N partikel: p(xk | z1:k) ≈ Σi=1..N wkⁱ · δ(xxkⁱ) // Set partikel: {xkⁱ, wkⁱ}i=1..N xkⁱ → sampel state partikel ke-i wkⁱ → bobot partikel ke-i // Normalisasi: Σ wkⁱ = 1 // Estimasi mean: k = Σi wkxk

7.2 Sequential Importance Sampling (SIS)

// Importance Sampling Weights Update
// Proposal distribution: q(xk|xk−1, zk) // Bobot diperbarui secara sekuensial: wkⁱ ∝ wk−1ⁱ · p(zk|xkⁱ) · p(xkⁱ|xk−1ⁱ) ────────────────────────────────── q(xkⁱ | xk−1ⁱ, zk) // Pilihan umum: q = prior transition → proposal = p(xk|xk−1) // Sederhananya: wkⁱ ∝ wk−1ⁱ · p(zk|xkⁱ)

7.3 Algoritma SIR Particle Filter

ALGORITMA SIR Particle Filter (Bootstrap)
INISIALISASI (k=0): Sampel x₀ⁱ ~ p(x₀), set w₀ⁱ = 1/N ∀i FOR k = 1, 2, ... DO: 1 PREDICT — Sampel dari prior: kⁱ ~ p(xk | xk−1ⁱ, uk) i=1..N // tambahkan process noise: x̃ = f(xprev, u) + sample(Q) 2 WEIGHT — Update bobot dengan likelihood: kⁱ = wk−1ⁱ · p(zk | x̃kⁱ) // likelihood sensor: e.g. Gaussian p(z|x) = N(z; h(x), R) 3 NORMALIZE: wkⁱ = w̃kⁱ / Σjkʲ 4 ESTIMATE: k = Σi wkⁱ · x̃k 5 RESAMPLE — jika Neff < threshold: Neff = 1 / Σi (wkⁱ)² // Low Neff = degeneracy (partikel terpusat di 1 titik) // Resample N partikel dari {x̃ⁱ, wⁱ} → {xⁱ, 1/N} // Gunakan systematic resampling (paling efisien) END FOR

7.4 Systematic Resampling

// Systematic Resampling Algorithm
// Buat N partikel baru dari distribusi {xⁱ, wⁱ}: U ~ Uniform(0, 1/N) // satu sampel acak c[0] = w¹, c[i] = c[i−1] + wi+1 // CDF kumulatif j = 1 FOR i = 1 TO N: u = U + (i−1)/N WHILE c[j] < u: j++ xnewⁱ = xoldʲ // O(N) waktu — lebih baik dari multinomial O(N log N)
// Trade-off: Jumlah Partikel N

Makin banyak partikel → akurasi lebih tinggi → komputasi lebih berat. Untuk robot 2D (x,y,θ): N=500–2000 cukup. Untuk high-dimensional state atau multi-modal, N bisa mencapai 10.000+. Adaptive particle filter dapat menyesuaikan N secara dinamis.

08

Sensor Fusion

Sensor Fusion menggabungkan data dari beberapa sensor untuk menghasilkan estimasi state yang lebih akurat daripada menggunakan satu sensor saja.

8.1 Prinsip Dasar

// Optimal Fusion: 2 Sensor (1D)
// Dua pengukuran independen dari state yang sama: z₁ ~ N(x, σ₁²) // sensor 1 z₂ ~ N(x, σ₂²) // sensor 2 // Fusi optimal (MMSE): = (σ₂² · z₁ + σ₁² · z₂) / (σ₁² + σ₂²) σ² = (σ₁² · σ₂²) / (σ₁² + σ₂²) // kovarians fusi // Atau dalam bentuk bobot: = w₁·z₁ + w₂·z₂ w₁ = σ₂²/(σ₁²+σ₂²), w₂ = σ₁²/(σ₁²+σ₂²) // Sensor yang lebih akurat (σ kecil) mendapat bobot lebih besar

8.2 Fusi IMU + GPS menggunakan EKF

// IMU + GPS Fusion — State Space
// State: posisi, kecepatan, orientasi, IMU bias x = [p, v, q, ba, bg]ᵀ ∈ ℝ¹⁶ // p ∈ ℝ³: posisi, v ∈ ℝ³: kecepatan, q ∈ ℝ⁴: quaternion // ba ∈ ℝ³: acc bias, bg ∈ ℝ³: gyro bias // Predict menggunakan IMU pre-integration: pk = pk−1 + vk−1Δt + ½(R(ãba) − g)Δt² vk = vk−1 + (R(ãba) − g)Δt qk = qk−1Exp((ω̃bg)Δt) // quaternion multiplication // Update menggunakan GPS (z_GPS = [lat,lon,alt] → xyz): zGPS = p + vGPS → HGPS = [I₃, 0, 0, 0, 0]

8.3 Complementary Filter (IMU + Magnetometer)

// Complementary Filter — Estimasi Orientasi
// Prinsip: IMU bagus short-term (drift), Mag bagus long-term // Complementary filter gabungkan keduanya di frekuensi berbeda: θ̂k = α · (θ̂k−1 + ωgyro·Δt) + (1−α) · θacc/mag // α ≈ 0.98 (lebih percaya gyro, filter high-pass) // θacc/mag: estimasi statis dari accelerometer + magnetometer // (1−α) = 0.02: filter low-pass untuk drift correction // Transfer function: Hgyro(s) = αs/(αs+1) // high-pass filter Hacc(s) = (1−α)/(αs+1) // low-pass filter // Sum = 1 (complementary!)

8.4 Diagram Arsitektur Sensor Fusion

GPS IMU LIDAR Camera Pre- processor noise model EKF / UKF Predict → Update k|k, Pk|k Kalman Gain K State Estimate [p, v, θ] SENSORS SYNC+CALIB FUSION CORE OUTPUT
09

Odometri & Pengantar SLAM

9.1 Odometri Differential Drive

Odometri mengintegrasi data encoder roda untuk mengestimasi pose robot. Akumulasi error tanpa koreksi eksternal — ini masalah utama yang diselesaikan SLAM.

// Kinematik Differential Drive
// Encoder kiri dan kanan memberikan jarak roda: Δs_L = (2π r / Nticks) · n_L Δs_R = (2π r / Nticks) · n_R // Jarak dan rotasi rata-rata: Δs = (Δs_R + Δs_L) / 2 // jarak maju rata-rata Δθ = (Δs_R − Δs_L) / L // L = jarak antar roda (wheelbase) // Update pose: x' = x + Δs · cos(θ + Δθ/2) y' = y + Δs · sin(θ + Δθ/2) θ' = θ + Δθ // Kovarians propagasi (linearisasi): P' = Jpose · P · Jposeᵀ + Jenc · Qenc · Jenc// Qenc = diag(k_r|Δs_R|, k_l|Δs_L|) (linear dalam jarak)

9.2 Error Odometri dan Akumulasi

Sumber ErrorModel MatematisEfek
Slip roda σ²_slip ∝ |Δs| Error posisi terakumulasi √t
Ketidakseimbangan diameter roda δr = r_R − r_L ≠ 0 Robot tidak jalan lurus, heading drift linier
Resolusi encoder σ_enc = 2πr/(2N) Kuantisasi error per step
Error heading σ²_xy ≈ (d·σ_θ)² Tumbuh kuadratik terhadap jarak d

9.3 EKF-SLAM: Konsep Matematika

// SLAM State Vector
// State gabungan: pose robot + peta landmark X = [xr, m₁, m₂, ..., mN]ᵀ ∈ ℝ³⁺²ᴺ xr = [x, y, θ]ᵀ // pose robot mi = [m_xi, m_yi]ᵀ // posisi landmark ke-i // Kovarians gabungan: (3+2N) × (3+2N) P = ⎡ Prr Prm ⎤ ⎣ Pmr Pmm ⎦ Prr: kovarians pose robot Pmm: kovarians landmark Prm: cross-korelasi (penting!) robot-landmark // Seiring waktu, landmark dan pose menjadi sangat berkorelasi // Ini yang membuat loop-closure bekerja dalam SLAM
ALGORITMA EKF-SLAM Satu Iterasi
1 PREDICT — hanya robot bergerak, landmark tetap: x̂'r = f(x̂r, uk) P' = F P Fᵀ + Q // F = blok-diag([Fr, I2N]) — landmark tidak berubah 2 DATA ASSOCIATION — cocokkan pengamatan ke landmark: ij = (zi − ẑj)ᵀ S⁻¹ (zi − ẑj) Mahalanobis distance // nearest-neighbour atau Hungarian algorithm 3 UPDATE untuk setiap landmark yang terdeteksi: H = ∂h/∂X | K = P Hᵀ (H P Hᵀ + R)⁻¹ X̂ += K (z − h(X̂)) P = (I − KH) P 4 ADD NEW LANDMARKS (landmark baru terdeteksi): // Augmentasi state vector: tambah [m_x, m_y] // Inisialisasi kovarians via Jacobian inverse observation

9.4 Perbandingan Algoritma SLAM

AlgoritmaRepresentasiKompleksitasKeunggulan
EKF-SLAM Gaussian O(N²) per step Optimal untuk linearisasi, kovarians penuh
FastSLAM Partikel + EKF per-landmark O(N log M) Skalabel, multi-hypothesis
Graph-SLAM / iSAM Factor graph O(N log N) Loop closure yang kuat, batch optimization
ORB-SLAM3 Feature-based visual Bergantung fitur Real-time, stereo+IMU, multi-session
REF

Notasi dan Simbol Referensi

SimbolNamaDimensiKeterangan
xkState vectorn×1State sistem pada waktu k
ukControl inputm×1Sinyal kontrol atau aktuasi
zkMeasurement vectorp×1Keluaran sensor pada waktu k
FState transition matrixn×nLinearisasi fungsi f
HObservation matrixp×nLinearisasi fungsi h
QProcess noise cov.n×nSimetrik PSD
RMeasurement noise cov.p×pSimetrik PD
PError covariancen×nKetidakpastian estimasi
KKalman Gainn×pBobot optimal antara prediksi dan sensor
SInnovation covariancep×pS = HPHᵀ + R
Innovation / residualp×1Perbedaan pengukuran dengan prediksi
k|kPosterior estimaten×1Setelah update pengukuran k
k|k−1Prior estimaten×1Setelah predict, sebelum update
χSigma points (UKF)n×(2n+1)Titik deterministik UT
Wm, WcUT weights2n+1Bobot mean dan kovarians
{xⁱ, wⁱ}Particle setN sampelPartikel dan bobotnya (PF)
NeffEffective sample sizeskalar1/Σ(wⁱ)², trigger resample

Referensi Utama

  • Thrun, Burgard, Fox — Probabilistic Robotics (2005, MIT Press) — Referensi utama SLAM dan Bayes filter
  • Kalman, R.E. — A New Approach to Linear Filtering and Prediction Problems (1960, ASME Trans.)
  • Wan & van der Merwe — The Unscented Kalman Filter, Kalman Filtering and Neural Networks (2001)
  • Doucet, de Freitas, Gordon — Sequential Monte Carlo Methods in Practice (2001, Springer)
  • Bar-Shalom, Li, Kirubarajan — Estimation with Applications to Tracking and Navigation (2001, Wiley)
  • Barfoot — State Estimation for Robotics (2017, Cambridge University Press)