Прототип системы определителя координат пользователя по WiFi

Умный дом ( Smart Home ) своими руками.

Прототип системы определителя координат пользователя по WiFi

Сообщение =DeaD= » 11 мар 2015, 14:57

Решил попробовать собрать прототип системы, способной определять координаты пользователя на основе уровней WiFi-сигналов (пока будем измерения проводить на аппарате пользователя, потом попробуем поменять схему и читать данные маяками, но пока не уверен, что это так просто получится). Если взлетит, попробую сделать из этого коммерческий продукт.

Итак, что мы будем делать:

1. Установим по углам квартиры 4 опорных маяка, в качестве которых будут выступать беспроводные роутеры (пока попробую 3 штуки TP-Link WR703n + 1 домашний основной Netgear JWNR2000)

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

3. Поднимем вебсервер, который будет принимать и обрабатывать информацию от сотового по уровню сигналов опорных маяков.

4. Соберем информацию в множестве заранее определенных точек квартиры и сохраним для последующей обработки.

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

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

Опорные маяки изготовлены, но пока не инсталлированы. Надо купить кабель и собрать удлинители, как назло рядом с внешними углами квартиры свободных розеток нет.

Добавлено спустя 8 минут 52 секунды:
Данные пока собираю в таком виде:
Код: Выделить всё
=====================
count=10
time=1426059820
label=00
---------------------
BSSID: 30:46:9a:0d:**:**
SSID: NETGEAR
Level: -41
Freq: 2447
Capabilities: [WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][WPS][ESS]
---------------------
BSSID: 2c:b0:5d:85:**:**
SSID: NETGEAR
Level: -75
Freq: 2417
Capabilities: [WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][WPS][ESS]
---------------------
BSSID: 90:f6:52:40:**:**
SSID: TP-LINK_40F9C4
Level: -84
Freq: 2427
Capabilities: [WPA2-PSK-CCMP][WPS][ESS]
---------------------
BSSID: f0:84:ca:7f:**:**
SSID: WiFi-DOM.ru-2803
Level: -82
Freq: 2412
Capabilities: [WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][ESS]
---------------------
BSSID: e0:91:f5:ad:**:**
SSID: NETGEAR
Level: -82
Freq: 2437
Capabilities: [WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][WPS][ESS]
---------------------
BSSID: 00:18:25:00:**:**
SSID: Rostelecom 8-800-300-0125
Level: -84
Freq: 2437
Capabilities: [ESS]
---------------------
BSSID: 00:0f:02:6e:**:**
SSID: Planeta-146524
Level: -82
Freq: 2462
Capabilities: [WPA2-PSK-CCMP][ESS]
---------------------
BSSID: 00:0c:43:30:**:**
SSID: planeta-router
Level: -90
Freq: 2417
Capabilities: [WPA2-PSK-CCMP][ESS]
---------------------
BSSID: 10:fe:ed:a0:**:**
SSID: pk.help.com
Level: -90
Freq: 2437
Capabilities: [WPA2-PSK-CCMP][WPS][ESS]
---------------------
BSSID: 84:1b:5e:29:**:**
SSID: NETGEAR-web
Level: -91
Freq: 2437
Capabilities: [WPA2-PSK-CCMP][WPS][ESS]
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Прототип системы определителя координат пользователя по

Сообщение elmot » 11 мар 2015, 16:03

от батарей запитай. Шире простор для экспериментов.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Прототип системы определителя координат пользователя по

Сообщение Zusul86 » 11 мар 2015, 20:02

Думаю нужно сразу в "лог" добавлять данные с акселя, гироскопа и компаса. Все таки какая то направленность у антены наверняка есть, собрав пару замеров в одной точке ее можно как то прикинуть и в дальнейшем использовать. Иначе все что удастся определить это какой роутер с вами в комнате...
Zusul86
 
Сообщения: 775
Зарегистрирован: 10 авг 2014, 15:02
Откуда: Саров

Re: Прототип системы определителя координат пользователя по

Сообщение Scorpio » 11 мар 2015, 20:13

А сигнал роутера величина постоянная в одной точке, если его не двигать?
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: Прототип системы определителя координат пользователя по

Сообщение =DeaD= » 11 мар 2015, 23:57

Zusul86 писал(а):Думаю нужно сразу в "лог" добавлять данные с акселя, гироскопа и компаса. Все таки какая то направленность у антены наверняка есть, собрав пару замеров в одной точке ее можно как то прикинуть и в дальнейшем использовать. Иначе все что удастся определить это какой роутер с вами в комнате...

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

Добавлено спустя 23 секунды:
Scorpio писал(а):А сигнал роутера величина постоянная в одной точке, если его не двигать?

Не совсем, скорее в некотором диапазоне.

Добавлено спустя 30 секунд:
elmot писал(а):от батарей запитай. Шире простор для экспериментов.

Неее... это не рабочий вариант, к тому же выяснится потом, что уровень сигнала падал из-за батарей, вот я убьюсь это отлаживать :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Прототип системы определителя координат пользователя по

Сообщение Zusul86 » 12 мар 2015, 00:47

