Detectar "falta de movimiento" en el dispositivo GPS

21

Estamos utilizando un dispositivo de rastreo GPS montado en vehículos y luego mostramos los movimientos en nuestra aplicación. Sin embargo, tenemos un pequeño problema con los vehículos cuando NO están en movimiento.

A pesar de estar quieto, el dispositivo GPS enviará información con diferentes posiciones, a veces incluso informará que el vehículo se está moviendo (de vez en cuando informará que un vehículo se está moviendo bastante rápido). El resultado final es una representación fea del movimiento en nuestra aplicación y, lo que es peor, cálculos incorrectos con respecto a cuánto tiempo estuvo en movimiento el vehículo y estuvo parado (también tenemos algunos análisis estadísticos).

Sé que el problema no es nuevo: Google Navigation en mi teléfono Android también tiene problemas cuando me detengo en una encrucijada de vez en cuando, detectando que ahora estoy conduciendo en la dirección opuesta (cuando, de hecho, estoy parado )

Pero realmente necesitamos tener algún método para decir que el vehículo no se está moviendo, especialmente durante períodos prolongados de tiempo.

El problema se agrava en algunos vehículos que se mantienen bajo los techos durante la noche, lo que hace que el GPS se vuelva loco debido a una señal más débil (que todavía es lo suficientemente fuerte como para obtener una posición).

Podemos detectar si el motor del vehículo está encendido o apagado, pero no podemos suponer que no se mueve con el motor apagado (hubo incidentes en los que se remolcó un vehículo dañado ... y, por supuesto, hay un caso de robo potencial que también debe ser reportado).

¿Cuál es la mejor manera de abordar este problema?

EDITAR:

Para agregar más información:

  • El dispositivo GPS tiene un acelerómetro, pero eso solo devuelve información binaria (movimiento / no movimiento) y es DEMASIADO sensible o simplemente no funciona.

  • Tenemos acceso a cosas como la cantidad de satélites o la calidad, pero no estamos seguros de cómo utilizar esa información. De ahí mi pregunta. :)

  • El problema no es detectar si un vehículo se mueve o no en tiempo real. Recopilamos los datos y luego hacemos un análisis estadístico y los mostramos. Mostramos la posición actual del vehículo, pero eso es de poca importancia. Así que, básicamente, debemos ser capaces de saber si un vehículo se movía o no al mirar los datos históricos.

Shaamaan
fuente
77
Si tiene un acelerómetro integrado en su rastreador, puede explotar los datos del acelerómetro para detectar si el vehículo se está moviendo realmente, y puede desactivar el rastreo GPS si no se está moviendo.
geogeek
2
¿Su dispositivo GPS registra la calidad de la señal, el número de satélites, ese tipo de datos? Además, parece que 'luego mostrará los movimientos ...', ¿podría confirmar que no es un problema de detección en tiempo real , sino algo que filtrará más adelante durante el procesamiento?
Simbamangu
He editado mi pregunta para dar más información. En resumen: el acelerómetro está actuando como loco, tenemos acceso al conteo de satélites o información de calidad, pero no estamos seguros de cómo usarlos, y sí, esto NO es un problema de detección en tiempo real.
Shaamaan
2
Encontrará algunas recomendaciones útiles en el sitio de estadísticas relacionadas con la detección de valores atípicos y suavizado .
whuber
1
Geofence: cuando un vehículo está en una zona (es decir, en el garaje, no registre la posición) - androidzoom.com/android_applications/geofencing
Mapperz

Respuestas:

5

Los comentarios debajo de su pregunta traen algunos puntos buenos, especialmente sobre la interpretación de la calidad de los datos satelitales (número de satélites, intensidad de la señal), y podría usar esta información en el dispositivo móvil o en el servidor para filtrar los valores de GPS "malos". La pregunta se reduce a dos partes: 1) cómo define una lectura falsa de GPS, y 2) cómo define un estado estacionario.

Comencemos con un par de parámetros:

  • stationary_speed = si la unidad móvil va más lenta que esta, entonces es estacionaria
  • too_fast = si la unidad móvil va más rápido que esto, entonces ha dado una lectura falsa de GPS

Es complicado calcular estas velocidades con precisión. Supongamos que calcula la velocidad como / entre la lectura anterior (en t0) y la lectura actual (en t1). Si el tiempo delta es grande y la unidad gira alrededor de una curva, entonces la distancia real recorrida será mayor que la distancia calculada. Además, si obtiene dos lecturas espurias seguidas y están lo suficientemente cerca una de la otra, puede obtener resultados impredecibles.

Una vez que tenga la velocidad, simplemente compárela con sus parámetros para ver si la lectura del GPS es espuria o si la unidad es estacionaria.

Puede hacer un filtrado más sofisticado con los filtros de Kalman , pero eso puede ser mucho más complicado.

katahdin
fuente
El dispositivo GPS devuelve una cantidad de datos con cada paquete enviado, incluida la posición y la velocidad actual. Ya tenemos un sistema en el lugar donde, si la velocidad es inferior a un cierto valor, asumimos que el vehículo no se está moviendo, sin embargo, hay casos en los que un vehículo enviará datos con velocidades superiores a ese umbral, a pesar de estar quieto (nota: esos las velocidades no son TAN grandes que podríamos agregar un límite superior). No estoy seguro de si calcular la velocidad en función de las posiciones (en lugar de la lectura del GPS) es una buena idea.
Shaamaan
2

Hemos logrado modificar los datos del sensor de movimiento.

Usando los datos del sensor de movimiento, los datos de encendido y la velocidad informada por el rastreador GPS, deberíamos poder saber cuándo un vehículo se está moviendo o no con bastante buena precisión.

También hemos echado un vistazo a la cantidad de satélites, y eso no se veía bien. Si bien el número de satélites era menor para un vehículo bajo techo, todavía era relativamente alto. 9-10 es el valor habitual para un vehículo de este tipo, mientras que bajo un techo cae a 7 (pero ocasionalmente puede recibir una señal y subir también). Huelga decir que el número de satélites resultó ser menos que útil.

Shaamaan
fuente
La información sigue siendo útil para determinar datos defectuosos. Hago una gran cantidad de filtrado 'correcto' basado en él. 9 sigue siendo alto, ¿está seguro de que el chip no repite el último valor conocido? Tienen esta funcionalidad integrada y está habilitada la mayoría de las veces.
Glenn Plas
El principal problema es con los vehículos que se almacenan en un cobertizo de algún tipo durante la noche. No creo que repita la última posición conocida, porque los vehículos DESAPARECIRÁN por completo si entran / se almacenan en garajes de concreto (o algo más sólido). La caída de los satélites es un indicador, pero parece ser sutil y resultó ser mucho más fácil simplemente ajustar y usar los datos del sensor de movimiento.
Shaamaan
No en los más de 3000 vehículos que rastreo, necesita la cantidad de satélites utilizados para tomar la corrección, no los que están a la vista. Esos pueden permanecer altos cuando tienes un techo que todavía deja pasar una señal. Pero la solución es un buen indicador, junto con los valores de ganancia de Db.
Glenn Plas
Puedo decir perfectamente cuáles están dentro / fuera de un garaje de algún tipo. Tampoco sufro el problema de las arañas, ya que el estado de movimiento / no movimiento lo atrapa. Estoy de acuerdo en que los sensores te dan mucho más para seguir.
Glenn Plas
1
Es completamente posible que mi colega haya configurado el número de satélites visibles por error, en lugar del número utilizado para una solución (todo lo que vi fue una hoja de Excel con datos con títulos de columnas que se rellenan manualmente). : P En cualquier caso, como escribí, el sensor de movimiento sintonizado fue nuestra forma de salir de este problema.
Shaamaan
2

Puede usar la cantidad de sats utilizados para tomar la última solución, no las que están a la vista. P.ej. Ver = 11, Reparar = 5 Y usar los valores de DB máxima de la señal del satélite más fuerte. Esto tiene que ser más de 30Db para obtener una señal decente.

Los dispositivos que utilizamos tienen un concepto de movimiento / no movimiento, los sensores son: aceleración, vibración, voltaje de entrada, señal de entrada (desde el contacto clave), datos GPS. Para informar sobre posiciones como inicio / parada (está basado en eventos) y eventos de dirección / distancia, el dispositivo debe estar en modo de movimiento (este es un contador de cuenta regresiva, configurable).

Los sensores tienen la posibilidad de combinarse. No se informan eventos de dirección / distancia ni temporizadores mientras el trazador determina que no está en modo de movimiento. Cuando los sensores involucrados dejan de informar, el temporizador cuenta regresivamente hasta cero y luego se genera un evento de detención + la unidad se pone en modo sin movimiento. Hasta la próxima vez. De esta manera, puede separar los valores de aceleración del motor de arranque para 'ponerlo' en modo de movimiento, y un umbral inferior separado para 'mantenerlo' en modo de movimiento, ya que ambos son patrones de aceleración muy distintos.

Las unidades que utilizamos informarán si se ha tomado un punto con datos sat incorrectos, no estoy seguro de si su hardware lo hace. Tenemos una SV_Position o una SV_KeepAlive o SV_TimeAlive. El Keepalive repetirá el último valor exacto ya que el GPS no puede actualizar sus tablas ni obtener una solución precisa, ni siquiera una mala. TimeAlive es lo que verá cuando cruce un túnel o alguien se estacione en un garaje.

Una forma de monitorear también, aunque en parte es hacer conjeturas educadas y depende del tipo de activos que está rastreando, es la fuente de alimentación de voltaje. p.ej. Un dispositivo que funciona a 12.30v es un automóvil cuyo motor no está funcionando. Si ve uno que informa 14.2v, sabe que su alternador está girando. Para vehículos de 24v hay un patrón similar al spot.

Espero que esto te dé algunas ideas. Todo depende un poco de lo bueno que sea el hardware. La fuente de sus datos comienza allí y todo el resto después de eso es tan bueno como es. Pero le recomiendo encarecidamente que utilice las capacidades de las unidades para hacer una distinción de calidad en lugar de hacerlo todo en el servidor (en retrospectiva). Una vez que le gusten las 3000 unidades, necesitará un servidor robusto para analizar constantemente todos los datos de seguimiento, por lo que para entonces se dará cuenta de que no escalará.

Glenn Plas
fuente
1
Tengo que comentar sobre la idea de recolectar voltajes. ¡Es excelente! Estamos teniendo problemas con ciertos vehículos, y no estamos seguros de por qué. Actualmente sospechamos que podría deberse a habilidades deficientes por parte del técnico que montó los dispositivos de seguimiento, lo que resulta en problemas de voltaje, aunque también puede ser sabotaje (sí, sabotaje; estamos monitoreando los niveles de combustible y los conductores no me gusta eso). Si podemos registrar el voltaje en los dispositivos de seguimiento, eso debería ser de gran ayuda. :) Enormes pulgares arriba! (Daría más de uno, pero lamentablemente, no puedo ...)
Shaamaan
Funciona para todos los vehículos que no tienen un regulador de voltaje entre su unidad trazadora. Echa un vistazo a este enlace desde el programa de configuración de KCS, esta es la unidad de la que estoy hablando, solo ejecútalo y mira qué puedes hacer con respecto a la detección de movimiento, te sorprenderás. Descargue este , que es el último software de las unidades revision9. La idea del voltaje es de ellos. Verá algunos valores predeterminados buenos (camión / automóvil / motor)
Glenn Plas
El número de sats es un mal indicador, realmente desea el número de sats utilizados para tomar la última solución (ese es el valor que observa, no es un indicador de situación actual), aunque el número de sats le permitirá determinar puntos absolutamente malos, no le ayudará en la zona gris, por ejemplo, las muestras de calidad mediocre. Necesitas combinar diferentes sensores. En esencia, calcular la velocidad es lo mismo que su chip GPS ya hace, y esa calidad también depende de la cantidad de muestras que tome (las carreteras no son rectas en todas partes) y su precisión. Problema con el huevo de gallina
Glenn Plas
0

He tenido un problema similar al usar un registrador GPS para rastrear un scooter. Lo que hice fue superponer la pista GPS en una capa de carretera y eliminar manualmente las ubicaciones erróneas en o cerca de una intersección o semáforo. Estoy seguro de que hay herramientas automatizadas para lidiar con eso, probablemente amortiguadores alrededor de las intersecciones y calculando el tiempo mínimo y máximo de entrada y salida de ese búfer.

HDunn
fuente
1
Dado que los vehículos son problemáticos cuando no se mueven mientras están en estacionamientos o garajes, esto no es en absoluto útil. :(
Shaamaan
0

El término del arte para esto es demoledor . Un enfoque común es simplemente muestrear solo cuando el arreglo está a 10 m del arreglo anterior. Por ejemplo, las computadoras de mano Garmin registran correcciones basadas en la distancia, mientras que los relojes de fitness registran correcciones basadas en el tiempo . Las computadoras de mano no arañan mucho, pero los relojes sí.

Sargento
fuente
El término para esto es Error de múltiples
rutas