Construcción de mapas (final)

… o eso espero!

Por indicación de José María (el profe 😉 ), os muestro un último vídeo para que se pueda comprobar con detalle la eliminación de segmentos no válidos.

Para saber si un segmento es o no válido, por cada punto del laser detectado, comprobaremos si el segmento formado por la posición del robot y este punto tiene intersección con cualquiera de los segmentos que tenemos almacenados. En ese caso, si el segmento es “pequeño” lo eliminanos, mientras que si es grande lo acortamos por el punto de intersección.

Pero lo mejor es verlo:

Como podéis comprobar, al avanzar el robot azul, el rojo va detectando lo que había detrás de este, fusionando con los segmentos que ya teníamos e, igualmente, eliminando los segmentos “no válidos” (donde estaba el robot azul).

La calidad del video es peor que la de los anteriores, pero es que mi recordmydesktop se niega a trabajar (no se si es porque es fin de semana, porque no aguanta el player con los dos jde de cada robot, …) y he tenido que hacer uso de la cámara del móvil.

Hasta otra!

Anuncios

Construcción de mapas (parte II)

Después de bastante tiempo realizando modificaciones sobre el código de construcción de mapas, parece que voy llegando a una solución aceptable.

Muestra de ello es la siguiente instantánea (prometo colgar un video próximamente 😉  ):

mapapintado

Hasta pronto!

Mi primer programa: “ChocaGira”

Parece ser que el Chocagira es como el “HolaMundo” en la robótica… ¡pues mal empezamos!… a nosotros nos ha costado un poco más!!.

La mayoría de las cositas que nos frenaban eran tonterías, que si estás en clase, el profe (o un compañero) puede ayudarte y lo solucionas en un momento,  pero si estás sólo te bloqueas durante un buen rato.

Por ejemplo, tras modificar navegacion.c, hacemos el make y el make install de introrob, pero al ejecutar el entorno el robot sigue comportándose igual que antes.

– Ummmm, ¿qué pasa?

– No se debe haber modificado el introrob.so

– Sí, se ha modicado, la fecha es la actual.

– … Será que no se ha copiado el introrob.so al directorio jde_robot.

– Pues, a ver…., sí aquí está, sí se ha copiado.

– Es verdad, mira, el makefile hace el cp.

– ¿Entonces qué pasa?

Volvemos a modicar navegacion.c, make, make install, lanzamos el robot…nada! Se comporta igual que al principio. Hasta que descubrimos que la ruta no era la correcta. Modificamos el makefile para que haga el cp a la ruta correcta. Es probable que durante la instalación (como la realizamos en dos tardes) creáramos el otro directorio.

Vale, el robot ya se mueve hacia adelante. Comenzamos a plantearnos cómo hacer que se comporte según las especificaciones. Las indicaciones de Vicente y de José María nos vienen estupendamente.

Identificamos 3 estados: avanzando, retrocediendo, girando.

estados

Lo que nos queda por determinar son esos ‘cuando choque’, ‘cuando haya retrocedido suficiente’ o ‘cuando haya girado suficiente’, así que nos ponemos a hacer pruebas, de forma que se escriba en la salida el valor de laser(60),laser(90),laser(120) miestras el robot avanza, para hacernos una idea de los valores que contiene el array según se acerca el robot a los objetos.

Con unas cuantas pruebas fue suficiente para hacer que nuestro robot ejecute el chocagira sin problemas:

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