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.
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: