Определение координат внутри квартиры (свой домашний GPS)

InterSky
Offline
Зарегистрирован: 24.12.2014

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

А как определить своё местоположение в квартире?

Сигнал GPS сквозь стены не проходит. Акселерометр не точен и к тому же накапливает ошибки.

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

А вчера поиграл у друга в "HTC Vive" (это шлем виртуальной реальности и два поинтера в руках, которые в игре могут быть оружием, мечами, предметами и т.п.). Для отслеживания движений используются два маленьких квадратных датчика (размером меньше кулака), и причём система отслеживает перемещение с ювелирной точностью, наверно буквально с миллиметровой точностью.

Я подумал - "Как они это делают? Акселерометры уводило бы в сторону, а для чего-то на подобии Kinect нужно было бы всё время находиться в приделах видимости", и появилась простая идея - "Домашний GPS". Датчики как спутники GPS, периодически посылают сигнал с меткой времени, а поинтеры ловят эти сигналы, и по разнице во времени получения сигналов, определяют дистанцию до датчиков. А по двум таким дистанциям уже можно точно определить своё местоположение в комнате.

Вот и вопрос: может ли Ардуина определить время получения сигнала с такой точностью, чтобы по нему определить местоположение?

Скорость распространения радиоволн примерно 300 000 км/сек. Получается, чтобы определить своё положение с точностью до 1мм, надо определять получение сигнала с точностью 1 / 300 000 000 000 секунды. Это реально или нет? GPS приёмник по сути это и делает (и ещё тысячи сложных расчётов по созданию альманаха расположения спутников в пространстве, коррекцию времени с учётом постоянного перемещения спутников по орбитам, коррекцию с учётом изменения скорости прохождения сигнала через разные слои атмосферы в зависимости от положения спутника над тобой или на уровне горизонта, и десятки других постоянных вычислений которые в моём случае совершенно не нужны). Вроде всё просто. Только число "1 / 300 000 000 000 секунды" пугает. Кварт в ардуине явно не 300GHz. Но крохотный датчик GPS справляется с этим легко и успевает ещё кучу всего вычислить.

 

Morroc
Offline
Зарегистрирован: 24.10.2016

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

negavoid
Offline
Зарегистрирован: 09.07.2016

InterSky пишет:
Скорость распространения радиоволн примерно 300 000 км/сек. Получается, чтобы определить своё положение с точностью до 1мм, надо определять получение сигнала с точностью 1 / 300 000 000 000 секунды. Это реально или нет? GPS приёмник по сути это и делает (и ещё тысячи сложных расчётов по созданию альманаха расположения спутников в пространстве, коррекцию времени с учётом постоянного перемещения спутников по орбитам, коррекцию с учётом изменения скорости прохождения сигнала через разные слои атмосферы в зависимости от положения спутника над тобой или на уровне горизонта, и десятки других постоянных вычислений которые в моём случае совершенно не нужны). Вроде всё просто. Только число "1 / 300 000 000 000 секунды" пугает. Кварт в ардуине явно не 300GHz. Но крохотный датчик GPS справляется с этим легко и успевает ещё кучу всего вычислить.

А это потому, что вы умных слов начитаться-то начитались, но понять - не поняли. Кварц и процессор на 300 ГГц не нужен (а хотелось бы мне такой процессор :). Система GPS работает на частоте 1,575 (или 1,15) ГГц, а ширина полосы сигнала у неё всего 1 Мгц. Вот уже и не такие страшные цифры получаются. Модуляция там BPSK, сигнал ниже уровня шума, это поистине чудо, как RF часть его восстанавливает из -159 дБ, скетчиком за полчасика это решить не получится.  Всё необходимое для вычислений чип получает в сигнале со спутника, его нужно только обработать (а тут ещё один скетчик, на годы работы учёных); один из очень популярных чипов в свое время был sirf star3, внутри у него арм, он делал обработку на частоте в 50 Мгц, и у него 1 мбит оперативки. Сейчас, наверное, есть уже более крутые решения.