4 votos

Cálculo de la distancia: integrando datos gps incrementales.

Estoy tratando de construir un GPS basado en el odómetro basados en android.

Actualmente , soy el cálculo incremental distancia cambia muy frecuentemente ( < 5 metros de movimiento). El cálculo de la distancia en android está utilizando el elipsoide WGS84.

Actualmente en las ejecuciones de prueba, El gps cálculos de rebasamiento por 3 - 5% dependiendo de la ruta y la duración de los viajes.

Hay dos problemas que estoy enfrentando :

  1. El cálculo de la distancia es no tener en cuenta la altitud.
  2. Cuando el vehículo está parado, el gps se inicia la inyección de errores debido a los cambios de posición que incluso aunque el dispositivo es estacionaria gps errores de cálculo. Este es el origen de la mayoría de los errores.

Detalles de error 2 :

Normalmente, cuando en una señal de tráfico / sólo claramente se detuvo en la carretera. El de la api de android me dice que el nuevo lat long par cuando hay un desplazamiento de un mínimo de 5 metros. El problema es que la api me informa de que, incluso, "a la deriva" lat largo para ser de 5 metros y de ahí que se incremente el valor del odómetro que mantiene la acumulación de errores debido a que el dispositivo no se mueva.Por lo tanto, si el dispositivo es estacionario se mantiene la acumulación de este error.

Un ejemplo de "error" los datos cuando el dispositivo está parado

Device  Latitude    Longitude   Accuracy    Speed   Altitude    Heading
gps 13.0311466666667    77.5577383333333    41.5    1.9193991   894.7   295.77
gps 13.0311516666667    77.557795   38.8    0.99907583  892.8   294.88
gps 13.0311616666667    77.55784    38.4    0.5883275   886.4   294.88
gps 13.031175   77.5578866666667    37.5    0.74892086  886.1   294.88
gps 13.0311816666667    77.5579383333333    32.5    0.6552414   886 294.88
gps 13.0311516666667    77.557975   27.6    0   885.9   294.88
gps 13.0312016666667    77.5579733333333    32.4    0.7175228   885.9   294.88
gps 13.0312316666667    77.5579366666667    31.8    0.5610472   885.9   294.88
gps 13.031235   77.557885   30.4    0.9028228   885.9   294.88
gps 13.031245   77.5578366666667    30.5    0.81634945  885.8   294.88
gps 13.0312416666667    77.55779    27.9    0.5559  885.8   294.88
gps 13.0312233333333    77.5578433333333    23.9    0.43236667  886 294.88
gps 13.0312066666667    77.5578883333333    23.6    0.43905807  886.2   294.88
gps 13.03119    77.5579366666667    23.6    0.49258918  886.3   294.88
gps 13.0311666666667    77.5579983333334    24.9    0.77208334  886.7   294.88
gps 13.0311316666667    77.557945   22.4    0.3958214   887.8   241.89
gps 13.03113    77.5578416666667    25.2    0.24089 890.5   269.19
gps 13.0311133333333    77.5579 20.7    0.40663055  891.2   221.69
gps 13.0311116666667    77.5578516666667    21.9    0.47302973  891.3   251.03
gps 13.03104    77.55787    26.7    0.40199804  891.3   134.23
gps 13.0311033333333    77.5579333333333    23.6    0.5193547   891.6   332.92
gps 13.0310766666667    77.557985   19  0.38346806  893 118.18
gps 13.0311333333333    77.557945   27.9    0.3381725   896.9   287.31

Conjunto de datos completo está disponible aquí . Se ha > 5000 puntos de datos correspondiente a un viaje de ida y de mi casa a la oficina y de regreso. Desde el principio acerca de ~800 puntos de datos de error más allá de que el dispositivo empiece a moverse.

También la adición de raw cadenas nmea..

$GPGGA,191215.557,1301.8784,N,07733.4765,E,0,0,,912.5,M,-88.1,M,,*68

$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,1.00*01

$GPGSV,3,1,11,29,53,169,18,21,49,005,,18,44,334,17,15,34,037,*76

$GPGSV,3,2,11,14,31,211,,22,27,284,,09,27,107,,27,22,087,*76

$GPGSV,3,3,11,25,10,183,,06,09,318,,30,04,261,*42

$GPRMC,191215.557,V,1301.8784,N,07733.4765,E,0.009,0.00,160712,,N*68

$GPVTG,0.00,T,,M,0.009,N,0.017,K,N*3D

$GPACCURACY,27947.3*04

$GPGGA,191216.557,1301.9128,N,07733.4723,E,0,0,,911.4,M,-88.1,M,,*6A

$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,1.00*01

$GPGSV,3,1,11,29,53,169,18,21,49,005,,18,44,334,18,15,34,037,*79

$GPGSV,3,2,11,14,31,211,,22,27,284,,09,27,107,,27,22,087,*76

$GPGSV,3,3,11,25,10,183,,06,09,318,,30,04,261,*42

$GPRMC,191216.557,V,1301.9128,N,07733.4723,E,0.001,0.00,160712,,N*60

$GPVTG,0.00,T,,M,0.001,N,0.002,K,N*31

$GPACCURACY,27942.6*04

$GPGGA,191217.557,1301.8573,N,07733.5089,E,0,0,,909.4,M,-88.1,M,,*6F

$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,1.00*01

$GPGSV,3,1,11,29,53,169,18,21,49,005,,18,44,334,18,15,34,037,*79

$GPGSV,3,2,11,14,31,211,,22,27,284,,09,27,107,,27,22,087,*76

$GPGSV,3,3,11,25,10,183,,06,09,318,,30,04,261,*42

$GPRMC,191217.557,V,1301.8573,N,07733.5089,E,0.068,0.00,160712,,N*63

$GPVTG,0.00,T,,M,0.068,N,0.126,K,N*39

$GPACCURACY,19781.4*0A

También, me estoy encontrando muy difícil de visualizar estos datos con excel, puede alguien sugerir mejores herramientas ( yo uso un MAC )

¿Alguien me da ideas para reducir los errores , tal vez un mejor algoritmo para considerar incluso la altitud?

5voto

cjstehno Puntos 131

Esta es una fascinante problema en que un poco de análisis puede ser más revelador.

Primero considerar los efectos de la elevación. Cuando un asignada la unidad de distancia que se recorre, y los cambios de elevación por un importe dz (que para los terrestres vehículos es siempre pequeña en comparación con la distancia del mapa), entonces la distancia real que recorre está muy cerca de la sqrt(1 + dz^2). (Esto sería perfectamente exacta cuando el movimiento se hace perfectamente en una línea recta. Para los actuales movimientos en distancias cortas, que suele ser una buena aproximación.) Porque dz se presume pequeño, dz^2 es muy pequeña y dz^4 es increíblemente pequeña. Esto nos permite aproximar la raíz cuadrada por 1 + dz^2/2, porque el error es proporcional a dz^4.

Veamos algunos números para conseguir una manija en el tamaño de estos errores. Para hacer de la computación fácil, elegir nuestras unidades de distancia por lo que el vehículo recorre una unidad entre cada lectura del GPS. En el transcurso de n lecturas, el mapeado distancia totales n*1 = n y deja de lado la distancia adicional de los cambios de elevación de un total de aproximadamente n * dz^2 / 2. Cómo de grande puede ser posible? Porque dz determina la pendiente, el error depende típico de las laderas. Aproximadamente, una pendiente de t grados se traduce en un valor de dz de cerca de t/60. El error relativo a la asignada a distancia por lo tanto es igual a (aproximadamente)

(n * (t/60)^2 / 2)  /  n = t^2 / 7200.

Por ejemplo, para las típicas pistas de t = 10 grados (bastante caro para la mayoría de los vehículos), el error relativo es igual a 10^2 / 7200 = 1/72 = 1.5%.

Observe que este error debe ser considerado como negativo: cálculos de la asignan coordenadas GPS sería subestimar la verdadera distancia por esta cantidad.

Un análisis similar se muestra cómo se podría corregir una lectura del GPS basado en una adecuada promedio de las pendientes encontradas durante un viaje.

¿Qué acerca de la otra fuente de error, el error de medición en el propio GPS? Esto puede ser pensado como un azar de la "deriva" en la discrepancia entre lo observado GPS las coordenadas (X,Y) y las coordenadas correctas (x,y). La deriva es por lo general se manifiesta como un cambio gradual en (X-x, Y-Y) a lo largo del tiempo. Sí, de hecho, introducir algún error, pero por lo general no es tan grande como uno podría pensar. En una respuesta a http://stats.stackexchange.com/a/2497, me informe un típico 0.5% sobreestimación del total de la longitud del viaje. Sería difícil producir un error de que no sólo anula el error negativo debido a la omisión de la elevación, pero también añade un 3-5%.

Estos errores normalmente no dependen de la duración de los viajes, pero dependen de la ruta. Normalmente, sin embargo, la ruta se vuelve más tortuoso, el GPS lecturas tienden a sustituir la "meneos" con segmentos de línea, una vez más subestimar la distancia. Una vez más es difícil ver cómo el GPS podría ser la introducción de una red de 3-5% de sobreestimar. Varias posibles explicaciones alternativas son:

  1. El GPS puede ser sujeto a un errático condiciones, tales como aquellas que podrían tener que enfrentarse a una unidad de viajar profundo dentro de el desorden urbano.

  2. La distancia correcta en realidad podría ser incorrecta. (Por ejemplo, un coche, los neumáticos pueden usar en un 3% - 5% de su diámetro durante su utilizable vidas, lo que resulta en un 3 - 5% de aumento en las lecturas del odómetro. Si el odómetro está calibrado para una nueva y totalmente inflado de los neumáticos, pero el coche se ejecuta en usado en parte neumáticos inflados a la medida de una ruta, que posiblemente podría sobreestimar la distancia en el 5% o más.)

  3. El "corregir" las distancias se han calculado en un mapa utilizando una proyección con un importante error de escala.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X