आपके समाधान को फिर से लागू करना, मुझे यह मिल गया है:
कोणों के बीच का कोण
सबसे पहले, आप बिंदुओं के बीच का कोण चाहते हैं ए तथा बी - विशेष रूप से इकाई वेक्टर नहीं।
( एफएक्स प्रोग्रामिंग के माध्यम से ):
θ = m एक टी एच । a t a n 2 (बीएक्स-एएक्स,बीy-एy)
वाहन याव कोण
अगला (मुझे संदेह है कि यह आपकी समस्या है), आपको वाहन के यॉंग कोण को घटाना होगाψ अपने हिसाब से θ।
प्रमुख बनाम यो
यदि आप अपने वाहन के "yaw कोण" के लिए कम्पास का उपयोग कर रहे हैं, तो यह आपकी गलती भी हो सकती है; हेडिंग और यव समान नहीं हैं । कम्पास का शीर्षक धनात्मक के साथ शून्य होता हैyधुरी, जैसे-जैसे घड़ी की सूई बढ़ती है :
Yaw सकारात्मक के साथ शून्य है एक्सअक्ष, बढ़ते हुए जैसे यह वामावर्त मुड़ता है :
इन मापों के बीच 90 डिग्री ओवरलैप, वांछित यॉ से वाहन याव को जोड़ने (घटाने के बजाय) के साथ संयुक्त हो सकता है, इसलिए हो सकता है कि जब आपके लक्ष्य and 5 ° के भीतर थे और ° 90 ° पर बुरी तरह से व्यवहार किया गया हो।
घटक X और Y में रूपांतरण
वहां से, आप कहते हैं कि आप इस परिणाम को परिवर्तित कर रहे हैं ( Θ - ψ ) इसके में एक्स तथा yघटकों, उन्हें रोल और पिच कोण के रूप में रोबोट को पास करना। उपरोक्त सुधारों के साथ, आपको इस बिंदु पर वांछित परिणाम प्राप्त करना चाहिए। हालांकि, कोण को झुकाव के लिए इन घटकों को सीधे मैप करना समस्याग्रस्त हो सकता है क्योंकि आप केवल स्थिति में अंतर पर विचार कर रहे हैं, और वाहन के वेग (वास्तव में, गति) नहीं।
पीआईडी नियंत्रण
वाहन के रोल और पिच के लिए PID नियंत्रण लूप का उपयोग करके आपको सबसे अच्छी सेवा दी जा सकती है। यही है, एक बार जब आप अपना कोड ठीक कर लेते हैं और अपने लक्ष्य को हासिल करने में सक्षम होते हैं, तो मेरा अनुमान है कि आप इसकी बजाय ओवरसूट करना शुरू कर देंगे - आगे और पीछे दोलन। एक सही ढंग से ट्यून की गई पीआईडी आपको तब भी होने से रोकेगी, जब आप अभी भी जल्दी से लक्ष्य तक पहुंचने की अनुमति देंगे।
इसकी जगह अपना प्लग इन करें एक्स तथा yरोल और पिच में, उन्हें त्रुटि मान मानते हैं कि रोल और पिच पीआईडी इनपुट के रूप में स्वीकार करते हैं।