martes, 30 de enero de 2007

El simulador Player/Stage

Si queremos trabajar en navegación autónoma dentro de la inteligencia artificial necesitaremos un simulador debido a dos motivos fundamentales:

- El precio de los componentes hardware.
- La velocidad de desarrollo

Dentro del mundo de los simuladores libres, sin duda uno de los máximos exponentes es el proyecto Player/Stage.

Este simulador tiene una arquitectura algo compleja que sería inútil explicar aquí, ya que en la página del proyecto se pueden encontrar recursos de sobra.

Hablando mal y rápido diremos que el software tiene una estructura donde un servidor (player) atiende peticiones de clientes heterogéneos de forma transparente. Por lo que podemos acceder con todo tipo de clientes ya sean de hardware real, como un Pioneer o un Khephera, o de un software de simulación, como sería Stage, y que es lo que instalaremos aquí.

Como vamos a usar Player junto con Stage deberemos bajar los fuentes de la página del proyecto. Personalmente he instalado la versión 2.0.3 en una Ubuntu 6.10 Edgy Eft, y esos serán los pasos que explicaré, pero no tiene que ser muy distinto para otras distribuciones.

Una vez que decargamos los fuentes, antes de instalarlos debemos comprobar que tenemos todas las dependencias instaladas. Para ubuntu necesitaremos los paquetes build-essential, libjpeg62-dev y libltdl3-dev (además de libgtk2-dev para stage), para lo que hacemos desde un terminal:

# sudo apt-get install build-essential libjpeg62-dev libltdl3-dev libgtk2-dev


Una vez hecho eso pasamos a instalar Player. Nos vamos al directorio donde descargamos los fuentes y hacemos:

# tar -jxvf player-2.0.3.tar.bz2

# cd player-2.0.3

# ./configure

Al terminar la configuración se muestra una lista con los dispositivos que se han instalado y los que no. Si hemos hecho toda la parte de dependencias correctamente deberíamos ver el mensaje Support for plugin drivers will be included en la lista, que es lo necesario para poder instalar Stage.

NOTA: Es muy interesante la librería para acceder a PlayerStage desde Python. Para ello son necesarios otros paquetes que serán analizados en un próximo post dedicado a la API para Python, para el que también es muy interesante el proyecto Pyro

Para terminar hacemos:

# sudo make install

Con esto ya tenemos listo Player. Ahora tan sólo queda repetir el proceso para Stage:

# tar -jxvf stage-2.0.3.tar.bz2

# ./configure

# sudo make install

Y con esto hemos terminado con la instalación. Es conocido un error en Ubuntu al tratar de arrancar un fichero de Stage en el que recibimos el mensaje:
err: unable to open color database /usr/X11R6/lib/X11/rgb.txt : No such file or directory (stage.c stg_lookup_color)
Fallo de segmentación (core dumped)

Este error (bastante feo por cierto) se debe a que el fichero que busca está ubicado en otro sitio . Concretamente, el fichero se encuentra en /etc/X11/ y en /usr/lib/X11/. La solución más rápida es crear un enlace a nuestro fichero en la ruta en la que espera Player que esté el fichero. Para esto hacemos:

# sudo ln -s /usr/lib/X11/rgb.txt /usr/X11R6/lib/X11/rgb.txt

Y con esta chapucilla ya tenemos listo nuestro simulador. En un próximo post haremos algo interesante con alguna librería cliente.

Saludos !!

1 comentario:

Anónimo dijo...

Muy interesante y didáctico, me ha venido muy bien a la hora de instalar en Ubuntu 7.10 la nueva versión de Player/Stage.

Gracias por el artículo,ya que poca gente parece interesada por este tema