Очистка GPS-сигнала и согласование дорожной сети - PullRequest
6 голосов
/ 01 декабря 2008

Я использую GPS-приемники и мобильные компьютеры для отслеживания поездок отдельных пешеходов. Я хотел бы в режиме реального времени "очистить" входящий сигнал GPS, чтобы повысить его точность. Кроме того, по факту, не обязательно в реальном времени, я хотел бы «зафиксировать» привязки GPS отдельных лиц к позициям вдоль дорожной сети. Есть ли какие-либо методы, ресурсы, алгоритмы или существующее программное обеспечение, которые можно было бы предложить с обеих сторон?

Несколько вещей, которые я уже рассмотрел с точки зрения очистки сигнала: - исправления, для которых число. спутников = 0 - исправления, для которых скорость неестественно высока (скажем, 600 миль в час)

И с точки зрения «блокировки» к уличной сети (которую я слышал, называется «сопоставление карты»): - привязка к ближайшей границе сети на основе среднеквадратичной ошибки - когда исправления находятся далеко от дорожной сети, выделите эти точки и разрешите пользователю использовать графический интерфейс (скажем, OpenLayers в веб-браузере) для перетаскивания, привязки и добавления в дорожную сеть

Спасибо за ваши идеи!

Ответы [ 5 ]

6 голосов
/ 01 декабря 2008

Вы упоминаете, что это для пешеходного слежения, но вы также упоминаете дорожную сеть. Пешеходы могут путешествовать во многих местах, где автомобиль не может, и, действительно, которых, вероятно, не будет на любой карте, которую вы найдете "дорожной сети". У большинства дорожных карт нет таких вещей, как пешеходные дорожки в парках, пешеходные тропы и так далее. Не думайте, что «бездорожье» означает, что GPS не дает точного определения.

6 голосов
/ 01 декабря 2008

Одно примечание: в качестве минимального количества спутников следует использовать 3, а не 0. Для расчета GPS по горизонтали требуется как минимум три источника. Каждый GPS, который я использовал, включает в себя флаг статуса в потоке данных; менее чем 3 спутника как-то сообщаются как «плохие» данные.

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

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

6 голосов
/ 01 декабря 2008

Я предполагаю, что вы хотите «почистить» свои данные, чтобы удалить ошибочные всплески, вызванные хитрыми показаниями. Это основной процесс DSP. Есть несколько подходов, которые вы можете предпринять, это зависит от того, насколько умным вы хотите, чтобы это было.

На базовом уровне да, вы можете просто искать действительно большие цифры, но что такое действительно большая фигура? Да, 600 миль в час это быстро, но нет, если вы в согласии. В то время как вы ищете значение, которое «необычно», вы фактически жестко программируете «обычное». Лучшим подходом является изучение прошлых данных, чтобы определить, что является «обычным», а затем поиск отклонений. Возможно, вы захотите рассчитать дисперсию данных в небольшом локальном окне, а затем посмотреть, превышает ли z-оценка ваших текущих данных какой-либо порог, и если да, исключить его.

4 голосов
/ 23 декабря 2008

Прочитайте posfix, чтобы увидеть, является ли сигнал действительным (где-то в предложении $ GPGGA, если вы анализируете необработанные строки NMEA). Если это 0, игнорируйте сообщение.

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

Конечно, не помешает проверить работоспособность сигналов GPS:

  • широта между -90,90;
  • долгота между -180..180 (или E..W, N..S, 0..90 и 0..180, если вы читаете необработанные строки NMEA);
  • скорость от 0 до 255 (для обычных автомобилей);
  • расстояние до предыдущих совпадений измерений (на основе широты / долготы) приблизительно соответствует указанной скорости;
  • разница во времени с системным временем, не превышающим x (если системные часы не могут быть доверенными или не основаны на синхронизации GPS :-));

Чтобы выполнить сопоставление карты, вы в основном перебираете свои сегменты дороги и проверяете, какой сегмент наиболее вероятен для вашего текущего положения, направления, скорости и, возможно, предыдущих измерений GPS и совпадений. Если вы не работаете с приложением в реальном времени или если задержка обратной связи является приемлемой, вы даже можете заглянуть в «будущее», чтобы увидеть, какой сегмент является наиболее вероятным.

Делать все это правильно - искусство само по себе, и это пространство здесь слишком короткое, чтобы углубляться в него. Часто трудно со 100% уверенностью определить, на каком участке дороги кто-то находится. Например, если есть 2 параллельные дороги, которые одинаково близки к текущей позиции, это вопрос творческой эвристики.

4 голосов
/ 01 декабря 2008

В дополнение к комментариям Эндрю вы также можете рассмотреть такие факторы помех, как многолучевое распространение и то, как они влияют на ваш входящий поток данных GPS, например, HDOP в линии GSA NMEA0183. В моем собственном программном обеспечении контроллера GPS я разрешаю заданные пользователем критерии отклонения для ряда параметров, связанных с QA.

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

...