=DeaD= писал(а):попробуем для начала без этих данных, тем более не везде потом будет доступен полный набор аксель+гиро+компас.

Лучше как раз начать пробовать с ними, что бы сразу понять без каких данных реально обойтись, а без каких нельзя. Ну как минимум нужны данные трехосевого компаса.
Но опять же если мы говорим о применении в реальной квартире, думаю без направленных антенн, со стороны роутеров, "следящих" за смартфоном и выдающим соответствующие направления точность будет никакая.
Zusul86
 
Сообщения: 775
Зарегистрирован: 10 авг 2014, 15:02
Откуда: Саров

Re: Прототип системы определителя координат пользователя по

Сообщение Angel71 » 12 мар 2015, 01:28

хорошая шутка про компас, особенно упоминая реальные условия. по нормальному всё делается последовательно, от простого к сложному. например так: сначала по хоть как-то по rssi. затем добавляется поддержка датчиков и смотрится, как влияет ориентация. если влияет, то данные с датчиков делаются в коде не обязательными, т.е. только дополняющими - с каких датчиков есть данные, такими и пытаемся повысить точность. следующим шагом можно попробовать реализовывать трекинг перемещения. хотя с положением и ориентацией в пространстве скорей всего будет не меньший вынос мозга.
идея с направленными антеннами в помещении больше похоже на фантазии, особенно учитывая психологию обывателей.
Последний раз редактировалось Angel71 12 мар 2015, 02:20, всего редактировалось 1 раз.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18

Re: Прототип системы определителя координат пользователя по

Сообщение =DeaD= » 12 мар 2015, 02:19

Как усложнить систему я уже знаю, например:

1. Использование акселя+гиро+компаса на телефоне для учета положения аппарата для привязки по маякам с учетом направленности на них;
2. Использование всяких навороченных фильтров типа Калмана для определения координат;
3. Использование данных акселя+гиро+компаса в качестве вспомогательных данных о местоположении для формирования вероятностных координат;
4. Использование карты связности помещений, указывающей, что пользователь не мог сейчас пройти через стену в соседнюю комнату минуя коридор;
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Прототип системы определителя координат пользователя по

Сообщение Angel71 » 12 мар 2015, 02:49

а, про tof забыли. в сети полно доки на подобии http://conferences2.sigcomm.org/co-next/2014/CoNEXT_papers/p13.pdf, http://homes.cs.washington.edu/~atm15/docs/mariakakis_SAIL.pdf. только я про нюансы с tof для wifi пока не особо в курсе. :) пока вожусь с nrf24l01 и скорей всего позже буду с блютузами возиться.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18

Re: Прототип системы определителя координат пользователя по

Сообщение =DeaD= » 12 мар 2015, 07:49

TOF я пока даже не вписываю, хотя может быть тоже будет применим с произвольным оборудованием, после какой-нибудь хитрой калибровки.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Прототип системы определителя координат пользователя по

Сообщение elmot » 12 мар 2015, 11:12

=DeaD= писал(а):
elmot писал(а):от батарей запитай. Шире простор для экспериментов.

Неее... это не рабочий вариант, к тому же выяснится потом, что уровень сигнала падал из-за батарей, вот я убьюсь это отлаживать :)

Не упадет, не придумывай. вафля в роутерах запитана от LDO, уровень батарей на силу сигнала не влияет.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Прототип системы определителя координат пользователя по

Сообщение Angel71 » 12 мар 2015, 11:18

как у вайфаев с апи по поводу tof я не в курсе. :oops: :D а вот для nrf24l01+ tof это без вариантов единственный вариант, т.к. rssi оно не держит. хотя ещё нужно будет проверить, как работает проверка несущей, оно в регистр байт или бит пишет.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18

Re: Прототип системы определителя координат пользователя по

Сообщение Madf » 12 мар 2015, 12:09

тема интересная, но по мне так лучше было бы это всё не на ведро натягивать (описан алгоритм понятным языком)
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Прототип системы определителя координат пользователя по

Сообщение =DeaD= » 12 мар 2015, 12:30

Madf писал(а):по мне так лучше было бы это всё не на ведро натягивать (описан алгоритм понятным языком)

Что имеется в виду?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Прототип системы определителя координат пользователя по

Сообщение =DeaD= » 14 мар 2015, 15:51

Начал с исследования зависимости уровня сигнала от положения сотового телефона (проверил гипотезу Zusul86 о необходимости получения данных не только от WiFi, но и от компаса), могу сказать, что в принципе гипотеза подтвердилась.

Провел 60 измерений в одной точке в 8 разных положениях телефона при 3 включенных маяках.
Выбросил floor(20%) всех измерений, которые больше всего отклонялись от среднего, у оставшихся замерил дисперсию.

Если рассматривать каждое положение и маяк отдельно (24 варианта), то дисперсия (средний квадрат отклонения от среднего):
1) в 20 случаях будет менее 1
2) еще в 3 случаях будет менее 2
3) только в одном случае дисперсия получилась 10.

Если рассматривать измерения до маяков без учета положения телефона, то дисперсии получаются 36, 9 и 14.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

След.

Вернуться в Домашняя автоматизация

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8