मैं एक मैग्नेटोमीटर AK8975 पर IMU का हिस्सा बनकर काम कर रहा हूं। जो मेरे लिए बहुत पेचीदा लगता है। यह चिप पृथ्वी के किसी भी स्थान पर या उसके निकट पृथ्वी के चुंबकीय क्षेत्र का वर्णन करते हुए एक 3D वेक्टर देता है।
मैंने दो प्रकार के हेडिंग कैलकुलेशन एल्गोरिदम आज़माए: एक सरल है arctan(-y/x)
और दूसरा झुकाव (पिच) और बैंक (रोल) नीचे दिए गए गणित को रद्द कर दिया है। झुकाव और बैंक दोनों गलत आउटपुट देते हैं।
मैं पृथ्वी पर सही शीर्ष लेख (सरल उपलब्ध खुले अध्ययन संसाधनों का उपयोग करके) प्राप्त करने में सक्षम हूं, जब इसे दो अलगों में से किसी का उपयोग करके क्षैतिज आरटी ग्राउंड प्लान को घुमाया जाता है।
मैंने नरम और कठोर लोहे की त्रुटियों के लिए अंशांकन की कोशिश की। मैं इसे 3 डी में प्लॉट कर सकता हूं और एक सही 3 डी क्षेत्र दिखाता हूं। अभी भी झुकाव या घोषणा पर काम नहीं करता है।
कोई भी सूचक सहायक होगा।
कोड और इसके कार्यान्वयन निम्नानुसार हैं:
void Compass_Heading()
{
double MAG_X;
double MAG_Y;
double cos_roll;
double sin_roll;
double cos_pitch;
double sin_pitch;
cos_roll = cos(roll);
sin_roll = sin(roll);
cos_pitch = cos(pitch);
sin_pitch = sin(pitch);
//// Tilt compensated Magnetic filed X:
MAG_X = magnetom_x*cos_pitch + magnetom_y*sin_roll*sin_pitch + magnetom_z*cos_roll*sin_pitch;
//// Tilt compensated Magnetic filed Y:
MAG_Y = magnetom_y*cos_roll-magnetom_z*sin_roll;
//// Magnetic Heading
MAG_Heading = atan2(-MAG_Y, MAG_X) ;
}
जहां magnetom_x
, #_y
और #_z
एक 3D वेक्टर के घटक हैं जो वास्तव में मैग्नेटोमीटर से रॉ मान हैं। रोल और पिच ऑनबोर्ड एक्सेलेरोमीटर और जाइरोस्कोप से एक रहस्यमय कलमन-फ़िल्टर आउटपुट से हैं। ये तीन सेंसर ATAVRSBIN1 में हैं । इस अवस्था तक रोल और पिच ठीक है।
अब journal_of_sensors_renaudin et al_2010c.pdf के अनुसार एक साधारण शीर्षक गणना MAG_Heading = atan2(-magnetom_y, magnetom_x) ;
ऊपर और मुआवजे के साथ होनी चाहिए थी ।
कुल मिलाकर कोड ओपेन एएचआरएस से है ।
प्रारूप रोल, पिच और यव में डेटा। मैंने केवल अपने हाथ से डिवाइस को घुमाया। पहले तीनों को क्रमशः केवल रोल, पिच और यव पर केंद्रित किया गया है। बाकी दो को पहले डिवाइस को X (लुढ़का) के साथ 45 डिग्री के आसपास घुमाया जाता है, फिर मैग्नेटोमेटेर के स्थानीय Z के साथ घुमाया जाता है। फिर उसी के साथ Y (पिच किया गया) के साथ लगभग 45 डिग्री घुमाया जाता है और फिर मैग्नेटोमीटर के स्थानीय Z के साथ घुमाया जाता है।
रेखांकन -180 से 180 डिग्री के भीतर प्लॉट किया गया है।
एक फ़ाइल में डिग्री में कोण रोल पर YAW विशेषताएँ।
एक फ़ाइल में डिग्री में कोण पिच पर YAW विशेषताएँ।
एक फ़ाइल में डिग्री में कोण यव पर ही यव विशेषताओं।
किसी फ़ाइल में डिग्री में कोण 45 डिग्री लुढ़कने के साथ यव पर यव विशेषताएँ।
एक फ़ाइल में डिग्री में कोण 45 डिग्री के साथ Yaw पर YAW विशेषताओं को पिच किया।
नोट: अंतिम 2 चित्रों के लिए: पहले घर की स्थिति में रखा जाता है, जो सभी के लिए समान है (txt फ़ाइलों को देखें)। फिर 45 डिग्री पर लुढ़का फिर प्लेन डिवाइस (मैग्नेटोमीटर के साथ) का उपयोग करके मैग्नेटोमीटर की जेड-एक्सिस के साथ घुमाया गया।
इसी तरह अंतिम छवि के लिए डिवाइस को 45 डिग्री तो मैग्नेटोमीटर की जेड-एक्सिस के साथ पिच किया गया है।
मुझे उम्मीद है कि ये मेरे मुद्दे को सुलझाने में मदद करेंगे।
नए घटनाक्रम इस प्रकार हैं:
मैंने हेडिंग पर कुछ काम किया। मुझे आउटपुट मिला। सीएसवी