आंतरराष्ट्रीय रोबोट स्पर्धा - नियम - नमुना रोबोट्स - Lego EV3 ट्रॅजेक्टरी रोबोट. आंतरराष्ट्रीय रोबोट स्पर्धा - नियम - नमुना रोबोट्स - लेगो EV3 ट्रॅजेक्टोरी रोबोट ड्राइव्ह लाइन ev3 PID कंट्रोलर

रोबोटिक्स ही एक नवीन मनोरंजक दिशा आहे, जी स्पष्टपणे, संगणक विज्ञान आणि तंत्रज्ञानातील शालेय अभ्यासक्रमांच्या चौकटीत विकसित केली जाईल. रोबोटिक्सची भरभराट मुख्यत्वे या वस्तुस्थितीमुळे आहे की ते आपल्याला या प्रश्नाचे उत्तर देण्यास अनुमती देते: "आम्ही खरोखर प्रोग्रामिंग का शिकतो?". याव्यतिरिक्त, रोबोटिक्सच्या कोर्समध्ये, आपण स्वयंचलित नियंत्रण सिद्धांताच्या प्राथमिक संकल्पनांशी परिचित होऊ शकता.

हे पृष्ठ लेखकाने विकसित केलेले प्रोग्रामिंग आणि अर्डिनो बोर्डसाठी सिम्युलेटर सादर करते. काही कारणास्तव वास्तविक हार्डवेअर वापरणे शक्य नसलेल्या प्रकरणांमध्ये ते मदत करू शकतात.

प्रशिक्षक HTML5 वैशिष्ट्ये वापरतात, त्यामुळे ते फक्त आधुनिक ब्राउझरमध्येच काम करतील (वापरणे उत्तम गुगल क्रोम किंवा मोझिला फायरफॉक्स).

बातम्या आता टेलिग्राम चॅनेलवर

27 नोव्हेंबर 2015
"जंतू" ट्रॅक सिम्युलेटर्समध्ये जोडला गेला आहे ( एम.व्ही. लाझारेव्ह, ओरेखोवो-झुएवो).

13 ऑक्टोबर 2015
आता LEGO रोबोटसाठी सिम्युलेटरमध्ये, तुम्ही तुमचे ट्रॅक (रोबोसाठी फील्ड) अपलोड करू शकता. ते कसे करायचे? पहा.
नवीन सिम्युलेटर जोडले - दोन, तीन, चार लाइट सेन्सर असलेले LEGO रोबोट.

रोबोट नियंत्रण भाषा

सिम्युलेटरमध्ये रोबोट्स नियंत्रित करण्यासाठी, एक सोपी प्रोग्रामिंग भाषा वापरली जाते, ज्याला कार्यरत शीर्षक प्राप्त झाले SiRoP (साधे रोबोट प्रोग्रामिंग).

लाइट सेन्सरसह रोबोट नियंत्रण

लाइट सेन्सर रोबोटला टेबलच्या पृष्ठभागावर नेव्हिगेट करण्यास अनुमती देतो, उदाहरणार्थ, पांढरे आणि काळ्या भागांमधील सीमेवर (काठावर) काळी रेषा). फोटोडिओड पृष्ठभागावर प्रकाश टाकतो, फोटोडिटेक्टर परावर्तित किरणांना "पकडतो" आणि त्यांची तीव्रता मोजतो.

या प्रकारातील सर्वात लोकप्रिय कार्य म्हणजे एका ओळीत फिरणे. सिम्युलेटरच्या मदतीने, तुम्ही विविध नियंत्रण कायद्यांचा अभ्यास करू शकता - रिले, आनुपातिक आणि अगदी पीआयडी नियंत्रण (प्रपोर्शनल-इंटिग्रल-डेरिव्हेटिव्ह).

लाइट सेन्सरसह रोबोटसाठी प्रोग्रामची उदाहरणे

तर 1 ( जर सेन्सर > 128 ( मोटर = 100 मोटर = 0 ) बाकी ( मोटर = 0 मोटर = 100 ) प्रतीक्षा करा(10) )

KP = 0.2 तर 1 ( u = kP*(सेन्सर-128) मोटर = 50 + u मोटर = 50 - u प्रतीक्षा (20) )

मुख्य ( तर 1 ( तर सेन्सर > 128 ( मोटर = 100 मोटर = 100 प्रतीक्षा (10) ) मागे () वळण () ) ) मागे ( मोटर = -100 मोटर = -100 प्रतीक्षा (260) ) वळण ( मोटर = -50 मोटर = ५० प्रतीक्षा (५०))

दोन प्रकाश सेन्सरसह रोबोट नियंत्रण

दोन लाइट सेन्सर रोबोटला चांगल्या प्रकारे नेव्हिगेट करण्यास आणि पातळ रेषेचे अनुसरण करण्यास अनुमती देतात. ते थोडे पुढे आणले जातात आणि बाजूंनी विभागले जातात. एकाच सेन्सरसह कार्यांसाठी, या सिम्युलेटरचा वापर करून, आपण विविध नियंत्रण कायद्यांचा अभ्यास करू शकता.

तीन लाइट सेन्सर असलेल्या रोबोटसाठी उदाहरण कार्यक्रम

चार प्रकाश सेन्सरसह रोबोट नियंत्रण

चार लाइट सेन्सर रोबोटला तीक्ष्ण वळणे अधिक चांगल्या प्रकारे ओळखू देतात. अंतर्गत सेन्सर दंड समायोजनासाठी वापरले जातात, त्यांच्यासाठी आनुपातिक नियंत्रण वापरले जाते. दोन बाह्य सेन्सर थोडे पुढे ठेवले आहेत आणि बाजूंना वेगळे केले आहेत. जेव्हा तीक्ष्ण वळण असते तेव्हा ते वापरले जातात. बाह्य जोडीच्या सेन्सर्सच्या रीडिंगनुसार नियंत्रणासाठी लाभ घटक आतील जोडीपेक्षा मोठा निवडला जातो (चित्र पहा. एल.यु. Ovsyanitskaya et al., लेगो माइंडस्टॉर्म्स EV3 रोबोटच्या हालचालीसाठी अल्गोरिदम आणि कार्यक्रम, एम.: "पेरो", 2015).

चार लाइट सेन्सर असलेल्या रोबोटसाठी उदाहरण कार्यक्रम

1 ( d0 = एन्कोडर > 128 d1 = एन्कोडर > 128 d2 = एन्कोडर > 128 d3 = एन्कोडर > 128 जर d1 आणि !d2 ( motor = 100 motor = 0 ) if! d1 & d2 ( motor = 0 motor = 100 असल्यास) d1 == d2 ( मोटर = 100 मोटर = 100 ) जर d0 आणि !d3 ( मोटर = 30 मोटर = 0 ) तर ! d0 आणि d3 ( मोटर = 0 मोटर = 30 ) प्रतीक्षा करा (10) )

K1 = 0.2 k2 = 0.4 तर 1 ( u1 = सेन्सर - सेन्सर u2 = सेन्सर - सेन्सर मोटर = 50+k1*u1+k2*u2 मोटर = 50-k1*u1-k2*u2 प्रतीक्षा (10) )

अंतर सेन्सर (सोनार) सह रोबोट नियंत्रित करणे

अंतर सेन्सर (सोनार) तुम्हाला रोबोट फिरत असताना जवळच्या अडथळ्याचे अंतर निर्धारित करण्यास अनुमती देतो. ते अल्ट्रासोनिक सिग्नल उत्सर्जित करते आणि परावर्तित सिग्नल प्राप्त करते. प्रसारित आणि प्राप्त झालेल्या सिग्नलमधील वेळ जितका जास्त असेल तितके जास्त अंतर.

डिस्टन्स सेन्सरचा वापर करून, ज्ञात आकाराच्या परंतु अज्ञात आकाराच्या चक्रव्यूहावर स्वयंचलितपणे नेव्हिगेट करण्यासाठी रोबोट प्रोग्राम केला जाऊ शकतो.

हे कार्य शास्त्रीय, वैचारिकदृष्ट्या सोपे आहे, ते बर्याच वेळा सोडवले जाऊ शकते आणि प्रत्येक वेळी आपल्याला काहीतरी नवीन सापडेल.

खालील समस्या सोडवण्यासाठी अनेक पध्दती आहेत. त्यापैकी एकाची निवड रोबोटच्या विशिष्ट डिझाइनवर, सेन्सर्सच्या संख्येवर, चाकांशी संबंधित त्यांचे स्थान आणि एकमेकांवर अवलंबून असते.

आमच्या उदाहरणात, मुख्य रोबोट एज्युकेटर ट्यूटोरियल मॉडेलवर आधारित तीन रोबोट उदाहरणे वेगळे केली जातील.

सुरुवातीला, आम्ही रोबोट एज्युकेटर शैक्षणिक रोबोटचे मूलभूत मॉडेल एकत्र करतो, यासाठी तुम्ही सूचना वापरू शकता सॉफ्टवेअरमाइंडस्टॉर्म्स EV3.

तसेच, उदाहरणांसाठी, आम्हाला EV3 लाईट-कलर सेन्सर्सची आवश्यकता आहे. हे लाइट सेन्सर्स, इतर कोणत्याहीसारखे नाहीत, सर्वोत्तम मार्गआमच्या कार्यासाठी योग्य, त्यांच्याबरोबर काम करताना, आम्हाला सभोवतालच्या प्रकाशाच्या तीव्रतेबद्दल काळजी करण्याची गरज नाही. या सेन्सरसाठी, प्रोग्राम्समध्ये आम्ही परावर्तित प्रकाश मोड वापरू, ज्यामध्ये सेन्सरच्या लाल प्रदीपनच्या परावर्तित प्रकाशाचे प्रमाण मोजले जाते. सेन्सर रीडिंगची मर्यादा अनुक्रमे 0 - 100 युनिट्स आहेत, "कोणतेही प्रतिबिंब नाही" आणि "एकूण प्रतिबिंब" साठी.

उदाहरणार्थ, आम्ही सम, हलक्या पार्श्वभूमीवर चित्रित केलेल्या काळ्या मार्गावर जाण्यासाठी प्रोग्रामच्या 3 उदाहरणांचे विश्लेषण करू:

पी रेग्युलेटरसह एक सेन्सर.

पीके रेग्युलेटरसह एक सेन्सर.

· दोन सेन्सर.

उदाहरण 1. पी रेग्युलेटरसह एक सेन्सर.

रचना

लाईट सेन्सर मॉडेलवर सोयीस्करपणे स्थित असलेल्या बीमवर माउंट केले आहे.


अल्गोरिदम

अल्गोरिदमचे ऑपरेशन या वस्तुस्थितीवर आधारित आहे की, ओव्हरलॅपच्या डिग्रीवर अवलंबून, काळ्या रेषेसह सेन्सर प्रदीपन बीम, सेन्सरद्वारे परत केलेले रीडिंग ग्रेडियंटमध्ये बदलते. काळ्या रेषेच्या सीमेवर रोबो प्रकाश सेन्सरची स्थिती ठेवतो. लाइट सेन्सरमधून इनपुट डेटा रूपांतरित करून, कंट्रोल सिस्टम रोबोटच्या वळणाच्या गतीचे मूल्य व्युत्पन्न करते.


वास्तविक प्रक्षेपणावर सेन्सर त्याच्या संपूर्ण ऑपरेटिंग रेंजमध्ये (0-100) मूल्ये व्युत्पन्न करतो, रोबोट ज्या मूल्यासाठी प्रयत्न करतो ते मूल्य 50 आहे. या प्रकरणात, रोटेशन फंक्शनमध्ये प्रसारित केलेली मूल्ये श्रेणीमध्ये तयार केली जातात. -50 - 50, परंतु ही मूल्ये तीव्र प्रक्षेपक रोटेशनसाठी पुरेसे नाहीत. म्हणून, श्रेणी दीड पटीने -75 - 75 पर्यंत वाढविली पाहिजे.

शेवटी, प्रोग्राममध्ये, कॅल्क्युलेटर फंक्शन एक साधा आनुपातिक नियंत्रक आहे. कोणाचे कार्य ( (a-50)*1.5 ) लाइट सेन्सरच्या ऑपरेटिंग रेंजमध्ये आलेखाच्या अनुषंगाने रोटेशन मूल्ये व्युत्पन्न करते:

अल्गोरिदमचे उदाहरण

उदाहरण 2. पीके कंट्रोलरसह एक सेन्सर.

हे उदाहरण त्याच डिझाइनवर संकलित केले आहे.

तुमच्या लक्षात आले असेल की मागील उदाहरणात, रोबोट खूप डोलत होता, ज्यामुळे तो पुरेसा वेग वाढू देत नव्हता. आता आपण ही परिस्थिती थोडी सुधारण्याचा प्रयत्न करू.

आमच्या आनुपातिक कंट्रोलरमध्ये, आम्ही एक साधा क्यूब कंट्रोलर देखील जोडतो, जो कंट्रोलर फंक्शनमध्ये एक ट्विस्ट जोडेल. हे प्रक्षेपणाच्या इच्छित सीमेजवळ रोबोटचे स्विंग कमी करेल, तसेच त्याच्यापासून खूप अंतरावर मजबूत धक्का देईल.

लेगोकन्स्ट्रक्शनमधील मूलभूत हालचालींपैकी एक म्हणजे काळ्या रेषेचे अनुसरण करणे.

wroboto.ru साइटवर सामान्य सिद्धांत आणि प्रोग्राम तयार करण्याच्या विशिष्ट उदाहरणांचे वर्णन केले आहे

EV3 वातावरणात आम्ही हे कसे अंमलात आणतो याचे मी वर्णन करेन, कारण फरक आहेत.

काळ्या आणि पांढर्या सीमेवर असलेल्या "आदर्श बिंदू" चे मूल्य रोबोटला माहित असणे आवश्यक आहे.

आकृतीमधील लाल बिंदूचे स्थान फक्त या स्थितीशी संबंधित आहे.

आदर्श गणना पर्याय म्हणजे काळा आणि पांढरे मूल्य मोजणे आणि अंकगणित सरासरी घेणे.

तुम्ही ते स्वहस्ते करू शकता. परंतु बाधक त्वरित दृश्यमान आहेत: अगदी थोड्या काळासाठी, प्रदीपन बदलू शकते आणि गणना केलेले मूल्य चुकीचे ठरेल.

त्यामुळे तुम्ही रोबोटला ते करायला लावू शकता.

प्रयोगांदरम्यान, आम्हाला आढळले की काळा आणि पांढरा दोन्ही मोजणे आवश्यक नाही. फक्त पांढरा मोजता येतो. आणि आदर्श बिंदूचे मूल्य 1.2 (1.15) ने भागलेले पांढरे मूल्य म्हणून मोजले जाते, काळ्या रेषेच्या रुंदीवर आणि रोबोटच्या गतीवर अवलंबून असते.

गणना केलेले मूल्य नंतर ऍक्सेस करण्यासाठी व्हेरिएबलमध्ये लिहिलेले असणे आवश्यक आहे.

"आदर्श बिंदू" ची गणना

चळवळीमध्ये गुंतलेले पुढील पॅरामीटर म्हणजे वळण दर. तो जितका मोठा असेल तितका रोबो प्रदीपनातील बदलांवर तीव्र प्रतिक्रिया देतो. पण खूप महान महत्वरोबोट डळमळीत होईल. मूल्य प्रत्येक रोबोट डिझाइनसाठी प्रायोगिकरित्या वैयक्तिकरित्या निवडले जाते.

शेवटचा पॅरामीटर म्हणजे मोटर्सची बेस पॉवर. त्याचा रोबोच्या वेगावर परिणाम होतो. हालचालींच्या वेगात वाढ झाल्यामुळे रोबोच्या प्रदीपनातील बदलाच्या प्रतिसादाच्या वेळेत वाढ होते, ज्यामुळे प्रक्षेपणातून निघून जाऊ शकते. मूल्य देखील प्रायोगिकरित्या निवडले आहे.

सोयीसाठी, हे पॅरामीटर्स व्हेरिएबल्समध्ये देखील लिहिले जाऊ शकतात.

स्टीयरिंग गुणोत्तर आणि बेस पॉवर

काळ्या रेषेच्या बाजूने जाण्याचे तर्क खालीलप्रमाणे आहे: आदर्श बिंदूपासून विचलन मोजले जाते. ते जितके मोठे असेल तितके रोबोटने त्याच्याकडे परत जाण्याचा प्रयत्न केला पाहिजे.

हे करण्यासाठी, आम्ही दोन संख्यांची गणना करतो - प्रत्येक मोटर्सचे पॉवर मूल्य बी आणि सी स्वतंत्रपणे.

सूत्र स्वरूपात, हे असे दिसते:

जेथे Isens हे प्रकाश सेन्सर रीडिंगचे मूल्य आहे.

शेवटी, EV3 मध्ये अंमलबजावणी. वेगळ्या ब्लॉकच्या स्वरूपात जारी करणे सर्वात सोयीचे आहे.

अल्गोरिदमची अंमलबजावणी

हा अल्गोरिदम आहे जो मध्यम श्रेणीच्या WRO 2015 साठी रोबोटमध्ये लागू करण्यात आला होता

तपशील लेखक: कोनोवालोव्ह इगोर आनुपातिक नियंत्रक ही एक सुधारणा आहे. रिलेचा मुख्य तोटा असा आहे की सेन्सरच्या सामान्य मूल्यापेक्षा वर्तमान मूल्ये किती भिन्न आहेत याची काळजी घेत नाही. यात फक्त दोन अवस्था आहेत - एकतर सेन्सर मूल्ये सामान्य मूल्यापेक्षा कमी असल्यास विशिष्ट स्थिर संख्येने वाढवण्याचा प्रयत्न करा किंवा ते वाढवा. यामुळे, स्थिर मोठेपणासह दोलन होतात, जे फारच अकार्यक्षम आहे.
वर्तमान वाचन सामान्य पासून किती "दूर" आहेत हे निर्धारित करणे आणि यावर अवलंबून मोठेपणा बदलणे अधिक तर्कसंगत आहे. हे अधिक स्पष्ट करण्यासाठी, एक उदाहरण पाहू. उदाहरण मागील लेखाप्रमाणेच आहे: लेगो माइंडस्टॉर्म्स EV3 मधील रोबोट एका रंगीत सेन्सरचा वापर करून काळ्या रेषेने प्रकाश मोडमध्ये चालतो.

रोबोट पांढऱ्या आणि काळ्या दरम्यानच्या सीमेवर चालवण्याचा प्रयत्न करतो आणि तेथे सेन्सर अंदाजे 50% प्रकाश दाखवतो. आणि ते सामान्य स्थितीपासून जितके दूर असेल तितकेच रोबोट 50% वर परत येण्यासाठी अधिक प्रयत्न करेल.
प्रोग्राम लिहिण्यासाठी, आम्ही "त्रुटी", "नियंत्रण क्रिया" या शब्दांचा वापर करू. त्रुटी - सेन्सरचे वर्तमान वाचन आणि सामान्य मधील फरक. आमच्या बाबतीत, जर आता रोबोट 20% प्रदीपन पाहत असेल, तर त्रुटी 20-50= -30% आहे. त्रुटीपासून मुक्त होण्यासाठी रोबोटने कोणत्या दिशेने वळले पाहिजे हे त्रुटी चिन्ह सूचित करते. आता आपल्याला मोटर्सना सांगण्याची गरज आहे की रोबोटला कोणत्या मार्गाने वळवावे, कोणत्या वेगाने आणि किती तीव्रतेने. मोटर्सवर नियंत्रण प्रभाव पाडणे आवश्यक आहे, याचा अर्थ असा आहे की ते त्याच्या सामान्य स्थितीत किती अचानक परतले पाहिजे. नियंत्रण क्रिया (UP) ची गणना समानुपातिकता घटक (k) ने गुणाकार केलेली त्रुटी (त्रुटी) म्हणून केली जाते. हा घटक नियंत्रण क्रियेवरील त्रुटीचा प्रभाव वाढवण्यासाठी किंवा कमी करण्यासाठी वापरला जातो. नियंत्रण क्रिया लागू केली जाते सुकाणू, जेथे रोबोटचा सरासरी वेग सेट केला जातो.
आस्पेक्ट रेशो कसा सेट करायचा? प्रायोगिकरित्या मूल्ये निवडा, प्रक्षेपण मार्गासाठी ते असू शकते, उदाहरणार्थ, 0.2 ते 1.5 पर्यंत, रोबोटच्या गती आणि डिझाइनवर अवलंबून. जर गुणांक खूप मोठा असेल, तर रोबोट जोरदारपणे चालेल, जर तो लहान असेल, तर तो सहजतेने चालवेल, परंतु वळणावर काही ठिकाणी, अपुर्‍या नियंत्रण इनपुटमुळे बाहेर पडेल. चला प्रोग्रामच्या दोन आवृत्त्या लिहू - व्हेरिएबल्ससह (ज्यांनी आधीच त्यांचा अभ्यास केला आहे) आणि त्याशिवाय.


परंतु हे नियामक प्रमाणात्मक आणि अविभाज्य घटक सादर करून देखील मजबूत केले जाऊ शकते, त्याचे वर्णन पुढील लेखांमध्ये असेल. लवकरच भेटू!

आनुपातिक नियंत्रक हे असे उपकरण आहे जे एखाद्या वस्तूवर दिलेल्या स्थिती x0(t) पासून त्याच्या रेखीय विचलन e(t) च्या प्रमाणात नियंत्रण क्रिया u(t) करते;

e(t)=x0(t)-x(t), जेथे x(t) ही अवस्था आहे हा क्षणवेळ

u(t)=ke(t), जेथे k हा प्रवर्धक घटक आहे.
म्हणजेच, सेट कोर्सपासून रोबोट जितका पुढे विचलित होईल, मोटर्सने अधिक सक्रियपणे कार्य केले पाहिजे, ते समतल केले पाहिजे.

P कंट्रोलर वापरून एका लाईट सेन्सरसह एका ओळीत चालणे

पी-रेग्युलेटरवर काळ्या आणि पांढऱ्याच्या सीमेवरील हालचाली देखील तयार केल्या जाऊ शकतात. जरी बाह्यतः हे कार्य केवळ रिले कंट्रोलरच्या मदतीने सोडवले गेले आहे असे दिसते, कारण सिस्टममध्ये मानवी डोळ्यांना फक्त दोन अवस्था दिसतात: काळा आणि पांढरा. परंतु रोबोट सर्वकाही वेगळ्या पद्धतीने पाहतो, कारण या रंगांमध्ये कोणतीही तीक्ष्ण सीमा नसते. आपण असे म्हणू शकतो की तो अदूरदर्शी आहे आणि तो राखाडी रंगाच्या छटांचे ग्रेडियंट संक्रमण पाहतो.

हेच पी-रेग्युलेटर तयार करण्यात मदत करेल.
प्रकाश सेन्सरचे वाचन म्हणून कामाची स्थिती परिभाषित करताना, आम्ही खालील कायद्यानुसार मोटर्सवर आनुपातिक नियंत्रण प्रभाव कसा प्रदान करायचा ते शिकू:
e=s1-ग्रे, जेथे s1 हे वर्तमान सेन्सर वाचन आहे आणि राखाडी हे सेट मूल्य आहे.

गुणांक k (या उदाहरणातील 2 च्या बरोबरीचे) पुरेसे लहान (1 आणि 3 दरम्यान) असणे आवश्यक आहे. असा कंट्रोलर फक्त लहान विक्षेपण कोनांसाठी प्रभावीपणे कार्य करतो, म्हणून रोबोटला हालचालीच्या दिशेने ठेवले पाहिजे जेणेकरून सेन्सर चालू असेल. डावी बाजूकाळ्या ओळीतून. पी-रेग्युलेटरवरील ओळीच्या बाजूने हालचाल गुळगुळीत आहे हे पाहणे सोपे आहे. आणि कामाच्या काही भागात ते जवळजवळ सरळ रेषेत हलते किंवा रेषेच्या वाकांची अचूक पुनरावृत्ती करते.

सेन्सर कॅलिब्रेशन

सूत्रात वापरलेली संख्या 48 पाहू. काळ्या आणि पांढऱ्यावर प्रकाश सेन्सरच्या वाचनाची ही अंकगणितीय सरासरी आहे, उदाहरणार्थ (40+56)/2=48. तथापि, सेन्सर्सचे वाचन अनेकदा विविध कारणांमुळे बदलते: भिन्न पृष्ठभाग, खोलीतील सामान्य प्रकाशात बदल, संरचनेत थोडासा बदल इ. म्हणून, पांढऱ्यावर आणि काळ्यावर प्रकाश सेन्सरचे रीडिंग ठरवून आम्ही रोबोटला मॅन्युअली कॅलिब्रेट करू.

पी कंट्रोलर वापरून दोन लाईट सेन्सरसह लाइन ट्रॅकिंग
एका लाइट सेन्सरसह छेदनबिंदूमधून योग्यरित्या वाहन चालविणे खूप कठीण आहे. जर तुम्हाला हे पुरेशा वेगाने करायचे असेल, तर तुम्हाला किमान दोन सेन्सर्सची गरज आहे ज्यामध्ये किमान दोन ओळींच्या रुंदीच्या अंतरावर (किंवा त्याहून अधिक) अंतर असेल.
हलवताना सेन्सरच्या चार अवस्था असतात:

  • दोन्ही पांढरे - सरळ पुढे;
  • डावीकडे (s1) काळा नाही, उजवीकडे (s2) पांढऱ्यावर - डावीकडे हलवा;
  • पांढऱ्यावर डावीकडे, काळ्यावर उजवीकडे - उजवीकडे हालचाल;
  • दोन्ही काळ्या वर - सरळ जा.
ते. सेन्सर रीडिंग समान असल्यास (दोन्ही पांढरे किंवा दोन्ही काळे), रोबोट सरळ जातो. रोबोट सुरू करण्यापूर्वी, आम्ही दोन्ही सेन्सर स्वयं-कॅलिब्रेट करू. मग पी-कंट्रोलरच्या बरोबरीने हालचालीचे अल्गोरिदम असे दिसेल:

रेषेची वक्रता, रोबोटची कुशलता आणि मैदानावरील काळ्या आणि पांढर्‍यामधील फरकावर अवलंबून k गुणांक बऱ्यापैकी विस्तृत श्रेणीत (1 ते 20 किंवा त्याहून अधिक) बदलू शकतो.
महत्वाची अट. ऑटोकॅलिब्रेशन एकाच-रंगाच्या पृष्ठभागावर आणि शक्यतो मार्गाचा सर्वात मोठा भाग व्यापलेल्या रोषणाईवर केले पाहिजे. उदाहरणार्थ, जर रोबोट पांढर्‍या फील्डवर काळ्या रेषेने फिरत असेल तर पांढऱ्या शेतावर कॅलिब्रेट करणे आवश्यक आहे. त्या. सुरुवातीला रोबोटची स्थिती अशी असावी:


आणि दुसरी टीप. असे सेन्सर आहेत ज्यांचे वाचन 10-20% ने भिन्न आहे. त्यांना मोठ्या गुणांकासह रेग्युलेटरसह जोडू नये असा सल्ला दिला जातो, कारण संपूर्ण प्रकाशात तीव्र बदलासह, एकसमान पांढर्‍या फील्डवर देखील, विचलन भिन्न असू शकतात, ज्यामुळे अनपेक्षित परिणाम होतील.