ibeacon 간격 이해


113

ibeacon (beacon / Bluetooth-lowenergy / BLE)으로 거리를 두는 방법에 대한 기본 개념을 파악하려고합니다. ibeacon이 얼마나 정확하게 측정 할 수 있는지에 대한 실제 문서가 있습니까? 내가 300 피트 떨어져 있다고 가정 해 봅시다 ... 아이 비콘이 이것을 감지 할 수 있습니까?

특히 v4 및. v5 및 iOS이지만 일반적으로 모든 BLE 장치.

Bluetooth 주파수 및 처리량은 이에 어떤 영향을 줍니까? 비콘 장치가 기본 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

iOS에서 제공하는 거리 추정치는 보정 된 송신기 전력 (txPower)에 대한 비콘 신호 강도 (rssi)의 비율을 기반으로합니다. txPower는 1 미터 거리에서 rssi 단위로 측정 된 알려진 신호 강도입니다. 정확한 거리 추정을 허용하려면 각 비콘을이 txPower 값으로 보정해야합니다.

거리 추정치는 유용하지만 완벽하지는 않으며 다른 변수를 제어해야합니다. 반드시이 될 복잡성 및 제한 사항에 읽어 이를 오용 전에.

Android iBeacon 라이브러리를 구축 할 때 iOS CoreLocation 소스 코드를 사용할 수 없기 때문에 독자적인 알고리즘을 만들어야했습니다. 우리는 알려진 거리에서 많은 rssi 측정을 측정 한 다음 데이터 포인트와 일치하는 최적의 곡선을 만들었습니다. 우리가 생각 해낸 알고리즘은 아래에 Java 코드로 표시됩니다.

여기서 "정확도"라는 용어는 iOS가 미터 단위의 거리를 의미합니다. 이 공식은 완벽하지는 않지만 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;
  }
}   

주 : 값 0.89976, 7.7095 및 0.111로는 가장 적합한 곡선 풀 때 계산 세 상수 우리의 측정 된 데이터 포인트. YMMV


4
훌륭한 대답과 코드 David. txPower 값의 출처는 어디입니까? 클라이언트 (수신) 측에서 수행되는 교정 값입니까? 아니면 비콘에서 얻을 수있는 메트릭입니까?
rmooney 2014 년

14
0.89976, 7.7095 및 0.111 값은 무엇입니까?
malhal

4
이 방정식을 사용하면 비콘이 전화기에서 1/4에 놓일 때 84457991114.574738이됩니다.
jdog 2014

1
Eddystone은 0m 기준점입니다. 나눗셈 대 빼기는이 경우 로그 함수를 사용하지 않기 때문입니다. 우리가 사용한 곡선 맞춤에 대해 빼기가 작동하지 않았습니다.
davidgyoung

1
@davidgyoung 최고의 커브 핏 공식 또는 장치에 대한이 3 가지 값을 찾을 수있는 어떤 것을 공유해 주시겠습니까?
Paresh Mayani

77

저는 iBeacons의 정확성 / rssi / 근접성 문제를 매우 철저히 조사하고 있으며 인터넷의 모든 리소스 (블로그, StackOverflow의 게시물)가 잘못되었다고 생각합니다.

davidgyoung (수락 된 답변,> 100 개 찬성) 말한다 :

여기서 "정확도"라는 용어는 iOS가 미터 단위의 거리를 의미합니다.

사실, 대부분의 사람들이 이것을 말하지만 나는 이유를 모릅니다! 문서에 따르면 CLBeacon.proximity는 다음과 같이 매우 명확합니다.

1 시그마 수평 정확도를 미터 단위로 나타냅니다. 이 속성을 사용하여 근접도 값이 동일한 비콘을 구분합니다. 비콘의 정확한 위치를 식별하는 데 사용하지 마십시오. RF 간섭으로 인해 정확도 값이 변동될 수 있습니다.

반복하겠습니다. 1 시그마 정확도 (미터 단위) . 주제에 관한 구글의 상위 10 개 페이지는 모두 문서에서 인용 한 "하나의 시그마"라는 용어를 가지고 있지만, 이들 중 어느 것도 용어를 분석하지 않아서이 용어를 이해하는 데 핵심이됩니다.

실제로 1 시그마 정확도 가 무엇인지 설명하는 것이 매우 중요 합니다 . 시작할 URL : http://en.wikipedia.org/wiki/Standard_error , http://en.wikipedia.org/wiki/Uncertainty

물리적 세계에서 일부 측정을 수행하면 항상 다른 결과 (노이즈, 왜곡 등으로 인해)를 얻고 결과가 가우스 분포를 형성하는 경우가 매우 많습니다. 가우스 곡선을 설명하는 두 가지 주요 매개 변수가 있습니다.

  1. 평균 (이해하기 쉬운 곡선의 피크가 발생하는 값).
  2. 표준 편차는 곡선이 얼마나 넓거나 좁은지를 나타냅니다. 모든 결과가 서로 가깝기 때문에 곡선이 좁을수록 정확도가 높아집니다. 곡선이 넓고 가파르 지 않은 경우 동일한 현상의 측정 값이 서로 크게 다르므로 측정 품질이 좋지 않습니다.

하나의 시그마 는 가우시안 곡선이 얼마나 좁거나 넓은지를 설명하는 또 다른 방법입니다.
측정의 평균이 X이고 하나의 시그마 가 σ이면 모든 측정의 68 %가 ~ 사이 X - σ에있게 X + σ됩니다.

예. 거리를 측정하고 그 결과 가우스 분포를 얻습니다. 평균은 10m입니다. σ가 4m이면 측정의 68 %가 6m에서 14m 사이에 있음을 의미합니다.

비콘으로 거리를 측정 할 때 RSSI와 1 미터 교정 값을 얻습니다.이를 통해 미터 단위로 거리를 측정 할 수 있습니다. 그러나 모든 측정은 가우시안 곡선을 형성하는 다른 값을 제공합니다. 그리고 하나의 시그마 (및 정확도)는 거리가 아니라 측정의 정확도입니다!

신호가 더 나쁘기 때문에 비콘을 더 멀리 이동할 때 실제로 하나의 시그마 가 증가하기 때문에 오해의 소지가있을 수 있습니다 . 그러나 다른 비콘 전력 수준을 사용하면 실제로 거리를 변경하지 않고도 완전히 다른 정확도 값을 얻을 수 있습니다. 전력이 높을수록 오류가 적습니다.

문제를 철저히 분석하는 블로그 게시물이 있습니다. http://blog.shinetech.com/2014/02/17/the-beacon-experiments-low-energy-bluetooth-devices-in-action/

저자는 정확도가 실제로 거리라는 가설을 가지고 있습니다. 그는 Kontakt.io의 비콘이 전력을 최대 값으로 증가 시켰을 때 결함이 있다고 주장합니다. 정확도 값은 1, 5, 심지어 15 미터에서 매우 작았습니다. 힘을 높이기 전에 정확도는 거리 값에 매우 가깝습니다. 저는 개인적으로 그것이 맞다고 생각합니다. 전력 레벨이 높을수록 간섭의 영향이 적기 때문입니다. 그리고 Estimote 비콘이 이런 식으로 작동하지 않는 이유가 이상합니다.

내가 100 % 옳다는 말은 아니지만 iOS 개발자 외에는 무선 전자 공학 학위를 가지고 있으며 문서에서 "하나의 시그마"라는 용어를 무시해서는 안된다고 생각하며 이에 대해 논의를 시작하고 싶습니다.

정확도에 대한 Apple의 알고리즘은 최근 측정 값을 수집하고 그에 대한 가우스 분포를 분석 할 수 있습니다. 이것이 정확성을 설정하는 방법입니다. 나는 그들이 확실히 변경 되었기 때문에 이전 분포 거리 값을 재설정하기 위해 사용자가 움직이는 지 (그리고 얼마나 빨리) 이동 하는지를 감지하기 위해 정보 양식 가속도계를 사용할 가능성을 배제하지 않을 것입니다.


"시그마"상관 관계에 대한 훌륭한 소개. 또한 괴짜 (심지어 Apple 괴짜)가 "거리"를 의미 할 때 변수 이름 "정확도"를 사용하는 것은 이상 할 것입니다. 모든 RSSI "거리"또는 "위치"결정에는 "오류 한계"가 있습니다 (예 : 여기에 +/-이 정도). 따라서 라이브러리에 "거리"기능과 "정확도"기능이 모두있을 것입니다.
Jesse Chisholm

@ r00dY 내가 말해야 할 훌륭한 설명입니다. 자, 당신이 도울 수 있는지 질문하십시오. 1m, 2m ... 15m, ... 20m 등에서 측정 된 비콘에 대한 callibration 데이터가 있습니다. 각 거리에 대한 평균 거리 값이 있습니다. 이제 위치 관리자 델리게이트에서 beacon major, minor, rssi 등과 같은 비콘 데이터를 얻을 때 위에서 설명한 보정에서 얻은 거리를 사용하는 것이 좋습니까? 어떤 도움을 주시면 감사하겠습니다. 미리 감사드립니다.
Alkesh Fudani

Apple accuracyrssitx power. Estimote가 accuracy함수 를 리버스 엔지니어링하기로 결정 tx power하고 판독 accuracy값이 거리를 추정 하는 값을 제공하기 시작한 것은 완전히 불가능한 것은 아닙니다 . 이것은 거리를 추정하는 데 더 간단한 개발자 경험을 제공하지만 Apple의 accuracy. 다른 브랜드는 거리 accuracyaccuracy추정 하는 역 설계된 값보다 Apple의 정의에 더 충실 하고 실제로 "1 미터 추정치"를 제공 할 수 있습니다.
Senseful

63

iBeacon 출력 전력은 1 미터 거리에서 측정 (보정)됩니다. 이것이 -59dBm이라고 가정 해 봅시다 (예제 일뿐입니다). iBeacon은 LE 광고의 일부로이 번호를 포함합니다.

청취 장치 (iPhone 등)는 장치의 RSSI를 측정합니다. 예를 들어 이것이 -72dBm이라고 가정 해 봅시다.

이 숫자는 dBm 단위이므로 전력 비율은 실제로 dB의 차이입니다. 그래서:

ratio_dB = txCalibratedPower - RSSI

이를 선형 비율로 변환하기 위해 dB에 대한 표준 공식을 사용합니다.

ratio_linear = 10 ^ (ratio_dB / 10)

에너지 보존을 가정하면 신호 강도는 1 / r ^ 2로 떨어집니다. 그래서:

power = power_at_1_meter / r^2. r을 구하면 다음을 얻습니다.

r = sqrt(ratio_linear)

Javascript에서 코드는 다음과 같습니다.

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 / r ^ 2보다 느리게 만드는 내부 반사가있을 수 있습니다. 신호가 인체 (물)를 통과하면 신호가 감쇠됩니다. 안테나가 모든 방향에서 동일한 이득을 갖지 못할 가능성이 큽니다. 실내의 금속 물체는 이상한 간섭 패턴을 생성 할 수 있습니다. 기타 등등 ... YMMV.


호기심에서 : 어떻게 ratio_dB = txCalibratedPower - RSSI작동합니까? 두 측정 모두 dBm 단위이므로 결과도 dBm 단위라고 가정합니까?
BlackWolf 2015 년


3

iBeacon 형식의 광고 패킷 소스까지의 거리는 측정 된 수신 신호 강도를 송신기가 광고 데이터에서 인코딩해야하는 청구 된 전송 전력과 비교하여 계산 된 신호 경로 감쇠로부터 추정 됩니다.

이와 같은 경로 손실 기반 체계는 근사치 일 뿐이며 안테나 각도, 중간 물체 및 아마도 잡음이있는 RF 환경과 같은 요인에 따라 달라질 수 있습니다. 이에 비해 실제로 거리 측정 용으로 설계된 시스템 (GPS, 레이더 등)은 전파 시간의 정확한 측정에 의존하며 동일한 경우 신호의 위상을 검사합니다.

Jiaru가 지적했듯이 160 피트는 아마도 의도 된 범위를 벗어 났을 것입니다. 그러나 이것이 반드시 패킷이 통과 하지 못할 것이라는 것을 의미하지는 않으며 그 거리에서 작동 할 것으로 기 대해서는 안됩니다.


1

가능하지만 수신하는 비콘의 전력 출력, 근처의 다른 RF 소스, 장애물 및 기타 환경 요인에 따라 다릅니다. 가장 좋은 방법은 관심있는 환경에서 사용해 보는 것입니다.


1

같은 위치에 여러 대의 전화기와 비콘이 있으면 높은 정확도로 근접성을 측정하기가 어려울 것입니다. Android 'b 및 l 블루투스 르 스캐너'앱을 사용하여 여러 비콘에 대한 신호 강도 (거리) 변화를 시각화하면 모든 형태의 일관된 근접 측정을 제공하는 데 복잡한 적응 알고리즘이 필요할 수 있음을 빠르게 발견 할 수 있습니다. .

고객의 불만을 줄이기 위해 단순히 사용자에게 "휴대 전화를 여기에 두십시오"라고 지시하는 많은 솔루션을 보게 될 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.