Visión artificial y Robótica

Anuncio
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
Descargar