1 / 58

Introducción a la robótica basada en comportamientos

Introducción a la robótica basada en comportamientos. (parte 3). Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires. Comportamientos reactivos.

etana
Download Presentation

Introducción a la robótica basada en comportamientos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introducción a la robótica basada en comportamientos (parte 3) Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires

  2. Comportamientos reactivos Un comportamiento reactivo es, simplemente, la reacción a un estímulo (Arkin, basado en el concepto expresado por la psicología del comportamiento ) Comentarios: 1. ¿Qué es lo que se entiende por estímulo? 2. ¿Qué es lo que se entiende por reacción? 3. Si el estímulo desaparece, debería desaparecer la respuesta (pues estamos hablando de reacción), luego lo que tenemos es un reflejo que, a priori, sería bastante menos que nuestra idea de comportamiento. Podríamos adaptar el concepto de comportamiento reactivo como el conjunto de pares estímulo-reacción que conducen a que un robot dotado de dicho conjuntode pares describa el mismo comportamiento observado.

  3. Sistemas reactivos Un sistema reactivo acopla percepción a acción sin el uso de representaciones abstractas o historia temporal. • Un sistema reactivo debería tener las siguientes propiedades: • Los comportamientos son los bloques básicos con que se construye un robot (desde el punto de vista lógico). • La representación abstracta del conocimiento (extraído o adquirida a priori) debería ser evitada. La construcción de una representación del mundo (aunque sea parcial) consume tiempo (pérdida de reacción) y está sujeta a errores. • Los modelos de comportamiento animal no deberían introducir restricciones sino que debería aportar una base sobre la cual se pueden definir comportamientos. • Los comportamientos dentro de un sistema reactivo deberían poder ser re-usados sin ser modificados.

  4. Métodos de diseño de comportamientos • guiados por la etología • guiados por la actividad asociada a una situación • guiados experimentalmente • aprendizaje

  5. Guiados por la etología Ejemplo: sistema de navegación del sapo basado mediante polos de atracción y repulsión, implementado mediante campos potenciales (Arbib y House, 1987) Obtener, a partir de la etología, las bases del comportamiento Extraer modelo Importar el modelo al robot Modificar/adaptar el modelo Realizar los experimentos adecuados Obtener nueva evidencia biológica Evaluar resultados Listo

  6. Guiados por la actividad asociada a una situación Evaluar la interacción del robot con el entorno Ejemplo: Pengi debe navegar en un mundo con obstáculos cumpliendo diferentes tareas. Una situación podría ser: estoy-sobre-un-borde-de-la-pared (Agre y Chapman). Particionar el espacio considerando diferentes situaciones Crear respuestas a las situaciones Importar las asociaciones al robot Corregir, ampliar, agregar asociaciones Realizar los experimentos adecuados Evaluar resultados Listo

  7. Un caso extremo de los métodos guiados por la actividad asociada a una situación son los Planes universales. En estos, para cada posible situación percibida por el robot existe una respuesta asociada (mas allá que el número de posibles respuestas sea finito o infinito, o el cardinal de situaciones posibles sea finito o infinito).

  8. Guiados experimentalmente Ejemplo: el Genghis fue construido según esta metodología. Tanto comportamientos como sensores fueron incorporados incrementalmente (Brooks). Construir un sistema mínimo Llevar a cabo experiencias con el robot Adicionar nuevos comportamientos y/o corregir los existentes Evaluar los resultados Listo

  9. Genghis (hexápodo) Comportamientos originales: pararse y caminar (problemas con terrenos no regulares donde el robot perdía el equilibrio) Se le agregó sensores (sensores de fuerza sobre las patas) que permitieran mantener una posición estable respecto del terreno. Se le agregó más sensores (de contacto en forma de bigotes) para detectar obstáculos en la dirección de la caminata. Se le agregó, también, sensores de inclinación para evitar situaciones donde el robot volcaba. Para que siguiera a las personas se le agregó sensores térmicos (infrarojos) para que una vez que detectará a una persona, la siguiera. Brooks, Rodney A., A Robot That Walks; Emergent Behaviors from a Carefully Evolved Network

  10. Lista de comportamientos resultantes (en orden de incorporación): • Pararse • Caminar • Forzar el balanceo • Elevar pata (para abordar un obstáculo) • Detectar obstáculos • Estabilizarse • Seguir un cuerpo caliente (animal o persona). Es suprimido ante la ausencia de calor. • Dirigirse al cuerpo caliente.

  11. (Video de genghis 1) (Video de genghis 2)

  12. Aprendizaje El robot interactúa con el entorno aprendiendo las asociaciones estímulo-respuesta. Puede ser: Supervisado cuantitativo (se debe garantizar que durante la exploración el robot experimente una adecuada base de ejemplos con una respuesta conocida para poder generalizar). Supervisado cualitativo, como por ejemplo, el aprendizaje por refuerzo donde el robot dispone de una medida de su desempeño en realizar el comportamiento objetivo la cual debe incrementar a lo largo del tiempo.

  13. Clasificación general de comportamientos (Arkin) De exploración o que preservan la dirección (ejemplos: caminar sin rumbo fijo, seguir una dirección) Ir a un objetivo (ejemplos: ir a un objetivo puntual o área) Evitar un área (ejemplos: evitar un obstáculo fijo o móvil, esquivar un obstáculo fijo o móvil ) Seguir caminos (ejemplos: seguir una ruta, navegar en un hall, seguir una línea) Conservar una postura (ejemplos: balancearse, estabilizarse)

  14. Caminar (ejemplos: andar, doblar, correr) Manipulación (ejemplos: alcanzar) Tomar y maniobrar (ejemplos: agarrar, envolver )

  15. Métodos para expresar comportamientos • Diagramas de estímulo respuesta • Notación funcional • Aceptador de cantidad finita de estados.

  16. Diagramas de estímulo respuesta Estímulo Comportamiento Respuesta Detectar objetivo Ir al objetivo Detectar objeto Evitar objeto Respuesta Coordinación Detectar pasillo Seguir pasillo Encontrar objetivo Parar

  17. Notación funcional Cada comportamiento se nota como una función cuyo dominio es el conjunto de estados o situaciones posibles y cuya imagen es el conjunto de posibles acciones r = C(s) donde r es la respuesta, s es el estímulo y C es la función (mapeo) del comportamiento. Respuesta = Coordinar-comportamientos( ir-hacia-el-objetivo(objetivo-detectado), esquivar-obstáculos(obstáculo-detectado), mantener-el-centro-del-hall(detectar-paredes-del-hall), esquivar-obstáculo-móvil(detectar-trayectoria-om) )

  18. Aceptador con cantidad finita de estados (Finite State Acceptor FSA). Este tipo de especificación es útil cuando se debe tratar con varios comportamientos los cuales podrían tener algún tipo de orden (pero, claramente no restringido a casos de secuencialidad) Se especifican usando una 4-upla (Q, ,q0, F) donde Q representa los posibles estados (comportamientos),  la función de transición especificando un tipo de estímulo, q0 es el estado (o comportamiento) inicial, y F es el conjunto de estados (o comportamientos) finales.

  19. Estímulo s que condiciona el comportamiento C C’ no s Estímulo s que condiciona el comportamiento

  20. Otro-estímulo en-objetivo en-objetivo objetivo-detectado Listo Listo-para-empezar ir-hacia-el-objetivo objetivo-detectado objetivo-detectado detectar-paredes-del-hall obstáculo-detectado obstáculo-detectado Esquivar-obstáculo detectar-paredes-del-hall Mantener-en-hall obstáculo-detectado Respuesta = Coordinar-comportamientos( ir-hacia-el-objetivo(objetivo-detectado), esquivar-obstáculos(obstáculo-detectado), mantener-el-centro-del-hall(detectar-paredes-del-hall), esquivar-obstáculo-móvil(detectar-trayectoria-om) )

  21. Representación de estímulos, acciones y mapeos (behavioral encoding) Un comportamiento puede ser expresado con una 3-upla (S,R, ) donde S denota el dominio de  de todos los estímulos sujetos a interpretación R denota el rango de las posibles respuestas  denota el mapeo  :S->R

  22. Codificación de las respuestas La robótica basada en comportamientos requiere un robot con cuerpo interactuando en su entorno. La existencia de un cuerpo con masa sometido a las leyes de la física y restringido por su interacción con el entorno implica que no necesariamente toda respuesta puede ser traducida (grounded) como tal.

  23. En primer término existen restricciones que tienen que ver con el concepto de locomoción del robot. Por ejemplo, un robot con patas podrá desplazarse en su entorno restringido por el largo de sus patas, el ángulo (o desplazamiento) de sus articulaciones y la cantidad de uniones (juntas) que lo articulan. El conjunto de restricciones de esta naturaleza (posición, velocidad y aceleración) están caracterizadas por el modelo cinemático del robot. En este tipo de modelos no importan las fuerzas que generan o intervienen en la producción del movimiento.

  24. En segundo término existen restricciones que tienen que ver, precisamente, con las fuerzas que generan y condicionan el movimiento. Por ejemplo, rozamiento estático, dinámico, efecto Coriolis, gravedad, torque aplicado a las juntas rotacionales, etc. El conjunto de restricciones de esta naturaleza (masa y fuerza) están caracterizadas por el modelo dinámico del robot.

  25. Estas restricciones están resumidas en el término no-holonomicidad. Un robot holonómico puede ser tratado como un punto sin masa capaz de moverse en cualquier dirección en forma instantánea. Por ejemplo, un robot con 2 ruedas es no-holonómico ya que no puede moverse hacia la izquierda o la derecha. Siempre lo hace hacia delante en la dirección definida por la velocidad de sus ruedas.

  26. Habida cuenta de estas consideraciones, las respuestas de un robot podrían ser caracterizadas por (x,y,z,,,) donde x,y,z especifican la posición del robot en el espacio cartesiano, y ,, son la orientación dada por el giro (roll), cabeceo (pitch) y paneo (yaw) en el espacio. Ejemplo, en el Khepera, sólo tiene sentido especificar x,y, . Las restricciones con que una respuesta es traducida en un robot físico concreto, en general, están incluidas en el mismo comportamiento.

  27. Codificación de los estímulos Un estímulo es representado por una dupla (p,) donde p indica la clase de estímulo y  la magnitud. Usualmente, cada clase p diferencia el tipo de sensor asociado a un estímulo y tiene asociado un parámetro de umbral notado . Un estímulo cuya magnitud no supera el umbral  no generará un respuesta motora, aunque si podría producir un efecto interno del robot.

  28. Mapeo de estímulo-respuesta r = (s) donde : SR, s = (p,) y r = (x,y,z,,,). Ejemplo: (0,0,0,0,0,0) si  <   (p,) = Alguna-Función en otro caso es una representación clásica de  para el comportamiento de evitamiento de obstáculos.

  29. Un mapeo puede tener una imagen formada por • el valor nulo • un conjunto finito de valores • un conjunto infinito de valores Mapear al valor nulo puede ser de útilidad para anular el efecto de ciertos sensores. Por ejemplo: (p, ) = 0 si p es la clase correspondiente al sensor de temperatura. Mapear a un conjunto finito de valores tiene asociado el uso de reglas IF ... THEN donde el consecuente asocia una de las respuestas posibles dentro del conjunto finito.

  30. Gapps, introducido por Bonasso, es un lenguaje que permite expresar mapeos mediante la combinación de reglas del tipo antecedente - consecuente. Un aspecto interesante de Gapps es esta especificación puede ser obtenida a partir de declarar el comportamiento objetivo usando 3 posibles clases de objetivos (goal-state): Alcanzar un comportamiento (achieve) Mantener un comportamiento (maintain) Llevar a cabo un comportamiento (do) Ejemplo (en Bonasso 1992, para un UWV) (defgoalr (ach wander) (if (not (at-wander-angle)) (ach turn to wander angle) (ach wander set point)))

  31. Otro ejemplo para la especificación de comportamientos es el “Behavior Language” creado por Brooks y Connel (The Behavior Language; User's Guide, 1992) Este es un lenguaje cuya sintaxis es muy parecida al LISP el cual es compilado sobre pequeños microcontroladores (i.e. Motorola 6811, Hitachi 6301). Un comportamiento es implementado por una AFSM y definido mediante un conjunto de reglas Sintaxis: (whenever (condición &rest cuerpo)) (defmachine nombre declaraciones reglas) (defbehavior nombre &key entradas salidas declaraciones procesos)

  32. Ejemplo: (defbehavior ejemplo :inputs (registro1 registro 2) :outputs (puerto1) :processes ((whenever (recibido registro1) (setf puerto1 registro1)) (whenever (recibido registro2) (setf puerto1 registro2 + registro2)) )

  33. Mapear a un conjunto infinito de valores permite tener un espacio continuo de respuestas. Básicamente, esto es logrado haciendo que el mapeo quede definido por alguna función a los reales. Esto puede ser logrado basado en la técnica de campos potenciales. En campos potenciales, uno o la adición de dos o más campos (i.e. f : R2R2) son usados para definir trayectorias de un punto a otro (i.e. en R2). Esta técnica fue introducida por Khatib, 1985. Si bien esta técnica fue pensada para la planificación de trayectorias, puede ser usada, por parte del robot, en forma reactiva calculando el vector (o los vectores y luego adicionando vectorialmente) de campo para la posición actual del robot (Latombe 1991).

  34. Una manera de obtener la magnitud del campo es siguiendo magnitud  1 / distancia2 para objetos repulsores, y magnitud = cte para atractores. La dirección puede ser calculada siguiendo la ortogonal al perímetro del objeto (para objetos puntuales, se considera una circunferencia de radio mínimo). El sentido dependerá si el objeto es atractor o repulsor.

  35. Punto repulsor

  36. Punto atractor

  37. Adición vectorial

  38. Trayectoria siguiendo el campo resultado de la adición

  39. Campo de deformación de zona (Zapata, 1991)

  40. Adición de atractor con deformación de zonas. Trayectoria resultante.

  41. Comportamientos “simples” y “complejos” 1. ¿Qué es un comportamiento complejo? Según Brooks la complejidad de un comportamiento suele ser una medida subjetiva del observador. Él opina que la complejidad del comportamiento surge de la interacción con un entorno complejo.

  42. 2. Nosotros vamos a considerar a un comportamiento como lo veníamos haciendo: un conjunto de pares estímulo-reacción. Ejemplo 1: supongamos un comportamiento definido asi: para todo estímulo la reacción es la misma Ejemplo 2: ahora supongamos este otro: para el estimulo E1 la reacción es A1 para el estimulo E2 la reacción es A2 .. para el estimulo Ek la reacción es Ak Intuitivamente, el segundo comportamiento es mas complejo.

  43. Un criterio para describir complejidad de los comportamientos como lo hemos definido podría ser la complejidad de Kolmogorov. La complejidad de Kolmogorov es una medida de la longitud mínima de programa que requiero para producir una salida en una MT. Podríamos considerar un comportamiento mas complejo que otro de acuerdo al esfuerzo mínimo que se debe realizar para poder describirlo en una codificación standard (podría ser máquina de Turing o algún otro tipo deformalismo). Una idea de complejidad también podría ser cual es el costo de identificar las percepciones (percept) que activan cada reacción.

  44. 3. Mas allá de como definamos complejidad, hay un hecho de la realidad que tiene que ver con el esfuerzo de dotar a un robot de un determinado comportamiento. Una idea clave para llevar adelante esto es pensar al problema como comportamientos mas simples (que requieran menos esfuerzo sintetizarlos) y luego ver como ellos interactuan.

  45. 4. Hay dos criterios (o heurísticas) para tener en cuenta: a) Si un comportamiento "simple", dado un conjunto de comportamientos que consituyen nuestra división en comportamientos simples resuelve la mayor parte del problema, quizás nuestro sistema no es robusto. b) Si la coordinación de los comportamientos nos representa un esfuerzo mayor que pensar en como resolver el problema con un solo comportamiento, quizás no está bien pensada la división en comportamietnos simples.

  46. 5. Las arquitecturas de comportamientos abordan el problema de la coordinación de comportamientos simples. Coordinación de múltiples comportamientos donde C es la función de coordinación, C : Rn 6 (R es el espacio de respuestas para n comportamientos, y son los reales), G es una matriz diagonal de ganancias de nxn, B: SR.

  47. De acuerdo a cómo C( ) resuelva la coordinación, esta puede ser competitiva cooperativa híbrida La coordinación competitiva elige una de las respuestas posibles, mientras que la cooperativa toma en cuenta todas las respuestas (i.e. adición, adición pesada, o algún otro criterio). La coordinación híbrida comprende un mix de ambas.

  48. Coordinación competitiva (1) Comportamiento 1 Percepción Comportamiento 2 Respuesta Comportamiento 3 Ejemplo: Método subsumption based (Brooks, 1986) Coordinación basada en prioridad

  49. Brooks propone una arquitectura que denomina Subsumption donde distingue dos elementos i. niveles de competencia ii. capas de control  Cada nivel de competencia representa una capacidad aislada pero que tienen en cuenta capacidades de mas bajo nivel para llevarse a cabo. Cada capa de control tiene en cuenta las interrelaciones entre los niveles de competencia.

  50. Los comportamientos mas simples son representados mediante módulos y los módulos se pueden conectar entre si mediante hilos (o cables). Estos hilos conducen información (mensajes) en forma asincrónica y sin ningún protocolo de reconocimiento. Estos mensajes pueden producir inhibición o supresión y en ambos casos durante un intervalo de tiempo. También pueden producir señales de reset que básicamente llevan a cada modulo a una situación de comienzo (estado nil en los automatas aumentados que usa Brooks para cada módulo). En general, una supresión es sobre una entrada del módulo y la inhibición es sobre una salida del módulo.

More Related