विषयसूची:

अपना खुद का टर्टलबोट रोबोट बनाएं!: 7 कदम
अपना खुद का टर्टलबोट रोबोट बनाएं!: 7 कदम

वीडियो: अपना खुद का टर्टलबोट रोबोट बनाएं!: 7 कदम

वीडियो: अपना खुद का टर्टलबोट रोबोट बनाएं!: 7 कदम
वीडियो: how to make robot at home 🇮🇳 #rc #diy #rc hobby#robot #technology #youtube shorts#viral #shorts 2024, जुलाई
Anonim
अपना खुद का टर्टलबोट रोबोट बनाएं!
अपना खुद का टर्टलबोट रोबोट बनाएं!
अपना खुद का टर्टलबोट रोबोट बनाएं!
अपना खुद का टर्टलबोट रोबोट बनाएं!
अपना खुद का टर्टलबोट रोबोट बनाएं!
अपना खुद का टर्टलबोट रोबोट बनाएं!

संपादित करें:

सॉफ्टवेयर और नियंत्रण से संबंधित अधिक जानकारी इस लिंक पर उपलब्ध है:

hackaday.io/project/167074-build-your-own-turtlebot-3-backbone

कोड का सीधा लिंक है:

github.com/MattMgn/foxbot_core

यह परियोजना क्यों?

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

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

आप इस परियोजना में क्या खोजेंगे?

आप यह पता लगाने वाले हैं कि पूर्ण संगतता की गारंटी के लिए कौन से आवश्यक यांत्रिक और इलेक्ट्रॉनिक भागों को मूल बॉट से रखा जाना चाहिए।

पूरी निर्माण प्रक्रिया विस्तृत होगी: 3D भागों की छपाई, असेंबलिंग और कई घटकों से जाना, सोल्डरिंग और इलेक्ट्रॉनिक्स को एकीकृत करना और अंत में Arduino पर कोड संकलन करना। यह निर्देश आपको ROS से परिचित कराने के लिए 'हैलो वर्ल्ड' उदाहरण पर समाप्त होगा। अगर कुछ अस्पष्ट लगता है, तो बेझिझक सवाल पूछें!

आपूर्ति

इलेक्ट्रॉनिक्स:

ROS चलाने के लिए 1 x सिंगल बोर्ड कंप्यूटर, उदाहरण के लिए रास्पबेरी पाई या जेटसन नैनो हो सकता है

1 x Arduino DUE, आप UNO या MEGA का भी उपयोग कर सकते हैं

1 x प्रोटो-बोर्ड जो यहां उपलब्ध Arduino DUE पिन-आउट फिट बैठता है

एन्कोडर के साथ 2 x 12 वी डीसी मोटर (100 आरपीएम विकल्प)

1 x L298N मोटर चालक

2 एक्स 5 वी नियामक

1 x बैटरी (उदाहरण के लिए 3S/4S LiPo बैटरी)

2 एक्स चालू/बंद स्विच

2 एक्स एलईडी

2 x 470kOhm रेसिस्टर्स

3 x 4 पिन जेएसटी कनेक्टर

1 x USB केबल (SBC और Arduino के बीच कम से कम एक)

सेंसर:

1 एक्स वर्तमान सेंसर (वैकल्पिक)

स्वतंत्रता IMU की 1 x 9 डिग्री (वैकल्पिक)

1 एक्स लिडर (वैकल्पिक)

चेसिस:

16 x टर्टलबोट मॉड्यूलर प्लेट्स (जो 3डी प्रिंटेड भी हो सकती हैं)

2 एक्स व्हील्स 65 मिमी व्यास (6 मिमी चौड़ाई विकल्प)

4 x नायलॉन स्पेसर 30 मिमी (वैकल्पिक)

20 x M3 इंसर्ट (वैकल्पिक)

अन्य:

तारों

M2.5 और M3 स्क्रू और इंसर्ट

3D प्रिंटर या कोई ऐसा व्यक्ति जो आपके लिए पुर्जे प्रिंट कर सके

एक सेट के साथ एक हैंड ड्रिल इस तरह की एक ड्रिल बिट

चरण 1: विवरण

विवरण
विवरण
विवरण
विवरण

यह रोबोट एक साधारण डिफरेंशियल ड्राइव है जो सीधे अपनी मोटर पर लगे 2 पहियों और एक रोलर कॉस्टर का उपयोग करता है जिसे रोबोट को गिरने से रोकने के लिए पीछे की तरफ रखा जाता है। रोबोट को दो परतों में बांटा गया है:

निचला स्तर: प्रणोदन समूह (बैटरी, मोटर नियंत्रक और मोटर्स), और 'निम्न स्तर' इलेक्ट्रॉनिक्स के साथ: Arduino माइक्रोकंट्रोलर, वोल्टेज नियामक, स्विच …

ऊपरी परत: 'उच्च स्तरीय' इलेक्ट्रॉनिक अर्थात् सिंगल बोर्ड कंप्यूटर और LIDAR. के साथ

संरचना की मजबूती सुनिश्चित करने के लिए उन परतों को मुद्रित भागों और शिकंजा से जोड़ा जाता है।

इलेक्ट्रॉनिक योजनाबद्ध

योजनाबद्ध थोड़ा गड़बड़ दिखाई दे सकता है। यह एक योजनाबद्ध आरेखण है और यह सभी तारों, कनेक्टर्स और प्रोटो-बोर्ड का प्रतिनिधित्व नहीं करता है, लेकिन इसे निम्नानुसार पढ़ा जा सकता है:

3000mAh क्षमता वाली 3S Litihum आयन पॉलिमर बैटरी पहले सर्किट को पावर देती है, यह मोटर कंट्रोलर बोर्ड (L298N) और मोटर एनकोडर और Arduino के लिए पहला 5V रेगुलेटर दोनों को पावर देती है। यह सर्किट एक एलईडी के साथ एक स्विच के माध्यम से सक्षम होता है जो इसकी चालू/बंद स्थिति को इंगित करता है।

वही बैटरी एक दूसरे सर्किट को पावर देती है, सिंगल बोर्ड कंप्यूटर को पावर देने के लिए इनपुट वोल्टेज को 5V में बदल दिया जाता है। यहां भी, सर्किट को एक स्विच और एक एलईडी के माध्यम से सक्षम किया जाता है।

LIDAR या कैमरा जैसे अतिरिक्त सेंसर को USB या CSI पोर्ट के माध्यम से सीधे रास्पबेरी पाई पर जोड़ा जा सकता है।

यांत्रिक रूपरेखा

रोबोट फ्रेम 16 समान भागों से बना है जो 2 वर्ग परतों (28 सेमी चौड़ाई) का गठन करते हैं। कई छेद अतिरिक्त भागों को माउंट करने की अनुमति देते हैं जहां आपको इसकी आवश्यकता होती है और एक पूर्ण मॉड्यूलर डिज़ाइन प्रदान करते हैं। इस परियोजना के लिए, मैंने मूल टर्टलबॉट 3 प्लेट प्राप्त करने का निर्णय लिया, लेकिन आप उन्हें 3 डी प्रिंट भी कर सकते हैं क्योंकि उनका डिज़ाइन खुला स्रोत है।

चरण 2: मोटर ब्लॉक असेंबली

मोटर ब्लॉक असेंबली
मोटर ब्लॉक असेंबली
मोटर ब्लॉक असेंबली
मोटर ब्लॉक असेंबली
मोटर ब्लॉक असेंबली
मोटर ब्लॉक असेंबली

मोटर तैयारी

पहला कदम मोटर के घूमने पर कंपन और शोर को रोकने के लिए प्रत्येक मोटर के चारों ओर 1 मिमी मोटी फोम टेप जोड़ना है।

मुद्रित भागों

मोटर धारक का परिणाम दो भागों में होता है जो मोटर को वाइस की तरह पकड़ते हैं। होल्डर में मोटर को टाइट करने के लिए 4 स्क्रू हासिल किए।

प्रत्येक धारक कई छिद्रों से बना होता है जो संरचना पर लगाए जाने वाले M3 आवेषण को होस्ट करते हैं। वास्तव में आवश्यकता से अधिक छेद हैं, अतिरिक्त छेद को अंततः अतिरिक्त भाग को माउंट करने के लिए उपयोग किया जा सकता है।

3D प्रिंटर सेटिंग्स: सभी भागों को निम्नलिखित मापदंडों के साथ मुद्रित किया जाता है:

  • 0.4 मिमी व्यास नोजल
  • 15% सामग्री infill
  • 0.2 मिमी ऊंचाई परत

पहिया

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

फिक्सेशन

जब आपने एक मोटर ब्लॉक के साथ किया है, तो पिछले ऑपरेशन दोहराएं और फिर उन्हें एम 3 स्क्रू के साथ परत में ठीक करें।

चरण 3: स्विच और केबल तैयार करना

स्विच और केबल तैयार करना
स्विच और केबल तैयार करना
स्विच और केबल तैयार करना
स्विच और केबल तैयार करना
स्विच और केबल तैयार करना
स्विच और केबल तैयार करना

मोटर केबल तैयारी

आम तौर पर मोटर-एनकोडर एक केबल के साथ आता है जिसमें एक तरफ एक 6pin कनेक्टर होता है जो एन्कोडर पीसीबी के पीछे और दूसरी तरफ नग्न तारों को जोड़ता है।

आपके पास उन्हें सीधे अपने प्रोटो-बोर्ड या यहां तक कि अपने Arduino पर मिलाप करने की संभावना है, लेकिन मैं आपको इसके बजाय महिला पिन हेडर और JST-XH कनेक्टर का उपयोग करने की सलाह देता हूं। इस प्रकार आप उन्हें अपने प्रोटो-बोर्ड पर प्लग/अनप्लग कर सकते हैं और अपनी असेंबली को आसान बना सकते हैं।

टिप्स: आप अपने तारों के चारों ओर विस्तार योग्य स्लीविंग ब्रैड और कनेक्टर्स के पास सिकुड़ ट्यूब के टुकड़े जोड़ सकते हैं, ऐसा करने से आपको एक 'क्लीन' केबल मिलेगी।

स्विच और एलईडी

दो पावर सर्किट को सक्षम करने के लिए, 2 एलईडी और स्विच केबल तैयार करें: पहले एक एलईडी पिन पर एक 470kOhm रोकनेवाला मिलाप करें, फिर एक स्विच पिन पर एलईडी को मिलाएं। यहां भी, आप रोकनेवाला को अंदर छिपाने के लिए सिकुड़ ट्यूब के एक टुकड़े का उपयोग कर सकते हैं। एलईडी को सही दिशा में मिलाप करने के लिए सावधान रहें! दो स्विच/एलईडी केबल प्राप्त करने के लिए इस ऑपरेशन को दोहराएं।

सभा

पहले से बने केबलों को संबंधित 3 डी प्रिंटेड हिस्से पर इकट्ठा करें। स्विच को बनाए रखने के लिए एक नट का उपयोग करें, एल ई डी को गोंद की आवश्यकता नहीं होती है, बस इसे छेद में फिट करने के लिए पर्याप्त बल दें।

चरण 4: इलेक्ट्रॉनिक बोर्ड वायरिंग

इलेक्ट्रॉनिक बोर्ड वायरिंग
इलेक्ट्रॉनिक बोर्ड वायरिंग
इलेक्ट्रॉनिक बोर्ड वायरिंग
इलेक्ट्रॉनिक बोर्ड वायरिंग
इलेक्ट्रॉनिक बोर्ड वायरिंग
इलेक्ट्रॉनिक बोर्ड वायरिंग

बोर्ड लेआउट

तारों की संख्या को कम करने के लिए Arduino बोर्ड लेआउट में एक प्रोटो-बोर्ड फिटिंग का उपयोग किया जाता है। प्रोटो-बोर्ड के शीर्ष पर, L298N को ड्यूपॉन्ट महिला हेडर (ड्यूपॉन्ट 'Arduino लाइक' हेडर हैं) के साथ रखा गया है।

L298N तैयारी

मूल रूप से, L298N बोर्ड संबंधित पुरुष ड्यूपॉन्ट हेडर के साथ नहीं आता है, आपको बोर्ड के नीचे एक 9 पिन पंक्ति जोड़ने की आवश्यकता है। जैसा कि आप चित्र में देख सकते हैं, आपको मौजूदा छेदों के समानांतर में 1 मिमी व्यास वाली ड्रिल बिट के साथ 9 छेदों को महसूस करने की आवश्यकता है। फिर 2 पंक्तियों के संबंधित पिनों को सोल्डरिंग सामग्री और छोटे तारों से लिंक करें।

L298N पिन-आउट

L298N गति और दिशा नियंत्रण की अनुमति देने वाले 2 चैनलों से बना है:

2 डिजिटल आउटपुट के माध्यम से दिशा, जिसे पहले चैनल के लिए IN1, IN2 और दूसरे के लिए IN3 और IN4 कहा जाता है

1 डिजिटल आउटपुट के माध्यम से गति, जिसे पहले चैनल के लिए ENA और दूसरे के लिए ENB कहा जाता है

मैंने Arduino के साथ निम्नलिखित पिन-आउट चुना:

बायां मोटर: पिन 3 पर IN1, पिन 4 पर IN2, पिन 2 पर ENA

दायां मोटर: पिन 5 पर IN3, पिन 6 पर IN4, पिन 7 पर ENB

5वी नियामक

भले ही l298N सामान्य रूप से 5V प्रदान करने में सक्षम हो, फिर भी मैं एक छोटा नियामक जोड़ता हूं। यह Arduino को VIN पोर्ट और मोटर्स पर 2 एनकोडर के माध्यम से पावर देता है। आप सीधे अंतर्निहित L298N 5V नियामक का उपयोग करके इस चरण को छोड़ सकते हैं।

जेएसटी कनेक्टर और एनकोडर पिन-आउट

4 पिन महिला JST-XH कनेक्टर एडेप्टर का उपयोग करें, प्रत्येक कनेक्टर को फिर से जोड़ा जाता है:

  • नियामक से 5V
  • एक मैदान
  • दो डिजिटल इनपुट पोर्ट (उदाहरण के लिए: 34 और 38 दाएं एन्कोडर के लिए और 26 और 30 बाएं एक के लिए)

अतिरिक्त I2C

जैसा कि आपने देखा होगा, प्रोटो-बोर्ड पर एक अतिरिक्त 4pin JST कनेक्टर है। इसका उपयोग I2C डिवाइस को IMU की तरह जोड़ने के लिए किया जाता है, आप ऐसा ही कर सकते हैं और अपना पोर्ट भी जोड़ सकते हैं।

चरण 5: मोटर समूह और अरुडिनो नीचे की परत पर

नीचे की परत पर मोटर समूह और अरुडिनो
नीचे की परत पर मोटर समूह और अरुडिनो
नीचे की परत पर मोटर समूह और अरुडिनो
नीचे की परत पर मोटर समूह और अरुडिनो
नीचे की परत पर मोटर समूह और अरुडिनो
नीचे की परत पर मोटर समूह और अरुडिनो

मोटर ब्लॉक निर्धारण

एक बार जब नीचे की परत 8 टर्टलबोट की प्लेटों के साथ इकट्ठी हो जाती है, तो मोटर ब्लॉकों को बनाए रखने के लिए सीधे आवेषण में 4 एम 3 स्क्रू का उपयोग करें। फिर आप मोटर बिजली के तारों को L298N आउटपुट और पहले से बने केबलों को प्रोटो-बोर्ड JST कनेक्टर्स में प्लग कर सकते हैं।

ऊर्जा वितरण

बिजली वितरण बस एक बाधा टर्मिनल ब्लॉक के साथ महसूस किया जाता है। बैरियर के एक तरफ, LiPo बैटरी से कनेक्ट करने के लिए XT60 फीमेल प्लग वाली एक केबल खराब कर दी जाती है। दूसरी तरफ, हमारे दो एलईडी/स्विच केबल जो पहले टांके गए थे, खराब हो गए हैं। इस प्रकार प्रत्येक सर्किट (मोटर और अरुडिनो) को अपने स्वयं के स्विच और संबंधित हरी एलईडी के साथ सक्षम किया जा सकता है।

तार प्रबंधन

जल्दी से आपको बहुत सारे केबलों से निपटना होगा! गन्दे पहलू को कम करने के लिए, आप पहले से 3डी प्रिंटेड 'टेबल' का उपयोग कर सकते हैं। मेज पर, अपने इलेक्ट्रॉनिक बोर्डों को दो तरफा टेप के साथ बनाए रखें, और मेज के नीचे तारों को स्वतंत्र रूप से बहने दें।

बैटरी बनाए रखना

अपने रोबोट को चलाते समय बैटरी की निकासी से बचने के लिए, आप बस एक हेयर इलास्टिक बैंड का उपयोग कर सकते हैं।

रोलर ढलाईकार

वास्तव में एक रोलर ढलाईकार नहीं बल्कि नीचे की परत पर 4 स्क्रू के साथ तय किया गया एक साधारण आधा गोला है। यह रोबोट की स्थिरता सुनिश्चित करने के लिए पर्याप्त है।

चरण 6: ऊपरी परत पर सिंगल बोर्ड कंप्यूटर और सेंसर

ऊपरी परत पर सिंगल बोर्ड कंप्यूटर और सेंसर
ऊपरी परत पर सिंगल बोर्ड कंप्यूटर और सेंसर
ऊपरी परत पर सिंगल बोर्ड कंप्यूटर और सेंसर
ऊपरी परत पर सिंगल बोर्ड कंप्यूटर और सेंसर
ऊपरी परत पर सिंगल बोर्ड कंप्यूटर और सेंसर
ऊपरी परत पर सिंगल बोर्ड कंप्यूटर और सेंसर

कौन सा सिंगल बोर्ड कंप्यूटर चुनना है?

मुझे आपको प्रसिद्ध रास्पबेरी पाई प्रस्तुत करने की आवश्यकता नहीं है, इसके उपयोग के मामलों की संख्या काफी हद तक रोबोटिक्स क्षेत्र से अधिक है। लेकिन रास्पबेरी पाई के लिए एक और अधिक शक्तिशाली चुनौती है जिसे आप अनदेखा कर सकते हैं। वास्तव में एनवीडिया से जेटसन नैनो अपने प्रोसेसर के अलावा एक शक्तिशाली 128-कोर ग्राफिकल कार्ड को एम्बेड करता है। यह विशेष रूप से ग्राफिकल कार्ड इमेज प्रोसेसिंग या तंत्रिका नेटवर्क अनुमान जैसे कम्प्यूटेशनल महंगे कार्यों में तेजी लाने के लिए विकसित किया गया है।

इस परियोजना के लिए मैंने जेटसन नैनो को चुना और आप संलग्न फाइलों में से संबंधित 3 डी भाग पा सकते हैं, लेकिन यदि आप रास्पबेरी पाई के साथ जाना चाहते हैं तो यहां कई प्रिंट करने योग्य मामले हैं।

5वी नियामक

आपने अपने रोबोट को जो भी बोर्ड लाने का फैसला किया है, आपको 5V नियामक की आवश्यकता है। नवीनतम रास्पबेरी पाई 4 को अधिकतम 1.25A की आवश्यकता होती है, लेकिन जेटसन नैनो को तनाव पर 3A तक की आवश्यकता होती है, इसलिए मैंने पोलोलू 5V 6A को भविष्य के घटकों (सेंसर, लाइट्स, स्टेपर्स …) के लिए एक पावर रिजर्व के लिए चुना, लेकिन किसी भी सस्ते 5V 2A को करना चाहिए। काम। जेटसन 5.5 मिमी डीसी बैरल और पाई एक माइक्रो यूएसबी का उपयोग करता है, संबंधित केबल को पकड़ता है और इसे नियामक आउटपुट में मिलाता है।

लिडार लेआउट

यहां इस्तेमाल किया जाने वाला LIDAR LDS-01 है, कई अन्य 2D LIDAR हैं जिनका उपयोग RPLidar A1/A2/A3, YDLidar X4/G4 या यहां तक कि Hokuyo LIDARs की तरह किया जा सकता है। केवल आवश्यकता यह है कि इसे यूएसबी के माध्यम से प्लग किया जाना चाहिए और संरचना के ऊपर केंद्रित होना चाहिए। वास्तव में यदि LIDAR अच्छी तरह से केंद्रित नहीं है, तो SLAM एल्गोरिथम द्वारा बनाया गया नक्शा दीवारों की अनुमानित स्थिति और बाधाओं को उनकी वास्तविक स्थिति से स्थानांतरित कर सकता है। इसके अलावा अगर रोबोट से कोई बाधा लेजर बीम को पार करती है, तो यह सीमा और देखने के क्षेत्र को कम करने वाला है।

लिडार माउंटिंग

LIDAR को एक 3D प्रिंटेड भाग पर लगाया जाता है जो इसके आकार का अनुसरण करता है, भाग स्वयं एक आयताकार प्लेट पर होता है (वास्तव में चित्र पर प्लाईवुड में लेकिन साथ ही 3D प्रिंट किया जा सकता है)। फिर एक एडेप्टर भाग नायलॉन स्पेसर के साथ ऊपरी टर्टलबोट प्लेट पर पहनावा तय करने की अनुमति देता है।

अतिरिक्त सेंसर या LIDAR प्रतिस्थापन के रूप में कैमरा

यदि आप एक LIDAR (जिसकी कीमत लगभग 100$ है) में बहुत अधिक पैसा खर्च नहीं करना चाहते हैं, तो एक कैमरे के लिए जाएं: SLAM एल्गोरिदम भी मौजूद हैं जो केवल एक मोनोकुलर RGB कैमरा के साथ चलते हैं। SBC दोनों ही USB या CSI कैमरा स्वीकार करते हैं।

इसके अलावा कैमरा आपको कंप्यूटर विज़न और ऑब्जेक्ट डिटेक्शन स्क्रिप्ट चलाने देगा!

सभा

रोबोट को बंद करने से पहले, ऊपरी प्लेट में बड़े छेद के माध्यम से केबल पास करें:

  • संबंधित केबल 5V रेगुलेटर से आपके SBC तक
  • Arduino DUE (DC बैरल के सबसे नज़दीकी) के प्रोग्रामिंग पोर्ट से USB केबल आपके SBC के USB पोर्ट में

फिर ऊपरी प्लेट को एक दर्जन स्क्रू के साथ स्थिति में रखें। आपका रोबोट अब प्रोग्राम किए जाने के लिए तैयार है, अच्छा किया!

चरण 7: इसे आगे बढ़ाएं

Arduino संकलित करें

अपना पसंदीदा Arduino IDE खोलें, और खुद_turtlebot_core नामक प्रोजेक्ट फ़ोल्डर आयात करें, फिर अपने बोर्ड और संबंधित पोर्ट का चयन करें, आप इस उत्कृष्ट ट्यूटोरियल का उल्लेख कर सकते हैं।

कोर सेटिंग्स समायोजित करें

परियोजना दो फाइलों से बनी है, और एक को आपके रोबोट के अनुकूल बनाने की जरूरत है। तो चलिए own_turtlebot_config.h खोलते हैं, और पता लगाते हैं कि किन पंक्तियों पर हमें ध्यान देने की आवश्यकता है:

#define ARDUINO_DUE // ** इस लाइन पर टिप्पणी करें यदि आप एक देय राशि का उपयोग नहीं कर रहे हैं **

लाइन पर टिप्पणी न करने पर केवल Arduino DUE के साथ उपयोग किया जाना चाहिए।

#define RATE_CONTROLLER_KP 130.0 // ** इस मूल्य को ट्यून करें **

#define RATE_CONTROLLER_KD 5000000000000.0 // ** इस मूल्य को ट्यून करें ** #Dine RATE_CONTROLLER_KI 0.00005 // ** इस मूल्य को ट्यून करें **

वे 3 पैरामीटर वांछित गति बनाए रखने के लिए पीआईडी द्वारा उपयोग किए जाने वाले दर नियंत्रक लाभ के अनुरूप हैं। बैटरी वोल्टेज, रोबोट के द्रव्यमान, पहिया व्यास और आपकी मोटर के यांत्रिक गियर के आधार पर, आपको उनके मूल्यों को अनुकूलित करने की आवश्यकता होगी। पीआईडी एक क्लासिक नियंत्रक है और आपको यहां विस्तृत नहीं किया जाएगा, लेकिन यह लिंक आपको अपने स्वयं के ट्यून करने के लिए पर्याप्त इनपुट देना चाहिए।

/* पिन को परिभाषित करें */

// मोटर ए (दाएं) कॉन्स्ट बाइट मोटरराइटएनकोडरपिनए = 38; // ** अपने पिन एनबी के साथ संशोधित करें ** कॉन्स्ट बाइट मोटरराइटएनकोडरपिनबी = 34; // ** अपने पिन एनबी के साथ संशोधित करें ** कॉन्स्ट बाइट एनमोटरराइट = 2; // ** अपने पिन एनबी के साथ संशोधित करें ** कॉन्स्ट बाइट in1MotorRight = 4; // ** अपने पिन के साथ संशोधित करें एनबी ** कॉन्स बाइट in2MotorRight = 3; // ** अपने पिन एनबी के साथ संशोधित करें ** // मोटर बी (बाएं) कॉन्स बाइट मोटर लेफ्टएनकोडरपिनए = 26; // ** अपने पिन एनबी के साथ संशोधित करें ** कॉन्स्ट बाइट मोटर लेफ्टएन्कोडरपिनबी = 30; // ** अपने पिन एनबी के साथ संशोधित करें ** कॉन्स्ट बाइट एनमोटरलेफ्ट = 7; // ** अपने पिन एनबी के साथ संशोधित करें ** कॉन्स्ट बाइट in1MotorLeft = 6; // ** अपने पिन एनबी के साथ संशोधित करें ** कॉन्स बाइट in2MotorLeft = 5; // ** अपने पिन एनबी के साथ संशोधित करें **

