मुख्य सामग्री पर जाएं

लक्ष्य निर्धारित करें

किसी विशिष्ट स्थान पर स्थित हीरो बॉट के लिए आदर्श प्रक्षेपण का पता लगाने के एक एल्गोरिदम बनाएं ताकि ट्राइबॉल को सफलतापूर्वक गोल में डाला जा सके। हीरो बॉट को कोड करने के लिए [ड्राइव फॉर] और [टर्न टू हेडिंग] ब्लॉक, जीपीएस सेंसर, आर्म मोटर और इनटेक मोटर का उपयोग करें ताकि वह हाइलाइट किए गए तीनों ट्राइबॉल को उठा सके, (600, 600) पर स्थित स्थिति तक ड्राइव कर सके, आदर्श दिशा में मुड़ सके और रेड एलायंस गोल में ट्राइबॉल लॉन्च कर सके। सबसे कम समय में जीतने वाला!

  • वीआरसी वर्चुअल स्किल्स - ओवर अंडर प्लेग्राउंड का चयन करें।
  • मैच से पहले की चेकलिस्ट का उपयोग करके रोबोट के लिए एक प्रारंभिक स्थान, एक प्रारंभिक दिशा और रोबोट प्रीलोड "नहीं" चयन करें।
  • रोबोट को किसी विशिष्ट स्थान पर ले जाने के लिए एक एल्गोरिदम बनाएं।
  • एक ऐसा एल्गोरिदम बनाएं जो रोबोट को एक विशिष्ट स्थान पर स्थित ट्राइबॉल को उठाने के लिए उस स्थान तक ले जाए।
  • ट्राइबॉल को गोल में डालने के लिए आदर्श प्रक्षेपण दिशा का पता लगाने के लिए एक एल्गोरिदम बनाएं।
  • रोबोट को इस तरह कोड करें कि वह आर्म मोटर को घुमाकर आर्म को पूरी तरह नीचे कर दे ताकि वह मैदान पर पड़ी ट्राइबॉल को उठा सके।
  • हीरो बॉट को कोड करें ताकि वह (0,1500) पर स्थित हाइलाइट किए गए ट्राइबॉल को उठाकर रेड एलायंस गोल में स्कोर करे 
    • इस एल्गोरिदम का उपयोग करके रोबोट को उस स्थिति तक ले जाएं जहां वह (0, 1500) पर स्थित हाइलाइट किए गए ट्राइबॉल को उठा सके।
    • रोबोट को इस तरह कोड करें कि वह इनटेक मोटर को घुमाकर ट्राइबॉल को उठा ले।
    • रोबोट को निर्देशांक (600, 600) तक ले जाने के लिए एल्गोरिदम का उपयोग करें।
    • हीरो बॉट द्वारा ट्राइबॉल को गोल में डालने के लिए आदर्श प्रक्षेपण दिशा का पता लगाने के लिए एल्गोरिदम का उपयोग करें। रोबोट को प्रक्षेपण की दिशा में घुमाएँ।
    • रोबोट को इस तरह कोड करें कि वह इंटेक मोटर को घुमाकर ट्राइबॉल को रेड एलायंस गोल की ओर लॉन्च करे।
  • हीरो बॉट को कोड करें ताकि वह (1600, 1600) पर स्थित हाइलाइट किए गए ट्राइबॉल को उठाए और उसे रेड एलायंस गोल में स्कोर करे।
  • हीरो बॉट को कोड करें ताकि वह (-125, 1075) पर स्थित हाइलाइट किए गए ट्राइबॉल को उठाकर रेड एलायंस गोल में स्कोर करे 
  • टाइमर का मान प्रिंट कंसोल पर प्रिंट करने के लिए [print] ब्लॉक का उपयोग करें।

सहायक सुझाव

  • ट्राइबॉल के लिए एक आदर्श प्रक्षेपण दिशा खोजने के लिए, उसके संभावित प्रक्षेप पथ की योजना बनाएं।
    • ट्राइबॉल के लिए एक ऐसा प्रक्षेप पथ निर्धारित करें जिससे वह गोलपोस्ट, गोल के फ्रेम पिप्स या गोल के अंदर मौजूद अन्य ट्राइबॉल्स से न टकराए।
    • लक्ष्य में निर्धारित प्रक्षेप पथ पर एक स्थान को लक्ष्य बिंदु के रूप में चुनें और लक्ष्य बिंदु के X और Y निर्देशांकों की पहचान करें।
    • रोबोट के निर्देशांक (x1,y1), लक्ष्य बिंदु के निर्देशांक (x2,y2) और atan फ़ंक्शन का उपयोग करके प्रक्षेपण दिशा ज्ञात करें।
      • इन दोनों बिंदुओं को जोड़ने वाली रेखा का कोण थीटा (θ) ज्ञात कीजिए 

        दो गणितीय व्यंजकों का आरेख। पहला व्यंजक इस प्रकार है: 'थीटा बराबर है atan((y2 - y1) / (x2 - x1))'। दूसरा व्यंजक कहता है कि 'ऋणात्मक पाई / 2 थीटा से कम है, जो पाई / 2' से कम है।

        ऊपर से नीचे की ओर बनाया गया गणितीय आरेख रोबोट को निर्देशांक (X1, Y1) पर दर्शाता है और एक रेखा निर्देशांक (X2, Y2) की ओर इंगित करती है। दूरी को चर d से और कोण को चर थीटा से दर्शाया गया है। बिंदुओं के बीच क्षैतिज दूरी को 'x2 - x1'के रूप में दर्शाया जाता है, और ऊर्ध्वाधर दूरी को 'y2 - y1' के रूप में दर्शाया जाता है।

    • कोण थीटा θ को रोबोट की दिशा में परिवर्तित करें।

      गणितीय व्यंजक के लिए स्यूडोकोड उदाहरण (प्रारंभिक दिशा: उत्तर):

      यदि X1, X2 के बराबर है:
      	यदि Y2 > Y1:
      		शीर्षक = 0
      	अन्यथा:
      		शीर्षक = 180
      अन्यथा:
      	यदि X2 > X1:
      		शीर्षक = 90 - atan((Y2 - Y1) / (X2 - X1))
      	अन्यथा:
      		शीर्षक = 270 - atan((Y2 - Y1) / (X2 - X1))

      ऊपर से नीचे की ओर दिया गया आरेख एक वृत्त के भीतर रोबोट को दर्शाता है, जिस पर वृत्त की'से 360 डिग्री को चिह्नित करने वाले लेबल लगे हुए हैं।

    • ऑपरेटर्स श्रेणी से फ़ंक्शन ब्लॉक का उपयोग करें और कोण थीटा θ की गणना करने के लिए atan फ़ंक्शन का चयन करें।

      खाली VEXcode फ़ंक्शन ब्लॉक जो 'atan of blank' पढ़ता है।

      • पाइथन कमांड से मिलान:

        math.atan( ) / math.pi * 180

वीआरसी ओवर अंडर प्लेग्राउंड में जीपीएस सेंसर के उपयोग के बारे में अधिक जानकारी के लिए, कृपया यहां करें