Как повысить стабильность и точность данных с помощью маяка Gimbal для позиционирования в помещении?

В Android, как улучшить стабильность обнаружения нескольких маяков? Я использую маяки Gimbal для внутреннего позиционирования. Подходит ли BLE для доступа к данным о местоположении в помещении?


person JellyBean    schedule 14.11.2014    source источник


Ответы (2)


Я много работал над этим, так как разместил маяки в коридоре, полном конференц-залов, и все они находились в непосредственной близости.

Во-первых, рекомендую разместить маяки на потолке. Сигнал должен передаваться под углом вниз. Это немного снижает помехи. Имейте в виду, что это не может быть решением для каждой комнаты, но в моей ситуации с комнатами, расположенными близко друг к другу, это значительно помогло.

Затем обязательно используйте хороший вариант для сглаживания сигнала. Gimbal SDK работает над концепцией прибытия и отправления. Эти события будут запускаться только в том случае, если сигнал находится в пределах определенного порога. Сглаживание сигнала предотвратит ситуации, когда один маяк сообщает о сигнале -56, а затем в следующую секунду перескакивает на -75. Он использует алгоритм усреднения, который сглаживает сигналы, чтобы предотвратить такой огромный отчетный разрыв. Это предотвращает ложные прибытия и отправления из-за огромных всплесков в сообщаемых сигналах.

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

Если вы хотите узнать больше о Gimbal SDK с Proximity для Android, я подробно рассказал об этом. Вы можете просмотреть эту статью здесь. Однако, если вы используете последний SDK от Gimbal, они обновили свой API и удалили VisitManager. Таким образом, моя статья актуальна только для их SDK до версии 1.33. В будущем я напишу новую статью об их обновленном SDK, над которым активно работаю сейчас.

person Daniel Eagle    schedule 28.01.2015

На мой взгляд, ответ таков: да, BLE подходит для внутренней локализации.

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

  1. Простой: скользящее среднее. Просто усредните последние 3/10/30 показаний. Посмотрите, что работает лучше всего.

Or:

  1. Более сложный, но более настраиваемый: фильтр RC. Алгоритм мотыги такой:

    // FOR EACH new reading from the BLE do this:
    
    // fc = cutoff frequency [Hz]; i.e.:
    // how frequent do you want to detect the BLE coming and parting from the receptor
    // this depends on the range and speed of people (see table below)
    var real fc := 0.21  // <-- configure this!
    // a constant [-], also pi = 3.1415
    var real RC := 1 / (2*pi + fc) // <-- OR configure this from the table below!
    // dt = time between two consecutive readings [s]
    var real dt := 1 // <-- might need updating at each reading !
    // a constant
    var real α  := dt / (RC + dt)
    //the current estimate of the distance that is based on:
    // the current reading x[i] and the previous estimate y[i-1]
    y[i] := α * x[i] + (1-α) * y[i-1] // <-- result !!!!
    

Я вычислил таблицу для RC (константа); на мой взгляд, это зависит от диапазона BLE, потому что, если человек входит и выходит в этом диапазоне, частота входа и выхода тем выше, чем меньше расстояние. Попробуйте эти 5 значений и посмотрите, работает ли это для вас:

Максимальное расстояние, на которое мы смотрим [м], RC (constant):RC

1: 0.212212849, 3: 0.636638548, 10: 2.122128495, 30: 6.366385485, 60: 12.73277097

Удачи

person msysmilu    schedule 25.02.2015