Problema con programa que lee desde un GPS

10/11/2009 - 16:36 por [Juanjo] | Informe spam
Hola grupo:

Tengo una aplicación VS2008-C# que lee datos de un dispositivo GPS, y
sitúa las posiciones leidas en un mapa.

Hasta aquí todo "bien", el problema que tengo es que cada satélite GPS
da una posición diferente para una posición (en función de la "cobertura"
que tengo con mas o menos variación) y entonces al situar el punto leido en
el plano, el punto se mueve constantemente. No se si me he explicado bien,
si nosotros vamos con un navegador TomTomGo o del estilo en un coche,
llegamos a un semaforo y nos paramos, el punto que indica nuestra posición
se queda quieto no? pues si yo hago lo mismo con mi programa cuando llego al
semaforo, constantemente se esta moviendo un poco adelante, un poco atras, a
los lados, siempre cerca del punto donde estoy.

Alguien se le ocurre como solucionar esto?, he pensado en poner un
umbral antes de recolocar la posición en el mapa, pero entonces el
movimiento no es fluido, si no que va a "saltos". No se si en los datos que
se leen del GPS, hay algun dato que indique si lo leido es correcto o que
grado de exactitud tiene.

Gracias de antemano

Preguntas similare

Leer las respuestas

#1 RFOG
10/11/2009 - 17:47 | Informe spam
Creo que los GPS lo que hacen es encontrar la "calle" más cercana (por eso
a veces se equivocan y te van guiando por donde no vas y de repente
cambian a otra "calle".

Deberías promediar lo que recibas, aparte de buscar la "calle" (que
supongo no podrás), y mantener un vector e intentar seguirlo mediante
algún algoritmo aproximativo. Por ejemplo, a 100 KM/h es imposible dar un
giro de 90 grados (y si lo está dando de verdad es que se está dando un
piño, así que da igual lo que pongas en la pantalla, el conductor y
pasajeros están encomendándose a san apapurcio), pero sí ir trazando un
arco de X radio máximo de curvatura... etc.

Aunque si la precisión que tienes es suficiente, lo mismo lo más rentable
es que "animes" el movimiento a partir de un "delta" fuera del promedio en
lugar de ir saltando...

On Tue, 10 Nov 2009 16:36:59 +0100, [Juanjo]
wrote:

Hola grupo:

Tengo una aplicación VS2008-C# que lee datos de un dispositivo GPS,
y sitúa las posiciones leidas en un mapa.

Hasta aquí todo "bien", el problema que tengo es que cada satélite
GPS da una posición diferente para una posición (en función de la
"cobertura" que tengo con mas o menos variación) y entonces al situar el
punto leido en el plano, el punto se mueve constantemente. No se si me
he explicado bien, si nosotros vamos con un navegador TomTomGo o del
estilo en un coche, llegamos a un semaforo y nos paramos, el punto que
indica nuestra posición se queda quieto no? pues si yo hago lo mismo con
mi programa cuando llego al semaforo, constantemente se esta moviendo un
poco adelante, un poco atras, a los lados, siempre cerca del punto donde
estoy.

Alguien se le ocurre como solucionar esto?, he pensado en poner un
umbral antes de recolocar la posición en el mapa, pero entonces el
movimiento no es fluido, si no que va a "saltos". No se si en los datos
que se leen del GPS, hay algun dato que indique si lo leido es correcto
o que grado de exactitud tiene.

Gracias de antemano




Microsoft Visual C++ MVP => http://geeks.ms/blogs/rfog
En el amor es lo mismo que en la guerra; plaza que parlamenta está medio
conquistada.
Respuesta Responder a este mensaje
#2 [Juanjo]
10/11/2009 - 20:20 | Informe spam
Gracias por la ayuda, aunque exactamente no es el problema que tengo.

El problema es que para mi posición "real", recibo datos de X satelites y
dificilmente, todos coinciden en la misma posición, siempre hay algun
"decimal" en la posición que es diferente de uno a otro, y al recolocar mi
posición en función de lo que recibo, el punto se mueve continuamente,
aunque haga un promedio de todos los puntos recibidos.

Cuando estoy en movimiento, me da un poco igual, porque la posición va
variando y no se notan las variaciones.

Un saludo, y gracias de todas las formas

"RFOG" escribió en el mensaje de
noticias:
Creo que los GPS lo que hacen es encontrar la "calle" más cercana (por eso
a veces se equivocan y te van guiando por donde no vas y de repente
cambian a otra "calle".

Deberías promediar lo que recibas, aparte de buscar la "calle" (que
supongo no podrás), y mantener un vector e intentar seguirlo mediante
algún algoritmo aproximativo. Por ejemplo, a 100 KM/h es imposible dar un
giro de 90 grados (y si lo está dando de verdad es que se está dando un
piño, así que da igual lo que pongas en la pantalla, el conductor y
pasajeros están encomendándose a san apapurcio), pero sí ir trazando un
arco de X radio máximo de curvatura... etc.

Aunque si la precisión que tienes es suficiente, lo mismo lo más rentable
es que "animes" el movimiento a partir de un "delta" fuera del promedio en
lugar de ir saltando...

On Tue, 10 Nov 2009 16:36:59 +0100, [Juanjo]
wrote:

Hola grupo:

Tengo una aplicación VS2008-C# que lee datos de un dispositivo GPS,
y sitúa las posiciones leidas en un mapa.

Hasta aquí todo "bien", el problema que tengo es que cada satélite
GPS da una posición diferente para una posición (en función de la
"cobertura" que tengo con mas o menos variación) y entonces al situar el
punto leido en el plano, el punto se mueve constantemente. No se si me
he explicado bien, si nosotros vamos con un navegador TomTomGo o del
estilo en un coche, llegamos a un semaforo y nos paramos, el punto que
indica nuestra posición se queda quieto no? pues si yo hago lo mismo con
mi programa cuando llego al semaforo, constantemente se esta moviendo un
poco adelante, un poco atras, a los lados, siempre cerca del punto donde
estoy.

Alguien se le ocurre como solucionar esto?, he pensado en poner un
umbral antes de recolocar la posición en el mapa, pero entonces el
movimiento no es fluido, si no que va a "saltos". No se si en los datos
que se leen del GPS, hay algun dato que indique si lo leido es correcto
o que grado de exactitud tiene.

Gracias de antemano




Microsoft Visual C++ MVP => http://geeks.ms/blogs/rfog
> En el amor es lo mismo que en la guerra; plaza que parlamenta está medio
conquistada.
Respuesta Responder a este mensaje
#3 RFOG
10/11/2009 - 22:18 | Informe spam
Pues entonces ponte un umbral antes de empezar a mover el punto. A partir
de un delta, o cuando todos empiecen a cambiar a la vez en un mismo
vector... ya sé que decirlo es muy fácil...

On Tue, 10 Nov 2009 20:20:13 +0100, [Juanjo]
wrote:

Gracias por la ayuda, aunque exactamente no es el problema que tengo.

El problema es que para mi posición "real", recibo datos de X satelites
y dificilmente, todos coinciden en la misma posición, siempre hay algun
"decimal" en la posición que es diferente de uno a otro, y al recolocar
mi posición en función de lo que recibo, el punto se mueve
continuamente, aunque haga un promedio de todos los puntos recibidos.

Cuando estoy en movimiento, me da un poco igual, porque la posición va
variando y no se notan las variaciones.

Un saludo, y gracias de todas las formas

"RFOG" escribió en el mensaje de
noticias:
Creo que los GPS lo que hacen es encontrar la "calle" más cercana (por
eso a veces se equivocan y te van guiando por donde no vas y de repente
cambian a otra "calle".

Deberías promediar lo que recibas, aparte de buscar la "calle" (que
supongo no podrás), y mantener un vector e intentar seguirlo mediante
algún algoritmo aproximativo. Por ejemplo, a 100 KM/h es imposible dar
un giro de 90 grados (y si lo está dando de verdad es que se está dando
un piño, así que da igual lo que pongas en la pantalla, el conductor y
pasajeros están encomendándose a san apapurcio), pero sí ir trazando un
arco de X radio máximo de curvatura... etc.

Aunque si la precisión que tienes es suficiente, lo mismo lo más
rentable es que "animes" el movimiento a partir de un "delta" fuera del
promedio en lugar de ir saltando...

On Tue, 10 Nov 2009 16:36:59 +0100, [Juanjo]
wrote:





<snip>


>> En el amor es lo mismo que en la guerra; plaza que parlamenta está
medio conquistada.







Microsoft Visual C++ MVP => http://geeks.ms/blogs/rfog
En el amor es lo mismo que en la guerra; plaza que parlamenta está medio
conquistada.
Respuesta Responder a este mensaje
#4 [Juanjo]
11/11/2009 - 09:17 | Informe spam
Gracias, por la idea.

Ya lo hice asi, pero creo que me falta algo en la interpretacion de los
datos que leo, por que si ponia un umbral pequeño, los satelites con peor
cobertura, daban datos que sobrepasaba ese umbral y si el umbral es grande,
el movimiento no es continuo, si no a saltos.


"RFOG" escribió en el mensaje de noticias
news:
Pues entonces ponte un umbral antes de empezar a mover el punto. A partir
de un delta, o cuando todos empiecen a cambiar a la vez en un mismo
vector... ya sé que decirlo es muy fácil...

On Tue, 10 Nov 2009 20:20:13 +0100, [Juanjo]
wrote:

Gracias por la ayuda, aunque exactamente no es el problema que tengo.

El problema es que para mi posición "real", recibo datos de X satelites
y dificilmente, todos coinciden en la misma posición, siempre hay algun
"decimal" en la posición que es diferente de uno a otro, y al recolocar
mi posición en función de lo que recibo, el punto se mueve
continuamente, aunque haga un promedio de todos los puntos recibidos.

Cuando estoy en movimiento, me da un poco igual, porque la posición va
variando y no se notan las variaciones.

Un saludo, y gracias de todas las formas

"RFOG" escribió en el mensaje de
noticias:
Creo que los GPS lo que hacen es encontrar la "calle" más cercana (por
eso a veces se equivocan y te van guiando por donde no vas y de repente
cambian a otra "calle".

Deberías promediar lo que recibas, aparte de buscar la "calle" (que
supongo no podrás), y mantener un vector e intentar seguirlo mediante
algún algoritmo aproximativo. Por ejemplo, a 100 KM/h es imposible dar
un giro de 90 grados (y si lo está dando de verdad es que se está dando
un piño, así que da igual lo que pongas en la pantalla, el conductor y
pasajeros están encomendándose a san apapurcio), pero sí ir trazando un
arco de X radio máximo de curvatura... etc.

Aunque si la precisión que tienes es suficiente, lo mismo lo más
rentable es que "animes" el movimiento a partir de un "delta" fuera del
promedio en lugar de ir saltando...

On Tue, 10 Nov 2009 16:36:59 +0100, [Juanjo]
wrote:





<snip>


>>> En el amor es lo mismo que en la guerra; plaza que parlamenta está
medio conquistada.







Microsoft Visual C++ MVP => http://geeks.ms/blogs/rfog
> En el amor es lo mismo que en la guerra; plaza que parlamenta está medio
conquistada.
Respuesta Responder a este mensaje
#5 RFOG
11/11/2009 - 10:08 | Informe spam
Pues ya no sé qué decirte... Estoooo... Haz el punto más gordo, y mientras
no te salgas del contorno no lo muevas... :-P

Cuando estés parado, toma el satélite de mayor señal e ignora los demás, y
hasta que no tengas un vector lo suficientemente grande no integres los
demás... Está claro que los que hacen navegadores lo han solucionado de
alguna forma, y no creo que sea demasiado compleja porque la electrónica
de esos cacharros no es gran cosa...


On Wed, 11 Nov 2009 09:17:51 +0100, [Juanjo]
wrote:

Gracias, por la idea.

Ya lo hice asi, pero creo que me falta algo en la interpretacion de los
datos que leo, por que si ponia un umbral pequeño, los satelites con
peor cobertura, daban datos que sobrepasaba ese umbral y si el umbral es
grande, el movimiento no es continuo, si no a saltos.


"RFOG" escribió en el mensaje de noticias
news:
Pues entonces ponte un umbral antes de empezar a mover el punto. A
partir de un delta, o cuando todos empiecen a cambiar a la vez en un
mismo vector... ya sé que decirlo es muy fácil...

On Tue, 10 Nov 2009 20:20:13 +0100, [Juanjo]
wrote:





<snip>
<snip>




<snip>


>> En el amor es lo mismo que en la guerra; plaza que parlamenta está
medio conquistada.







Microsoft Visual C++ MVP => http://geeks.ms/blogs/rfog
En el amor es lo mismo que en la guerra; plaza que parlamenta está medio
conquistada.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida