![Page 1: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/1.jpg)
Introducción a la Robótica
mecanismos avanzados
Coordinación de CienciasComputacionales, INAOE
Dra Angélica Muñoz Dr Eduardo [email protected] [email protected]
![Page 2: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/2.jpg)
Construcción de Mapas
2
![Page 3: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/3.jpg)
Construcción de Mapas
Involucra resolver simultáneamente dos problemas:
• Construir un mapa
• Localizarse
SLAM (Simultaneous Lozalization And Mapping)
3
![Page 4: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/4.jpg)
El Problema de SLAM
4
![Page 5: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/5.jpg)
Aspectos
Se requiere: Representación: cómo representar el mapa Adquisición: percepción del ambiente y
actualización de mapa Localización: mantener localizado al robot Exploración: estrategia para cubrir el ambiente
5
![Page 6: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/6.jpg)
Retos
Espacios grandes Localización y mapeo simultaneo Falta de marcas distinguibles Incertidumbre en la percepción y en los
actuadores Reconocimiento de ciclos
6
![Page 7: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/7.jpg)
Mapeo probabilista
• Desde el punto de vista probabilista, el problema SLAM consiste en estimar la pose del robot (X) y el mapa (M) dadas las acciones (U) y las observaciones (Z). Puede ser:
• On-line SLAM (solo la posición actual):
• On-line full SLAM (toda la trayectoria):
),|,( :1:1 ttt uzmxP
),|,( :1:1:1 ttt uzmxP
7
![Page 8: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/8.jpg)
Modelo Gráfico
![Page 9: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/9.jpg)
Modelo Gráfico (full SLAM)
![Page 10: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/10.jpg)
Mapa de rejilla probabilista
• Cada celda tiene asociada una probabilidad de estar ocupada
![Page 11: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/11.jpg)
Mapa basado en rejilla
Una representación basada en rejillas facilita la construcción de mapas ya que:
Estima la probabilidad de ocupación de cada celda de forma independiente
Permite realizar una fusión natural de datos Su principal problema es el posible número de
celdas para espacios grandes
![Page 12: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/12.jpg)
Construcción de mapas (Romero 2002)
12
![Page 13: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/13.jpg)
Construcción de mapas Sonares Laser Mapa
¿Cómo combinar las lecturas de los sensores? ¿Hacia dónde mover el robot ¿Cómo corregir errores odométricos?
13
![Page 14: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/14.jpg)
Fusión sensorial en rejilla de celdas
Definir modelos de los sensores Combinar todas las medidas que se obtienen de
cada rejilla al moverse el robot Asumir que las diferentes mediciones son
independientes Combinar usando un OR probabilista
![Page 15: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/15.jpg)
Actualización de probabilidades
Se obtienen varias medidas de cada celda al moverse el robot y se combinan usando un enfoque bayesiano:
Se asume que las medidas son independientes y se combina con la información de las lecturas anteriores con la nueva lectura de forma incremental
),...,,|( 21 NSSSOP
![Page 16: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/16.jpg)
Combinación
![Page 17: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/17.jpg)
Exploración
17
Moverse hacia celdas inexploradas Mantenerse alejado de los objetos Evitar cambios de orientación Considerar limitaciones perceptuales
![Page 18: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/18.jpg)
Programación dinámica
Costo acumulado de viaje a la celda no explorada más cercana
Inicio:
Regla de actualización
(girar) )},(
(avanzar) )),(),,((
celda) (sig. ),(min{),(
jiC
dydxyxC
dyydxxVyxV
giro
mov
ji
),( yxVi
explorada es y)(x, celda la si
ainexplorad es y)(x, celda la si 0),(
yxVi
![Page 19: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/19.jpg)
Al considerar rotaciones
Con más rotaciones Con menos rotaciones
19
![Page 20: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/20.jpg)
Ejemplo
20
![Page 21: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/21.jpg)
Robot real
21
![Page 22: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/22.jpg)
Ejemplo
22
![Page 23: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/23.jpg)
Otros ejemplos
23
![Page 24: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/24.jpg)
24
Más ejemplos
![Page 25: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/25.jpg)
Otros enfoque de exploración
Existen otros enfoques de exploración como:“bug”: va en línea recta evadiendo obstáculos
Espiral: busca en rayos divergentes aumentado su distancia
![Page 26: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/26.jpg)
Algoritmos basados en modelos gráficos
• Los algoritmos actuales más poderosos para SLAM se basan en modelos gráficos probabilistas
• Algunas variantes:
• EKF SLAM
• Graph SLAM
• Fast SLAM
26
![Page 27: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/27.jpg)
Filtros de partículas
Es un filtro bayesiano usado para representar en forma eficiente distribuciones no-gaussianas
La idea es tener un conjunto de hipótesis (partículas) y aplicar “sobrevivencia del más apto”
![Page 28: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/28.jpg)
Pasos
Muestreo de la distribución propuesta (filtro bayesiano - paso predictivo): generar una nueva muestra de acuerdo al modelo de movimiento
Calcula el peso de las partículas (filtro bayesiano - paso correctivo): usando los sensores evalúa las muestras
Vuelve a muestrear
![Page 29: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/29.jpg)
Rao-Blackwellization
Posición Mapa Observaciones Movimientos
SLAM posterior
Camino del robot posterior
Mapeo sabiendo la posición
![Page 30: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/30.jpg)
Mas …
Se usa una partícula para representar las trayectorias potenciales del robot
Cada partícula tiene un mapa asociado Cada partícula sobrevive de acuerdo a la
probabilidad de las observaciones dado el mapa
![Page 31: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/31.jpg)
Ejemplo:
Mapa de partícula 1
Mapa de partícula 2
Mapa de partícula 3
![Page 32: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/32.jpg)
Problemas y soluciones
Cada mapa puede ser bastante grande Se requiere tener un número pequeño de
partículas Se puede si se logra mejorar la estimación de la
posición antes de aplicar el filtro de partículas Usar un re-muestreo para lograr convergencia si
existen pesos suficientemente diferentes (para no eliminar partículas deseables)
![Page 33: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/33.jpg)
Ejemplos
Consultar: www.OpenSLAM.org
![Page 34: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/34.jpg)
Post-procesamiento
Extracción decaracterísticas
Agrupamiento deceldas
Análisis de regiones
Centros de cada cluster
Determinar Adyacencia de
regiones
Segmentación del mapa de celdas
Mapa segmentadoMapa topológico
Añadir información
visual a cada nodo
34
![Page 35: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/35.jpg)
Agrupamiento de celdasK-medias
C1
C2
C3
C1 :<F1,F2,..,Fn>...
Cn:<F1,F2,,..,Fn>
Habitación
Pasillo
Intersección
C3
Mapa topológico
35
![Page 36: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/36.jpg)
Ejemplos• Segmentación del mapa de celdas
1) Escenario en el laboratorio de robótica
2) Edificio Chavira (INAOE)
3) Escenario simulado
mapa 1 2 3
% de clasificación
98.4 94.1
36
![Page 37: Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales munoz@inaoep.mx emorales@inaoep.mx](https://reader035.vdocuments.pub/reader035/viewer/2022062305/5665b4a81a28abb57c92f50c/html5/thumbnails/37.jpg)
Retos
Ambientes dinámicos: actualizar el mapa, distinguir objetos permanentes de temporales
Oclusiones fuertes al interaccionar con personas Espacios abiertos Mapas visuales 3D