रोबोटिक्स में FPGAs का उपयोग कब किया जाना चाहिए?


12

FPGA में अच्छे अंक हैं जैसे बहुत सारे IO अंक लेकिन फिर आपको उन क्षेत्रों पर फ्लिप-फ्लॉप और अग्रणी के साथ बहुत निचले स्तर पर चीजों पर विचार करने की आवश्यकता है जहां चीजें अभी तक परिपक्व नहीं हैं - उदाहरण के लिए विकास-उपकरणों के बारे में यहां यह प्रश्न देखें FPGAs - यह वर्तमान में मेरी समझ है! अब यहाँ जैसे रोबोटिक हाथों में उत्कृष्ट निपुणता बनाने के लिए FPGA का उपयोग किया गया है । अब कुछ लोग FPGA को तेजी से प्रोटोटाइप करने और "आगे देखने" के लिए डिज़ाइन करते हैं जैसे यहाँ , मैं पूरी तरह से उन्हें नहीं समझता: अगर आपको सेंसर जैसी चीज़ों के लिए बहुत सारे IO पॉइंट्स की ज़रूरत नहीं है, तो रोबोट के लिए FPGA क्यों चुनें? इसलिए

FPGA को रोबोटिक्स में एक परियोजना के लिए कब चुना जाना चाहिए?


यदि आपको समानता की आवश्यकता है तो FPGA का उपयोग करने की समझ है क्योंकि आप इसे प्राप्त कर सकते हैं। इसके अलावा, आप अपने खुद के "चिप डिजाइन" और "आसानी से" नए हार्डवेयर चिप के बिना कुछ कार्यक्षमता का उन्नयन कर सकते हैं। मैंने रियल टाइम में कैमरे से कई ऑब्जेक्ट डिटेक्शन पर उदाहरण देखे। यह सुनिश्चित करने के लिए कि यह छोटी परियोजनाओं के लिए ओवरहेड है।
गोसमर

जवाबों:


4

मुझे यकीन नहीं है कि विकास साधनों के बारे में जुड़े सवाल में आपको क्या लगता है कि वे परिपक्व नहीं हैं। यह सच है कि उनमें से ज्यादातर मालिकाना हैं और खुला स्रोत नहीं है। लेकिन मुझे लगा कि तीन साल पहले उस सवाल के पूछे जाने पर भी उपकरण काफी परिपक्व थे। आज Xilinx , Altera , और Lattice सभी में स्वतंत्र रूप से उपलब्ध विकास परिवेश हैं जो विंडोज और लिनक्स पर 32 और 64-बिट समर्थन के साथ चलते हैं। यदि आप खुले स्रोत पर जोर देते हैं तो इकारस वेरिलॉग काफी कुछ कर सकता है। लेकिन मैं व्यक्तिगत रूप से विक्रेता के विशिष्ट उपकरणों के साथ रहना चाहूंगा।

FPGA के विन्यास फ्लिप फ्लॉप के सिर्फ एक गुच्छा से अधिक हैं। एल्टर एनआईओएस II पर विचार करें । लिनक्स चलाने में सक्षम 32-बिट सॉफ्ट-कोर प्रोसेसर। मिक्स और मैच संचार और अन्य बाह्य उपकरणों से OpenCores या Xilinx , Altera , या जाली से और आपने जो कुछ भी आपकी ज़रूरत है और जो कुछ भी नहीं है, उसके साथ एक कस्टम माइक्रोकंट्रोलर बनाया है। आप NIOS II प्रोसेसर के लिए C कोड भी लिख सकते हैं और अगर आपको गति की आवश्यकता है तो कुछ कार्य सीधे FPGA हार्डवेयर में कार्यान्वित किए जाते हैं । क्या आपके लिए उच्च स्तर पर्याप्त सोच है?

FPGA की उच्च प्रारंभिक निवेश लागत है। लेकिन डिजाइन प्रक्रिया में बाद में कार्यक्षमता जोड़ना सस्ता और आसान है। "फॉरवर्ड लुकिंग" डिज़ाइन का यही मतलब है। एक परियोजना पर विचार करें जहां आप अपने रोबोट में कुछ अतिरिक्त मोटर्स जोड़ना चाहते हैं, लेकिन आप अपने माइक्रोकंट्रोलर पर PWM जनरेटर से बाहर चले गए हैं। आप क्या करते हैं? एक और माइक्रोकंट्रोलर जोड़ें? अलग PWM चिप्स खरीदें और उन्हें एक संचार इंटरफ़ेस से कनेक्ट करें? क्या होगा यदि आपके सभी संचार इंटरफेस उपयोग में हैं? एक FPGA के साथ, यह लगभग पूरी तरह से एक कॉपी और पेस्ट ऑपरेशन में कम हो जाता है। एक FPGA के साथ अधिक अतिरिक्त हार्डवेयर खरीदने के बिना नई कार्यक्षमता को शामिल करने के लिए एक डिज़ाइन को स्केल करना बहुत आसान, सस्ता और तेज है।

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

उदाहरण के लिए इस हाई-स्पीड हैंड रोबोट को लें । इसमें हाई-स्पीड (1000 फ्रेम प्रति सेकंड) मशीन विज़न कैमरा के साथ-साथ स्पर्श सेंसर से वीडियो को संसाधित करने और केवल कुछ मिलीसेकंड में कई एक्ट्यूएटर्स में हेरफेर करने की आवश्यकता है। इस प्रकार की परियोजना तब होती है जब आपको FPGAs चुनने की आवश्यकता होती है।

व्यापक रूप से समानांतर दृष्टि प्रसंस्करण


क्या आप इसे स्पष्ट कर सकते हैं "FPGA की उच्च प्रारंभिक निवेश लागत है।" यहां संबंधित : कीमतें बहुत कम लगती हैं। क्या आपका मतलब उच्च प्रशिक्षण लागत या कुछ अन्य आंकड़ा है?
hhh

1
@ ओह, मैं कच्ची चिप लागत के बारे में बात नहीं कर रहा था। मैं विकास लागत के बारे में बात कर रहा था। PANDBoard पर एक माइक्रोकंट्रोलर डेवलपमेंट किट पर विचार करें । $ 181 के लिए एक एआरएम कोर्टेक्स ए 9 शामिल है। एक FPGA विकास बोर्ड जो A9 पकड़ सकता है जैसे कि चक्रवात V $ 1,099 है।
एम्बेडेड।

@ हह निश्चित रूप से सस्ते FPGA विकास किट हैं। लेकिन मैं कुछ मेट्रिक खोजने की कोशिश कर रहा था, जिससे दो चीजों की तुलना की जा सके जो इतनी अलग हैं। तो एक विकास किट जिसमें (बहुत) लगभग एक ही प्रसंस्करण शक्ति है लगभग 10x अधिक है।
एम्बेडेड।

@hhh Mouser पर सबसे सस्ता एआरएम $ 0.80 है । सबसे सस्ता FPGA $ 2.80 है
एम्बेडेड।

2
@ ह्ह यह हाथ संभावना के साथ बढ़त शोध को काट रहा है यदि सैकड़ों हज़ारों डॉलर के कस्टम उपकरण इसे नहीं चला रहे हैं। सामान्य रूप से वीडियो प्रसंस्करण उच्च अंत पर होता है। यहाँ और यहाँ देखें । और न ही शायद 1kfps वीडियो को प्रोसेस कर सकता है। अधिक 30-60fps की तरह। आपके द्वारा सूचीबद्ध बोर्ड के पास कोई वीडियो इनपुट नहीं है। हालांकि यह निश्चित रूप से एक्चुएटर्स को नियंत्रित कर सकता है और स्पर्श सेंसर को संसाधित कर सकता है। स्पष्ट रूप से आपके द्वारा जुड़े हाथ का अनुकरण किया जा सकता है।
एम्बेडेड.कील

2

मुझे लगता है कि FPGA वास्तव में क्या है और जब इसे डिजाइन में उपयोग किया जाता है, तो इसके बारे में गलत धारणा हो सकती है। तो मुझे पहले उस भाग को समझाने की कोशिश करते हैं।

FPGAs और जब एक के लिए एक हो सकता है ...

सरलीकरण के जोखिम में, एक एफपीजीए एक प्रोसेसर से थोड़ा अधिक होता है जो कि 'पुन: कॉन्फ़िगर करने योग्य' होता है।

कोई 'पुन: प्राप्य' माइक्रोप्रोसेसर क्यों चाहेगा? ठीक है, क्योंकि यह एक सिलिकॉन प्रोसेसर गढ़ने के लिए बहुत अधिक लागत आता है, इसे एक, दो या दो सौ चिप्स के लिए वहन करने के लिए। आपको आर्थिक रूप से संभव बनाने के लिए हजारों चिप्स के बैच चलाने होंगे।

