मुख्य कंटेंट तक स्किप करें

रोबोट लोकलाइजेशन MegaTag के साथ

यदि आपके Limelight का रोबोट-स्पेस पोज़ वेब यूआई में कॉन्फ़िगर किया गया है, और फ़ील्ड मैप वेब यूआई के माध्यम से अपलोड किया गया है, तो रोबोट का फ़ील्ड स्पेस में स्थान getBotpose() और "botpose" नेटवर्कटेबल्स ऐरे (x,y,z मीटर में, रोल, पिच, यॉ डिग्री में) के माध्यम से उपलब्ध होगा।

हमारा रोबोट लोकलाइजेशन एल्गोरिथ्म MegaTag कहलाता है। यदि एक से अधिक टैग दृश्य में हैं, तो यह व्यक्तिगत टैग अस्पष्टताओं और छवि में शोर के प्रति लचीला है। यदि सभी कीपॉइंट्स कोप्लानर हैं, तो अभी भी अस्पष्टता फ्लिपिंग का कुछ जोखिम है।

  • हरा सिलेंडर: प्रति-टैग बॉट पोज़
  • नीला सिलेंडर: पुराना बॉटपोज़
  • सफेद सिलेंडर: MegaTag बॉटपोज़

यहाँ स्पष्ट पोज़ अस्पष्टता पर ध्यान दें:

देखें कि कैसे नया बॉटपोज़ (सफेद सिलेंडर) पुराने बॉटपोज़ (नीले सिलेंडर) की तुलना में बेहद स्थिर है। आप tx और ty मूल्यों को भी देख सकते हैं।

यह केवल प्लानर टैग तक सीमित नहीं है। यह पूर्ण 3D में और किसी भी ओरिएंटेशन में किसी भी संख्या के टैग के लिए स्केल करता है। फ्लोर टैग और सीलिंग टैग पूरी तरह से काम करते हैं।

यहाँ एक आरेख है जो एक सरल प्लानर केस के साथ इसके काम करने के एक पहलू को दर्शाता है। वास्तविक परिणाम दर्शाए गए से बेहतर हैं, क्योंकि चित्रित MegaTag में एक बिंदु के बजाय तीन बिंदुओं पर महत्वपूर्ण त्रुटि लागू की गई है। जैसे-जैसे 3D संयुक्त MegaTag आकार और कीपॉइंट संख्या में बढ़ता है, इसकी स्थिरता बढ़ती जाती है।

megatag botpose उदाहरण:

WPILib का पोज़ एस्टीमेटर उपयोग करना

info

2024 में, अधिकांश WPILib इकोसिस्टम एक सिंगल-ओरिजिन कोऑर्डिनेट सिस्टम में परिवर्तित हो गया। 2023 में, आपका कोऑर्डिनेट सिस्टम ओरिजिन आपके एलायंस कलर के आधार पर बदलता था।

2024 और उसके बाद के लिए, आपके कोऑर्डिनेट सिस्टम का ओरिजिन हमेशा "नीला" ओरिजिन होना चाहिए। FRC टीमों को पोज़-संबंधित कार्यक्षमता के लिए हमेशा botpose_wpiblue का उपयोग करना चाहिए

 LimelightHelpers.PoseEstimate mt1 = LimelightHelpers.getBotPoseEstimate_wpiBlue("limelight");

if(mt1.tagCount == 1 && mt1.rawFiducials.length == 1)
{
if(mt1.rawFiducials[0].ambiguity > .7)
{
doRejectUpdate = true;
}
if(mt1.rawFiducials[0].distToCamera > 3)
{
doRejectUpdate = true;
}
}
if(mt1.tagCount == 0)
{
doRejectUpdate = true;
}

if(!doRejectUpdate)
{
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.5,.5,9999999));
m_poseEstimator.addVisionMeasurement(
mt1.pose,
mt1.timestampSeconds);
}

अपने Limelight का रोबोट-स्पेस पोज़ कॉन्फ़िगर करना

LL फॉरवर्ड, LL राइट, और LL अप रोबोट के फॉरवर्ड, राइट, और अप वेक्टर्स के साथ दूरियों को दर्शाते हैं यदि आप रोबोट को एम्बॉडी करें। (मीटर में)। LL रोल, पिच, और यॉ आपके Limelight का रोटेशन डिग्री में दर्शाते हैं। आप इन मूल्यों को संशोधित कर सकते हैं और 3D व्यूअर में Limelight के 3D मॉडल में परिवर्तन देख सकते हैं। Limelight कैमरा स्पेस में टारगेट पोज़ से फ़ील्ड स्पेस में रोबोट पोज़ में जाने के लिए आंतरिक रूप से इस कॉन्फ़िगरेशन का उपयोग करता है।