यह ब्लॉक L298N और Arduino के बीच पिनआउट को परिभाषित करता है, बस अपने से मेल खाने के लिए पिन नंबर को संशोधित करें। जब आप कॉन्फ़िगरेशन फ़ाइल के साथ कर लें, तो कोड संकलित करें और अपलोड करें!

आरओएस स्थापित और कॉन्फ़िगर करें

एक बार जब आप इस चरण तक पहुंच जाते हैं, तो निर्देश बिल्कुल वही होते हैं जो उत्कृष्ट टर्टलबॉट 3 के मैनुअल में दिए गए हैं, आपको ईमानदारी से पालन करने की आवश्यकता है

अच्छी तरह से किया गया टर्टलबॉट 3 अब आपका है और आप आरओएस के साथ सभी मौजूदा पैकेज और ट्यूटोरियल चला सकते हैं।

ठीक है लेकिन आरओएस क्या है?

आरओएस रोबोट ऑपरेटिंग सिस्टम के लिए खड़ा है, यह पहली बार में काफी जटिल लग सकता है लेकिन ऐसा नहीं है, बस हार्डवेयर (सेंसर और एक्ट्यूएटर) और सॉफ्टवेयर (नेविगेशन, नियंत्रण, कंप्यूटर दृष्टि के लिए एल्गोरिदम) के बीच संचार के तरीके की कल्पना करें। उदाहरण के लिए, आप अपने सेटअप को तोड़े बिना अपने वर्तमान LIDAR को किसी अन्य मॉडल के साथ आसानी से स्वैप कर सकते हैं, क्योंकि प्रत्येक LIDAR एक ही LaserScan संदेश प्रकाशित करता है। ROS व्यापक रूप से रोबोटिक्स का उपयोग किया जाता है, अपना पहला उदाहरण चलाएं

ROS के समकक्ष 'हैलो वर्ल्ड' में दूरस्थ कंप्यूटर के माध्यम से आपके रोबोट को टेलीऑपरेट करना शामिल है। आप जो करना चाहते हैं वह है मोटर्स को स्पिन करने के लिए वेग कमांड भेजना, कमांड इस पाइप का अनुसरण करते हैं:

  • एक टर्टलबोट_टेलीप नोड, दूरस्थ कंप्यूटर पर चल रहा है, एक ट्विस्ट संदेश सहित "/cmd_vel" विषय प्रकाशित करता है
  • यह संदेश ROS संदेश नेटवर्क के माध्यम से SBC को अग्रेषित किया जाता है
  • एक सीरियल नोड Arduino पर "/cmd_vel" प्राप्त करने की अनुमति देता है
  • Arduino संदेश पढ़ता है और रोबोट के वांछित रैखिक और कोणीय वेग से मेल खाने के लिए प्रत्येक मोटर पर कोणीय दर निर्धारित करता है

यह ऑपरेशन सरल है और ऊपर सूचीबद्ध कमांड लाइन चलाकर हासिल किया जा सकता है! यदि आप अधिक विस्तृत जानकारी चाहते हैं तो बस वीडियो देखें।

[एसबीसी]

रोसकोर

[एसबीसी]

रोसरन rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=115200

[रिमोट कंप्यूटर]

निर्यात TURTLEBOT3_MODEL=${TB3_MODEL}

रोसलांच टर्टलबोट3_टेलीप टर्टलबोट3_टेलीप_की.लॉन्च

आगे जाने के लिए

हर बार जब आप इस आदेश का सामना करते हैं, तो मैनुअल में सभी आधिकारिक उदाहरणों को आजमाने से पहले आपको एक आखिरी बात जाननी होगी:

रोसलॉन्च टर्टलबोट3_ब्रिंगअप टर्टलबोट3_रोबोट.लॉन्च

आपको इसके बजाय इस आदेश को अपने SBC पर चलाने की आवश्यकता है:

रोसरन rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=115200

और यदि आपके पास LIDAR आपके SBC पर संबंधित कमांड चलाता है, तो मेरे मामले में मैं नीचे दी गई लाइन के साथ LDS01 चलाता हूं:

रोसलांच hls_lfcd_lds_driver hlds_laser.launch

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

सिफारिश की: