Оценка расстояния до iBeacon на iOS

Я пытаюсь оценить расстояние от устройства iOS до iBeacon. Я знаю, что оценка расстояния не очень точна, и я также знаю эту формулу:

https://electronics.stackexchange.com/questions/83354/calculate-distance-from-rssi< /а>

В результате некоторых исследований я обнаружил, что реклама iBeacon BLE на самом деле содержит данные, представляющие значение калибровки. То есть, RSSI, определенный на расстоянии 1 метра, фактически транслируется маяком для всеобщего обозрения.

Теперь я думаю, что iOS должна внутренне использовать эту информацию для определения категорий ближнего, дальнего, непосредственного и неизвестного расстояния, но я не знаю никакого способа получить прямой доступ к этому 1-метровому RSSI.

Мой вопрос прост: есть ли способ получить оценку расстояния между устройством iOS и маяком БЕЗ предварительного сохранения значения калибровки 1 метра на устройстве iOS?

Некоторые люди говорят, что поле «точность» класса CLBeacon на самом деле является измерением расстояния до маяка. Документация не поддерживает это утверждение, вот что там написано:

точность Точность значения близости, измеренная в метрах от маяка. (только для чтения)

@property (readonly, nonatomic) CLLocationAccuracy accuracy;

Обсуждение Указывает точность по горизонтали в одну сигму в метрах. Используйте это свойство, чтобы различать маяки с одинаковым значением близости. Не используйте его для определения точного местоположения маяка. Значения точности могут колебаться из-за радиопомех.

Отрицательное значение этого свойства означает, что фактическая точность не может быть определена.


person fjlksahfob    schedule 30.04.2014    source источник
comment
Возможный дубликат Понимание дистанцирования ibeacon   -  person Senseful    schedule 29.07.2018


Ответы (2)


Есть ли способ получить оценку расстояния между устройством iOS и маяком БЕЗ предварительного сохранения значения калибровки 1 метра на устройстве iOS?

ДА, вы просто читаете поле точности CLBeacon, как и предполагали. Это оценка расстояния до маяка в метрах.

В этой оценке используется незадокументированный расчет, основанный на измерениях RSSI (вероятно, 30-секундное скользящее среднее, возможно, с отбрасыванием выбросов) в сочетании с калибровочным значением RSSI на 1 метре, встроенным в рекламу iBeacon. Порт этого вычисления для Android показан здесь.

И нет, невозможно прочитать значение калибровки из приложения. iOS закрывает его, что не позволяет видеть детали рекламы iBeacon Bluetooth LE. См. здесь детальное объяснение.

person davidgyoung    schedule 30.04.2014
comment
хм, хорошо, это где-нибудь официально задокументировано? - person fjlksahfob; 30.04.2014
comment
Нет, я не думаю, что видел какую-либо официальную документацию Apple, в которой говорилось бы, что значение точности — это расчетное расстояние в метрах. Вероятно, это связано с тем, что Apple не одобряет его прямое использование для этой цели из-за большого количества шума в оценке. Apple рекомендует использовать поле близости, которое делит оценку расстояния на категории «непосредственно/близко/далеко», что, следовательно, менее изменчиво. Самое близкое к официальному определению точности как расстояния в метрах, которое я видел, находится на форуме поддержки, где оно было описано как таковое сотрудником Apple. - person davidgyoung; 30.04.2014
comment
Я отследил сообщения, о которых вы говорили: devforums.apple.com/message/934466#934466 Мы не говорим, что вы находитесь ровно в XX метрах. Вместо этого мы говорим, что вы находитесь рядом с маяком в пределах некоторого диапазона точности. Он продолжает говорить о близком/далеком/непосредственном вещах и говорит, что непосредственно ‹ 0,5 м и близко = 1-3 м devforums.apple.com/message/908989#908989 Я думаю, они говорят, что нет реального пути чтобы быть точным в отношении расстояния, но они также не обязуются дать ответ. Они не говорят, что расстояние и точность — одно и то же. - person fjlksahfob; 30.04.2014
comment
Точность - это не расстояние, это точность расстояния (близости) - person Saad; 29.07.2016

2 июня Apple выпустила новый документ iBeacon. 2014, в котором говорится:

При создании приложения, использующего либо GPS, либо маяк, важно учитывать эту точность. Значения, сообщаемые объектами Core Location (свойство horizontalAccuracy в классе CLLocation или свойство точности в классе CLBeacon), указывают на этот уровень неопределенности или допустимую погрешность. Оба измеряются в метрах. Чем выше значение, тем ниже достоверность положения устройства или маяка. Имейте в виду, что в зависимости от физического окружения низкая точность может быть невозможна.

Я подозреваю, что это показатель «уверенности» Apple при чтении их значений CLProximity. Я интерпретирую это как получение чего-то вроде:

CLProximityNear со значением точности 5; Apple точно определяет ваше местоположение с погрешностью в 5 м.

Общее мнение, которое я получаю от своего общего анализа источников, заключается в том, что использование технологии маяка для приближения расстояния, вероятно, не является сильной стороной технологии.

EDIT: Chaise Hocking от Shine Technologies в Мельбурне имеет содержательный пост в блоге, в котором есть некоторые эксперименты и результаты, касающиеся свойства accuracy.

person brontus    schedule 10.06.2014