मैग्नेटोमीटर गतिशील अंशांकन


19

मैं एक मैग्नेटोमीटर 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 विशेषताएँ।

रास्ते से हटना एक फ़ाइल में डिग्री में कोण यव पर ही यव विशेषताओं।

Yaw wrt 45 डिग्री झुका हुआ (लुढ़का) किसी फ़ाइल में डिग्री में कोण 45 डिग्री लुढ़कने के साथ यव पर यव विशेषताएँ।

Yaw wrt 45 डिग्री बांका (पिच किया गया) एक फ़ाइल में डिग्री में कोण 45 डिग्री के साथ Yaw पर YAW विशेषताओं को पिच किया।

नोट: अंतिम 2 चित्रों के लिए: पहले घर की स्थिति में रखा जाता है, जो सभी के लिए समान है (txt फ़ाइलों को देखें)। फिर 45 डिग्री पर लुढ़का फिर प्लेन डिवाइस (मैग्नेटोमीटर के साथ) का उपयोग करके मैग्नेटोमीटर की जेड-एक्सिस के साथ घुमाया गया।

इसी तरह अंतिम छवि के लिए डिवाइस को 45 डिग्री तो मैग्नेटोमीटर की जेड-एक्सिस के साथ पिच किया गया है।

मुझे उम्मीद है कि ये मेरे मुद्दे को सुलझाने में मदद करेंगे।


नए घटनाक्रम इस प्रकार हैं:

मैंने हेडिंग पर कुछ काम किया। मुझे आउटपुट मिला। घूमना सीएसवी

पिच सीएसवी

रास्ते से हटना सीएसवी



अभी तक कोई जवाब नहीं !!

4
मुझे लगता है कि यदि आप जिस गणित को लागू करने का प्रयास कर रहे हैं और उसे लागू करने के लिए आपके द्वारा उपयोग किए गए कोड को दिखाते हैं तो आपको अधिक प्रतिक्रिया मिलेगी। हमारे लिए बहुत कम है अन्यथा "यह काम नहीं करता है, मदद" के अलावा - जो कि आपका प्रश्न पढ़ता है। माफ़ करना!
मार्टिन थॉम्पसन

मैग्नेटोमीटर का उपयोग एक बहुत ही विशेष क्षेत्र है जिसमें तुलनात्मक रूप से कम लोगों को विशेषज्ञता हासिल है। आपके प्रश्न के माध्यम से कुछ बार पढ़ना, मुझे अभी भी यकीन नहीं है कि वास्तव में क्या गलत है। आप कहते हैं कि यह "गलत आउटपुट" देता है लेकिन यह बहुत अस्पष्ट है। शायद कुछ संख्यात्मक उदाहरण?
जेसन आर

1
क्या यह एक सवाल है कि सेंसर आउटपुट की व्याख्या कैसे करें या एक्स, वाई, जेड वेक्टर से नेविगेशनल रूप से उपयोगी उपायों की गणना कैसे करें जो सेंसर प्रदान करता है? क्या आपके माप एक ही सेंसर के दूसरे उदाहरण के साथ दोहराए जा सकते हैं?
vicatcu

1
@ राहुल - मुझे आश्चर्य है कि इस पर अधिक ध्यान नहीं दिया जा रहा है!
केविन वर्मेयर

जवाबों:


8

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

मैं अनुमान लगा रहा हूं कि आपके द्वारा प्रस्तुत कोड गलत "MAG_Heading मान" की गणना कर रहा है, जो कि MAG_Heading मान से अलग है।

यदि आपने हमें दिया तो आपकी मदद करना बहुत आसान होगा: (यह " स्मार्ट तरीके से प्रश्न कैसे पूछें" के " लक्षणों का वर्णन करें" अनुभाग है )

  • AK8975 मैग्नेटोमीटर उत्पादन मूल्यों m_x, m_y, और m_z समय में कुछ एकल बिंदु पर।
  • पिच और रोल एक ही पल में मान
  • उन मूल्यों से गणना की गई गलत MAG_Heading आउटपुट मान
  • क्या आपने सही MAG_Heading होने की उम्मीद की थी

