Navegación visual

Ya estamos de vuelta para ponernos manos a la obra con la última práctica (por fin!).

En esta ocasión el objetivo está en poder navegar por el mundo utilizando el pioneer (desde el simulador Gazebo) usando para ello sólo la información que nos da la cámara (nada de laser).

Las tareas a realizar serán las siguientes:

  1. Identificar el suelo en la imagen captada por la cámara (2D).
  2. Realizar una conversión de los puntos 2D a 3D (utilizando la biblioteca Progeo).
  3. Representarlo mediante segmentos.
  4. Utilizar esta información para navegar.

El mundo en el que se desarrolla esta práctica es el departamental de la URJC de Móstoles:

departamental

Anuncios

Siguelínea Versión Mejorada

Hace unos días nos llevamos una sorpresa al conocer que la velocidad máxima no eran 1000mm/seg, sino que para esta práctica el software de simulación no trunca los valores superiores a 1000.

Así que nos pusimos a trabajar para poder mejorar los tiempos de vuelta, y hemos conseguido un algoritmo que hace que el robot complete una vuelta en unos 72 segundos, alcanzando una velocidad máxima de 2000 mm/sg.

Aquí podéis ver el resultado:

Chocagira en Gazebo

Con el gazebo perfectamente configurado y conectado con el jde, pasamos a probarlo utilizando nuestro chocagira.

Para ello copiamos el código elaborado para el chocagira en el navegacion.c (dentro del procedimiento yourcode_iteration) del  nuevo introrob.

El resultado es el siguiente:

Como podéis comprobar, en este escenario se podría afinar aún más el comportamiento del robot (añadir más velocidad, los giros, etc) aunque eso lo dejaremos para más adelante…

Conectando con gazebo…

Ya tenemos gazebo instalado, pero ahora tenemos que conectarlo con jde para poder acceder a los parámetros del robot y controlarlo con nuestro software.

Pues manos a la obra… lo primero descargar todo lo necesario de la web de la asignatura:

  1. Fichero de configuración de jde que permita conectar con gazebo.
  2. Nuevos ficheros introrob para controlar el robot desde jde en gazebo.

Con todo esto bajado, lo primero que vamos a hacer es compilar e instalar el driver de gazebo para jde, que viene dentro del directorio “drivers” de jde (en mi caso la versión 4.2.1):

…./4.2.1.r174/drivers/gacebo$ make

…./4.2.1.r174/drivers/gacebo$ sudo make install

Tras lo cual tendría que haberse copiado el fichero gazebo.so al directorio de jde que estemos usando, en mi caso: /usr/local/share/jde-robot.

Con todo esto podemos hacer la prueba de que jde conecta correctamente con gazebo. Para ello desde un terminal iniciamos gazebo mediante el comando:

$ wxgazebo <fichero-configuración>

El fichero de configuración que tendremos que utilizar está incluido en  el siguiente archivo comprimido (el pioneer2dx.world), aunque en mi caso lo he tenido que modificar para que utilice la renderización glx, utilizando este.

Finalmente:

$ wxgazebo pioneer2dx-renderGlx.world

Tras lo cual tendremos gazebo funcionando.

gazebo1

El paso siguiente será iniciar el jde, pero con el fichero de configuración que nos descargamos al principio (para que conecte con gazebo).

$ jde jde-conf-siguelinea

Si recibes un error del graphics_gtk, edita el fichero de configuración anterior y lo comentas (anteponiendo # a las líneas: driver graphics_gtk y end_driver).

Si todo ha ido correctamente, tendremos lo siguiente:

gazebo_jde

En la siguiente entrada mostraremos el funcionamiento del chocagira en gazebo…

Instalación y configuración del Entorno: Segunda parte (Gazebo)

Aquí estamos otra vez! intentando terminar la dichosa instalación de gazebo.

Os cuento cómo va la cosa…

En principio parecía que todo iba bien… me descargué gazebo 0.7.0, leí el archivo README y comprobé que necesitaba de otros paquetes (que novedad!): ODE y GDAL. Pues nada, a descargarlos e instalarlos………………… y comprobar que no compila, de ninguna de las maneras.

Finalmente, José María posteó una receta para instalarlo en un Ubuntu 8.04. Dado que mi portatil tiene el Guadalinex V5, basado en el anterior, seguí todos los pasos de la misma.

Resultado: ERROR.

Parece que tengo problemas de renderización. Gazebo utiliza la renderización off-screen y el soporte para esta varía de una máquina a otra.

Gazebo-0.7 soporta 4 tipos de renderización off-screen (unas aceleradas y otras no): glx, sgix, xlib y glxp.

Para poder especificar cuál de ellas se quiere utilizar se utiliza el parámetro <renderMethod> en el fichero de configuración de gazebo.

En mi caso, con el fichero de configuración siguiente y tras probar con cada uno de los anteriores métodos, tan solo funciona el “xlib” pero, aunque no obtengo ningún error, el resultado no es el esperado. Os lo muestro en la siguiente imagen:

error-gazebo

Finalmente, con un poco de ayuda he conseguido hacerlo funcionar. Para ello he deshabilitado la opción de Composite en mi servidor X, agregando en /etc/X11/xorg.conf  las siguientes líneas :

Section “ServerFlags”
Option “AIGLX” “off”
EndSection

Section “Extensions”
Option “Composite” “Disable”
EndSection

Y luego, en la configuración pioneer2dx-rendering.world, agregando el soporte para GLX :

<model:ObserverCam>

<renderMethod>glx</renderMethod>
</model:ObserverCam>

<model:Pioneer2DX>
….
<renderMethod>glx</renderMethod>
</model:Pioneer2DX>
Resultado:

gazebo

Instalación y Configuración del entorno: Player, Stage y Jde

Inhauguramos este foro con la instalación y configuración del entorno que vamos a utilizar en la asignatura de Robótica (Master de Sistemas Telemáticos e Informáticos – URJC Móstoles). En concreto la he realizado en un equipo Guadalinex V5 (basado en Ubuntu Hardy).

Inicialmente realicé la instalación siguiendo los pasos que describe Santiago en la web oficial de la asignatura (gracias por tu aportación!). Aunque no fue sencillo… tras mucho trastear (y haciendo uso del foro)  conseguí que todo funcionara.

Con el entorno correctamente instalado y configurado en mi portatil (Guadalinex V5) y junto con otro compañero (Jesús) intentamos rehacer los mismos pasos en el suyo (Debian) con el fin de escribir en nuestros blogs la secuencia de acciones realizadas.

Tenemos que admitir que, como buenos informáticos que somos, después de volvernos locos instalando paquetes dejamos de apuntar (y saber con exactitud) los pasos que habíamos realizado. Por ello no conseguimos más que lo mismo que con mi portatil, hacerlo funcionar sin poder establecer una lista de comandos necesarios para la instalación de todo.

Tras postear el problema en el foro, vimos que José María (el profe ;-)), proponía una receta para la instalación (y posteriormente para gazebo) en un Ubuntu 8.04, así que procedimos a la instalación del Sistema Operativo en una máquina virtual  y siguiendo los pasos al pie de la letra, conseguimos tener el entorno perfectamente instalado.

Después de todo esto comprenderéis la alegría que da al ver un escritorio lleno de ventanas como estas….

jde