(Featherstone) जोड़ा हुआ कठोर शरीर मॉडल के लिए एक प्रेरक या बल जोड़ना


9

मैं एक ऐसी परियोजना पर काम कर रहा हूँ जहाँ मुझे एक ऐसी प्रणाली को बनाने की आवश्यकता है जिसमें अनिवार्य रूप से एक आधार से जुड़ी गेंद और सॉकेट जोड़ों की एक श्रृंखला शामिल है, जो एक प्रिज्मीय संयुक्त (रेल) के बदले में जुड़ी हुई है।

मैंने रॉय फेदरस्टोन के कठोर बॉडी डायनामिक्स एल्गोरिदम को कवर-टू-कवर पढ़ा है, और मैंने रोबोटिक्स की स्प्रिंगर हैंडबुक (फेदरस्टोन द्वारा लिखित) से डायनामिक्स अनुभाग भी पढ़ा है ।

मुझे अपने "स्थानिक सदिश" और "स्थानिक मैट्रिक्स" संकेतन का उपयोग करने के लिए प्रेरित होने में एक लंबा समय लगा, लेकिन एक अभ्यास के रूप में हाथ से उसकी सभी संकेतन को फिर से बनाने के बाद यह 3x3 और समवर्ती करने का एक अच्छा तरीका है। 3x1 matrices और वैक्टर 6x6 और 6x1 matrices और वैक्टर में। मैथ्स जो वह ऑपरेशन करने के लिए आमंत्रित करता है वह पढ़ने में थोड़ा थकाऊ हो सकता है क्योंकि वह कुछ मानक संकेतन को हाईजैक करता है, लेकिन कुल मिलाकर सब कुछ बहुत कॉम्पैक्ट है, MATLAB में लागू करना बहुत आसान है।

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

किसी भी तरह की सहायता का स्वागत किया जाएगा। मैंने एक अलग पुस्तक के साथ शुरुआत करने पर विचार किया है, लेकिन यह मेरे समय का एक बड़ा खर्च होने जा रहा है कि मैं खुद को पुन: अंकन के एक अलग सेट पर पहुंचा दूं। मैं इसके साथ आगे बढ़ना चाहता हूं, लेकिन मुझे लगता है कि मैं फिनिश लाइन से सिर्फ कुछ इंच शर्मीला हूं।

जवाबों:


3

एक्ट्यूएटर्स फोर्सेस

क्या मुझे यह अधिकार मिलता है: आपके पास एक कठोर मल्टीबॉडी सिस्टम का एक सैद्धांतिक मॉडल है और यह कठोर शरीर की गतिशीलता संकलन करना चाहेंगे। आपने मॉडल लागू किया है और अब यह गणना करना चाहेंगे कि किसी एक्ट्यूएटर द्वारा संचालित होने पर मॉडल कैसे व्यवहार करता है।

हालाँकि आपके लिए एक एक्चुएटर क्या है? क्या यह केवल उस जोड़ पर अभिनय करने वाला बल है? यह एक डीसी मोटर मॉडल है? क्या यह पीआईडी ​​नियंत्रक है?

पुस्तक में गतिशीलता एल्गोरिदम सामान्यीकृत पदों के संदर्भ में वर्णित हैं q, सामान्यीकृत वेग q˙, सामान्यीकृत वेग q¨, और सामान्यीकृत बल τ। यदि आपके पास एक प्रिज्मीय संयुक्त है जिसका अनुवाद इसके द्वारा वर्णित हैqi फिर उस जोड़ पर रैखिक बल द्वारा वर्णित किया गया है τi। यदि आपके पास एक उल्टा (काज) संयुक्त है जिसके रोटेशन का वर्णन किया गया हैqj फिर τj उस जोड़ पर एक टॉर्क का प्रतिनिधित्व करता है।

यह एक एक्ट्यूएटर की आपकी समझ पर निर्भर करता है कि कैसे τगणना की है। यदि आप केवल बलों या टार्कों को लागू करना चाहते हैं तो मूल्यों को संबंधित मूल्यों में डालेंτ। एक बार जब आपके पास यह होता है कि वे लागू बलों के लिए सिस्टम प्रतिक्रिया की गणना करने के लिए आगे की गतिशीलता एल्गोरिदम के इनपुट के रूप में काम करते हैं।

बगल में ध्यान दें: पंख का उपयोग करता हैτaसक्रिय लूप क्लोजर बलों को निरूपित करने के लिए। आपके मॉडल विवरण से ऐसा लगता नहीं है कि कोई कीनेमेटिक लूप है और इसलिएτa लागू नहीं होता।

गुरुत्वाकर्षण त्वरण:

फेदरस्टोन गुरुत्वाकर्षण त्वरण को आधार पर लागू करता है और इसे एल्गोरिदम द्वारा पेड़ के माध्यम से प्रचारित करने देता है। यह पंक्ति में RNEA, तालिका 5.1 में किया जाता है

a0=ag

ऐसा करने के बजाय आप लाइन को संशोधित भी कर सकते हैं

fiB=Iiai+vi×Iivi

सेवा

fiB=Ii(aiiX0ag)+vi×Iivi

प्रत्येक शरीर पर व्यक्तिगत रूप से गुरुत्वाकर्षण प्रभाव लागू करने के लिए। यह अतिरिक्त संगणना का परिचय देता है और मुझे ऐसा करने में कोई लाभ नहीं दिखता है।

3-डी वेक्टर्स के स्थानिक बीजगणित बनाम संयोजकता

स्थानिक बीजगणित केवल 3-डी वैक्टर का संयोजन नहीं है। पूर्व में एक निश्चित समन्वय फ्रेम में कठोर शरीर गतियों को व्यक्त किया जाता है, जबकि बाद को शरीर के साथ स्थानांतरित होने वाले बिंदुओं पर व्यक्त किया जाता है। परिणामस्वरूप स्थानिक त्वरण स्थानिक वेगों का समय व्युत्पन्न है। दो-डी समीकरणों का उपयोग करते हुए शास्त्रीय अंकन में ऐसा नहीं है (फेदरस्टोन की पुस्तक की धारा 2.11):

यदि शरीर में एक निरंतर कोणीय वेग है ωफिर उस शरीर के सभी बिंदु जो रोटेशन की धुरी पर नहीं होते हैं, रोटेशन की धुरी की ओर एक त्वरण होता है (प्लैनिंग केस में रोटेशन का केंद्र)। स्थानिक बीजगणित में इस शरीर में फ्रेम के स्वतंत्र शून्य स्थानिक त्वरण होता है, जिसमें त्वरण व्यक्त किया जाता है

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

स्थानिक त्वरण उस बिंदु के रैखिक और कोणीय वेग के प्रवाह का वर्णन करता है जो उत्पत्ति के साथ मेल खाता है। यहां "प्रवाह" का अर्थ है कि वेक्टर मात्रा (रैखिक और कोणीय वेग) समय के साथ कैसे बदलते हैं।


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

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

मुझे गुरुत्वाकर्षण जोड़ने का एक तरीका चाहिए था क्योंकि मैं इसे अपने निश्चित आधार पर z- अक्ष पर नहीं डाल सकता था; यह केवल उत्तरी ध्रुव पर सही ढंग से गुरुत्वाकर्षण का काम करेगा। अनिवार्य रूप से, मैं पृथ्वी की सतह के नीचे की शक्तियों के बारे में परवाह नहीं करता, मैं सिर्फ पेंडुलम की पूर्वता के बारे में परवाह करता हूं।
चक

मैंने एक संबंधित प्रश्न पूछा है कि मुझे निश्चित जोड़ों को कैसे संभालना चाहिए।
चक

2

यदि आप कठोर बॉडी डायनामिक्स लाइब्रेरी (RBDL) में नहीं आए हैं, तो आप यह देखना चाहते हैं कि वे इसे कैसे लागू करते हैं, और लेखक मार्टिन फेलिस से संपर्क करें।


बैरेट, मुझे कुछ हफ्ते पहले आरबीडीएल मिला और जब मैं बार-बार पीछे चला गया, तो उसने सूचनाओं को चमकाने की कोशिश की, यह सी ++ में उन तरीकों से लिखा गया है जो कोड का पालन करना कठिन बनाते हैं। उदाहरण के लिए, किनेमैटिक्स कोड में एक पंक्ति होती है जो पढ़ती है G.block(0,q_index,6,1) = base_to_body.apply(model.X_base[j].inverse().apply(model.S[j]));। तो, फ़ंक्शन क्या करता applyहै? खैर, मुझे जो भी क्लास base_to_bodyहै, उसके लिए हेडर फाइल में जाना है, लेकिन क्या वह जॉइंट है या बॉडी? इसके अलावा, जैसी चीजें model.base[j].inverse().apply(model.S[j])विशेष रूप से स्पष्ट नहीं हैं।
चक

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

रोबोटिक्स बैरेट एम्स में आपका स्वागत है , आपके उत्तर के लिए धन्यवाद, लेकिन हम जहां संभव हो वहां आत्म निहित होने के जवाब पसंद करते हैं। लिंक सड़ जाते हैं इसलिए उत्तर जो एक लिंक पर निर्भर करता है बेकार हो सकता है अगर सामग्री से लिंक सड़ता है। यदि आप लिंक से अधिक संदर्भ जोड़ते हैं, तो यह अधिक संभावना है कि लोग आपके उत्तर को उपयोगी पाएंगे।
मार्क बूथ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.