Reapertura en RoboCiencia.com

Febrero 12th, 2010 by joviwap

Hola a todos,

Hoy quiero anunciar que este blog se reabre en la direccion http://robociencia.com/.

Como siempre intentaré dar información relevante para todos aquellos que se quieren iniciar en el mundo de la robótica móvil y también para aquellos otros que quieren dar el salto a proyectos de mayor envergadura. Por lo tanto mi animo va más allá de realizar un curso de player-stage y durante la etapa que estamos iniciando aquí juntos trataremos diferentes temas relevantes sobre la robótica como son los sensores, algoritmos, actuadores, sistemas de locomoción, física en la robótica y muchos más.

También os haré llegar las noticias más interesantes relacionadas en el mundo de la robótica y los sitios web con los recursos más interesantes para mantenernos siempre actualizados en este mundo tan cambiante y en continua progresión.

Ya hace más de un año desde que escribí mi último post en jovi-log, me gustaría agradecer a Asociación de Róbotica y Domótica de España (A.R.D.E.) por la formación indirecta que me ha hecho llegar a este punto y por las herramientas que pusieron a mi disposición durante todo este tiempo. También quiero agradecer de forma muy especial a mis amigos fran, luis y boops por su ayuda y apoyo en esta transición.

Ejecutando Player, una cuestión de configuración

Marzo 11th, 2009 by joviwap

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

Marzo 8th, 2009 by joviwap

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

Noviembre 27th, 2008 by joviwap

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

Noviembre 18th, 2008 by joviwap

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

Bienvenida

Noviembre 6th, 2008 by joviwap

Hola a todos,

Durante los próximos meses quiero aproximar una parte de la robótica que no es conocida por todos. Se trata de la robótica móvil autónoma. Esta trata temas como la estimación de la localización, interacción con el medio y comunicaciones.

Normalmente existe la tendencia a pesar entre los aficionados a la robótica de que los prototipos que podemos ver en ferias y exposiciones internacionales, con infinidad de funciones, está solo al alcance de unos poco debido al cote de los robots y de las herramientas necesarias para desarrollarlos, nada más lejos de la realidad.

Desde este humilde blog intentaré despertar inquietudes que os hagan ir más allá del uso de microcontroladores y pequeños sensores para intentar dar un salto cualitativo en vuestros robots que nos haga crecer a todos como comunidad.

Para que los conocimientos que voy a exponer en mis siguientes entradas puedan ser seguidos por todos, utilizaré un PC convencional como plataforma con el sistema operativo Linux Ubuntu.

Espero haber captado vuestra atención y que este blog sea de provecho para todos.

Atentamente,

Joviwap