आप कहाँ हैं, यह जानना
अपने कदमों की गिनती भटक जाती है। GPS इधर-उधर उछलता रहता है। दोनों को मिला दें, तो आपको किसी एक से कहीं बेहतर नतीजा मिलता है। इसे लोकलाइज़ेशन (localisation) कहते हैं।
60 सेकंड में
आप कहाँ हैं, यह जानना
अपने कदमों की गिनती भटक जाती है। GPS इधर-उधर उछलता रहता है। दोनों को मिला दें, तो आपको किसी एक से कहीं बेहतर नतीजा मिलता है। इसे लोकलाइज़ेशन (localisation) कहते हैं।
डेड रेकनिंग (Dead reckoning): अपनी ही गति को गिनना
# A robot thinks each wheel turn moves it 1.00 m.
# In truth the wheel is slightly worn and moves 0.98 m per turn.
believed_per_turn = 1.00
real_per_turn = 0.98
for turns in [10, 100, 1000, 5000]:
believed = turns * believed_per_turn
real = turns * real_per_turn
print(f"after {turns:5d} turns: believes {believed:7.1f} m, really {real:7.1f} m, "
f"error {believed - real:6.1f} m")GPS: इसमें शोर (noise) है लेकिन यह भटकता नहीं
| डेड रेकनिंग | GPS | |
|---|---|---|
| कम समय के लिए (Short-term) | स्मूद और सटीक | उछलने वाला, कुछ मीटर का शोर (noise) |
| लंबे समय के लिए (Long-term) | गलती लगातार बढ़ती जाती है (drift) | गलती लगभग एक जैसी ही रहती है |
| कमरों के अंदर, सुरंगों में | फिर भी काम करता है | अक्सर फेल हो जाता है |
| अपडेट की स्पीड | बहुत तेज़ | एक सेकंड में कुछ ही बार |
दोनों को मिलाना: पहले अंदाज़ा लगाएँ, फिर सुधारें
- 1
शुरुआत
पोज़िशन का एक अंदाज़ा, और आप कितने अनिश्चित हैं इसके लिए एक संख्या (variance)। - 2
प्रेडिक्ट
पहियों या IMU से हुई हलचल को जोड़ें। अनिश्चितता थोड़ी बढ़ जाती है। - 3
नापना
GPS की रीडिंग मिलती है, अपनी अनिश्चितता के साथ। - 4
करेक्ट
वेटेड एवरेज (weighted average) निकालें: जिस पर कम अनिश्चितता हो, उस पर ज़्यादा भरोसा करें। अनिश्चितता घट जाती है। - 5
दोहराएँ
हर कदम पर। ड्रिफ्ट कभी बड़ा नहीं हो पाता, और GPS का शोर भी शांत हो जाता है।
और देखें और पढ़ें
लैब
एक fuse() फ़ंक्शन जो डेड रेकनिंग और GPS को मिलाता है, और बनावटी डेटा पर दोनों से बेहतर साबित होता है।
समस्या
यह आपके ब्राउज़र में चलता है। एक रोबोट सीधी सड़क पर चल रहा है। इसके पहियों की रीडिंग 5% ज़्यादा है (drift), और इसके GPS में लगभग 3 मीटर का शोर (noise) है। सारे नंबर बनावटी हैं।
fuse(estimate, est_var, measurement, meas_var)को पूरा करें। वेटk = est_var / (est_var + meas_var)का इस्तेमाल करें। नया अंदाज़ा माप की तरफkहिस्से जितना खिसक जाता है। नया वैरियंस (variance)(1 - k) × est_varहोता है।- इसे चलाएँ और तीनों गलतियों की तुलना करें। प्लॉट को देखें।
GPS_VARको बदलकर 100 कर दें (यानी आप GPS पर बहुत कम भरोसा करते हैं)। फ़्यूज़ की गई (fused) लाइन का क्या होता है? दो वाक्य लिखें।
प्रैक्टिस लैब
कोड में बदलाव करें और इसे रन करें। Python आपके ब्राउज़र में चलता है — हमारे सर्वर पर कुछ नहीं भेजा जाता।
कोई आउटपुट नहीं। वैल्यूज़ देखने के लिए print(...) जोड़ें।
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1पहियों की रीडिंग में बायस (bias) है (5% ज़्यादा), लेकिन फ़िल्टर सिर्फ रैंडम गलती मानकर चलता है। फिर भी दोनों को मिलाना (फ्यूज़न) इतना अच्छा काम क्यों करता है?दिखाएं
GPS अंदाज़े को बार-बार वापस खींचता रहता है, इसलिए बायस बिना किसी सीमा के नहीं बढ़ पाता। फ़्यूज़ किया गया अंदाज़ा दूर और दूर भटकने के बजाय, सही स्थिति से थोड़ी सी तय दूरी पर ही बना रहता है। एक बेहतर फ़िल्टर खुद बायस का भी अंदाज़ा लगा सकता है — उसे उन चीज़ों में जोड़कर जिन्हें वह ट्रैक करता है — और फिर पहियों की रीडिंग को सुधार सकता है।
Q2अगर 30 सेकंड के लिए GPS गायब हो जाए, तो फ़्यूज़ किए गए अंदाज़े का क्या होगा?दिखाएं
सिग्नल न होने के दौरान, सिर्फ प्रेडिक्ट वाला कदम ही चलता है। अंदाज़ा डेड रेकनिंग का पीछा करता है और भटकता जाता है, और हर कदम पर वैरियंस बढ़ता जाता है। जब GPS वापस आता है, तो बड़े वैरियंस का मतलब होता है कि फ़िल्टर पहली नई GPS रीडिंग पर बहुत ज़्यादा भरोसा करता है और झटके से उसकी तरफ आ जाता है। अच्छे सिस्टम भरोसा करने से पहले यह भी जाँचते हैं कि वापस आने वाली रीडिंग समझदारी भरी है या नहीं।
अक्सर पूछे जाने वाले सवाल
इसे 'डेड रेकनिंग' क्यों कहा जाता है?
यह जहाज़ी नेविगेशन का एक पुराना शब्द है, जहाँ नाविक स्पीड, दिशा और समय की मदद से अपनी स्थिति का हिसाब लगाते थे। इस नाम की सही शुरुआत कैसे हुई, यह पूरी तरह साफ नहीं है। आज रोबोट्स में भी यही विचार काम करता है।
सैटेलाइट नेविगेशन कितना सटीक हो सकता है?
एक आम फोन या ड्रोन का रिसीवर खुले आसमान के नीचे अक्सर कुछ मीटर गलत होता है, और शहरों में तो और भी ज़्यादा। पास के किसी बेस स्टेशन से मिलने वाले करेक्शन सिग्नल्स का इस्तेमाल करने वाले खास सेटअप सेंटीमीटर जितनी सटीकता तक पहुँच सकते हैं। इनका इस्तेमाल ज़मीन की नपाई (सर्वेइंग) और सटीक खेती में होता है। किसी निश्चित संख्या का दावा करने से पहले मौजूदा उपकरणों की जाँच ज़रूर कर लें।
क्या कलमन फ़िल्टर को GPS की ज़रूरत होती ही है?
नहीं। यह किसी भी प्रेडिक्शन को किसी भी माप (measurement) के साथ मिला सकता है: पहियों की गिनती को कैमरे के साथ, IMU को बैरोमीटर के साथ, वगैरह। GPS तो बस सबसे आम उदाहरण है।
अगर GPS रीडिंग बहुत ज़्यादा गलत हो जाए तो क्या होगा?
एक भी बेहद गलत रीडिंग पूरे अंदाज़े को भटका सकती है। अच्छे सिस्टम हर रीडिंग को प्रेडिक्शन से मिलाते हैं और जो बहुत ज़्यादा अलग होती हैं, उन्हें छोड़ देते हैं। इसे आउटलायर रिजेक्शन (outlier rejection) या गेटिंग (gating) कहा जाता है।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।