Ibeacon डिस्टेंसिंग को समझना


113

Ibeacon (बीकन / ब्लूटूथ-लोवरेंगी / BLE) के साथ कितना अंतर है, इसकी एक मूल अवधारणा को समझने की कोशिश कर सकते हैं। क्या वास्तव में कोई ibeacon कितनी दूर तक माप सकता है, इस पर कोई सही दस्तावेज है। आइए हम कहते हैं कि मैं 300 फीट दूर हूं ... क्या एक आइबेकॉन के लिए यह पता लगाना संभव है?

विशेष रूप से v4 और के लिए। v5 और iOS के साथ लेकिन आम तौर पर कोई BLE डिवाइस।

ब्लूटूथ फ्रीक्वेंसी और थ्रूपुट इसे कैसे प्रभावित करता है? बीकन डिवाइस अंतर्निहित BLE पर दूरी को बढ़ा सकते हैं या सुधार सकते हैं?

अर्थात

               | Range       | Freq       | T/sec      | Topo       |      
               |–—–––––––––––|–—––––––––––|–—––––––––––|–—––––––––––|
Bluetooth v2.1 | Up to 100 m | < 2.481ghz | < 2.1mbit  | scatternet |
               |-------------|------------|------------|------------|
Bluetooth v4   |     ?       | < 2.481ghz | < 305kbit  | mesh       |
               |-------------|------------|------------|------------|
Bluetooth v5   |     ?       | < 2.481ghz | < 1306kbit | mesh       |

जवाबों:


223

आईओएस द्वारा प्रदान की गई दूरी का अनुमान कैलिब्रेटेड ट्रांसमीटर पावर (txPower) पर बीकन सिग्नल स्ट्रेंथ (आरएसआईआई) के अनुपात पर आधारित है। TxPower 1 मीटर की दूरी पर rssi में ज्ञात मापित संकेत शक्ति है। प्रत्येक बीकन को सटीक दूरी अनुमान लगाने के लिए इस txPower मूल्य के साथ कैलिब्रेट किया जाना चाहिए।

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

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

ध्यान दें कि यहां "सटीकता" शब्द मीटर में दूरी के लिए आईओएस बोलता है। यह सूत्र सही नहीं है, लेकिन यह मोटे तौर पर आईओएस क्या करता है इसका अनुमान लगाता है।

protected static double calculateAccuracy(int txPower, double rssi) {
  if (rssi == 0) {
    return -1.0; // if we cannot determine accuracy, return -1.
  }

  double ratio = rssi*1.0/txPower;
  if (ratio < 1.0) {
    return Math.pow(ratio,10);
  }
  else {
    double accuracy =  (0.89976)*Math.pow(ratio,7.7095) + 0.111;    
    return accuracy;
  }
}   

नोट: मान : .० ९९ ,६, calculated.95० ९ ५ और ०.१११ तीनों स्थिरांक हैं जिनकी गणना हमारे मापा डेटा बिंदुओं के लिए सबसे अच्छा फिट वक्र को हल करते समय की जाती है । YMMV


4
महान जवाब और कोड डेविड। TxPower मूल्य कहाँ से आता है? क्या यह ग्राहक (प्राप्त) पक्ष पर किया गया अंशांकन मूल्य है? या यह एक मीट्रिक है जिसे आप एक बीकन से प्राप्त कर सकते हैं?
rmooney

14
0.89976, 7.7095 और 0.111 मान क्या हैं?
मल्हल

4
इस समीकरण के साथ मैं 84457991114.574738 के साथ समाप्त होता हूं जब मेरे फोन से बीकन 1/4 पर बिछ रहा है।
jdog

1
एडिडिस्टोन एक 0 मीटर संदर्भ बिंदु है, yrs। विभाजन बनाम घटाव है क्योंकि हम इस मामले में एक लघुगणक समारोह का उपयोग नहीं कर रहे हैं। घटाना हम उपयोग किए गए वक्र फिट के लिए काम नहीं करते थे।
दाविदयोंग

1
@davidgyoung क्या आप सबसे अच्छा वक्र फिट सूत्र या कुछ भी साझा कर सकते हैं जिसके माध्यम से हम अपने डिवाइस के लिए इन 3 मूल्यों का पता लगा सकते हैं?
परेश मेयानी

77

मैं बहुत अच्छी तरह से iBeacons के साथ सटीकता / rssi / निकटता के मामले की जांच कर रहा हूं और मुझे वास्तव में लगता है कि इंटरनेट के सभी संसाधन (ब्लॉग, StackOverflow में पोस्ट) गलत हैं।

davidgyoung (स्वीकृत उत्तर,> 100 अपवोट्स) कहते हैं:

ध्यान दें कि यहां "सटीकता" शब्द मीटर में दूरी के लिए आईओएस बोलता है।

दरअसल, ज्यादातर लोग ऐसा कहते हैं लेकिन मुझे पता नहीं क्यों! प्रलेखन यह बहुत स्पष्ट करता है कि CLBeacon.pro निकटता:

मीटर में एक सिग्मा क्षैतिज सटीकता का संकेत देता है।एक ही निकटता के मूल्य के साथ बीकन के बीच अंतर करने के लिए इस संपत्ति का उपयोग करें। बीकन के लिए एक सटीक स्थान की पहचान करने के लिए इसका उपयोग न करें। आरएफ हस्तक्षेप के कारण सटीकता मूल्यों में उतार-चढ़ाव हो सकता है।

मुझे दोहराने दो: मीटर में एक सिग्मा सटीकता । इस विषय पर Google के सभी 10 शीर्ष पृष्ठों में केवल डॉक्स से उद्धरण में "एक सिग्मा" शब्द है, लेकिन उनमें से कोई भी शब्द का विश्लेषण नहीं करता है, जो इसे समझने के लिए महत्वपूर्ण है।

बहुत महत्वपूर्ण है यह स्पष्ट करना कि वास्तव में एक सिग्मा सटीकता क्या है । इसके बाद शुरू होने वाले URL: http://en.wikipedia.org/wiki/Standard_error , http://en.wikipedia.org/wiki/Unearchty

भौतिक दुनिया में, जब आप कुछ माप करते हैं, तो आपको हमेशा अलग-अलग परिणाम मिलते हैं (क्योंकि शोर, विरूपण, आदि) और बहुत बार परिणाम गौसियन वितरण बनाते हैं। गाऊसी वक्र का वर्णन करने वाले दो मुख्य पैरामीटर हैं:

  1. माध्य (जो समझना आसान है, यह उस मूल्य का है जिसके लिए वक्र का शिखर होता है)।
  2. मानक विचलन, जो कहता है कि वक्र कितना चौड़ा या संकीर्ण है। संकरा वक्र, बेहतर सटीकता, क्योंकि सभी परिणाम एक-दूसरे के करीब हैं। यदि वक्र चौड़ा है और खड़ी नहीं है, तो इसका मतलब है कि एक ही घटना के माप एक दूसरे से बहुत भिन्न होते हैं, इसलिए माप में एक खराब गुणवत्ता होती है।

एक सिग्मा यह बताने का एक और तरीका है कि गाढ़ा / चौड़ा गॉसियन वक्र कितना संकीर्ण है।
यह केवल यह कहता है कि यदि माप का मतलब X है, और एक सिग्मा then है, तो 68% सभी मापों के बीच होगा X - σऔरX + σ

उदाहरण। हम दूरी को मापते हैं और परिणामस्वरूप एक गौसियन वितरण प्राप्त करते हैं। मतलब 10 मी। यदि If 4m है, तो इसका मतलब है कि 68% माप 6m और 14m के बीच थे।

जब हम बीकन के साथ दूरी को मापते हैं, तो हमें आरएसएसआई और 1-मीटर अंशांकन मूल्य मिलता है, जो हमें मीटरों में दूरी मापने की अनुमति देता है। लेकिन हर माप अलग-अलग मान देता है, जो गाऊसी वक्र बनाते हैं। और एक सिग्मा (और सटीकता) माप की सटीकता है, दूरी नहीं!

यह भ्रामक हो सकता है, क्योंकि जब हम बीकन को और दूर ले जाते हैं, तो एक सिग्मा वास्तव में बढ़ता है क्योंकि सिग्नल खराब होता है। लेकिन विभिन्न बीकन शक्ति-स्तरों के साथ हम वास्तव में बदलती दूरी के बिना पूरी तरह से अलग सटीकता मूल्य प्राप्त कर सकते हैं। उच्च शक्ति, कम त्रुटि।

एक ब्लॉग पोस्ट है जो इस मामले का पूरी तरह से विश्लेषण करता है: http://blog.shinetech.com/2014/02/17/the-beacon-experiments-low-energy-bluaxy-devices-in-action/

लेखक की एक परिकल्पना है कि सटीकता वास्तव में दूरी है। उनका दावा है कि Kontakt.io से बीकन दोषपूर्ण बीक्युस हैं जब उन्होंने अधिकतम मूल्य तक शक्ति बढ़ा दी, सटीकता मूल्य 1, 5 और यहां तक ​​कि 15 मीटर के लिए बहुत छोटा था। शक्ति बढ़ाने से पहले, सटीकता दूरी के मूल्यों के काफी करीब थी। मैं व्यक्तिगत रूप से सोचता हूं कि यह सही है, क्योंकि उच्च शक्ति का स्तर, हस्तक्षेप का कम प्रभाव। और यह अजीब है कि एस्टिमोट बीकन इस तरह से व्यवहार क्यों नहीं करते हैं।

मैं यह नहीं कह रहा कि मैं 100% सही हूं, लेकिन iOS डेवलपर होने के अलावा मेरे पास वायरलेस इलेक्ट्रॉनिक्स में डिग्री है और मुझे लगता है कि हमें डॉक्स से "एक सिग्मा" शब्द को नजरअंदाज नहीं करना चाहिए और मैं इसके बारे में चर्चा शुरू करना चाहूंगा।

यह संभव हो सकता है कि सटीकता के लिए ऐप्पल का एल्गोरिदम सिर्फ हालिया माप एकत्र करता है और उनमें से गॉसियन वितरण का विश्लेषण करता है। और इस तरह यह सटीकता निर्धारित करता है। मैं इस संभावना को बाहर नहीं करूंगा कि वे पिछले वितरण दूरी मानों को रीसेट करने के लिए यह जानने के लिए कि क्या उपयोगकर्ता चल रहा है (और कितनी तेजी से) जानकारी प्रपत्र एक्सेलेरोमीटर का उपयोग करता है क्योंकि वे निश्चित रूप से बदल गए हैं।


"सिग्मा" सहसंबंध के लिए उत्कृष्ट परिचय। यह भी एक geek (यहां तक ​​कि एक Apple geek) चर नाम "सटीकता" का उपयोग करने के लिए अजीब होगा जब उनका मतलब "दूरी" था। प्रत्येक RSSI "दूरी" या "स्थान" निर्धारण "त्रुटि का मार्जिन" (उदाहरण के लिए, आप यहां +/- यह बहुत हैं) के साथ आता है। तो यह समझ में आता है कि उनके पुस्तकालय में "दूरी" के लिए एक फ़ंक्शन और "सटीकता" के लिए एक फ़ंक्शन होगा।
जेसी चिशोल्म

@ r00dY एक शानदार स्पष्टीकरण जो मुझे कहना चाहिए। अब, बस एक सवाल अगर आप मदद कर सकते हैं। मेरे पास बीकन के लिए 1 मी, 2 मी ... 15 मी, ... 20 मी और इतने पर मापा गया कॉलबेरेशन डेटा है। मेरे पास प्रत्येक दूरी के लिए औसत दूरी मान है। अब, स्थान प्रबंधक प्रतिनिधि से जब हमें बीकन डेटा प्राप्त होता है जैसे बीकन प्रमुख, लघु, आरएसआई, आदि। तो क्या यह उचित है कि मैंने उपरोक्त अंशांकन से प्राप्त दूरी का उपयोग किया है? कृपया सुझाव दें, किसी भी मदद की सराहना की जाएगी। अग्रिम में धन्यवाद।
अलकेश फुदानी

Apple accuracyदोनों का एक फ़ंक्शन है rssiऔर tx power। यह पूरी तरह से असंभव नहीं है कि एस्टीमोट ने accuracyफ़ंक्शन को रिवर्स करने के लिए इंजीनियर का फैसला किया और tx powerऐसे मान प्रदान करना शुरू किया जो पढ़ने accuracyसे दूरी का अनुमान लगाते हैं। यह दूरी का अनुमान लगाने के लिए एक सरल डेवलपर अनुभव प्रदान करता है, लेकिन Apple की परिभाषा को तोड़ देता है accuracy। अन्य ब्रांड Apple की परिभाषा के बारे में अधिक सच हो सकते हैं accuracyऔर वास्तव में एक रिवर्स-इंजीनियर मूल्य के बजाय "1 मीटर अनुमान" प्रदान करते हैं जो accuracyअनुमान दूरी बनाता है ।
सेंसफुल

63

IBeacon आउटपुट पावर को 1 मीटर की दूरी पर मापा (कैलिब्रेटेड) किया जाता है। मान लीजिए कि यह -59 dBm (सिर्फ एक उदाहरण) है। IBeacon में इस नंबर को इसके LE विज्ञापन के भाग के रूप में शामिल किया जाएगा।

श्रवण उपकरण (iPhone, आदि), डिवाइस के RSSI को मापेगा। उदाहरण के लिए, मान लें कि यह है, -72 dBm।

चूँकि ये संख्याएँ dBm में हैं, शक्ति का अनुपात वास्तव में dB में अंतर है। इसलिए:

ratio_dB = txCalibratedPower - RSSI

इसे रैखिक अनुपात में बदलने के लिए, हम dB के लिए मानक सूत्र का उपयोग करते हैं:

ratio_linear = 10 ^ (ratio_dB / 10)

यदि हम ऊर्जा के संरक्षण को मानते हैं, तो सिग्नल की शक्ति को 1 / r ^ 2 के रूप में गिरना चाहिए। इसलिए:

power = power_at_1_meter / r^2। आर के लिए हल, हम प्राप्त करते हैं:

r = sqrt(ratio_linear)

जावास्क्रिप्ट में, कोड इस तरह दिखेगा:

function getRange(txCalibratedPower, rssi) {
    var ratio_db = txCalibratedPower - rssi;
    var ratio_linear = Math.pow(10, ratio_db / 10);

    var r = Math.sqrt(ratio_linear);
    return r;
}

ध्यान दें, कि, यदि आप एक स्टील की इमारत के अंदर हैं, तो शायद आंतरिक प्रतिबिंब होंगे जो 1/2 ^ 2 की तुलना में सिग्नल क्षय को धीमा बनाते हैं। यदि सिग्नल मानव शरीर (पानी) से होकर गुजरता है तो सिग्नल को देखा जाएगा। यह बहुत संभावना है कि सभी दिशाओं में एंटीना का समान लाभ नहीं है। कमरे में धातु की वस्तुएं अजीब हस्तक्षेप पैटर्न बना सकती हैं। आदि, ... YMMV।


जिज्ञासा से बाहर: कैसे ratio_dB = txCalibratedPower - RSSIकाम करता है? चूँकि दोनों उपाय dBm में हैं, इसलिए मैं इसके परिणाम dBm में भी मानूंगा?
ब्लैकवुल्फ


3

IBeacon- स्वरूपित विज्ञापन पैकेट के स्रोत की दूरियों का अनुमान सिग्नल पथ क्षीणन से मापा जाता है जो मापी गई सिग्नल शक्ति की तुलना दावा की गई संचार शक्ति से करता है जिसे ट्रांसमीटर को विज्ञापन डेटा में एन्कोड करना चाहिए।

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

जैसा कि जियारू बताते हैं, 160 फीट शायद इच्छित सीमा से परे है, लेकिन इसका मतलब यह नहीं है कि एक पैकेट कभी नहीं मिलेगा, केवल यह उम्मीद नहीं करनी चाहिए कि यह उस दूरी पर काम करेगा।


1

यह संभव है, लेकिन यह आपको प्राप्त होने वाले बीकन के बिजली उत्पादन, आस-पास के अन्य आरएफ स्रोतों, बाधाओं और अन्य पर्यावरणीय कारकों पर निर्भर करता है। सबसे अच्छी बात यह है कि आप जिस वातावरण में रुचि रखते हैं, उसमें इसे आजमाएं।


1

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

आप ग्राहकों को हताशा कम करने के लिए "कृपया अपना फोन यहां रखने के लिए" निर्देश देते हुए बहुत सारे समाधान देखने जा रहे हैं।

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