martes, 20 de enero de 2009

GPS para Linux (II)

Tras haber mostrado en el anterior artículo el proceso de instalación de Navit, ahora nos ocuparemos de instalar en el equipo lo necesario para recibir señal de los satélites y así poder utilizarlo como navegador GPS.

La primera cuestión es elegir el hardware adecuado. Afortunadamente en la actualidad hay una fuerte competencia entre los fabricantes de chips receptores GPS, lo cual lleva a una constante mejora en las características de los mismos así como un abaratamiento de los receptores. Hoy en día es posible conseguir receptores de última generación, de gran sensibilidad y consumo muy reducido por precios sorprendentemente bajos.

En este caso en particular, el receptor utilizado en un Globalsat ND-100. Se trata de un receptor muy interesante, pues aúna características tales como reducido tamaño, muy bajo consumo, rapidez de adquisición, alta sensibilidad y sobre todo un coste sumamente reducido (Se pueden conseguir en eBay por menos de 30 euros, gastos de envío incluidos).



Una de las cosas que me llamó la atención fue el hecho de que se anunciaba con drivers para Linux, pero lo que me desconcertó, es que estos drivers se anuncian para sistemas "RedHat 7.3 / 8.0 / 9.0". Algunos de estos sistemas tienen 7 años de antigüedad, y curiosamente no se menciona ningún Linux reciente. A pesar de lo desconcertante de los drivers anunciados para Linux, seguí adelante y decidí comprar uno de estos dispositivos.



La decisión no pudo haber sido mejor. Al conectar el dispositivo GPS-USB en un Ubuntu 8.10 instalado en un equipo Asus EeePC 701, éste reconoció automaticamente lo necesario para tratarlo como un dispositivo que transmite datos por un puerto serie (Prolific PL2303 USB to serial adaptor).


~$ dmesg | tail -10

[ 104.472054] usb 3-2: new full speed USB device using uhci_hcd and address 2
[ 104.639516] usb 3-2: configuration #1 chosen from 1 choice
[ 104.986259] usbcore: registered new interface driver usbserial
[ 104.989944] usbserial: USB Serial support registered for generic
[ 104.992020] usbcore: registered new interface driver usbserial_generic
[ 104.992020] usbserial: USB Serial Driver core
[ 105.011304] usbserial: USB Serial support registered for pl2303
[ 105.013390] pl2303 3-2:1.0: pl2303 converter detected
[ 105.025605] usb 3-2: pl2303 converter now attached to ttyUSB0
[ 105.028018] usbcore: registered new interface driver pl2303
[ 105.028018] pl2303: Prolific PL2303 USB to serial adaptor driver


En estas líneas de dmesg se nos indica la referencia (ttyUSB0) del puerto serie que recibirá los datos del receptor GPS.



El siguiente paso es instalar gpsd. Esta paquete contiene la utilidad gpsd (que actúa como demonio sirviendo datos del GPS a cuantas aplicaciones lo requieran) y permite ocultar los detalles de la configuración del GPS a las aplicaciones que hacen uso de éste. Dado que este paquete se encuentra en los repositorios de Ubuntu, su instalación es sumamente sencilla:


~$ sudo apt-get install gpsd


Una vez instalado el servicio gpsd y con el receptor GPS conectado en el ordenador, colocamos éste en un lugar despejado en el que pueda recibir la señal necesaria para estimar su posición. A los pocos segundos el dispositivo obtiene su localización y comienza a enviar información a gpsd.


~$ gpsd /dev/ttyUSB0


Podemos comprobar los datos recibidos con xgps (utilidad incluida en el paquete gpsd-clients, el cuál se habrá instalado automáticamente al instalar gpsd). Obtenemos algo como esto:



El software de navegación que habíamos elegido (Navit) viene preparado para obtener datos de posicionamiento a través de gpsd, y de hecho la configuración por defecto trata de obtener los datos del GPS a través de dicho servicio. No tenemos más que ejecutar la aplicación y a los pocos segundos mostrará nuestra ubicación (la representación en pantalla dependerá de los mapas que hayamos decidido instalar en Navit).



Así de sencillo. No hemos tenido ni que abrir el miniCD con los drivers proporcionados por el fabricante del GPS y en pocos minutos hemos conseguido tener perfectamente en funcionamiento un dispositivo GPS conectado a nuestro sistema Linux.

Actualización (5/08/2009):

Dado que en los comentarios no se permiten determinadas etiquetas, respondo aquí cómo incluir en Navit los mapas de Openstreetmaps: Para incluir los mapas de openstreetmaps en Navit, se pueden cambiar los permisos al fichero o bien editarlo como sudo:

$ sudo gedit /etc/navit/navit.xml

En el fichero, hay que buscar la seccion correspondiente a openstreetmaps. En mi caso, lo tengo así (he tenido que poner espacios adicionales dado que blogger no permite introducir determinadas etiquetas en el contenido):


< !-- Mapset template for openstreetmaps -->
< mapset enabled="yes">
< map type="binfile" enabled="yes" data="/usr/share/navit/maps/peninsula.bin" />
< /mapset>


Se trata de un mapa de la Península Ibérica. Leer más...

lunes, 12 de enero de 2009

Navit: Navegación GPS para Linux

Ultimamente estoy interesado en el tema de desarrollo de software relacionado con posicionamiento mediante GPS, y en particular he estado recopilando información acerca de lo que hay disponible para Linux.

Mi interés particular se centra en lo que se conoce como GPS tracker (un sistema que genera un registro de los lugares en los que ha estado) para un proyecto en el que estoy comenzando a trabajar. Además, en paralelo, he estado examinando algunas de las aplicaciones libres disponibles para Linux de sistemas de navegación basados en GPS.

Podemos citar aplicaciones como Roadnav, RoadMap, GPSDrive, tangoGPS, Viking y Navit.

Quizás me deje alguna y seguramente más de una de las citadas no sean muy adecuadas como sistema de navegación, pero probablemente sean lo más parecido a los sistemas de navegación comerciales con los que quizás estemos más familiarizados.

Tras examinar la documentación acerca de las características de los sistemas, he decidido probar más en profundidad Navit pensando en que puede ser el que más se aproxime a lo que estoy buscando. Este software tiene algunas características que en mi caso particular me parecen interesantes.

Quiero insistir en que este artículo no es una comparativa y en ningún momento indico que ninguno sea mejor o peor que los otros. Para hacer una comparativa tendría que probarlos todos ellos en profundidad, y esto es algo que en este momento no he hecho.



Lo que he hecho ha sido instalar Navit en un Ubuntu 8.10 con una particularidad: El equipo. Se trata de un Asus EeePC 701 (512MB RAM y una pantalla de 7" de 800x480), es decir, un hardware muy limitado.

Una de las ventajas de utilizar Ubuntu es que al ser un sistema Linux muy extendido, son muchos los desarrolladores de software que proporcionan paquetes .deb ya preparados (sin necesidad de que el usuario compile el software), o mejor aún: Repositorios para poder instalar el software y gestionar sus actualizaciones del mismo modo que cualquiera de las aplicaciones incluidas con la distribución. Este es el caso de Navit.

En el caso de Ubuntu 8.10, añadimos la siguiente línea al fichero /etc/apt/sources.list


deb http://navit.latouche.info/ubuntu intrepid main

También podemos hacerlo desde la herramienta Synaptic, añadiendo esta línea desde la opción de menú "Opciones > Repositorios > Software de terceros".

Una de las dificulades con las que me encontré al tratar de instalarlo fue un tema de las firmas digitales. Aunque en la web se indican las claves a importar, no indican (o yo no lo supe encontrar) qué utilizar como servidor de claves. Tras realizar algunas búsquedas, encontré una página en el que se indican estos detalles.

En definitiva, que debemos de hacer lo siguiente:


~$ gpg --keyserver x-hkp://gpg-keyserver.de --recv-keys CB229096
~$ gpg --export -a CB229096 | sudo apt-key add -


Tras esto, ya podemos instalar la última versión del software disponible para nuestra distribución.


~$ sudo apt-get install navit


El siguiente paso es prepararar Navit: Principalmente obtener datos de un GPS e introducir mapas. Pero por ahora ya hemos dado el primer paso: Aunque en el estado actual (sin mapas ni GPS) sea de escasa utilidad, ya podemos ejecutar la aplicación.

Actualización (15-enero 2009):

Otro software que tiene un excelente aspecto y que habrá que probar en cuanto haya ocasión es QLandkarte

Leer más...