Каковы номинальные расстояния для iBeacon Far, Near и Immediate

Я экспериментировал с использованием устройств iOS в качестве вещателей и получателей, используя новый API-интерфейс iBeacon в iOS 7.

Документы не вдаются в подробности, на каких расстояниях принимающее устройство должно видеть каждый индикатор приближения, и специально называют их относительными. Экспериментируя с демонстрационным приложением, я наблюдал следующие расстояния (iPhone == приемник, iPad == вещатель):

Далеко - 50 футов?

Вблизи — 2–3 фута

Немедленно – 2 дюйма

Мне они показались очень маленькими, и, возможно, в справочнике по классу CLBeaconRegion есть подсказка, которая позволяет указать уровень сигнала вашего устройства на расстоянии 1 м.

периферийные данные с измеренной мощностью:

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

Параметры

измеренная мощность

Значение индикатора мощности принятого сигнала (RSSI) (измеряется в децибелах) для устройства. Это значение представляет собой измеренную мощность маяка на расстоянии одного метра и используется во время измерения дальности. Укажите nil, чтобы использовать значение по умолчанию для устройства.

Моя любительская калибровка дала -60, которую я выставил и перепроверил:

Далеко — сотни футов

Рядом – ~50 футов

Немедленно – 1 метр (чуть меньше)

Являются ли результаты моего второго теста идеальными для Apple? Они действительно далеки от настроек по умолчанию, которые я испытал в первом тесте.

Или, возможно, я должен считать эти диапазоны калибруемыми в зависимости от моих потребностей?


person Erik Kerber    schedule 25.09.2013    source источник
comment
Заранее извиняюсь за смешение метрических и имперских единиц.   -  person Erik Kerber    schedule 02.10.2013
comment
Вы обязательно должны пройти калибровку, прежде чем запускать его в производство. Даже в непосредственном режиме вы можете поместить руку между двумя устройствами, и статус изменится на «рядом»! Я думаю, вы можете поиграться, отслеживая RSSI каждого маяка и делать правильные вещи каждый раз, когда вы получаете didRangeBeacons.   -  person Maziyar    schedule 24.12.2013
comment
Вы пробовали Гимбал? gigaom.com /2013/12/09/   -  person CC.    schedule 21.02.2014


Ответы (1)


Из того, что я понял об API, так это то, что никогда не бывает гарантии фактического расстояния, вы не должны использовать показания, чтобы считать их точным измерением. Близость скорее используется для определения относительного расстояния между различными маяками, чтобы вы могли реагировать соответствующим образом в зависимости от требований вашего приложения.

С учетом сказанного Apple определенно рисует серую зону в своей документации. Описание measuredPower интригует и легко наводит на мысль, что вы можете использовать это значение для получения точного показания расстояния (после калибровки, конечно). Я просто не думаю, что это так, однако, учитывая вероятность затухания сигнала в этих устройствах со значительно низким энергопотреблением, я не ожидаю, что вы получите постоянно точные показания фактического расстояния.

Из ссылки CLBeacon описание accuracy читается

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

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

Это все моя интерпретация, я не стал так быстро тестировать это в нескольких средах с течением времени, чтобы увидеть, даются ли согласованные показания. Я не уверен, помогает ли это вообще.

person Chris Wagner    schedule 30.09.2013
comment
Я склонен согласиться с вами. Что я действительно хочу знать, так это то, что они намереваются использовать немедленно, так как пользователь должен вытащить свой телефон и поместить его рядом с маяком, или пользователь должен быть достаточно близко к маяку, чтобы дать ему пять. Важно для планирования возможных вариантов использования. - person Erik Kerber; 01.10.2013
comment
Я предполагаю, что это так, посмотрите на новую функцию AppleTV, когда вы прикасаетесь своим iPhone к AppleTV, чтобы настроить его (support.apple.com/kb/HT5900). Могу поспорить, что они используют iBeacons с Непосредственной близостью, чтобы вызвать это. - person Chris Wagner; 02.10.2013
comment
Я предполагаю, что одним из вариантов использования для немедленной оплаты будет оплата, когда вы кладете свой телефон рядом с кассиром, как NFC. Поэтому, если у вас есть приложение для оплаты, и вы знаете, что оно работает только тогда, когда вы находитесь в магазине и закрыты как NFC, это будет более безопасно, чем знать, что вы можете платить, проходя мимо на другой стороне улицы. . - person Maziyar; 24.12.2013
comment
Хм. Возможно ли теоретически использовать несколько iBeacon и триангулировать точное положение пользователя таким образом? Я думаю о создании приложения дополненной реальности без маркеров и думаю об использовании iBeacons как способ более точного определения положения пользователя в трехмерном пространстве. - person gillesv; 12.01.2014
comment
Абсолютно я бы сказал, что возможно использовать методы триангуляции, чтобы получить более точное местоположение. Другая возможность — иметь базу данных геокоординат для конкретных UUID маяков. Затем, когда устройство встречает UUID, оно знает, что оно находится на земном шаре, это происходит путем поиска географических координат в базе данных. - person Chris Wagner; 13.01.2014
comment
@ErikKerber Я думаю, что в этом посте есть недопонимание того, что такое «измеренная мощность». Это оценка, которую маяк отправляет со своим объявлением, в котором говорится: «По моим оценкам, мощность моего сигнала составляет X дБм на расстоянии 1 м». Точное значение зависит от характеристик антенны и других факторов и требует калибровки. Затем приемник сравнивает фактическую мощность сигнала (RSSI) с измеренной мощностью, чтобы оценить расстояние. Это то, на чем основаны оценки расстояния, которые дает Core Location. - person Michael Melanson; 23.03.2015
comment
@gillesv Да, вы можете провести триангуляцию с помощью маяков, чтобы получить оценки положения. При отсутствии ошибок вам потребуется три расстояния, чтобы однозначно определить позицию, поэтому добавление четвертого (или более) маяка позволит вам выполнить коррекцию ошибок, что может улучшить ваши оценки. Но есть несколько способов исправить ошибку. Например, одним из способов может быть получение оценки положения каждой тройки маяков (ABC, BCD, ACD, ABD) и нахождение центроида/среднего геометрического этих точек. Но для этого вам понадобится плотное расположение маяков, и это все равно может дать сбой из-за некоторых видов помех. - person Michael Melanson; 23.03.2015
comment
@ChrisWagner, просто возьми вышку сотовой связи! :) - person koconder; 07.08.2015