viernes, 1 de junio de 2007

Player/Stage

Player es un servidor para el control de robots móviles, este se comporta como una capa de abstracción entre los dispositivos del robot y el controlador, además brinda capacidad para interconexión vía TCP/IP. El player fue originalmente creado para la plataforma Pionner 2DX, pero al ser un proyecto de software libre y tener una buena aceptación por parte de muchos centros de investigación en el mundo se ha extendido y ahora soporta mas plataformas como Khepera, Romba, Nomad, Segway RPM y otras mas.

Player corre sobre el sistema operativo GNU/Linux, este software fue escogido para el proyecto por su versatilidad y porque brinda la posibilidad de trabajar tanto robots reales como también simulados, esto ultimo en conjunto con el simulador stage del que se hablara mas adelante.

Al utilizar player trabajamos sobre una arquitectura cliente-servidor donde el player sera el servidor instalado sobre el robot, el cliente se comunicara vía TCP/IP y por este medio solicitara información sensorial del robot y enviara comandos a este y a los diferentes dispositivos conectados a el.

Para comprender el funcionamiento del player es necesario conocer dos conceptos utilizados en su arquitectura: dispositivo e interfaz.

Un dispositivo es cualquier elemento que provea información o reciba comandos para realizar alguna acción sobre el ambiente, todo sensor o actuador es tratado como un dispositivo en el player, de esta forma un robot se ve como un grupo de dispositivos conectados al servidor y a los cuales el cliente puede acceder.

Una interfaz es una abstracción que agrupa un grupo de dispositivos similares en funcionalidad y brinda un grupo de métodos comunes para su interacción con el cliente.

Player brinda un grupo de interfaces comunes para ciertos tipos de dispositivos. Por ejemplo, dados dos sistemas de control de posición, existe una interfaz común para ambos en este caso la interfaz position2d. Este tipo de arquitectura permite que luego de que exista el driver de un dispositivo, no sea necesario a la hora de construir el controlador tener en cuenta los detalles de funcionamiento del hardware a utilizar, algo similar a la capa de abstracción de hardware del sistema operativo Linux.

Player esta construido en C++ pero el cliente puede ser programado en cualquier otro lenguaje que soporte comunicación TCP/IP, hay disponibles muchas librerías en diferentes lenguajes que facilitan el desarrollo de los controladores.

Además de drivers para hardware existen también dentro del player drivers abstractos, por ejemplo drivers para algunos algoritmos de posición como amcl, el cual es una implementación del algoritmo de localización adaptativo Monte Carlo.

Stage es un simulador de robots móviles, este se puede utilizar como un API para desarrollar simuladores o en conjunto con el player como simulador independiente.

El stage esta orientado al trabajo en robótica cooperativa brinda la posibilidad de simular poblaciones de robots y dispositivos con modelos computacionales simples.

No hay comentarios.: