Calcule la distancia recorrida por el vehículo usando "nudos" de datos NMEA

0

Estoy usando el módulo de GPS L80 quectel. Que envía la cadena de datos del protocolo NMEA que tiene latitud, longitud, tiempo UTC, nudos, etc. Vamos a utilizar este módulo GPS en un vehículo. Tenemos que calcular la distancia recorrida por el vehículo mediante GPS. Tenemos que mostrar la distancia total recorrida por el vehículo como un odómetro. ¿Es posible calcular la distancia total recorrida por los vehículos utilizando el valor de "nudos" de un GPS? Si es posible, ¿entonces cómo calcular?

Gracias ..

    
pregunta user6161

2 respuestas

3

Calcular la distancia desde la velocidad

Como Peter Bennett ya escribió en su respuesta, obtienes la velocidad actual en millas náuticas de un conjunto de datos GPS. Multiplicado por el tiempo hasta el siguiente conjunto de datos GPS, obtienes la distancia recorrida entre la recepción de los dos conjuntos de datos.

Pero: si aceleras, la velocidad real aumenta, mientras que tu dispositivo piensa que es constante. Por lo tanto, la distancia calculada es demasiado baja. Lo mismo se aplica al frenar (distancia calculada demasiado alta). Una solución simple: no use la velocidad del conjunto de datos, sino la velocidad promedio entre dos conjuntos de datos. Si la aceleración es constante, la distancia resultante es absolutamente correcta. Si la aceleración no es constante, el resultado es aún mucho más preciso.

Otro PERO: ¿Qué pasa si la señal del GPS se pierde por un período más largo, como en un túnel largo? Digamos, la señal se ha ido durante 6 minutos. El último conjunto de datos establece una velocidad de 50kt, el siguiente de 10kt. ¿Qué tan larga es la distancia? Si hay un atasco en el túnel y el conductor tuvo que frenar a 10kt justo después de perder la señal del GPS, la longitud es de 10kt * 0.1h = 1nm. Si tiene que frenar justo antes de la próxima señal de GPS, la longitud es de 50kt * 0.1h = 5nm. Usando resultados de velocidad promedio en 3nm. ¿Qué es verdad?

Calcular la distancia de las coordenadas

Para resolver este problema, es mejor no confiar en la velocidad en distintos momentos, sino calcular la distancia a partir de las coordenadas. Esto todavía tiene algunas desventajas, ya que la distancia será un poco demasiado baja para curvas cerradas (o túneles con curvas), pero aún así es mejor que el enfoque de velocidad.

La distancia de una posición al ecuador es

$$ y = H \ cdot \ langle lat \ rangle $$

y la distancia al primer meridiano es

$$ x = H \ cdot \ langle lon \ rangle \ cdot \ cos \ langle lat \ rangle $$

Los ángulos se dan en radianes, no en grados: \ $ \ alpha [rad] = \ frac {\ pi} {180 °} \ cdot \ alpha [°] \ $

Estas fórmulas contienen la distancia al centro de la tierra, que es $$ H = R_ {earth} + \ langle altitud \ por \ GPS \ rangle $$

La distancia entre dos coordenadas puede ser calculada por

$$ d = \ sqrt {(x_2-x_1) ^ 2 + (y_2-y_1) ^ 2 + (H_2-H_1) ^ 2} $$

Acerca de \ $ R_ {earth} \ $:
Como primera aproximación, la Tierra es una esfera con un radio promedio de 6371 km, pero es más un elipsoide con un radio de 21 km más grande en el ecuador que en los polos. Como resultado, las distancias entre dos coordenadas cerca del ecuador son aproximadamente un 0,5% más grandes que en los polos. Principalmente para las altitudes correctas, el GPS usualmente usa un modelo de la tierra llamado WGS84, que describe su forma elipsoidal. El radio de la tierra en una latitud dada entonces es:

$$ R_ {earth} = \ sqrt {(6356.7523km \ cdot \ sin \ langle lat \ rangle) ^ 2 + (6378.137km \ cdot \ cos \ langle lat \ rangle) ^ 2} $$

Finalmente, esta fórmula solo es válida si la distancia calculada es pequeña en comparación con el tamaño de la Tierra, por lo que los efectos esféricos se pueden descuidar. (La ruta más corta de San Francisco, California a Roma, Italia es a través de Canadá, la Bahía de Hudson, Groenlandia, Reino Unido, mientras que mi solución es la costa este de EE. UU., Portugal, España). Si está interesado en calcular grandes distancias, consulte Wikipedia sobre las grandes distancias en círculos . Pero para su aplicación, esta solución está bien

    
respondido por el sweber
1

Un nudo es una milla náutica por hora. Una milla náutica es 1852 metros.

Como un nudo es una unidad de velocidad, debe determinar la cantidad de tiempo que el vehículo viajó a una velocidad particular para determinar la distancia recorrida.

    
respondido por el Peter Bennett

Lea otras preguntas en las etiquetas