मैं एक संवर्धित वास्तविकता ऐप बना रहा हूं जो फोन को ब्याज के बिंदु का सामना कर रहा है (जो जीपीएस स्थिति फोन पर संग्रहीत है) पर टेक्स्टव्यू को आसानी से देखता है। टेक्स्टव्यू स्क्रीन में रुचि के स्थान पर चित्रित किया गया है।

यह ठीक काम करता है, समस्या यह है कि कंपास और एक्सेलेरोमीटर बहुत "संस्करण" हैं, और सेंसर की अशुद्धता के कारण टेक्स्टव्यू लगातार बाएं और दाएं ऊपर और नीचे जा रहा है।

इसे हल करने का कोई तरीका है?

7
NullPointerException 29 सितंबर 2011, 18:08

4 जवाब

सबसे बढ़िया उत्तर

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

private float[] exponentialSmoothing( float[] input, float[] output, float alpha ) {
        if ( output == null ) 
            return input;
        for ( int i=0; i<input.length; i++ ) {
             output[i] = output[i] + alpha * (input[i] - output[i]);
        }
        return output;
}

अल्फा स्मूथिंग फैक्टर है (0<= अल्फा <=1)। यदि आप अल्फा = 1 सेट करते हैं, तो आउटपुट इनपुट के समान होगा (बिल्कुल भी चिकनाई नहीं)। यदि आप अल्फा = 0 सेट करते हैं, तो आउटपुट कभी नहीं बदलेगा। शोर को दूर करने के लिए, आप बस एक्सेलेरोमीटर और मैग्नेटोमीटर मानों को चिकना कर सकते हैं।

मेरे मामले में, मैं एक्सेलेरोमीटर अल्फा वैल्यू = 0.2 और मैग्नेटोमीटर अल्फा वैल्यू = 0.5 का उपयोग करता हूं। वस्तु अधिक स्थिर होगी और गति काफी अच्छी होगी।

8
variant-45 13 नवम्बर 2011, 14:30

यदि आप एक कदम और आगे बढ़ना चाहते हैं, तो आपको अपने ओरिएंटेशन डेटा या सेंसर फ़्यूज़न के लिए लो-पास फ़िल्टर पर एक नज़र डालनी चाहिए।

अपने ऐप के साथ गुड लक।

JQCorreia

3
JQCorreia 29 सितंबर 2011, 18:14

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

पिछले N मानों का इतिहास बनाएं (इसलिए मान को एक सरणी में सहेजें, वृद्धि सूचकांक, जब आप N तक पहुंचें तो फिर से शून्य से शुरू करें)। फिर आप बस संग्रहीत मूल्यों के अंकगणितीय औसत का उपयोग करते हैं।

1
Knickedi 29 सितंबर 2011, 18:15

जाइरोस्कोप सेंसर रीडिंग का एकीकरण उन्मुखीकरण के अंतिम अनुमान की स्थिरता में एक बड़ा सुधार दे सकता है। यदि आपके डिवाइस में ए जाइरोस्कोप, या अगर आपके पास जाइरोस्कोप नहीं है तो वीडियो देखें।

जाइरोस्कोप का एकीकरण एक पूरक फ़िल्टर का उपयोग करके अपेक्षाकृत सरल तरीके से किया जा सकता है।

0
jap1968 6 पद 2011, 17:48