चूँकि कोई भी डिज़ाइन कभी भी बग-फ्री नहीं होता है, पहली बार राउंड, सिलिकॉन मार्ग पर प्रभावी ढंग से एक कंपनी को कम से कम दो करने के लिए प्रेरित करता है अगर अधिक परीक्षण नहीं चलता है, तो सभी विशाल निर्माण लागत पर।

जो अनिवार्य रूप से इसका मतलब है कि बहुत कम वाणिज्यिक कंपनियां व्यापक पर्याप्त वाणिज्यिक अपील के साथ चिप के अलावा किसी भी अन्य चीज को डिजाइन करने और बनाने में रुचि रखने वाली हैं।

इसलिए, यदि आप एक शानदार डिजाइन के साथ आते हैं, जो एक कस्टम माइक्रोप्रोसेसर को सही ठहराता है, तो आप अपने विचार को एक FPGA में लागू करके एक शानदार बजट पर जीवन में लाने की कोशिश कर सकते हैं , जहां वास्तविक चिप केवल फाटकों का एक संग्रह है, और एक 'प्रोग्राम' (आमतौर पर वीएचडीएल या वेरिलॉग) उन गेट्स को एक वास्तविक माइक्रोप्रोसेसर में व्यवस्थित करता है।

लेकिन यह काफी अलग तरीके (बिल्कुल माइक्रोप्रोसेसर डिजाइन!) सड़क है ...

जो मुझे यह सुझाव देता है

... FPGAs रोबोटिक्स के लिए आवश्यक नहीं हैं - कम से कम शुरुआत में

रोबोटिक्स के लिए आपको क्या चाहिए एक प्रोसेसर है । एक FPGA एक विशेष प्रकार का प्रोसेसर (पुन: प्राप्य) है।

आप पूछते हैं कि क्या आपको should चाहिए ’? वैसे यह आपके ज्ञान के साथ-साथ आपके वास्तविक हितों पर भी निर्भर करता है - माइक्रोप्रोसेसर डिजाइन पहले या रोबोटिक्स पहले?

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

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

अधिकांश डिजाइनर शायद एक मौजूदा प्रोसेसर पा सकते हैं जो कि सबसे अधिक वे करेंगे जो उन्हें कभी भी आवश्यकता होगी।

इसलिए मुझे लगता है कि आपको शायद FPGA की जरूरत नहीं है।

एक स्टार्टर रोडमैप: वाणिज्यिक क्षमताओं से (शायद) एक FPGA ...

मेरी राय में पहला लक्ष्य अपने सभी रचनात्मक अवधारणाओं को एक काम करने वाले रोबोट (अपने आप में एक गहन चुनौती) के रूप में प्राप्त करने का प्रयास करना है।

यदि आप पाते हैं कि आपको अपने डिजाइन में विशिष्ट और महत्वपूर्ण प्रसंस्करण बाधाएं मिली हैं, तो अगला लक्ष्य आपके प्रोसेसर के चयन / डिजाइन को अनुकूलित करना है, फिर भी व्यावसायिक रूप से उपलब्ध चिप्स। शायद बड़ा, तेज (पावर ड्रा, हीट डिसऑर्डर के साथ व्यापार बंद)। शायद छोटे, समर्पित चिप्स विशिष्ट कार्यों को संभालने और मुख्य मस्तिष्क (एल्गोरिदम / तर्क जटिलताओं के साथ व्यापार-बंद) के साथ इंटरफेस कर रहे हैं।

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

अन्यथा, आपको अपने मुख्य लक्ष्य से साइड-ट्रैक होने की संभावना है (जो मैं मान रहा हूं कि वास्तव में एक रोबोट बनाना है!)

नीचे पंक्ति: FPGAs रोबोटिक्स में शुरू होने से एक व्याकुलता हैं --- जब तक कि आप रोबोटिक्स सड़क से काफी नीचे नहीं हैं - और डिजिटल इलेक्ट्रॉनिक्स / माइक्रोप्रोसेसर डिजाइन में कुछ मजबूत तरीके से कहीं भी प्राप्त कर चुके हैं।


मैं वीडियो-प्रोसेसिंग जैसे क्षेत्रों में कई उदाहरण सोच सकता हूं जहां FPGA के साथ समानांतर प्रसंस्करण गति और अधिक सटीक परिणामों के लिए आवश्यक है। देखा विफलताओं जहां लोगों को एक एकल सीपीयू के साथ वास्तविक समय का पता लगाने शोर शोर लागू करने की कोशिश करते हैं। सं। FPGA के अपने विशिष्ट क्षेत्र हैं जहाँ यह उच्च दक्षता या सटीक / तेज़ वीडियो-प्रसंस्करण के रोबोटिक हाथों जैसी चट्टानें हैं। मैं उस तरह FPGA और माइक्रोप्रोसेसर juxtaposing नहीं कर सकता। वे अपने स्वयं के अच्छे / बुरे पक्षों के साथ बहुत अलग जानवर हैं। गलत? किसी भी विचार है कि क्या FPGA के लिए इस तरह के अच्छे क्षेत्र कहीं सूचीबद्ध हैं?
hhh

आप निश्चित रूप से सही हैं कि बहुत से ऐसे क्षेत्र हैं जहाँ FPGAs एक फायदा है - मैंने अपने उत्तर में उन लोगों को बाहर नहीं किया है। मुद्दा यह है कि आप अनुभव वक्र पर कहां हैं, और आप उन विशिष्ट लाभों पर कितने स्पष्ट हैं, जिन्हें आप FPGA का उपयोग करके प्राप्त करना चाहते हैं। यदि आप उस का जवाब नहीं जानते हैं, तो आप शायद एक की जरूरत नहीं है! (यह नीचे दिए गए जैकब के जवाब को गूँजता है।)
असद अब्राहिम

1

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

  • क्या आई / ओ पोर्ट पर जटिल समय की आवश्यकता है? 3-चरण मोटर नियंत्रण में ऐसी आवश्यकताएं हो सकती हैं। FPGAs यहाँ एक मामूली लाभ है।
  • आप अपने सुपर कम विलंबता एल्गोरिथ्म समानांतर कर सकते हैं? यहाँ FPGA वास्तव में माइक्रोकंट्रोलर के साथ प्रतिस्पर्धा नहीं करता है, लेकिन एम्बेडेड पीसी के साथ अधिक है। ज्यादातर चीजें मैं एम्बेडेड पीसी के लिए जाना होगा, लेकिन आप कुछ विशिष्ट अनुप्रयोगों के लिए एक FPGA के साथ एक फायदा हो सकता है। उदाहरण के लिए घने स्टीरियो प्रसंस्करण अक्सर FPGAs में किया जाता है। डेटा स्ट्रीम को संसाधित करने के लिए बहुत सारे कैमरे FPGAs का उपयोग करते हैं।

क्या अक्सर इस्तेमाल किया जाता है संकर समाधान हैं। या तो दो चिप्स के साथ, इसलिए प्रोग्राम कोड के लिए एक माइक्रोकंट्रोलर, और IO या कुछ अन्य कार्य के लिए एक FPGA। वहाँ भी कई FPGAs कि वास्तव में एक microcontroller एम्बेडेड है।

मैं कुछ अन्य पोस्ट की तरह FPGAs पर इतना कठोर नहीं होऊंगा, लेकिन आम तौर पर यह भी तर्क दूंगा कि जब तक आप अपने VHDL को अच्छी तरह से नहीं जानते हैं, तब तक आप माइक्रोकंट्रोलर, या इससे भी बेहतर एम्बेडेड पीसी का उपयोग करना बेहतर होगा।


क्या आप कुछ उदाहरण परियोजनाएं दिखा सकते हैं जो यह समझने में मदद करें कि FPGAs के साथ किस तरह की चीजें अच्छी हैं और जो माइक्रोकंट्रोलर के साथ हैं? उदाहरण के लिए मान लें कि कुछ पंक्ति-निम्न रोबोट: यह समतल साफ सतह पर एक एकल माइक्रोकंट्रोलर के साथ बहुत अच्छी तरह से काम करता है जब तक कि अधिक धुंधली रेखाओं को छवि-तीक्ष्णता / संकेतन / आदि की आवश्यकता होती है। यदि वन (या अन्य शोर सतह) में एक रेखा है, तो यह बहुत कठिन चुनौती होगी (मुझे संदेह है कि क्या fpga के साथ भी संभव है)। क्या आपने कोई वास्तविक-विश्व रोबोट प्रोजेक्ट किया है जहाँ आपने छवि / वीडियो-प्रोसेसिंग रियलटाइम के लिए उदाहरण के लिए fpga का उपयोग किया था? VHDL के लिए +1।
hhh
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.