robótica probabilista

54
Robótica Probabilista, L. E. Sucar 1 Introducción a la Robótica L. Enrique Sucar INAOE

Upload: duongxuyen

Post on 06-Jan-2017

234 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 1

Introducción a la Robótica

L. Enrique SucarINAOE

Page 2: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 2

0

11.4

1

1.4 1

2.4

2.4

2

23

3.4

3

3.4

3.43.84.8

4.44.8

4.4

4.4

5.8

4

6.8

5.8

5.46.4

6.8

6.8

7.88.2

7.8

7.8

8.29.2

8.8

8.8

9.2

10.2

9.8

Sesión 7: Planeación de trayectorias

Introducción a la RobóticaL. Enrique Sucar

Page 3: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 3

Contendio

• Introducción• Técnicas clásicas

– Búsqueda en grafos– Programación dinámica– Diagramas de Voronoi– Grafos de visibilidad– Campos potenciales

Page 4: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 4

Planeación de Trayectorias

• Determinar una trayectoria en el espacio de configuraciones, entre una configuración inicial (inicio) y una configuración final (meta), de forma que el robot no colisione con los obstáculos y cumpla con las restricciones cinemáticas del robot

Page 5: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 5

Planeación de Trayectorias

• Consideraciones adicionales:– Trayectoria de distancia (tiempo o costo)

mínimo– Ambientes semidesconocidos – Ambientes dinámicos– Restricciones adicionales– Eficiencia (algoritmos anytime)

Page 6: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 6

Plan• Un plan es un conjunto de acciones

(operadores) que permiten a un agente (robot) ir de un estado inicial a un estado final o meta

• Los elementos básicos para hacer un plan son:– Estados (p. ej. Posición del robot),

incluyendo el estado incial y el estado meta

– Operadores: acciones que llevan de un estado a otro, Si Sj

Page 7: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 7

Ejemplo de Plan

• Considerando el mapa de rejilla:• Estados:

– posición X,Y en el mapa– Estado inicial: 0,0– Estado meta (luz): Xm, Ym

• Acciones:– Movimiento a alguna de las celdas vecinas– X+1, Y+1, X-1, Y-1

Page 8: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 8

Ejemplo de Plan• Plan: buscar una serie de acciones básicas

que lleven al robot de la posición inicial a la meta

Page 9: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 9

Ejemplo: plan en el mapa topológico

• Plan = búsqueda de una trayectoria en el grafo, del nodo inicial al meta

Page 10: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 10

Consideraciones iniciales

• Un robot rígido usualmente modelado como un “punto”

• Un ambiente estático con obstáculos conocidos

• Un robot capaz de navegar en segmentos de línea recta y de mantener su localización

Page 11: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 11

Técnicas Clásicas

• Espacios discretos– Búsqueda en grafos– Programación dinámica– Diagramas de Voronoi– Grafos de visibilidad

• Espacios continuos– Campos potenciales

Page 12: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 12

Ejemplo – técnicas de búsqueda

I

D E F

MCBA

Page 13: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 13

A B C

I

D E F

M

3

34

4 4

42

5 5

Ejemplo: ESTADOS Y DISTANCIAS

Page 14: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 14

I

A D

B D A E

EC E B B F

D F B F C E A C M

M MC FM

11

14

19 19 17

17

25

15 15 13

ÁRBOL DE BÚSQUEDA

Page 15: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 15

Depth first - backtracking (LIFO)

Crea una agenda de un elemento (el nodo raíz)hasta que la agenda este vacía o se alcance la meta

si el primer elemento es la meta entonces acabasi no elimina el primer elemento y

añade sus sucesores al frente de la agenda

Depth first - backtracking (LIFO)

Crea una agenda de un elemento (el nodo raíz)hasta que la agenda este vacía o se alcance la meta

si el primer elemento es la meta entonces acabasi no elimina el primer elemento y

añade sus sucesores al frente de la agenda

Page 16: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 16

DEPTH-FIRST SEARCH

(I)

(A D)

(B D D)

(C E D D)

(E D D)

(D F D D)

(F D D)

(M D D)

IA D

B D A E

EC E B B F

D F B F C A C M

M MC F

M

11

14

19 19 17

17

25

15 15 13E

Page 17: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 17

Breadth first Breadth first

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta

si el primer elemento es la meta entonces acabasi no elimina el primer elemento y

añade sus sucesores al final de la agenda

Problemas: árboles con arborescencia muy grande

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta

si el primer elemento es la meta entonces acabasi no elimina el primer elemento y

añade sus sucesores al final de la agenda

Problemas: árboles con arborescencia muy grande

Page 18: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 18

I

A D

B D A E

EC E B B F

D F B F C E A C M

M MC FM

11

14

19 19 17

17

25

15 15 13

ÁRBOL DE BÚSQUEDA

Page 19: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 19

Algoritmos con InformaciónAlgoritmos con Información

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta

si el primer elemento es la meta entonces acabasi no elimina el primer elemento y añade sus

sucesores a la agendaordena todos los elementos de la agenda selecciona el mejor y elimina el resto

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta

si el primer elemento es la meta entonces acabasi no elimina el primer elemento y añade sus

sucesores a la agendaordena todos los elementos de la agenda selecciona el mejor y elimina el resto

Hill-ClimbingHill-Climbing

Page 20: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 20

Hill climbingHeurística: ve a la ciudad más cercana

(I)

(A D)

(D B)

(E C)

IA D

B D A E

EC E B B F

D F B F C A C M

M MC F

M

11

14

19 19 17

17

25

15 15 13E

BÚSQUEDA HILL-CLIMBING

Page 21: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 21

Beam search

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta

si el primer elemento es la meta entonces acabasi no elimina el primer elemento y añade sus

sucesores a la agendaordena todos los elementos de la agenda y selecciona los N mejores (los demás eliminalos)

Beam search

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta

si el primer elemento es la meta entonces acabasi no elimina el primer elemento y añade sus

sucesores a la agendaordena todos los elementos de la agenda y selecciona los N mejores (los demás eliminalos)

Page 22: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 22

A*: utiliza dos medidas

Idea: usar estimaciones de los costos/distanciasque faltan junto con los costos/distanciasacumuladas

A*: utiliza dos medidas

Idea: usar estimaciones de los costos/distanciasque faltan junto con los costos/distanciasacumuladas

estim(camino que falta) estim(camino que falta) ++costo(camino recorrido)costo(camino recorrido)estim(total) =estim(total) =

Page 23: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 23

Las estimaciones no son perfectas, por lo que se usan sub-estimacionesLas estimaciones no son perfectas, por lo que se usan sub-estimaciones

subestim(total) =subestim(total) =subestim(camino que falta)subestim(camino que falta)

++costo(camino recorrido)costo(camino recorrido)

De nuevo expande hasta que los demás tengan sub-estimaciones más grandes (v.g., subestimacionesde distancias entre ciudades pueden ser líneasrectas)

De nuevo expande hasta que los demás tengan sub-estimaciones más grandes (v.g., subestimacionesde distancias entre ciudades pueden ser líneasrectas)

Page 24: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 24

Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta y

los demás nodos sean de costos mayores o igualesa la meta

si el primer elemento es la meta y los demás nodosson de menor o igual costo a la meta

entonces acabasi no elimina el primer elemento y añade sus

sucesores a la agendaordena todos los elementos de la agenda de

acuerdo al costo acumulado más lassubestimaciones de los que falta

Page 25: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 25

EJEMPLO DE BÚSQUEDA A* EJEMPLO DE BÚSQUEDA A*

Page 26: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 26

A*1 I

A D13.4 12.9

I

A D

A E

2

13.4

19.4 12.9

Page 27: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 27

I

A D

EE

F

3

B

13.4

A19.4

17.7 13.0

Page 28: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 28

I

A D

EE

F

13.0

B

13.4

A19.4

17.7

M

4

Page 29: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 29

Programación dinámica

• Procedimiento iterativo (recursivo) para evaluar el costo de la trayectoria mínima de cualquier punto a la meta

• Se considera un ambiente discreto y un costo de moverse de un sitio (celda) a otro

• El algoritmo básico se conoce como “iteración de valor”

Page 30: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 30

Algoritmo de Programación DinámicaV(x,y) : Costo acumulado de viaje a la celda más

cercana, si el robot está en la celda (x,y)

Inicio:Vi(x,y) = 0 si la celda (x,y) es la meta

= infinito demás celdas

Regla de actualización:

Vi(x,y) =min m(dx,dy) en Mov{Vj(x+dx,y+dy) (Sig. celda)

+ Cmov((x,y),(dx,dy))} (avanzar)

Page 31: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 31

Ejemplo – programación dinámica

0

11.4

1

1.4 1

2.4

2.4

2

2

Page 32: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 32

Ejemplo – programación dinámica

0

11.4

1

1.4 1

2.4

2.4

2

23

3.4

3

3.4

3.43.84.8

4.44.8

4.4

4.4

5.8

4

6.8

5.8

5.46.4

6.8

6.8

7.88.2

7.8

7.8

8.29.2

8.8

8.8

9.2

10.2

9.8

Page 33: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 33

Ejemplo – programación dinámica

0

11.4

1

1.4 1

2.4

2.4

2

23

3.4

3

3.4

3.43.84.8

4.44.8

4.4

4.4

5.8

4

6.8

5.8

5.46.4

6.8

6.8

7.88.2

7.8

7.8

8.29.2

8.8

8.8

9.2

10.2

9.8

Page 34: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 34

Ejemplo de programación dinámica

Se considera un conjunto de celdas (road-map) libresde obstáculos obtenidas previamente

V(x,y) (pixel oscurosdenotan valores altos)GI

Page 35: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 35

Programación dinámica – otros costos

Vi(x,y) : Costo acumulado de viaje a la celda más cercana, si el robot está en la celda (x,y) con orientación θi

Inicio:Vi(x,y) = 0 si la celda (x,y) es la meta

= infinito otras celdas (x,y)

Regla de actualización:

Vi(x,y) = min m_j=(dx,dy) en Mov{Vj(x+dx,y+dy)(Sig. celda)

+ Cmov((x,y),(dx,dy)) (avanzar)+ Cg(i,j)} (girar)

Page 36: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 36

El costo por avanzar incluye:Distancia entre celdasCosto de la celda destino de acuerdo a sutipo

Celdas ocupadas

Celdas de advertencia

Celdas de viaje

Celdas lejanas

Espacio de viaje

Page 37: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 37

Diagrama de Voronoi• El diagrama de Voronoi es el conjunto de

puntos equidistantes a los límites de 2 o más obstáculos

• Siguiendo el diagrama de Voronoi el robot maximiza la distancia a los obstáculos

• Se puede utilizar un diagrama aproximado considerando una distancia máxima a los obstáculos de forma que se consideren las limitaciones de los sensores

Page 38: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 38

Ejemplos de diagramas de Voronoi

Page 39: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 39

Ejemplo de Diagrama de Voronoi

Izquierda – mapa del espacio libreDerecha – diagrama de Voronoi (aproximado)

Roadmap

Page 40: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 40

Gráficas de visibilidad

• Técnica que produce una trayectoria de longitud mínima mediante la solución de un grafo (búsqueda)

• Se basa en la construcción de un grafo de visibilidad, G = (V, E)– Los vértices, V, corresponden a las esquinas

de todos los obstáculos (poligonales), el inicio y la meta

– Los arcos, E, conectan todos los vértices que son visibles entre sí

Page 41: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 41

Gráficas de visibilidad

Page 42: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 42

Gráficas de visibilidad

• Existen algoritmos eficientes para construir el grafo de visibilidad y hacer la búsqueda de la trayectoria óptima

• La desventaja es que las trayectorias pasan muy cerca de los obstáculos y consideran un robot puntual – se puede aminorar este problema dilatando a los obstáculos en función del tamaño del robot (problema con robots no cilíndricos)

Page 43: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 43

Campos de Potencial

• Se basa en una analogía con campos potenciales eléctricos:– El robot se ve como una partícula con carga

eléctrica– El espacio libre se considera como un campo

potencial– Los obstáculos tienen un carga eléctrica del

mismo signo del robot (se repelen)– La meta tiene una carga eléctrica de signo

opuesto al robot (se atraen)

Page 44: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 44

Campos de Potencial

Page 45: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 45

Campos de Potencial

Page 46: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 46

Campos de Potencial

• El campo de potencial diferencial se construye sumando el campo de la meta, Ug, y el campo de los obstáculos, Uo:

U(q) = Ug(q) + Σ Uo(q)• A partir de este campo se construye un

campo de fuerzas artificial:F = - ∇ U(q) = ( dU/dx )

( dU/dy )

Page 47: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 47

Campos de Potencial

• Una vez construido el campo de fuerzas, el robot se mueve en función de la fuerza local (similar al caso de los valores en programación dinámica)

• Con esto se tiene un esquema robusto que implícitamente tiene un plan de cualquier punto del espacio a la meta

Page 48: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 48

Campos de Fuerzas

Page 49: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 49

Funciones de Potencial• Para obtener las fuerzas hay que modelar el

las funciones de potencial de la meta y obstáculos – calculando el potencial para cada punto del espacio libre:

• Meta – “atractor parabólico”Ug(q) = k1 dist(q, meta)2

• Obstáculo – “barrera potencial exponencial”Uo(q) = k2 dist(q, obstáculo)-1

Page 50: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 50

Funciones de Potencial

• Ventajas:– Se pueden generar trayectorias en tiempo

real a partir del campo de fuerzas– Las trayectorias generadas son suaves– Facilita el acoplar la parte de planeación

con control• Desventajas:

– Mínimos locales!

Page 51: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 51

Trampas (mínimos locales)

Page 52: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 52

Mínimos Locales

• Estrategias para evitar trampas:– Backtracking– Movimientos aleatorios – Usar otra estrategia, como seguimiento de

paredes– Aumentar el potencial repulsivo de

regiones visitadas

Page 53: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 53

Referencias

• [Dudek, Jenkin] – Cap 5• [Siegwart et al.] – Cap 6• [Thrun et al.] – Cap 6• Romero et al., Exploration and navigation

for mobile robots with perceptual limitations, IJARS, 2006

Page 54: Robótica Probabilista

Robótica Probabilista, L. E. Sucar 54

Actividades• Práctica 3: Mapas y Planeación

– Representa el ambiente mediante un mapa de celdas de ocupación (dilatar obstáculos)

– En base a dicho mapa desarrolla un algoritmo para encontrar una ruta de una celda inicial a una final en base a programación dinámica

– Haz que el robot “ejecute” la ruta encontrada– Prueba tu sistema en diferentes ambientes con

diferentes posiciones iniciales y finales– Opcional: incorpora “costos” a las celdas de acuerdo

a su distancia a los obstáculos (u otros factores) y repite el mismo procedimiento