Archive for the ‘Player-Stage’ Category

Ejecutando Player, una cuestión de configuración

Miércoles, Marzo 11th, 2009

Hoy pretendo explicar como podemos ejecutar Player en nuestro ordenador. Si habéis intentado ejecutarlo os habréis encontrado con un mensaje de uso general en el cual podemos destacar la siguiente linea.

USAGE:  player [options] [<configfile>]

La diferentes opciones vienen listadas en el uso general de player, pero que son los “archivos de configuración” o “config files”, son archivos que nos permiten definir que drivers utilizaremos con Player y a que interfaces tenemos acceso. Echemos un ojo a un archivo de configuración muy básico que viene como ejemplo con Player. Este archivo lo podemos encotrar en /usr/local/share/stage/worlds/simple.cfg.

driver
(
  name "p2os_position"
  provides ["position2d:0"]
)
driver
(
  name "sicklms200"
  provides ["laser:0"]
  port "/dev/ttyS0"
)

Analicemos un poco el contenido de este archivo. Lo primero que podemos observar es que en este archivo de configuración se llama a dos driver.

El primero se llama p2os_position y nos va a proveer de una interfaz position2d que nos va a permitir mandar comandos de velocidad y/o posición al robot y recibir información de la posición del robot en dos coordenadas. En este tipo representa la llamada mínima a un driver, ya que tiene el mínimo de opciones.

El siguiente driver es prácticamente igual de sencillo aunque dispone de un parámetro de configuración port. Pese a lo que pueda parecer los parámetros extra no están estandarizados, dando libertad al que escribe el driver de poner tantos parámetros como desee y darle los nombres que considere oportuno.

Como buen ejercicio para familiarizarse con la documentación de Player sería interesante buscar en ella la función de este driver. De este modo iremos aprendiendo de forma progresiba que drivers tenemos disponibles, al igual que las interfaces.

Desgraciadamente pocos de nosotros tenemos disponemos de robot Pioneer con un escáner laser Sick con los que poder hacer pruebas. Pero no desespereis, en el próximo articulo comenzaremos a trabajar con Stage y poco a poco todas las posibilidades que el mundo de la simulación tiene para nosotros.

Un saludo!

Instalación de Player-Stage

Domingo, Marzo 8th, 2009

Una vez conocidos los aspectos más generales de este software podemos a empezar a trastear con él, pero antes de nada debemos proceder a la instalación. En este punto tenemos dos opciones:

  1. Instalación mediante paquetes: Es tan sencillo como instalar cuatro paquetes desde los repositorios de Ubuntu, podemos hacerlo mediante consola o mediante el gestor de paquetes Synaptic que podemos encontrat en Sistema -> Administración. Los paquetes a instalar son los “libplayercore2-dev”, “libplayerc2-dev”, “robot-player” y “stage”.
    > sudo apt-get install vlibplayercore2-dev
    > sudo apt-get install libplayerc2-dev
    > sudo apt-get install robot-player
    > sudo apt-get install stage

    Pese a que este sistema es muy sencillo, estaremos utilizando versiones antiguas tanto de player como de stage, 2.0.4 y 2.0.5 respectivamente. Además player no se instalará con este nombre sino con robot-player.

  2. Instalación desde el código fuente: Este sistema es algo más complejo pero permite confirar Player de forma más personalizada. En particular, recomiendo las versiones 2.1.0 de Player y la 2.1.1 de Stage, ya que conseguiremos un buen balance entre estabilidad y opciones. Para instalarlo seguiremos los siguientes pasos:
    • Instalar las dependencias necesarias. Las básicas son:
    > sudo apt-get install build-essential
    > sudo apt-get install libltdl3 libltdl3-dev
    > sudo apt-get install libgtkmm-2.4-dev
    • Descargar los archivos de player y stage desde sourceforge. Disponibles aquí.
    • Descomprimir ambos paquetes:
    > tar -xjvf player
    > tar -xjvf stage
    • Configurar e instalar Player:
    > cd player
    > ./configure
    > make
    > sudo make install
    • Configurar e instalar Stage
    > cd ../stage
    > ./configure
    > make
    > sudo make install
    • Configurar las librerías:
    > echo "export LD_LIBRARY_PATH=/usr/local/lib:\$LD_LIBRARY_PATH" | sudo tee -a ~/bashrc.$FICHERO
    > export LD_LIBRARY_PATH=/usr/local/lib:\$LD_LIBRARY_PATH
      Con estas instrucciones lo que hacemos configurar el sistema operativo para que sea capaz de encontrar las librerías de Player y Stage, y además añadir esta configuración al archivo de usuario.

Con esto ya tenemos preparado nuestro sistema para sistema para trabajar con él. Como último apunta quiero comentar que en los artículos futuros van a estar basado en Player 2.1.0 y Stage 2.1.1.

Un saludo!

Stage, un mundo simulado

Jueves, Noviembre 27th, 2008

En el articulo anterior hablamos de Player, el de hoy está fuertemente ligado ya que vamos ha hacer de un plugin para Player, Stage.

Este nos permite simular un mundo ideal en dos dimensiones, donde nuestro robot podrá tener tantos sensores como queramos y se podrá desplazar libremente por cualquier lugar del que tengamos un mapa pero con algunas restricciones reales ya que  nunca podrá atravesar las paredes.

El día que introduje este Blog, expliqué que no era necesario gastar fortunas para investigar en el mundo de la robótica autónoma, tipo Pioneer. Sino que podemos experimentar en un mundo simulado antes de decidir que es relevante en un robot para nosotros antes de invertir este dinero.

Debo decir por mi experiencia que al pasar del mundo simulado al real nos podemos llevar alguna sorpresa, especialmente con los sensores de ultrasonidos, pero normalmente hay métodos para subsanarlos, haciendo de Stage una plataforma sencilla de usar y con bastante potencial

.Stage

Aquí podemos ver la versión 3.0.1 de Stage

El mundo simulado esta restringido al borde exterior de la imagen, siendo cada una de las líneas negras paredes que el robot no puede atravesar, pero que podrán ser detectadas con diferentes sensores.

Además, y como podemos ver en la imagen. En nuestras simulaciones podemos incluir más de un robot. Es importante tener en cuenta que un robot detectará a otro de la misma forma que puede detectar una pared si se usan sensores de distancia, pero Player dispone también de interfaces para sensores RFID con los que podríamos incluso comunicar diferentes robots, tanto en la simulación, como posteriormente en robots reales.

Otro punto muy a tener en cuenta son los mapas. Las paredes que vemos en la captura de Stage, se cargan mediante archivos de imagen. De esta forma podemos cargar el entorno que nos sea más conveniente a nuestra finalidad.

Para los usuarios más exigentes, también está disponible para Player un simulador en 3D llamado Gazebo, pero por el momento es solo una versión Beta.

Un saludo y hasta la próxima entrega.

Player, abstracción de un robot

Martes, Noviembre 18th, 2008

Para comenzar este blog y entrar en materia os voy ha hablar de una herramienta que hará universal los códigos que realicéis para vuestros robots, y sobre la cual existen actualmente multitud de robots comerciales y de investigación basados en ella.

Player es un “HAL” o “Hardware Layer Abstraction” que funciona bajo sistemas linux, lo que traducido significa “Capa de abstracción de Hardware”, pero que significa esto exactamente. Se podría decir que es un pequeño sistema operativo de drivers en el cual podemos manejar diferentes tipos de dispositivos.

Imaginemos por un momento que deseamos instalar en nuestro robot sensores infrarrojos. En el mercado existen diferentes modelos, además podemos optar por desarrollar nuestros propios sensores.

Si alguien intentase hacer un programa compatible con cada modelo posible de infrarrojos seria totalmente imposible, pero que pasaría si creásemos una interfaz intermedia con todas las características de estos sensores. En ese caso ya no nos imputaría el modelo concreto de sensor, sino su tipo. Pues bien, esto es Player.

Entre otros muchas interfaces, Player dispone de drivers para:

  • Cámaras
  • Odometría (posición por encoders)
  • Ultrasonidos
  • Infrarrojos
  • Escaners láser
  • Bumpers
  • Receptores GPS
  • Simuladores

Podéis encontrar una lista completa en la web de Player

Esto solo acaba de comenzar, el próximo día veremos cuales son las posibilidades de simulación que nos ofrece Player.

Un saludo,

Joviwap