Fundamentos de Inteligencia Artificial Trabajo de curso 1999/2000 Introducción El objetivo de este trabajo es definir el sistema de control de un robot que debe cumplir la misión que se describe a continuación en un cierto entorno, cuyas condiciones también se especifican. El alumno deberá analizar el problema y resolverlo empleando las técnicas de representación del conocimiento y control que le parezcan más adecuadas. El entorno y las capacidades del robot El robot evolucionará en una habitación que se representará como un tablero de NxN casillas (pudiéndose variar N). El tablero tendrá forma toroidal, es decir, si se sale por la derecha, se entra por la izquierda; si se sale por arriba, se entra por abajo, etc. Las posibles acciones del robot son las siguientes: Detectar un obstáculo en cualquiera de las 8 casillas que rodean la casilla ocupada por el robot. Reconocer el objeto situado en la casilla que se encuentra a continuación en la dirección en la que mira. Girar una posición a la izquierda. Girar una posición a la derecha. Avanzar una casilla en la dirección en la que mira. Avanzar empujando: si hay un obstáculo empujable en la dirección de movimiento, el robot lo moverá en la dirección del movimiento (incluso aunque haya cualquier otro objeto en la posición donde acabe el obstáculo). Coger algo que esté en la misma casilla del robot. Dejar algo en la misma casilla del robot. Cargar la batería a partir de un enchufe. El robot puede llevar un peso máximo de 10Kg. El robot dispone de una batería recargable de un máximo de 50 unidades de energía. Cada vez que el robot se mueve una casilla gasta 1+peso transportado por el robot. Si tiene que empujar un obstáculo empujable, el robot gastará tantas unidades de energía adicionales como pese el obstáculo. En cada una de las casillas del mundo pueden aparecer diversos tipos de objetos, siendo su distribución aleatoria en cada nuevo problema. Entre ellos figuran: Enchufes (cuando el robot pasa sobre ellos se recarga su batería). Obstáculos empujables. Los hay de varias clases: cajas (de 2Kg), sillas (de 1kg), mesas (10kg), macetas (0kg), sofás (5kg) y bombonas de butano (15kg). Obstáculos no empujables. También los hay de varias clases: paredes, pianos de cola, neveras. Distintos tipos de piezas, que el robot deberá coger y soltar para trasladarlas (son piezas de alta tecnología que no deben ser empujadas), además el robot no podrá trasladar más de una pieza simultánemente: cabeza NEC-300 (1kg), cabeza SONY-A (2kg), cabeza MULTIVAC (5kg). cuerpo AM(5kg), cuerpo MITSHUB (2kg). brazos GRUA (3kg, longitud=1m), brazos telescópicos (3kg, longitud=10m), brazos flexibles (2kg, longitud=1m). 3 Fundamentos de Inteligencia Artificial Trabajo de curso 1999/2000 piernas GM(3kg, velocidad=10), piernas SEAT(5kg, velocidad=3). baterías (10 kg). El objetivo del robot será recoger las piezas (que estarán por el tablero) para construir un robot compañero. Para realizar la construcción, el robot tendrá que ir depositando todas las piezas juntas en cualquier lugar del tablero. Las piezas necesarias para construir un robot son: una cabeza, un cuerpo, dos brazos, dos piernas y una batería. El sistema de control deberá parar el robot bien cuando detecte que el nuevo robot ha sido construido, o bien cuando el robot se quede sin energía. Sobre la memoria del trabajo. La memoria deberá reflejar, en un estilo técnico y correcto, el trabajo realizado en cada una de sus fases, los resultados obtenidos y unas instrucciones que indiquen la forma de compilarla y ejecutarla. Más concretamente, la memoria de la práctica deberá incluir los siguientes puntos. Definición del problema. En este primer punto se debe realizar una clara definición del problema se va a resolver, incluyendo - si fuera el caso - qué restricciones se han impuesto y su justificación. Descripción de la solución adoptada. En este punto se indicará básicamente la estructuración de la solución propuesta y cómo se ha trasladado este enfoque a la implementación. Implementación. Aquí se debe explicar la implementación realizada. Debe incluirse una descripción funcional de los distintos módulos que componen la aplicación, haciendo hincapié en algún elemento que a juicio del alumno crea que aporta una mejora en velocidad de ejecución, facilidad de uso, etc. El lenguaje de implementación es libre. Experimentos. Es importante demostrar la corrección y capacidades del sistema documentando la aplicación del mismo sobre un conjunto de problemas lo más completo posible. Si se emplean ficheros de datos debe indicarse con claridad su ubicación y nombre completo. Conclusiones. En este apartado se deberá realizar una valoración crítica de los resultados obtenidos, destacando tanto aquellos aspectos positivos o a destacar como las limitaciones o deficiencias que se hayan detectado. Apéndice. 3 Fundamentos de Inteligencia Artificial Trabajo de curso 1999/2000 Además de lo anterior se incluirá a modo de apéndice un pequeño manual que detalle la lista de ficheros que componen la aplicación, su organización en directorios (si la hubiera) y las instrucciones necesarias para compilar y ejecutar el programa. Normas de entrega. La memoria de la práctica (en formato MS-Word) y el código deberán ser remitidos por correo electrónico al profesor responsable de la asignatura ([email protected]) dentro del periodo que se establezca al efecto. Posteriormente se concertará una fecha para la defensa del trabajo entre el profesor responsable y el alumno. 3