Visión artificial y Robótica Navegación basada en conductas. Evitación del obstáculos. Depto. de Ciencia de la Computación e Inteligencia Artificial Contenidos ● Introducción ● Navegación basada en conductas ● Representación de conductas ● Navegación evitando obstáculos Introducción ● Robótica “tradicional” ● Problemas: – Obliga a mantener un modelo complejo del mundo y de los objetivos del robot – Coste temporal del razonamiento Sistemas robóticos reactivos ● Son sistemas que acoplan la percepción a la acción, sin la intervención de representaciones abstractas o memoria histórica Una mirada a la biología ● ● Sicología Gestalt – La acción viene determinada por los estímulos (perro de Paulov) Bases etológicas: estudio del comportamiento animal – Los animales disponen de respuestas casi inmediatas al entorno (hormigas, abejas) – Conductas complejas surgen de combinar conductas simples Ejemplo: bandadas ● Comportamiento complejo (bandada de pájaros) que obedece a reglas reactivas – Evitar choques – Moverse hacia los vecinos – Imitar movimiento de vecinos Características de un sistema reactivo ● Las conductas son los bloques básicos para las acciones del robot – Par sensor-motor – Respuesta refleja a estímulos externos ● Los sistemas son modulares ● No se utiliza conocimiento de alto nivel ● ● Respuesta robusta a los cambios dinámicos del entorno Se suele copiar el comportamiento animal Comparación de sistemas ● FitzPatrick96 Ejemplo: ir de una clase a otra Conductas básicas: 1. 2. 3. 4. Ir al destino final desde el inicial No chocar contra nada en nuestro camino Observar ciertos comportamientos sociales Mirar si han salido notas o fechas de exámenes Conductas elementales ● Una conducta viene definida por un mapeado entre los sensores (ej: sonar) y los actuadores (ej: motor) • Seguir-pasillo: – Sensores: distancia a los distintos sonares – Actuadores: modificación de la velocidad lineal y angular Dos “Estilos” de robótica reactiva Campos de potencial: cada conducta es como un “campo de fuerzas. Se combinan todas Subsumción: cada conducta es como una capa del sistema, que influye sobre y colabora con las capas inferiores Ronald Arkin Rodney Brooks Campos de potencial ● ● ● ● Una conducta en un punto genera un vector de movimiento Combinar las conductas es sumar vectores Una forma de visualizar una conducta es como un “campo de fuerzas” En realidad el campo no se calcula entero, solo en el punto en que está el robot Ejemplos de campos de potencial Ir hacia adelante Ir al objetivo Más ejemplos Ir por camino Evitar obstáculos Composición de conductas Coordinación de conductas ● Podemos tener varias conductas activas a la vez en el sistema – Evitar obstáculo – Ir a objetivo ● Debemos coordinar la respuesta de las distintas conductas: – Métodos competitivos – Métodos cooperativos Arquitectura subsumption ● Control por niveles ● Cada nivel utiliza elementos del nivel inferior ● ● Un nivel de competencia superior subsume algunas competencias del nivel inferior La adaptación de un sistema a otro supone una adaptación del sistema completo Ejemplo subsumption ● Nivel 0: evitar obstáculo Calcular repulsión SONARES Fuerza Calcular velocidad Distancias a obst. Detectar colisión vel. angular W vel. lineal Parar V Ejemplo subsumption (II) Vagabundeo Rumbo resultante Evitar obstáculo Rumbo aleatorio vel.lineal Fuerza Calcular repulsión SONARES Fuerza Calcular velocidad Distancias a obst. Detectar colisión vel. lineal Parar S W S V Representación de conductas Diagramas estímulo-respuesta Conducta Estímulo Respuesta Diagramas de estados finitos Estímulo A B Diagrama estímulo-respuesta Ir a clase Obstáculo detectado Evitar-obstáculo Camino detectado Seguir-recto Profesor detectado Saludar-profesor Estudiante detectado Saludar-estudiante Coordinador Localización de clase Acción Diagrama de estados finitos Inicio Puerta encontrada Salir puerta Pasillo encontrado Seguir pasillo Puerta encontrada En clase Navegación evitando obstáculos Es una tarea importante en robótica Suponiendo que el robot se mueve con un determinado comportamiento las técnicas para detectar y evitar obstáculos deben procesar los datos de los sensores, detectar obstáculos no modelados y modificar el comportamiento del robot para no colisionar con ellos. Global o local ● ● Métodos globales: utilizan información de posición del robot y de los obstáculos para planificar el movimiento Métodos locales: utilizan información del entorno más próximo al robot mediante sensores Métodos con información global ● ● ● Asumen que se dispone de un modelo completo del mundo Ventaja: la trayectoria desde el punto inicial al final se puede calcular off-line Desventajas: – Errores de odometría – Entorno dinámico – Muy ineficiente cuando se quiere recalcular el camino en tiempo real Métodos para evitar obstáculos mediante información local Usan una pequeña fracción del entorno por donde se mueve el robot Permiten una respuesta rápida frente a cambios del entorno Clasificación de métodos ● Métodos de campo de fuerza – Campo de potencial artificial – Campo de fuerza virtual – Histograma ● de campo de fuerza Métodos de control en el espacio de velocidades Métodos de campo de fuerza ● ● Asumen que el robot se mueve dentro de un campo de fuerza Dos tipos de fuerza: atractiva y repulsiva Campo de potencial artificial ● ● ● Las lecturas de los sonares son fuerzas repelentes El vector formado por la posición objetivo y la del robot es la fuerza atractiva El campo de potencial se crea usando: X = (xr, yr) posición del robot S = (s1, s2, ..., sn) lecturas de los sensores O = (or, or) posición objetivo Fuerza atractiva La fuerza atractiva es un vector hacia la posición objetivo µ1 es un factor de normalización Fuerza repulsiva ● ● ● ● Utilizamos las lecturas de los sonares Las lecturas proporcionan una discretización del mundo Los sonares están distribuidos alrededor del robot a intervalos regulares La formulación para todas las lecturas es: m es el alcance máximo del sensor (típicamente 3 ó 5 metros) Representación gráfica Fuerzas actuando conjuntamente La fuerza de repulsión es inversamente proporcional a la distancia de la lectura del sensor Método del campo de fuerza virtual (VFF) ● ● ● Utiliza una rejilla (matriz) para discretizar el entorno Las celdas de la rejilla acumulan la evidencia de que haya un obstáculo en una posición Las celdas alrededor del robot sirven para evitar obstáculos Rejilla de acumulación ● ● Discretización del entorno Cada celda de la rejilla C(i,j) contiene la evidencia de que en esa posición exista un obstáculo Actualización de la rejilla ● Inicio: todas las celdas a 0 ● Para cada movimiento del robot – Para ● ● cada sensor k Convertir las coordenadas (x, y) de la lectura del sensor k en coordenadas de la rejilla (i, j). Incrementar la celda C(i, j) – fpara ● fpara Fuerza repulsiva La fuerza repulsiva para una celda (i,j) es Fcr fuerza constante repelente d(i,j) distancia de la celda (i,j) al robot La fuerza repulsiva total es: donde (i, j) se toman de un entorno próximo al robot (lecturas muy lejanas no afectan al robot) Fuerza atractiva Fct fuerza constante atractiva d(t) distancia del robot al objetivo Fuerza resultante Comando de giro ● El ángulo del vector de la fuerza resultante es ● El comando de velocidad angular a suministrar al robot es donde ● – Ks es una constante proporcional de giro – θ es la dirección actual del robot – (-) es la diferencia rotacional más cercana [-180,180] Para evitar cambios bruscos en el comando de giro se suele utilizar un filtro paso bajo donde τ constante de tiempo del filtro Modificación de la velocidad lineal ● ● ● Se puede producir la situación en la cual la inercia del robot no nos permita girar a tiempo para evitar la colisión Podemos modificar la velocidad lineal para que se produzca una disminución de ésta cuando estemos próximos a un obstáculo Para ello calculamos el coseno del ángulo que forman los vectores de velocidad y fuerza repulsiva Modificación de la velocidad lineal La velocidad lineal se modificará según la siguiente fórmula Características del método ● ● e mejora la respuesta frente a ruido: no respondemos ante una lectura sino ante la acumulación de evidencia de varias de ellas Se introducen métodos para suavizar la respuesta del robot Método del histograma de campo vectorial (VFH) ● ● ● Mejora del anterior Utiliza también una rejilla de acumulación (ahora circular) Se produce una transformación del espacio 2D alrededor del robot en un vector 1D que permitirá observar posibles huecos para el paso del robot VFH: rejilla Histograma calculado Umbralizado Características de los métodos de campo de fuerza ● Ventaja: – Sencillez ● de implementación Desventajas: – Mínimos – No locales entrada entre obstáculos – Oscilaciones en presencia de obstáculos – Oscilaciones en pasillos estrechos Problemas con los métodos de campo de fuerza ● Mínimo local Problemas con los métodos de campo de fuerza (II) ● No entrada entre obstáculos Problemas con los métodos de campo de fuerza (III) ● Oscilaciones frente a obstáculos Problemas con los métodos de campo de fuerza (IV) ● Oscilaciones en pasillos estrechos Métodos de control en el espacio de velocidades Los anteriores métodos no tenían en cuenta las restricciones dinámicas del robot: velocidad y aceleración. ● Vamos a ver un método que incorpora estas restricciones ● Método de la ventana dinámica ● ● ● ● Trabaja directamente con el espacio de velocidades Espacio de velocidades: conjunto de velocidades (lineales y rotacionales) que puede alcanzar el robot (v, w) Se realiza una búsqueda restringida dentro del espacio de velocidades Las restricciones vienen impuestas por la dinámica del robot Espacio de velocidades Creación del espacio de velocidades Sólo trayectorias circulares determinadas por pares (v,w) ● Debemos encontrar velocidades admisibles: el robot consigue parar antes de chocar con un obstáculo (zonas negras) ● Debido a restricciones físicas (aceleraciones posibles) sólo debemos buscar en un subespacio (ventana dinámica) ● Ventana dinámica Función objetivo Para realizar la búsqueda dentro de la ventana hacemos uso de una función Dentro de la ventana dinámica, buscamos las velocidades que maximizan donde: –σ pondera las funciones entre 0 y 1 – α, β, γ permiten dar más peso a una u otra función Heading(v, w) ● ● ● ● ● Mide la alineación del robot con la posición objetivo Se predice la posición y orientación que tendría el robot una vez aplicadas las velocidades v, w Calcula el ángulo que hay que girar al robot para que esté alineado con el objetivo La función devuelve 180-θ Esta función nos hace seleccionar velocidades que alineen al robot con el objetivo Heading(v, w) Dist (v, w) ● ● Calcula la distancia al obstáculo más cercano que intersecta con esas velocidades (espacio libre) Para ello utilizan las lecturas de los sonares y comprueban si la trayectoria con las velocidades actuales intersecta con el o los obstáculos detectados Vel(v, w) ● ● Devuelve la velocidad lineal v Al maximizar, elegiremos velocidades con una velocidad lineal alta Búsqueda dentro de la ventana ● ● ● Con estas funciones, debemos encontrar el par (v, w) que maximiza la función objetivo antes definida Esto se hace para cada instante de tiempo Este método se usó con éxito en el control de un robot en un museo Características del método ● ● ● Mejora en el método implica más tiempo de cálculo y más complejidad Debemos tener en cuenta las limitaciones dinámicas de nuestro robot Combinación global-local