jueves, 7 de febrero de 2013

Robótica Evolutiva

Autor:
PhD. Guillermo Choque Aspiazu
http://www.eldiario.net/
Publicado en:
Marzo 17 de 2008

Según Christopher Langton, creador y gurú de la vida artificial, la misma suele definirse como la ciencia que trata de situar la vida "tal como es" dentro del contexto de la vida "tal como podría ser". Esta definición la sitúa claramente dentro de las “ciencias de la vida”, y al lado de la “biología”. Es decir, la vida artificial estudia la vida como un fenómeno universal, del cual, por el momento, solo se conoce un ejemplo, la vida en la tierra. Es este el único tipo de vida posible, o la ¿vida en la tierra se trata de un “accidente congelado”?. Para ello, por medios teóricos y computacionales, se estudia lo que es común a todos los seres vivos. La vida artificial se encuentra situada al interior de la “ciencia de la complejidad”, que estudia los fenómenos subyacentes y comunes a todos los sistemas complejos, como ecosistemas, economías y culturas, modelando estos sistemas mediante la interacción de elementos simples. En ambos temas, el principal centro de investigación es el Instituto de Santa Fe para el estudio de los sistemas complejos.


Por su lado la robótica es una rama del árbol tecnología, que estudia el diseño y construcción de máquinas capaces de desempeñar tareas repetitivas, tareas en las que se necesita una alta precisión, tareas peligrosas para el ser humano o tareas irrealizables sin intervención de una máquina. Las ciencias y tecnologías de las que deriva son: el álgebra, los autómatas programables, las máquinas de estados, la mecánica, la electrónica y la informática. En este tiempo en el que se levanta bastante humo acerca de la autonomía, la robótica autónoma es el área de la robótica que desarrolla robots capaces de desplazarse y actuar sin intervención humana. Para ello el robot debe percibir su entorno y actuar de forma adecuada, además de llevar a cabo su tarea.

Uno de los objetivos de la vida artificial es hacer robots menos estúpidos. Los robots actuales, si no son estúpidos del todo, al menos lo son bastante. Lo son en varios sentidos: son incapaces de adaptarse a tareas diferentes de las que se le han encomendado, necesitan bastante potencia de cálculo, y además rara vez son autónomos, ni computacionalmente al estar conectados a una o varias computadoras, ni en el sentido de la energía al estar enchufados a algo. La vida artificial, en el campo llamado robótica adaptativa, trata de hallar robots muy simples, del tamaño de un insecto, que sean capaces de maniobrar autónomamente y de aprender, fundamentalmente debido a dos razones, aunque quizás sean una y la misma. La primera es que la cosa inteligente más estúpida que puede hacer un animal es sobrevivir, sin depender de nada más. Esto lo hacen los animales más simples, pero es incapaz de hacerlo un robot, que tiene que volver a su amo cada vez que tiene que recibir una recarga de energía. La segunda es que una vez que un robot haya conseguido sobrevivir, se le pueden encargar cosas más serias, ya que se habrá resuelto su problema fundamental. En este proceso de adaptación es absolutamente necesario que el robot evolucione.

La robótica ha tenido grandes avances en entornos estructurados, en los que el controlador del robot puede tener un mapa detallado de su entorno. Conforme decrece el grado de estructuración del entorno las tareas se tornan más complejas. Esto ocurre cuando el robot es móvil y debe tener información de su posición en el mapa interno. Los mecanismos pueden ser absolutos o relativos, por ejemplo, usando el sistema de posicionamiento global y la odometría, respectivamente. En entornos no estructurados la solución que se logra a través de mapa no es viable, por lo que se toman caminos en los que no se usa la inteligencia artificial clásica, con un control centralizado, sino la inteligencia artificial basada en agentes múltiples o multiagentes, que constituyen resultados del trabajo de Rodney Brooks y su arquitectura de subsunción, o en planteamientos conexionistas utilizando redes neuronales artificiales. La disciplina que utiliza algoritmos genéticos para lograr la evolución de las arquitecturas de redes neuronales se denomina “robótica evolutiva”. En otras palabras la robótica evolutiva es un área de la robótica autónoma en la que se desarrollan los controladores de los robots mediante la evolución al usar el paradigma de los algoritmos genéticos. Habitualmente se procede a la evolución de las redes neuronales artificiales siguiendo el referente biológico y se simplifica el diseño y la representación en el algoritmo genético.

Dave Cliff, Inman Harvey y Phil Husbands de la Universidad de Sussex introdujeron el término robótica evolutiva en el año 1993. En 1992 y 1993 dos equipos, Dario Floreano y Francesco Mondada en la Escuela Politécnica Federal de Lausanne y el grupo de la Universidad de Sussex informaron de los primeros experimentos de evolución artificial de robots autónomos. El éxito inicial de esta incipiente investigación lanzó una gran actividad que intentaba delimitar el potencial de esta aproximación al problema. Últimamente, la dificultad de crecimiento de la complejidad de las tareas, al igual que en la aproximación simbólica, ha orientado la atención al lado teórico de la disciplina abandonando el punto de vista de la ingeniería. La robótica evolutiva tiene varios objetivos, a menudo simultáneos. El punto de vista de la ingeniería crea controladores de robots para realizar tareas útiles en el mundo real. La biología y otras ciencias de lo vivo obtienen simulaciones que reproducen fenómenos desde fisiológicos hasta ecológicos.

La robótica evolutiva aplica los conocimientos obtenidos de las ciencias naturales: biología y etología; además de los que proceden de la vida artificial: redes neuronales, técnicas evolutivas y sistemas dinámicos; ambos conocimientos aplicados al campo de la robótica, a fin de que los robots desarrollen sus propias habilidades en interacción íntima con el entorno y fundamentalmente sin intervención humana. Mediante un diseño fijo, es difícil lograr que un robot se adapte o se auto-organice a un entorno dinámico que evoluciona, de manera frecuente, mediante cambios caóticos. De allí que la robótica evolutiva puede proporcionar una adecuada solución a este problema, ya que la máquina puede adquirir automáticamente nuevos comportamientos dependiendo de las situaciones dinámicas que se presentan en el entorno en donde se encuentra situada. A través de la utilización de técnicas evolutivas, especialmente algoritmos genéticos, programación genética y estrategia evolutiva, es posible evolucionar el sistema de control o algunas características del cuerpo del robot, tales como la morfología, los sensores, los actuadores, y otros. También es posible co-evolucionar ambos elementos.

De manera similar, se puede decidir la evolución física del hardware, en particular lo referido a los circuitos electrónicos, o el software, relacionado con los programas o las reglas de control. No obstante, existe escasa investigación sobre hardware evolutivo y, normalmente, lo que se hace es evolucionar primero el controlador en una simulación por computadora y, sólo después, se lo transfiere a los robots reales. El controlador del robot consiste típicamente en redes neuronales artificiales, y la evolución consiste en modificar los pesos de las conexiones de dicha red, en un símil parecido al aprendizaje conexionista. En la actualidad, el principal inconveniente del control evolutivo es su lenta velocidad de convergencia y la considerable cantidad de tiempo que tiene que pasar para llevar a cabo el proceso evolutivo sobre un robot real. Asimismo, no es apropiado para resolver problemas de creciente complejidad.

Las redes neuronales artificiales han sido las estructuras más utilizadas en robótica evolutiva para modelar controladores robóticos. En la investigación reciente sobre este campo puede observarse numerosos ejemplos de productos software desarrollados mediante técnicas de evolución simulada, cuya principal finalidad es la producción de neuro-controladores para robots móviles. Una buena parte de los trabajos reportados hace uso de arquitecturas de redes neuronales bastante simples y relativamente pequeñas para ser utilizadas en robots reales. Además, muchas de tales redes son capaces de realizar poco o ningún procesamiento temporal. En consecuencia pocos trabajos presentan resultados con redes neuronales de tamaño aceptable. En la literatura se describen un conjunto de experimentos que van desde simples comportamientos reactivos para navegación y búsqueda de fuentes de luz, a problemas que tradicionalmente requieren representaciones internas. El primer grupo de experimentos, describe tareas tales como evasión de obstáculos desde una perspectiva reactiva, a configuraciones más complejas visualmente guiadas. Tareas con alto grado de complejidad, tales como la recolección de basura y la recarga de energía, también han sido estudiadas para descubrir las condiciones que permiten desarrollar tareas complejas.

Para conocer más acerca del Doctor Choque y sus publicaciones, haz clic en el siguiente vínculo: