Bluetooth LE RSSI do wykrywania zbliżeń iOS

Zacznę od pytania.

Czy BTLE RSSI to dobry sposób na wskazanie dwóch urządzeń blisko siebie, czy nie? czy działa tylko z małymi urządzeniami, takimi jak FOB itp.?

Numer:

Obecnie patrzę na stworzenie aplikacji, która będzie używać BTLE i umożliwić połączenia oparte na bliskości. Pod tym względem jest to podobnie jak aplikacja demonstracyjna, którą Apple pokazuje w Advanced Core Bluetooth keynote (gdy dwa urządzenia prawie dotykają connect).

Jak rozumiem bliskość jest określana na podstawie wartości RSSI, gdy centralny odkrywa peryferyjne. Kiedy próbuję tego jednak z dwoma iPadami sygnał wydaje się zbyt silny, jest również zbyt niespójny, aby mieć dokładne pchnięcie w bliskości, ponieważ nie wykazuje zbyt dużej korelacji z bliskością urządzeń.

Wypróbowałem przykładowy kod Apple i jest to podobne w tym, że urządzenia nie muszą być w ogóle blisko, aby informacje przeszły z jeden do drugiego.

Gdyby tylko istniał sposób na zmniejszenie siły sygnału urządzeń peryferyjnych....

Z góry dzięki za pomoc.

Author: Tom Bates, 2013-03-28

4 answers

Doświadczenie Matthew Griffina pasuje do mojego. Jednak - kiedy możemy mierzyć przez uczciwy okres czasu, dwie rzeczy pomogły nam lepiej skalibrować to.

Musieliśmy owinąć prosty (kalman) filtr na Orientację anteny i IMU, aby uzyskać szorstki komentarz do pracy - i to nie jest bardzo światło PROCESORA lub baterii.

  • używając IMU otrzymujesz rzetelne wyobrażenie o odległości / kierunku podróży - a jeśli jest to w krótkim okresie czasu-Zakładamy, że druga "bok" jest nieruchomy. To bardzo pomaga uzyskać wartość dla "bieżącej" orientacji i " callibrate bieżącego hałasu otoczenia.
  • podobnie-zrób to samo dla obrotów/zmian pozycji.

Odkryliśmy, że generalnie zmiana orientacji urządzenia jest lepszym sposobem na uzyskanie kierunku; a ta odległość jest wiarygodna tylko w niektórych 30 do 600 sekund po kalibracji "ruchu" i tylko wtedy, gdy urządzenie nie jest zbytnio obrócone. A w praktyce raz potrzebuje jakieś 4-5 "innych" urządzeń; idealnie nie jest zbyt mobilny, aby zachować się dynamicznie kalibrowany.

Jednak converse jest dość wiarygodny - tzn. wiemy, kiedy nie mierzyć. A wynik netto jest taki, że można dość dobrze ustalić rzeczy takie jak "na klawiaturze" i "przeniesiony" / przeniesiony przez określone drzwi / otwarcie lub kierunek. Podobnie pomiar pola przez losowo tańcząc przez pokój; zmiana orientacji dużo - działa dobrze, gdy płaty anteny odbiornika dostał nieco wypracowane po stacjonarnych kropka.

 21
Author: Dirk-Willem van Gulik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-10 10:22:51

Masz całkowitą rację o RSSI skacze dziko i losowo. Powinieneś pobierać wartości RSSI co dwie sekundy (szybciej i dostaniesz masę błędów). Wyrzuć wartości RSSI, które są większe niż skok ~ -40 decybeli i użyj agregatu poprzednich wartości, zanim zadeklarujesz przybliżony zakres użytkownikowi.

Jeśli chodzi o Twoje następujące stwierdzenie, masz szczęście.

Gdyby tylko istniał sposób na zmniejszenie siły sygnału urządzenia peryferyjne Reklama....

Usługa, której szukasz, nazywa się TX Power Service. Wdrożenie tej usługi na Twoim urządzeniu peryferyjnym pozwoli Ci zmniejszyć moc nadawania urządzenia. W ten sposób możesz zmniejszyć zakres, z którego widoczne są dane reklamowe. Niestety nie mamy jednak dostępu do tej usługi na urządzeniu z systemem iOS. Ale jeśli piszesz własne firmware dla BLE, to jest to usługa, którą chcesz.

 14
Author: Tommy Devoy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-04 23:54:45

Spędziłem ostatni tydzień zajmując się wyłącznie RSSI, próbując użyć czujników Wifi i Bluetooth LE do triangulacji lokalizacji i konwersji odległości.

Niestety, odkryłem, że RSSI jest po prostu zbyt wybredny i zawodny, aby konsekwentnie używać do określania odległości. W teorii RSSI i odległość zachowują się zgodnie z prawem odwrotnego kwadratu (podwajają odległość, a RSSI spadnie o ustaloną liczbę decybeli), ale w praktyce na RSSI wpływa niekontrolowane czynniki, takie jak pogoda (sucha pogoda pozwala Polom RF lepiej podróżować) i przeszkody (wszelkie metalowe przedmioty lub Ludzie na drodze z jednego czujnika do drugiego spowodują tłumienie, a wszelkie metalowe przedmioty blisko umieszczone przez jeden z czujników spowodują wzmocnienie siły sygnału).

Istnieją sposoby, aby to zrekompensować. Ten artykuł jest jednym z najlepszych artykułów, które czytałem o tym, jak uzyskać dokładne wyniki, ale najważniejsze jest to, że jest to niewiarygodna metoda, chyba że chcesz tylko wiedzieć, gdzie jest urządzenie.

 11
Author: Matthew Griffin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-02 09:39:01

Jeśli dobrze rozumiem, próbujesz zaimplementować podobną funkcjonalność, która do tego, co widać w demo WWDC i jakie aplikacje jak Bump zaimplementować. Do tego RSSI będzie odpowiedni. >-30) i będzie dobrze.

 2
Author: allprog,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-10 14:56:22