एक सरल radar उदाहरण से Kalman Filter को समझना
(kalmanfilter.net)- Kalman Filter शोर-भरे वातावरण में सिस्टम की स्थिति का अनुमान लगाने और भविष्यवाणी करने वाला एक optimal state estimation algorithm है
- विमान-ट्रैकिंग radar के उदाहरण से बताया गया है कि दूरी और वेग के measurements का उपयोग करके prediction और update चरणों को बार-बार दोहराते हुए सटीकता कैसे बढ़ती है
- हर चरण में state vector, covariance matrix, Kalman Gain की गणना करके measurement और prediction values को weighted रूप से जोड़ा जाता है
- measurement uncertainty और model uncertainty, दोनों को साथ में ध्यान में रखकर, समय के साथ estimation error (uncertainty) घटता है यह संख्यात्मक रूप में दिखाया गया है
- सहज संख्यात्मक उदाहरणों और step-by-step गणना के माध्यम से फ़िल्टर को सीधे design और implement कर सकने लायक समझ दी जाती है
Kalman Filter परिचय
-
Kalman Filter** measurement noise या बाहरी कारकों जैसी अनिश्चितताओं वाले वातावरण में सिस्टम की स्थिति का अनुमान और भविष्यवाणी करने वाला** एक state estimation algorithm है
- object tracking, navigation, robotics, control जैसे कई क्षेत्रों में एक मुख्य tool के रूप में इस्तेमाल होता है
- उदाहरण के लिए, mouse trajectory के noise को घटाकर smooth movement पाना, financial data में trend detection, weather forecasting आदि में इसका उपयोग होता है
- यह इंगित किया गया है कि बहुत-सी educational materials गणितीय derivation पर अधिक केंद्रित होती हैं और व्यावहारिक उदाहरण कम देती हैं; यह सामग्री संख्यात्मक उदाहरण-केंद्रित सहज व्याख्या प्रदान करती है
- गलत design होने पर filter tracking में असफल हो सकता है, ऐसे मामलों को भी शामिल किया गया है और उन्हें सुधारने के तरीके बताए गए हैं
- लक्ष्य यह है कि पाठक स्वयं Kalman Filter को design और implement कर सकें, ऐसी समझ विकसित करें
सीखने का मार्ग
- single-page overview: मुख्य concepts और प्रमुख equations का संक्षिप्त परिचय, जिसके लिए statistics और linear algebra की बुनियादी जानकारी ही पर्याप्त है
- free web tutorial: step-by-step संख्यात्मक उदाहरणों वाला online tutorial, जिसके लिए पूर्व ज्ञान आवश्यक नहीं है
- Kalman Filter from the Ground Up (पुस्तक): 14 पूर्ण संख्यात्मक उदाहरण, non-linear filters (Extended/Unscented) और sensor fusion, साथ में Python·MATLAB code
prediction की आवश्यकता
- विमान-ट्रैकिंग radar उदाहरण के जरिए state estimation और prediction की आवश्यकता समझाई गई है
- सिस्टम की state विमान की position (distance (r)) है, और radar pulse reflection time को मापकर दूरी की गणना करता है
- velocity (v) को Doppler effect से मापा जा सकता है
- निश्चित समय अंतराल (\Delta t) के बाद position prediction dynamic model के जरिए किया जाता है
- उदाहरण: (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)
- वास्तविक वातावरण में measurement noise और model uncertainty (Process Noise) मौजूद होते हैं
- कई radar एक साथ मापें तब भी परिणाम थोड़ा-थोड़ा अलग हो सकता है
- हवा जैसे बाहरी कारकों के कारण velocity constant होने की धारणा टूट सकती है
- Kalman Filter वर्तमान state estimation और future state prediction दोनों एक साथ करता है, और हर estimate की uncertainty (variance) भी देता है
- यह state estimation uncertainty को न्यूनतम करने वाला optimal algorithm है
Kalman Filter उदाहरण
-
1-dimensional radar विमान की दूरी (r) और velocity (v) को मापता है
- state vector (\boldsymbol{x} = [r, v]^T)
- vectors और matrices का उपयोग करके सिस्टम को व्यक्त किया जाता है
-
Iteration 0 — initialization और prediction
-
initialization
- पहली measurement value से filter को initialize किया जाता है (\boldsymbol{z}_0 = [10{,}000, 200]^T)
- measurement uncertainty (standard deviation): दूरी 4m, velocity 0.5m/s (\boldsymbol{R}_0 = \begin{bmatrix}16 & 0 \ 0 & 0.25\end{bmatrix})
- initial state estimate (\hat{\boldsymbol{x}}_{0,0} = \boldsymbol{z}_0)
- initial covariance (\boldsymbol{P}_{0,0} = \boldsymbol{R}_0)
-
prediction चरण
- time interval (\Delta t = 5s)
- state transition matrix (\boldsymbol{F} = \begin{bmatrix}1 & 5 \ 0 & 1\end{bmatrix})
- predicted state (\hat{\boldsymbol{x}}{1,0} = \boldsymbol{F}\hat{\boldsymbol{x}}{0,0} = [11{,}000, 200]^T)
- covariance prediction (process noise को छोड़कर): (\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})
- process noise जोड़ा गया ((\sigma_a = 0.2m/s^2)): (\boldsymbol{Q} = \begin{bmatrix}6.25 & 2.5 \ 2.5 & 1\end{bmatrix})
- final predicted covariance: (\boldsymbol{P}_{1,0} = \begin{bmatrix}28.5 & 3.75 \ 3.75 & 1.25\end{bmatrix})
-
Iteration 0 सारांश
- पहली measurement से state और covariance initialize किए जाते हैं
- state transition model का उपयोग करके अगली state और uncertainty की prediction की जाती है
- prediction equations
- state prediction: (\hat{\boldsymbol{x}}{n+1,n} = \boldsymbol{F}\hat{\boldsymbol{x}}{n,n} + \boldsymbol{G}\boldsymbol{u}_n)
- covariance prediction: (\boldsymbol{P}{n+1,n} = \boldsymbol{F}\boldsymbol{P}{n,n}\boldsymbol{F}^T + \boldsymbol{Q})
-
Iteration 1 — update और prediction
-
filter update
- दूसरी measurement: (\boldsymbol{z}_1 = [11{,}020, 202]^T)
- measurement uncertainty में वृद्धि (standard deviation: दूरी 6m, velocity 1.5m/s) (\boldsymbol{R}_1 = \begin{bmatrix}36 & 0 \ 0 & 2.25\end{bmatrix})
- predicted covariance (\boldsymbol{P}_{1,0}) से तुलना करने पर prediction uncertainty कम है
- Kalman Filter measurement और prediction को weighted average के रूप में जोड़ता है
- weight (K_1): Kalman Gain
- state update equation: (\hat{\boldsymbol{x}}{1,1} = \hat{\boldsymbol{x}}{1,0} + \boldsymbol{K}_1(\boldsymbol{z}1 - \boldsymbol{H}\hat{\boldsymbol{x}}{1,0}))
- observation matrix (\boldsymbol{H} = \boldsymbol{I})
- 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}) परिणाम: (\boldsymbol{K}_1 = \begin{bmatrix}0.4048 & 0.6377 \ 0.0399 & 0.3144\end{bmatrix})
- innovation: (\boldsymbol{z}1 - \hat{\boldsymbol{x}}{1,0} = [20, 2]^T)
- correction value: (\boldsymbol{K}_1[20, 2]^T = [9.37, 1.43]^T)
- updated state: (\hat{\boldsymbol{x}}_{1,1} = [11{,}009.37, 201.43]^T)
-
covariance update
- simplified form का उपयोग: (\boldsymbol{P}_{1,1} = (\boldsymbol{I} - \boldsymbol{K}1)\boldsymbol{P}{1,0})
- परिणाम: (\boldsymbol{P}_{1,1} = \begin{bmatrix}14.57 & 1.43 \ 1.43 & 0.71\end{bmatrix})
- update के बाद uncertainty, prediction और measurement uncertainty दोनों से कम है → measurement और prediction को मिलाने पर uncertainty हमेशा घटती है
-
prediction चरण
- अगले समय (t_2) की prediction
- state prediction: (\hat{\boldsymbol{x}}{2,1} = \boldsymbol{F}\hat{\boldsymbol{x}}{1,1} = [12{,}016.5, 201.43]^T)
- covariance prediction: (\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})
- समय बीतने पर यदि measurement न मिले तो uncertainty फिर बढ़ती है
- अगले समय (t_2) की prediction
-
Iteration 1 सारांश
- update चरण: prediction और measurement को Kalman Gain से जोड़ा जाता है
- prediction चरण: updated state को अगले समय बिंदु तक आगे बढ़ाया जाता है
- मुख्य equations
- state update: (\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}))
- covariance update (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})
उदाहरण सारांश
- Kalman Filter के तीन चरण: initialization → prediction → update
- इसके बाद prediction-update loop को बार-बार चलाया जाता है
- हर नई measurement जुड़ने पर uncertainty घटती है और सिस्टम की state estimation धीरे-धीरे अधिक सटीक होती जाती है
- अतिरिक्त learning materials
- मुफ्त online tutorial: step-by-step संख्यात्मक उदाहरण उपलब्ध
- पुस्तक Kalman Filter from the Ground Up: linear·non-linear filters, implementation guidelines, Python/MATLAB code शामिल
अभी कोई टिप्पणी नहीं है.