sistema señal satelital para mercadolibre interferencia inhibidor dispositivo desactivar como casero camiones camion burlar bloqueadores bloqueador algorithm filter gps

algorithm - satelital - inhibidor de señal gps casero



Eliminar las malas señales GPS dentro del edificio (2)

Puede encontrar todas las "ubicaciones de descanso", un radio en el que su registrador permanece durante un período de tiempo determinado, y filtrar todos los puntos cercanos. Esto podría hacer que no rastreas algo como un trote de tres millas en una pista de 400 metros (porque todos los puntos estarán cerca, aunque la persona esté en movimiento), pero mientras todas las preocupaciones centradas en la distancia sean más móviles, entonces esto debería funcionar bien

La otra sugerencia de filtrado de la velocidad es excelente porque el calentamiento del GPS o los errores momentáneos pueden ser de más de 100 metros por segundo y si haces un seguimiento de los autos es probable que no creas nada a más de 80 m / s. Aquí hay un código de ejemplo, escrito en el lenguaje de programación Haskell , que usa el paquete GPS que mantengo en Hackage:

import Data.GPS import System.Environment import Data.List import Control.Monad main = do file <- liftM head getArgs xs <- readGPX file let rests = restLocations d t xs -- all points within 100 meters for two minutes goodPoints = xs // concat rests -- all points that aren''t considered rest locations bestPoints = filterByMaxSpeed s goodPoints totalDist = map totalDistance [xs, goodPoints, bestPoints] lxs = length xs lgp = length goodPoints lbp = length bestPoints putStrLn $ "We filtered out " ++ (show $ lxs - lgp) ++ " points by eliminating/ / all points where the device stayed in " ++ show d ++ "meters for " ++ (show t) ++ " or more seconds./ / We filtered an additional " ++ (show $ lgp - lbp) ++ " points by eliminating movements over " ++ show s ++ " meters / second" print $ totalDist where d = 100 t = 120 s = 35

Primero abrimos el archivo y leemos todos los puntos en la variable llamada xs . Luego buscamos todos los lugares de descanso (puntos dentro de 100 metros durante 120 o más segundos) y goodPoints dichos puntos, lo que da como resultado los goodPoints variables. Finalmente, eliminamos todos los puntos que requieren que el dispositivo se haya movido a más de 35 metros por segundo (78mph), dejándonos con el resultado de los bestPoints .

Cuando ejecuto esto en algunos datos realmente ruidosos que tengo sentados veo:

$ ./so ~/Maps/23Apr2011.gpx We filtered out 26601 points by eliminating all points where the device stayed in 100.0 meters for 120s or more seconds. We filtered an additional 6 points by eliminating movements over 35.0 meters / second [NaN,6724.717043334737,6676.349134626797]

La línea inferior muestra la distancia total al considerar los puntos xs , goodPoints y bestPoints . Como puede ver, xs rebasa el double mientras que las distancias de los goodPoints y los bestPoints son más razonables.

Tengo un problema que no puedo resolver, cuando el registrador de datos GPS está dentro de un edificio, las unidades todavía leen datos "con mucho ruido". Por lo tanto, cuando la unidad se mantiene estática, aún lee datos y los puntos grabados saltan de manera enloquecida. es decir, si guardé la unidad durante 2 horas en un escritorio. Todavía registraré puntos distantes entre sí, por ejemplo, 150 metros.

Esto es un problema para mí ya que quiero hacer un programa que calcule la distancia total que la unidad ha movido. Entonces, si mantuve la unidad fija en el escritorio durante 3 horas, la unidad sigue registrando muchos puntos de datos que están distantes entre sí, por ejemplo, 150 metros. Entonces, mi programa leerá que la unidad se movió por 20 KM durante este período, aunque no se movía.

Intenté filtrar los datos obtenidos por HDOP, PDOP, VDOP, pero solo eliminé el 5% de los puntos de datos incorrectos. Traté también de filtrar los datos por el número de satélites que lee el registrador gps, pero esto tampoco identificó todas las señales malas.

Sé que no hay una solución para evitar este error debido a la tecnología misma, ya que el GPS no está diseñado para leer dentro de los edificios. Mi mayor problema es eliminar estos puntos de datos que mi programa no calcula. Sé que puede haber algunos filtros que funcionen.

Si lo desea, puedo adjuntar un archivo Excel con algunos datos que se registran dentro del edificio. Mi objetivo es hacer que mi programa sepa cuáles son estos puntos para poder eliminarlos de mis cálculos. Tenga en cuenta que la velocidad, el encabezado son ceros porque configuré el dispositivo para no almacenar estos parámetros, pero si necesita estos datos para el filtrado, puedo enviarle los datos.


Usamos datos que están registrados en automóviles, y no estamos interesados ​​en los datos de posición que se recopilan cuando el teléfono se carga en el escritorio de alguien. Creo que nuestro enfoque resolverá la mayor parte de su problema.

Trato el ruido de GPS de la siguiente manera:

  • Para deshacerse del 90% del ruido inútil, el registrador detiene el registro cuando no hay movimiento (no hay medición con una velocidad de más de 10 km / h) o no hay señal durante más de 3 minutos. De esa forma no hacemos agujeros cuando alguien está esperando un semáforo o en las esquinas; Durante el post-procesamiento, eliminaremos el ruido final si no hubo ningún movimiento durante un período más largo.

  • Tan pronto como hay 3 mediciones consecutivas con una velocidad de más de 10 km / h, suponemos que no es solo ruido, y almacenamos todo lo que hemos amortiguado hasta la primera medición con una velocidad <2 km / h. De esa forma, si un auto se va lentamente, aún lo capturamos alejándonos.

En este punto hemos filtrado el 90% del ruido, pero aún nos queda un ruido menor cuando alguien se detiene durante los viajes. Nos ocupamos de eso de la siguiente manera:

  • Si hay un período corto sin movimiento, todas las posiciones con baja velocidad se interpolan sobre una curva bezier entre el último movimiento antes de pararse y el primer movimiento después de pararse. La posición, velocidad y rumbo se toman en cuenta. Una interpolación lineal (o simplemente la eliminación de estas medidas) probablemente proporcionará resultados utilizables con un esfuerzo menor.

Hay algunas heurísticas adicionales para garantizar que la conducción lenta en atascos no se vea como ruido del GPS, al medir tanto la distancia bruta recorrida como la distancia entre la primera y la última posición del período.

Todo esto se implementó para una tarea en la que se requiere una precisión del 99% para el cálculo de la distancia, por lo que se requiere mucho más. Por ejemplo, haciendo corresponder un mapa, planeando rutas para verificar las coincidencias y para llenar gps en la señal en túneles o cuando la señal era mala debido a las reflexiones, y verificando si coinciden los títulos, las posiciones y las velocidades de las mediciones consecutivas ( siempre puedes usar 2 de esos para calcular el tercero). Pero esto es básicamente lo que hacemos para filtrar la mayor parte del ruido del GPS.

Si no tiene que calcular cosas en tiempo real, tiene una gran ventaja de que puede mirar "hacia el futuro", lo que hace que sea mucho más fácil filtrar cosas.