Как выяснить мультилатерацию с позициями XYZ каждого поста и разницей во времени?
У меня есть некоторые проблемы с выяснением мультилатерации. Начну с того, что я не математик, но обычно я могу понять большинство вещей, но это меня смутило. Я попал в этот момент после прочтения разницы во времени прибытия.
У меня есть четыре адаптера Wi-Fi. Каждый из них берет точку в трехсторонней пирамиде, так что это должно быть в состоянии учитывать высоту, я считаю. Относительные позиции друг к другу также фиксированы.
То, что я пытаюсь сделать, это слушать сигналы Wi-Fi и найти их происхождение. Теоретически, я считаю, что я должен быть в состоянии использовать разницу во времени между каждым адаптером Wi-Fi, "слышащим" пакет, чтобы найти источник пакета.
Я подключил GPS к этому. Это позволяет мне дать каждому адаптеру Wi-Fi фактическое положение (с небольшой математикой).
Вот что я получу, когда получу пакет:
- wlan1 (X, Y, Z, отметка времени)
- wlan2 (X, Y, Z, отметка времени)
- wlan3 (X, Y, Z, отметка времени)
- wlan4 (X, Y, Z, отметка времени)
X и Y - широта / долгота. Z - высота в метрах, а отметка времени отражает микросекунды.
Некоторые предположения - XYZ точны. Для всех практических целей, если они отключены, то все они постоянно отключены, что должно быть отражено в поиске источника.
Я не смог понять, как применить к этому какую-либо математику, и я ищу пример. Я могу предоставить некоторые фактические данные, если это необходимо. Конечной целью является работа над робототехническим проектом, который позволит роботу следовать за вами или, точнее, по вашему мобильному телефону. Причина, по которой я использую этот подход, заключается в том, что он позволяет мне регистрировать вещи таким образом, чтобы в конечном итоге их было очень легко визуально отладить на карте Google.
Я считаю, что, взяв разницу во времени с каждой точки и сравнив ее по адаптерам, я смогу сделать несколько точный снимок в исходной точке, но эта математика сейчас слишком далека от меня.
2 ответа
Для этого есть различные алгоритмы, я нашел здесь простую статью, которая выглядит полезной, но в различных журналах также есть более продвинутые алгоритмы наименьших квадратов.
Так же, как предупреждение, мультилатерация очень чувствительна к ошибкам положения датчиков и ошибкам в разнице во времени прибытия. Таким образом, ваши результаты могут быть не очень хорошими - вы сказали, что ваши часы не синхронизированы (они должны быть), и что вы используете GPS для определения местоположения (с ошибкой ±3 м). Для чего это стоит, вы также можете использовать GPS на время, но я не уверен в ошибке на этом.
Пара (к сожалению, отрицательных) моментов:
Если ваши временные метки вычисляются, когда сигнал попадает на антенны, все, что вы сможете определить, это направление к источнику, а не расстояние. В конце концов, сигнал, исходящий из миллиона миль, будет иметь такую же задержку распространения между двумя антеннами, что и сигнал, который исходит из метра.
Если ваш робот не очень большой, я был бы удивлен, если бы различия между временными метками не были полностью обусловлены другими факторами, кроме задержки распространения сигнала. ЭМ излучение проходит довольно быстро, поэтому ошибки очень мало. Например:
- у адаптеров Wi-Fi будет какая-то встроенная прошивка для обработки - как быстро он сообщает о новых сигналах? Является ли задержка постоянной или зависит от непонятных деталей спецификации 802.11? Будете ли вы получать уведомления о прибытии сигнала или получении полного пакета, который мог быть результатом целой серии подтверждений и повторных передач?
- Ваше устройство связано с адаптерами через какую-то шину ввода-вывода - даже если мы предположим, что адаптеры идеальны, на этой шине будет конфликт, когда будет получен новый импульс - какой адаптер выигрывает и обрабатывается первым?
- Ваше устройство может иметь одноядерный процессор - как быстро можно обработать сигнал от адаптера и получить временную метку? Задержка между событиями будет определять точность ваших временных меток и, следовательно, максимальную точность системы.
- Является ли устройство полностью готовым к работе с метками времени для сигналов, или же работает другое программное обеспечение? Что, если какое-то другое событие препятствует вашей обработке сигнала?
- Если вы находитесь в помещении, вы получите косвенное распространение - при условии, что сама система является идеальной, как вы обнаружите случай, когда сигнал, обнаруженный на одном адаптере, прошел более длинный путь, отражаясь от стены или двух?