Hola a todos,
Tengo OpenPlotter con un GPS por USB y varios sensores. Me gustaria poder exportar el track que he hecho en cada salida.
¿Esto se puede hacer? Entiendo que SignalK almacena la informacion de GPS, pero no se hasta cuando ni como poder exportar.
Agradezco cualquier ayuda.
Un saludo.
(17-01-2022, 10:31 PM)jlazkano escribió: [ -> ]Hola a todos,
Tengo OpenPlotter con un GPS por USB y varios sensores. Me gustaria poder exportar el track que he hecho en cada salida.
¿Esto se puede hacer? Entiendo que SignalK almacena la informacion de GPS, pero no se hasta cuando ni como poder exportar.
Agradezco cualquier ayuda.
Un saludo.
OpenPlotter o OpenCPN?
La pregunta que hace gypsylyon viene al caso por que por lo que yo se Signal K -el servidor- no guarda datos por defecto que yo sepa. Puede que haya algún plugin que lo haga pero sin haberlo instalado previamente y activado no se si se guardan los recorridos.
Lo que si es cierto es que OpenCpn -el trazador de mapas- si que guarda los recorridos si tienes activa tal opción. Puedes
usar el gestor de marcas y rutas para exportar cualquiera de esos datos en formato NMEA0183 en un archivo con extensión GPX.
Gracias por las respuestas.
En el raspberry tengo OpenPlotter con OpenCPN, pero no utilizo el OpenCPN. Utilizo apps de moviles para atacar a SignalK.
Entonces entiendo que SignalK como tal no va almacenando nada, tendria que hacerlo con OpenCPN en el movil.
Lo que me gustaria es que SignalK enviara todo a un fichero GPX, a ver si encuentro algun plugin que haga eso.
Voy informando por aqui.
Un saludo.
Supongo que debe haber algun plugin en la lista de disponibles que lo haga. Imagino que también podrías hacerlo con el comando netcat. Dado que los datos NMEA0183 se vierten en el puerto 10110 bastaría con hacer:
nc ip.del.servidor 10110 > miarchivodedatos.gpx
para hacer el volcado... o eso creo.
Edito para corregir como explica otoio.
(18-01-2022, 12:15 PM)pinguino escribió: [ -> ]Supongo que debe haber algun plugin en la lista de disponibles que lo haga. Imagino que también podrías hacerlo con el comando netcat. Dado que los datos NMEA0183 se vierten en el puerto 10110 bastaría con hacer:
nc ip.del.servidor 10110 miarchivodedatos.gpx
para hacer el volcado... o eso creo.
Si es un comando para ejecutar en consola, ahí falta algo.
Podría ser lo siguiente:
Código:
nc ip.del.servidor 10110 > miarchivodedatos.gpx
O bien:
Código:
nc ip.del.servidor 10110 >> miarchivodedatos.gpx
En consola la diferencia entre > y >> es que
- > vuelca el resultado del comando en un fichero. Si no existe, lo crea (se crearía en el home del usuario). Pero si vuelve a volcar (lo ejecutas de nuevo) sobrescribe el fichero y pierdes lo anterior.
- >> vuelca el resultado del comando en un fichero y si no existe lo crea, pero no sobrescribe. Añadiría los datos al final del fichero sin sobrescribir lo anterior.
https://linuxize.com/post/netcat-nc-comm...-examples/
Gracias!
Lo ideal seria que un plugin lo hiciera de forma automática y me generase un GPX por cada inicio de servicio de Signal K.
He estado buscando y no he encontrado nada, voy a probar poner el comando que me habeis dicho en el script de arranque, asi cada vez que arranque el OpenPlotter me generra un fichero nuevo.
Os voy diciendo como termina esto.
Un saludo y gracias por todo.
La app de signalk Freboard genera track que se puede exportar a gpx.
El problema es que necesita conexión Internet para descargar las cartas y por otra parte se come muchos recursos de la raspi. Yo tengo la de 8Gigas y se pone a 98% .
Lo mejor es usar OpenCPN. Es más potente, no necesita Internet y te genera el track que puedes exportar a gpx
Pienso igual que Gyp.
Puedes probar la opción de auto tracking de OpenCpn y arrancarlo automáticamente al inicio. Aunque vayas a usar móviles o lo que sea.
He repasado los plugins de SK y he visto uno que lo almacenaba todo pero en formato SK. Supongo que no te servirá. Por tanto debes usar o bien el comando que te dijimos o bien como comentan acertadamente el mismo opencpn. Ten en cuenta que si arrancas opencpn sin mapas ni plugins probablemente apenas afectará perceptiblemente al rendimiento. por otro lado si vas a usar el comando debes asegurarte de que inicia lo mas tarde posible pues si al arrancar no esta todavía SK activo puede que se cierre en pocos segundos al no entrarle datos.
Muchas gracias por las respuestas.
En casa tengo una Raspberry Pi con OpenPlotter, pero la faena es que no tengo ningun sensor, y no escupe nada en el puerto 10110. Lo malo de utilizar "nc" es que me va a guardar todo que envie por NMEA0183, y no solo los valores de GPS.
La alternativa de arrancar OpenCPN de forma automatica lo tengo que revisar, ya que lo veo un poco engorroso tener que arrancar una app tan compleja solo para guardar la localizacion.
Sobre el plugin de SignalK, ¿podrias pasarme la URL? si solo es cuestion de cambiar de formato, lo podre hacer mediante linea de comandos.
Estoy pensando que igual puedo enviar la info de GPS desde SiganlK a InfluxDB, que es una base de datos de series de tiempo. Entiendo que habra algun plugin para esto.
A ver como queda todo esto.
Muchas gracias por todo.
Un saludo.
(19-01-2022, 09:20 PM)jlazkano escribió: [ -> ]Muchas gracias por las respuestas.
En casa tengo una Raspberry Pi con OpenPlotter, pero la faena es que no tengo ningun sensor, y no escupe nada en el puerto 10110. Lo malo de utilizar "nc" es que me va a guardar todo que envie por NMEA0183, y no solo los valores de GPS.
La alternativa de arrancar OpenCPN de forma automatica lo tengo que revisar, ya que lo veo un poco engorroso tener que arrancar una app tan compleja solo para guardar la localizacion.
Sobre el plugin de SignalK, ¿podrias pasarme la URL? si solo es cuestion de cambiar de formato, lo podre hacer mediante linea de comandos.
Estoy pensando que igual puedo enviar la info de GPS desde SiganlK a InfluxDB, que es una base de datos de series de tiempo. Entiendo que habra algun plugin para esto.
A ver como queda todo esto.
Muchas gracias por todo.
Un saludo.
Hay algo que no me queda claro. En tu primer post, dices que tienes openplotter con varios sensores. Donde corre openplotter?
Me despista que digas que tienes una raspi en casa sin sensores.
No se si sabes lo mas básico respecto a SK. Lo primero. En localhost:3000 -o la ip asignada al equipo donde corre el servidor- tienes el acceso al servidor y sus configuraciones. Tras logearte ya puedes entrar en la lista de plugins disponibles y descargar e instalar el que quieras.
En efecto hay uno para enviar datos a influxdb como deseas. Seguro que por los plugins encuentras algo que te apañe.
Por otro lado opencpn mientras no maneja cartografía apenas gasta cpu, probablemente lo mismo que el plugin+influxdb alrededor de menos del 5%. Yo lo veo una opción mas sencilla pero si te gusta tener algo mas especializado también está bien.
Gypsy, dice que tiene una rpi en el barco con todo montado y otra rpi en casa para trastear pero sin sensores ni nada... o eso entiendo.
(vaya, tenía medio escrito algo y veo que luego ha habido unas cuantas respuestas. Bueno, te lo suelto y espero aportar algo)
Lo que planteaba Pingüino no está mal.
Esto es más o menos una salida de ese comando:
Cita:$GPRMC,193416.00,V,,,,,,,190122,,,N*7C
$GPVTG,,,,,,,,,N*30
$GPGGA,163644.00,4321.91011,N,00230.05598,W,1,04,1.90,69.6,M,49.7,M,,*7F
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,3,1,12,04,00,283,,05,08,036,,08,01,263,,10,05,155,*76
$GPGSV,3,2,12,16,51,309,,18,64,076,,23,19,128,23,25,01,126,*78
$GPGSV,3,3,12,26,88,185,,27,30,269,,29,18,068,,31,28,194,18*78
$GPGLL,,,,,193416.00,V,N*42
$GPRMC,193417.00,V,,,,,,,190122,,,N*7D
$GPVTG,,,,,,,,,N*30
$GPGGA,163644.00,4321.91011,N,00230.05598,W,1,04,1.90,69.6,M,49.7,M,,*6F
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,3,1,12,04,00,283,,05,08,036,,08,01,263,,10,05,155,*76
$GPGSV,3,2,12,16,51,309,,18,64,076,,23,19,128,23,25,01,126,*78
$GPGSV,3,3,12,26,88,185,,27,30,269,,29,18,068,,31,28,194,18*78
$GPGLL,,,,,193417.00,V,N*43
En ese churro están, entre otros, la posición y el tiempo (UTC) en que se toma, ambos en negrita. Es NMEA en crudo.
Después parece que hay posibilidades de traducir a un gpx. Incluso vía webs:
https://www.google.com/search?q=converti...nt=gws-wiz
No sería muy difícil crear un script para ejecutarlo automáticamente en el arranque y generar un fichero con los datos que se llame fecha_track.txt o algo así.
El problema es que "graba" una situación cada segundo, con lo que si navegas unas cuantas horas, tendrías un fichero bastante grande.
Eso se puede evitar si en lugar de usar el comando nc usamos
gpspipe, ya que éste permite leer unas cuantas líneas y no de continuo, con lo que vía un script se podría tomar datos nmea cada X tiempo para alimentar ese fichero con la situación cada 5 minutos, por decir algo.
Para ello, en las opciones Serie de OpenPlotter, habría que asociar la salida del GPS a GPSD en lugar de a SignalK, y que desde GPSD se alimente a SignalK. Todo esto porque gpspipe depende de GPSD.
No sé si se entenderá algo...
(19-01-2022, 09:20 PM)jlazkano escribió: [ -> ]Muchas gracias por las respuestas.
En casa tengo una Raspberry Pi con OpenPlotter, pero la faena es que no tengo ningun sensor, y no escupe nada en el puerto 10110. Lo malo de utilizar "nc" es que me va a guardar todo que envie por NMEA0183, y no solo los valores de GPS....
También vía scripts se puede extraer los datos del churro, si sólo te interesa la posición y hora. De memoria creo que sería con comando awk...
Ahora bien, para conseguir un contenido como este gpx de un track exportado desde openCPN hay que currárselo un poco... Pero poder... probablemente se pueda.
Cita:<?xml version="1.0"?>
<gpx version="1.1" creator="OpenCPN" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xsichemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd" xmlns:opencpn="http://www.opencpn.org">
<trk>
<extensions>
<opencpn:guid>0735d08c-b2a3-407f-ad09-bb16442fc272</opencpn:guid>
<opencpn:viz>1</opencpn:viz>
</extensions>
<trkseg>
<trkpt lat="43.366189000" lon="-2.499752667">
<time>2022-01-19T18:38:39Z</time>
</trkpt>
<trkpt lat="43.366222167" lon="-2.499770500">
<time>2022-01-19T18:39:46Z</time>
</trkpt>
</trkseg>
</trk>
</gpx>