इसलिए मैं यह अनुमान लगाने के लिए बचा हूं कि शायद आप उसी तरह की समस्याओं में भाग रहे हैं जो मैं अपने लिए बनाता हूं :-)।

  • क्या कोण प्रारूप आपके पाप () और कॉस () और atan2 () कार्यों की उम्मीद करते हैं? क्या आपको उस प्रारूप में संग्रहीत प्रारूप और रोल के बीच किसी प्रकार का रूपांतरण करने की आवश्यकता है? क्या आपको उस प्रारूप से रूपांतरण करने की आवश्यकता है जो आपको MAG_heading की आवश्यकता है? (बहादुर, डिग्री या रेडियन; फ्लोटिंग-पॉइंट या फिक्स्ड-पॉइंट?)
  • क्या कच्चे m_x, m_y, m_z मूल्यों में एक ऑफसेट है जिसे बंद करने की आवश्यकता है?
  • क्या सभी भागों को कोड द्वारा ग्रहण किया गया है? विशेष रूप से, क्या पिच और रोल अक्ष मैग्नेटोमीटर अक्ष के साथ पंक्तिबद्ध है? (क्या m_x को रोल अक्ष के साथ आगे की ओर इंगित करना चाहिए? क्या m_y को पिच अक्ष के साथ दाईं ओर इंगित करना है?)
  • हो सकता है कि कुछ सेंसर मूल्य या कोई अन्य - शायद m_z - को इस कोड में फीड करने से पहले नकार दिया जाए?
  • हो सकता है कि यह कोड एक बाधित या किसी अन्य द्वारा बाधित हो रहा हो जो इसके आंतरिक मूल्यों को दूषित करता है? मुझे एक अलग परियोजना याद आ रही है, जो किसी को एक "डिवाइड" को एक नियमित दिनचर्या में रखने के बाद, कार्यक्रम में हर जगह हर तरह की गणना गणना अक्सर गलत परिणाम देती है।
  • क्या हो सकता है कि इतनी बार फायरिंग बाधित हो कि यह कोड वास्तव में कभी खत्म न हो?

ऐसा प्रतीत होता है कि अन्य लोग बहुत समान कोड पर चर्चा कर रहे हैं: http://diydrones.com/forum/topics/heading-from-3d-magnetometer ; http://diydrones.ning.com/profiles/blogs/dcm-imu-theory-first-draft ; http://aeroquad.com/showthread.php?1138-REVOLUTION__-New-IMU !!! ; http://www.rcgroups.com/forums/showthread.php?t=1436742&page=6 ; http://aeroquad.com/showthread.php?691-Hold-your-heading-with-HMC5843-Magnetometer ; आदि।


मैंने अब देख लिया .. मैं वापस आ जाऊँगा।
रिक 2047

\ 1 / मैं [रोल, पीच, यव और (एमएक्स, माई, एमजेड]] के लिए एक सीएसवी फ़ाइल बना रहा हूं। \ 2 / मुझे उम्मीद है कि MAG_Heading को कम से कम दो क्रमिक चतुर्थांश तक रोल और पिच में बदलाव के साथ नहीं बदलना चाहिए। हेडिंग का मतलब है, अगर यह NE की ओर बढ़ रहा है तो इसे NE को तब तक इंगित करते रहना चाहिए जब तक यह झुकाव के लिए ऊपर या नीचे रोटेशन दिशाओं पर क्षितिज से 90 डिग्री को पार नहीं करता है और बैंकिंग या संयोजन के मामले में समान होना चाहिए।
रिक 2047

\ 3 / सभी आंतरिक गणना रेडियन में की गई हैं और सभी कंसाइन फंक्शंस केवल रेडियंस की अपेक्षा करते हैं। प्रदर्शन के लिए केवल मूल्यों को कॉपी और डिग्री में परिवर्तित किया जाता है। \ 4 / फ्लोटिंग-पॉइंट। \ / 5 / सभी सेंसर संरेखित किए गए हैं और SENSOR_SIGN [9] का उपयोग करके संरेखण के लिए सभी संभावित प्रासंगिक संयोजनों की भी कोशिश की गई है। \ _ 6 / मैं इसे मतदान में कर रहा हूं इसलिए व्यवधान आधारित सभी मुद्दे यहां नहीं होंगे।
रिक 2047

मेरे बिंदु \ 1 के लिए / यहां सभी ग्राफ़ के लिए मैंने संबंधित सीएसवी फ़ाइलों को भी संलग्न किया है। या तुमने कुछ और मांगा। इस अच्छी प्रतिक्रिया के लिए धन्यवाद। :) मैं अपने प्रयास और समय की अनुमति के अनुसार "स्मार्ट तरीके से प्रश्न कैसे पूछूं" लागू करेंगे। :)
रिक 2047

1 / मैं [रोल, पिच, यव और (एमएक्स, माई, एमजेड) (हेडिंग, डिक्लेरेशन) बल्कि काम करूंगा।
रिक 2047

1

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


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