Contents — find the section you need

किसी रोबोट के लिए यह जानने का सबसे सरल तरीका कि वह "1 मीटर दाईं ओर, 2 मीटर आगे बढ़ा" है, अपने स्वयं के विस्थापन को लगातार जोड़ना है। यह समय के साथ पहियों के घूर्णन की संख्या, मोटर की गति और आईएमयू की कोणीय दरों को एकीकृत करके अपनी वर्तमान स्थिति का अनुमान लगाता है। इस विधि को डेड रेकनिंग कहा जाता है। यह तब भी काम करता है जब जीपीएस या कैमरा अस्थायी रूप से अनुपलब्ध हो, लेकिन पहियों की थोड़ी सी फिसलन या सेंसर का विचलन स्थिति त्रुटि में बदल जाता है जो समय के साथ बढ़ता जाता है।

RTK GNSS रिसीवर का उपयोग करते हुए सर्वेक्षकपूर्ण GNSS अवलोकन
MPU-6050 के साथ GY-521 IMU मॉड्यूलकम लागत वाले IMU का उदाहरण

चित्र: Surveyor RTK समाधान के साथ GNSS रिसीवर का उपयोग (SweetCanadianMullet, CC BY 4.0) / GY-521 MPU-6050 मॉड्यूल (नेविट दिलमेन, CC BY-SA 3.0), विकिमीडिया कॉमन्स। प्रतिनिधि सेंसर, अनिवार्य हार्डवेयर युग्मन नहीं।

30-सेकंड का सारांश

  • डेड रेकनिंग "पिछली स्थिति और मापे गए विस्थापन" के योग से वर्तमान स्थिति का अनुमान लगाती है। यह बिना किसी अवलोकन के भी उच्च दर पर अपडेट हो सकती है।
  • डिफरेंशियल-ड्राइव रोबोट में, बाएँ और दाएँ पहियों के विस्थापन का अंतर मोड़ कोण निर्धारित करता है, और उनका औसत आगे की दूरी निर्धारित करता है। पहिए की त्रिज्या और ट्रेड चौड़ाई में त्रुटि एक व्यवस्थित वक्र के रूप में दिखाई देती है।
  • एकीकरण के माध्यम से ओडोमेट्री त्रुटि संचित होती है। एक सटीक स्थिति प्राप्त करने के लिए GNSS, LiDAR, कैमरा या परावर्तक मार्करों जैसे अवलोकनों से सुधार की आवश्यकता होती है।
  • एक IMU अल्पकालिक अभिवृत्ति परिवर्तनों के प्रति मजबूत होता है, लेकिन त्वरण के दोहरे एकीकरण होने पर स्थिति तेजी से बदलती है। ईकेएफ या फैक्टर ग्राफ के माध्यम से पहियों और आईएमयू को एकीकृत करना एक सामान्य तरीका है।
  • कार्यान्वयन में, टाइमस्टैम्प, निर्देशांक फ्रेम, बाएँ/दाएँ चिह्न परिपाटी, पहिए की त्रिज्या, स्लिप डिटेक्शन और सहप्रसरण को शुरू से ही सही ढंग से परिभाषित किया जाना चाहिए - यदि इसमें कोई गलती हुई तो महंगे सेंसर भी इसे ठीक नहीं कर पाएंगे।

1. डिफरेंशियल-ड्राइव काइनेमेटिक्स

बाएँ और दाएँ पहिए की त्रिज्या को r, पहियों के बीच की दूरी (ट्रेड) को b और बाएँ/दाएँ कोणीय वेगों को \omega_L,\omega_R मान लें। पहियों के रेखीय वेग v_L=r\omega_L और v_R=r\omega_R हैं, इसलिए वाहन केंद्र का स्थानांतरीय वेग v और यॉ दर \dot{\theta} हैं:

v=\frac{v_R+v_L}{2},\qquad \dot{\theta}=\frac{v_R-v_L}{b}

समय k पर स्थिति को (x_k,y_k,\theta_k) और नमूना अवधि को \Delta t मानकर, सरल यूलर समाकलन से प्राप्त होता है:

x_{k+1}=x_k+v\cos\theta_k\Delta t,
y_{k+1}=y_k+v\sin\theta_k\Delta t, \qquad \theta_{k+1}=\theta_k+\dot{\theta}\Delta t

स्थिर गति वाले चाप पर वाहन चलाते समय, सटीक समाकलन (बॉडी निर्देशांक में घातीय मानचित्र) का उपयोग करने से कम गति और उच्च मोड़ दर पर भी त्रुटि कम रहती है।

Diagram 1 · Use the button to switch views
Vehicle centerLeft wheel vLRight wheel vR Tread b vInstantaneous center of rotationIf vR > vL, turns left

चित्र 1 — डिफरेंशियल ड्राइव में, बाएँ और दाएँ गति के अंतर से यॉ दर उत्पन्न होती है। एक पहिया रोकने से रोबोट उसके चारों ओर घूम सकता है।

2. ओडोमेट्री में विचलन क्यों होता है

यदि पहिए की त्रिज्या में 1% की त्रुटि है और आप ड्राइविंग करते समय बाएँ और दाएँ को समान मानते हैं, तो आप सीधे जाने के बावजूद धीरे-धीरे मुड़ेंगे। बाएँ/दाएँ एनकोडर रिज़ॉल्यूशन, गियर बैकलैश, फर्श की अनियमितताएँ, टायर का घिसाव और भार-प्रेरित विरूपण सभी व्यवस्थित त्रुटि बन जाते हैं। यदि कोई पहिया गीले फर्श या बजरी पर फिसल जाता है, तो मापा गया घूर्णन और वास्तविक विस्थापन मेल नहीं खाते।

एटीट्यूड त्रुटि \delta\theta पार्श्व स्थिति त्रुटि उत्पन्न करती है। आगे की दूरी s के लिए, अल्पकालिक सन्निकटन से प्राप्त होता है:

\delta y\approx s\,\delta\theta

0.5 डिग्री कोण त्रुटि के साथ 1 किमी ड्राइव करने पर, पार्श्व विस्थापन लगभग 8.7 मीटर तक पहुँच जाता है। स्थिति त्रुटि को केवल "प्रति सेकंड इतने सेंटीमीटर" के रूप में व्यक्त करना, सीधी ड्राइविंग, मोड़ और फिसलने की विभिन्न त्रुटि संरचनाओं को सटीक रूप से नहीं दर्शाता है।

व्हील ओडोमेट्री का सहप्रसरण बाएँ/दाएँ विस्थापन की अनिश्चितता को स्थिति में स्थानांतरित करता है और तदनुसार उसे अद्यतन करता है। कार्यान्वयन में, मोड़ों के दौरान या फिसलन का पता चलने पर सहप्रसरण बढ़ जाता है, ताकि अनुगामी सेंसर संलयन ओडोमेट्री पर अत्यधिक भरोसा न करे।

3. आईएमयू जोड़ना

आईएमयू के जाइरोस्कोप से कोणीय दर \omega_z को एकीकृत करने पर प्राप्त होता है:

\theta(t)=\theta_0+\int_0^t(\omega_z(\tau)-b_g-n_g)\,d\tau

जहां b_g जाइरो बायस है और n_g शोर है। यहां तक कि जब कोई पहिया फिसलता है, तब भी कोणीय दर में अल्पकालिक परिवर्तन को मापा जा सकता है, जिससे केवल पहियों की तुलना में अभिवृत्ति का अधिक सटीक अनुमान प्राप्त होता है। वेग और स्थिति प्राप्त करने के लिए त्वरण को दोहरा एकीकृत करते समय, बायस b_a से त्रुटि इस प्रकार बढ़ती है:

\delta p(t)\simeq\frac{1}{2}b_a t^2

इसलिए केवल आईएमयू दीर्घकालिक स्थिति सेंसर के रूप में कार्य नहीं कर सकता।

पहियों और आईएमयू का संयोजन: पहिए निम्न-आवृत्ति विस्थापन को संभालते हैं, और आईएमयू उच्च-आवृत्ति कोणीय दर और त्वरण को संभालता है। रोल/पिच को गुरुत्वाकर्षण दिशा से आरंभ किया जाता है, और जब मैग्नेटोमीटर या जीएनएसएस उपलब्ध होता है, तो एक निरपेक्ष यॉ संदर्भ भी जोड़ा जाता है।

4. ईकेएफ या फैक्टर ग्राफ से सुधार

एक उदाहरण स्टेट वेक्टर है:

\mathbf{x}=[x,y,\theta,v,b_g,b_a]^T

पूर्वानुमान चरण में, पहियों और आईएमयू से एक नॉन-लीनियर मोशन मॉडल f की गणना की जाती है; जब कोई ऑब्ज़र्वेशन प्राप्त होता है, तो अवशिष्ट का उपयोग इसे ठीक करने के लिए किया जाता है।

\mathbf{x}_{k+1}=f(\mathbf{x}_k,\mathbf{u}_k)+\mathbf{w}_k,
\mathbf{z}_k=h(\mathbf{x}_k)+\mathbf{v}_k

एक्सटेंडेड कलमन फ़िल्टर (ईकेएफ) जैकोबियन के माध्यम से नॉन-लीनियर मॉडल को स्थानीय रूप से लीनियर बनाता है। जीएनएसएस स्थिति, लिडार स्कैन मिलान, कैमरा फ़ीचर पॉइंट्स और ज्ञात मार्कर पोज़ को ऑब्ज़र्वेशन \mathbf{z} के रूप में लिया जा सकता है। बड़े लूप या पुनरीक्षण के लिए, पिछले पोज़ और ऑब्ज़र्वेशन को एक फैक्टर ग्राफ में रखा जाता है और बाद में पूरी प्रक्रिया को पुनः अनुकूलित किया जाता है।

ROS 2 के लिए (यहाँ Jazzy मानक संदेश परिभाषाओं को मानते हुए), व्हील का nav_msgs/msg/Odometry, IMU का sensor_msgs/msg/Imu और TF odom → base_link रूपांतरण एक सामान्य समय आधार का उपयोग करना चाहिए। ये संदेश प्रकार ROS 1 वर्तनी nav_msgs/Odometry और sensor_msgs/Imu के अनुरूप हैं, लेकिन ROS 2 कार्यान्वयन विवरण, QoS और वितरण सेटिंग्स की अलग से जाँच की जानी चाहिए। robot_localization का EKF कार्यान्वयन के लिए एक उचित प्रारंभिक बिंदु है, लेकिन सहप्रसरण को शून्य करने या एक ही जानकारी को दो बार डालने से अनुमान असामान्य रूप से कठोर हो जाता है।

5. वर्तमान रोबोटों में इसका उपयोग कैसे किया जाता है

इनडोर स्वायत्त मोबाइल रोबोट (AMR) लगातार व्हील एनकोडर और एक IMU का उपयोग करते हैं, LiDAR या कैमरा मैप मिलान के माध्यम से बहाव को रीसेट करते हैं। स्वायत्त ड्राइविंग में, पहिए की गति, स्टीयरिंग कोण, आईएमयू, जीएनएसएस और लिडार को एकीकृत किया जाता है ताकि सुरंग में या किसी ऊंचे ढांचे के नीचे जीएनएसएस सिग्नल न मिलने पर भी अनुमान कुछ सेकंड से लेकर दसियों सेकंड तक सटीक बना रहे। कृषि रोबोटों में, कीचड़, गड्ढे और ढलान पहिए के फिसलने को बढ़ाते हैं, इसलिए आरटीके-जीएनएसएस, आईएमयू और उपकरण बल सेंसरों को संयोजित किया जाता है।

पानी के नीचे के रोबोट और अंतरिक्ष यान जीएनएसएस के बिना लंबे समय तक उड़ान भरते हैं। डेड रेकनिंग के सहप्रसरण को नियंत्रण में रखने के लिए डॉप्लर वेलोसिटी लॉग (डीवीएल), स्टार ट्रैकर या टेरेन मैचिंग को कम दर वाले निरपेक्ष अवलोकन के रूप में जोड़ा जाता है। महत्वपूर्ण यह है कि अनुमान को योजना और नियंत्रण टीम को इस बात के साथ भेजा जाए कि "हम इस पर कितने आश्वस्त हैं।"

6. कार्यान्वयन चेकलिस्ट

  1. सेंसर टाइमस्टैम्प को एक सामान्य घड़ी में परिवर्तित करें और विलंबता को मापें।

  2. base_link, odom और map निर्देशांक फ्रेम और उनके दाएँ हाथ के चिह्नों का आरेख बनाएँ।

  3. वास्तविक ड्राइविंग परीक्षणों के माध्यम से पहिए की त्रिज्या, ट्रेड और एनकोडर रिज़ॉल्यूशन की पहचान करें।

  4. सीधी रेखा में ड्राइविंग, स्थिर मोड़, आठ के आकार के घुमाव, ऊबड़-खाबड़ सतह और कम घर्षण वाली सतहों के लिए त्रुटि का अलग-अलग मूल्यांकन करें।

  5. फिसलन या गति में गिरावट का पता चलने पर सहप्रसरण को बढ़ाएँ और जब कोई सटीक अवलोकन प्राप्त हो तो उसे ठीक करें।

  6. समान इनपुट से समान अनुमान प्राप्त होने की पुष्टि करने के लिए लॉग को पुनः चलाएँ।

परीक्षण में, न केवल अंतिम बिंदु स्थिति त्रुटि बल्कि अभिवृत्ति त्रुटि, अधिकतम त्रुटि, 95वाँ प्रतिशतक और गति में गिरावट के दौरान बहाव दर को भी रिकॉर्ड करें। एक अनुमान जो आमतौर पर सटीक होता है लेकिन कभी-कभी बहुत गलत होता है, उसका उपयोग सुरक्षित पथ नियोजन के लिए नहीं किया जा सकता है।

सारांश

डेड रेकनिंग, रोबोट की गति का न्यूनतम विलंब के साथ अनुमान लगाने की मूलभूत तकनीक है। यह पहिए के विस्थापन और आईएमयू कोणीय दर को एकीकृत करती है, और जीएनएसएस, लिडार या कैमरे से प्राप्त सटीक प्रेक्षणों के साथ विचलन को कम करती है। अधिक सेंसर जोड़ने से पहले, गति मॉडल, टाइमस्टैम्प, निर्देशांक फ्रेम और सहप्रसरण को सही ढंग से प्राप्त करना ही सटीकता और दोहराव सुनिश्चित करता है।

अपनी समझ की जाँच करें
क्या पहिए का सटीक घूर्णन स्थिति त्रुटि को समाप्त करता है?

फिसलन और पहिए या माउंटिंग ज्यामिति त्रुटियाँ बनी रहती हैं।

सेंसर परिशुद्धता और गति-मॉडल वैधता अलग-अलग मुद्दे हैं। ## संदर्भ - [ROS 2 — tf2 प्रलेखन](https://docs.ros.org/en/rolling/Concepts/Intermediate/About-Tf2.html) - [ROS 2 — रोबोट_स्थानीकरण](https://github.com/cra-ros-pkg/robot_localization) - [रोबोट_स्थानीकरण — स्थिति अनुमान नोड्स और सेंसर पैरामीटर](https://docs.ros.org/en/noetic/api/robot_localization/html/state_estimation_nodes.html) - [REP-105 — मोबाइल प्लेटफॉर्म के लिए समन्वय फ्रेम](https://www.ros.org/reps/rep-0105.html) - [ROS 2 Jazzy सामान्य_इंटरफेस — मानक संदेश पैकेज](https://github.com/ros2/common_interfaces/tree/jazzy) - [ROS 2 Jazzy सेंसर_संदेश/IMU परिभाषा](https://github.com/ros2/common_interfaces/blob/jazzy/sensor_msgs/msg/Imu.msg) - [ROS 2 Jazzy नेविगेशन_संदेश/ओडोमेट्री परिभाषा](https://github.com/ros2/common_interfaces/blob/jazzy/nav_msgs/msg/Odometry.msg) - [टी. डी. बारफुट, रोबोटिक्स के लिए स्टेट एस्टिमेशन](https://asrl.utias.utoronto.ca/~tdb/bib/barfoot_ser17.pdf) - [आईईईई रोबोटिक्स एंड ऑटोमेशन सोसायटी](https://www.ieee-ras.org/)

Related reading

Explore another aspect of this fieldICP की विफलता के कारण: आरंभीकरण, आउटलायर्स और सममित ज्यामितिExplore another aspect of this fieldROS 2 में मैपिंग से लेकर नेविगेशन तक — जैज़ी और Nav2 की एक संक्षिप्त प्रक्रिया