Contents — find the section you need
Change parameters and verify
Open the panel, then press Run to load Python. You can stop execution and reset parameters. Results are computed on this device. No Python installation is required.
Local execution steps below are optional for reproducing the source results; they are not required for the browser experiment.
The experiment controls are in English.
Explore footprint geometry in your browser
Change the rectangular body dimensions, corridor width, heading and lateral offset in the panel above. The diagram and signed gaps describe an exact rectangle between two infinite parallel walls. No ROS or local Python is required. The diagnostic workflow below remains separate from this geometry exercise.
The rectangle centre is the supplied reference point. World x runs along the corridor, world y points across it, and positive heading rotates counterclockwise from +x. Length L lies along body x; width B lies along body y. Walls lie at y=±W/2 and the centre at (0,e). For heading θ, the transverse span is S=L|sin θ|+B|cos θ|. The upper-wall gap is W/2−e−S/2, the lower-wall gap is W/2+e−S/2, and the minimum is W/2−|e|−S/2. Positive means separation; zero means contact; negative means overlap with a wall half-plane. These are signed transverse gaps, not general polygon-distance or costmap outputs. The numerical contact label uses a tolerance of 10⁻¹² m, not an operating margin.
The default 0.60 m width in a 0.80 m corridor gives 0.10 m on each side at zero heading and offset. Try a 30° heading, a 0.10 m offset, a 90° heading, or a wider corridor. Changing heading can move a corner into a wall even when the aligned width fits. A/B uses equal x/y scales and a common extent across both results; the table lists all four transformed corners in metres.
The dashed circle has radius R=√(L²+B²)/2. It bounds all orientations during a full rotation about the fixed rectangle centre. The minimum gap over that full rotation is W/2−|e|−R, calculated analytically rather than from sampled angles. This is not the gap for a particular requested turn, a planned swept path or a kinematically feasible manoeuvre. A 90° pose can fit while intermediate orientations overlap. The rectangle dimensions describe the entire assumed outline; there is no additional footprint padding.
All inputs are synthetic teaching choices. There are no map cells, obstacle observations, inflation costs, localization uncertainty, payload model, TF, planner, controller, velocity commands or actual Nav2 execution. A positive geometric gap does not establish passage feasibility or operating safety. The full-turn circle is an explanatory envelope, not a proposed robot_radius configuration. Nav2's tuning guide distinguishes robot footprint choices from inflation potential fields; the inflation parameters describe costs that this exercise does not compute. References reviewed 2026-09-20.
For supplied map/pose/goal checks, use the separate navigation Lab. Continue below to inspect why a real navigation stack may stop.
दिखाई देने वाला पथ यह गारंटी नहीं देता कि वर्तमान स्थिति से एक व्यवहार्य वेग कमांड मौजूद है। योजना और निष्पादन का निदान अलग-अलग करें। यह वर्कफ़्लो ROS 2/Nav2 Jazzy को लक्षित करता है और दस्तावेज़ों के अनुसार इसकी जाँच की गई है; यह हार्डवेयर ड्राइविंग रिपोर्ट नहीं है।
एक रुके हुए अंतराल को कैप्चर करें
वैश्विक पथ, स्थानीय/वैश्विक लागत मानचित्र, फ़ुटप्रिंट, TF, ओडोमेट्री, वेग कमांड, क्रिया परिणाम और लॉग एकत्र करें। RViz में डेटा को एकसमान समय और फ़्रेम पर ओवरले करें। स्टार्टअप डेटा की तुलना बाद के स्नैपशॉट से इस तरह न करें जैसे कि वे एक साथ लिए गए हों। rosbag2 रिप्ले इनपुट को स्थिर रखने में मदद करता है।
भौतिक ज्यामिति की जाँच करें
0.60 मीटर चौड़ा रोबोट 0.80 मीटर के गलियारे में केंद्रित और संरेखित है, जिसके प्रत्येक तरफ 0.10 मीटर की क्लीयरेंस है। यह स्थिर गणना स्थान निर्धारण त्रुटि, मानचित्रित दीवार की मोटाई, पेलोड और घूर्णन के दौरान कोने के फैलाव को शामिल नहीं करती है। आयत की आवश्यक चौड़ाई अभिविन्यास के साथ बदलती है।
फुटप्रिंट एक बहुभुज का वर्णन करता है; robot_radius एक वृत्ताकार सन्निकटन प्रदान करता है। कॉन्फ़िगर किए गए आउटलाइन की तुलना RViz से करें, मीटर, बेस_लिंक मूल और उभरे हुए सेंसर या भार की जाँच करें। Nav2 ट्यूनिंग गाइड आकार और लागत क्षेत्रों को कवर करता है। किसी स्टॉप को हटाने के लिए आउटलाइन को वास्तविक रोबोट से छोटा न करें।
लागत भौतिक दीवार के समान नहीं है
बाधा परतें अवलोकनों को शामिल करती हैं; इन्फ्लेशन बाधाओं के चारों ओर दूरी-निर्भर लागत फैलाता है। inflation_radius इसकी सीमा निर्धारित करता है, जबकि cost_scaling_factor घातीय क्षय को नियंत्रित करता है। अन्य स्थितियाँ स्थिर रहने पर, एक बड़ा स्केलिंग कारक तेजी से क्षय उत्पन्न करता है। इन्फ्लेशन लेयर पैरामीटर देखें।
प्रत्येक उच्च-लागत बैंड पूर्णतः निषिद्ध क्षेत्र नहीं है, और inflation_radius अकेले न्यूनतम बॉडी क्लीयरेंस की गारंटी नहीं देता है। टकराव जाँच, पदचिह्न और प्रत्येक योजनाकार/नियंत्रक द्वारा उपयोग की जाने वाली लागत का ध्यान रखें। यदि वैश्विक मानचित्र मार्ग की अनुमति देता है, लेकिन स्थानीय मानचित्र पुरानी बाधाओं को बनाए रखता है, तो पहले निकासी, अवलोकन सीमा और मान्य TF टाइमस्टैम्प की जाँच करें।
व्यवहार्य गति के लिए एक पथ जोड़ें
एक पथ यात्रा की दिशा निर्दिष्ट करता है। एक नियंत्रक को वर्तमान वेग और बाधाओं के अनुरूप गति उत्पन्न करनी चाहिए। तंग स्थानों में बड़े अभिविन्यास परिवर्तन, न्यूनतम मोड़ त्रिज्या वाले वाहन से अनुरोधित स्थिर मोड़, या त्वरण सीमाएँ संभावित गतियों को अव्यवहार्य बना सकती हैं।
नियंत्रक सर्वर प्रलेखन नियंत्रक, प्रगति-जाँचकर्ता और लक्ष्य-जाँचकर्ता के चयन का वर्णन करता है। प्रगति और आगमन अलग-अलग स्थितियाँ हैं। प्लगइन-विशिष्ट बाधाओं का निरीक्षण करने से पहले प्लगइन नाम और त्रुटियों को रिकॉर्ड करें।
पता लगाएँ कि कमांड कहाँ गायब हो जाती है
| अवलोकन | अगली जाँच |
|---|---|
| नियंत्रक एक मान्य कमांड उत्पन्न नहीं कर सकता | स्थानीय लागत मानचित्र, TF, गति सीमाएँ और संभावित प्रक्षेप पथ |
| नियंत्रक आउटपुट शून्य नहीं है, लेकिन अंतिम आउटपुट शून्य है | स्मूथर, टक्कर मॉनिटर, स्टॉप इनपुट और कमांड प्राथमिकता |
अंतिम आउटपुट शून्य नहीं है, लेकिन पहिए नहीं घूमते | विषय/प्रकार, चालक, सक्षम स्थिति और नियंत्रण मोड |
रोबोट चलता है, लेकिन तुरंत विफलता की सूचना देता है | ओडोमेट्री बनाम वास्तविक गति और प्रगति की स्थितियाँ |
यह न मानें कि /cmd_vel नाम का विषय अंतिम चरण है। कॉन्फ़िगरेशन में मध्यवर्ती विषय होते हैं और वे Twist या TwistStamped का उपयोग कर सकते हैं। ros2 topic info <actual-topic> --verbose के साथ वास्तविक प्रकाशक, ग्राहक और प्रकार की जाँच करें। स्टॉप फ़ंक्शन को अक्षम करने के बजाय, स्टॉप को ट्रिगर करने वाली स्थिति का निदान करें।
एक समय में एक परिवर्तन का मूल्यांकन करें
पैसेज, प्रारंभिक स्थिति, लक्ष्य, मानचित्र और इनपुट लॉग को ठीक करें। एक आइटम बदलें, फिर न्यूनतम क्लीयरेंस, स्टॉप काउंट, कमांड और विफलता के कारणों के साथ-साथ आगमन की तुलना करें। 0.10 मीटर अंकगणितीय उदाहरण सुरक्षित परिचालन क्लीयरेंस स्थापित नहीं कर सकता; वास्तविक आयामों, त्रुटियों और परिचालन स्थितियों के लिए अलग से मूल्यांकन की आवश्यकता है।
यदि स्टार्टअप ही अविश्वसनीय है, तो न्यूनतम Nav2 सेटअप पर वापस लौटें। एक स्थिर कॉन्फ़िगरेशन से मैपिंग विफलताओं और ड्राइवर विफलताओं के बीच अंतर करना आसान हो जाता है।
टिप्पणियाँ
पहले लॉग इन करें।
अभी कोई डेटा नहीं है।