Post on 20-May-2020
24/03/2006 SEMINARIO HISPABOT'2006 1
“Seminario de Diseño y Construcción de Micro-robots”
Diseño del Software.Fco Javier Rodríguez
SEMINARIO DISEÑOSEMINARIO DISEÑO ROBOTS’2006: Diseño del SoftwareROBOTS’2006: Diseño del Software
24/03/2006 SEMINARIO HISPABOT'2006 2
ÍNDICE DE LA PRESENTACIÓN.ÍNDICE DE LA PRESENTACIÓN.
• INTRODUCCIÓN
• PLATAFORMAS HARDWARE
•¿CÓMO COMBINAR LA INFORMACIÓN SENSORIAL?
• SUPERPOSICIÓN DE COMPORTAMIENTOS.
• UN EJEMPLO.
• SISTEMAS DE TIEMPO REAL.
• REDES DE PETRI.
• CONCLUSIONES.
24/03/2006 SEMINARIO HISPABOT'2006 3
INTRODUCCIÓN.INTRODUCCIÓN.
• Punto de partida:– El microbot tiene que:
• seguir una línea (rastreadores, velocistas), localizar a su contrario y expulsarlo (sumo), etc.
– Restricciones:• Temporales : el microbot tiene que ser el más rápido.• Coste: debe tener un coste asequible.• Fiabilidad• Consumo.
• Para conseguir el objetivo se dispone de:– Información sensorial. – Plataformas hardware de procesado.– Algoritmos.– Metodologías de programación.
24/03/2006 SEMINARIO HISPABOT'2006 4
ÍNDICE DE LA PRESENTACIÓN.ÍNDICE DE LA PRESENTACIÓN.
• INTRODUCCIÓN
• PLATAFORMAS HARDWAREPLATAFORMAS HARDWARE
•¿CÓMO COMBINAR LA INFORMACIÓN SENSORIAL?
• SUPERPOSICIÓN DE COMPORTAMIENTOS.
• UN EJEMPLO.
• SISTEMAS DE TIEMPO REAL.
• REDES DE PETRI.
• CONCLUSIONES.
24/03/2006 SEMINARIO HISPABOT'2006 5
PLATAFORMAS DE PROCESADO.PLATAFORMAS DE PROCESADO.
• ¿Qué debe tener la plataforma?
24/03/2006 SEMINARIO HISPABOT'2006 6
PLATAFORMA HARDWARE: CRITERIOS DE ELECCIÓN.PLATAFORMA HARDWARE: CRITERIOS DE ELECCIÓN.
• Prestaciones.• Disponibilidad.• Documentación.• Herramientas de desarrollo:
– ¿Cuántas?• Ensamblador y compilador.• Simuladores, monitores y emuladores.
– ¿A qué precio?
24/03/2006 SEMINARIO HISPABOT'2006 7
PLATAFORMA HARDWARE: EJEMPLOS.PLATAFORMA HARDWARE: EJEMPLOS.
• Handy-Board.– HC11.– Para pequeños robots.– 32kBytes RAM.– Control de motores.– Multitarea.– C interactivo.– Pcbug.
24/03/2006 SEMINARIO HISPABOT'2006 8
PLATAFORMA HARDWARE: EJEMPLOS.PLATAFORMA HARDWARE: EJEMPLOS.
• Tarjeta EVA2.– HC11.– 32 kB RAM– Puerto serie.– Control de motores.
Figura 6. Aplicación basada en la familia de microcontroladoresMC68HC11.
Figura 6. Aplicación basada en la familia de microcontroladoresMC68HC11.
24/03/2006 SEMINARIO HISPABOT'2006 9
PLATAFORMA HARDWARE: EJEMPLOS.PLATAFORMA HARDWARE: EJEMPLOS.
• EYE-BOT.– 68332.– 1MB RAM.– 512k código.– Para robots con más
inteligentes.– BDM.
24/03/2006 SEMINARIO HISPABOT'2006 10
ÍNDICE DE LA PRESENTACIÓN.ÍNDICE DE LA PRESENTACIÓN.
• INTRODUCCIÓN
• PLATAFORMAS HARDWARE
••¿CÓMO COMBINAR LA INFORMACIÓN SENSORIAL?¿CÓMO COMBINAR LA INFORMACIÓN SENSORIAL?
• SUPERPOSICIÓN DE COMPORTAMIENTOS.
• UN EJEMPLO.
• SISTEMAS DE TIEMPO REAL.
• REDES DE PETRI.
• CONCLUSIONES.
24/03/2006 SEMINARIO HISPABOT'2006 11
¿CÓMO COMBINAR LA INFORMACIÓN SENSORIAL?¿CÓMO COMBINAR LA INFORMACIÓN SENSORIAL?
• Objetivo: – A partir de la información sensorial, generar las
señales de actuación que muevan al robot adecuadamente.
• Enfoques:– Fusión sensorial.– Fusión de comportamientos.
24/03/2006 SEMINARIO HISPABOT'2006 12
FUSIÓN SENSORIAL.FUSIÓN SENSORIAL.
ENTRADASSENSORIALES
INTERPRE-TACIÓN
MODELODEL
ENTORNO
PLANIFI-CACIÓN
EJECU-CIÓN
SALIDA A LOS ACTUADORES
• MUCHA CAPACIDAD DE PROCESO Y MEMORIA.• EL MODELO DEL ENTORNO SUELE SER RÍGIDO.• MODELO SECUENCIAL. • PROBLEMAS EN ENTORNOS CAMBIANTES.
24/03/2006 SEMINARIO HISPABOT'2006 13
FUSIÓN DE COMPORTAMIENTOS.FUSIÓN DE COMPORTAMIENTOS.
– Se establecen distintos comportamientos ante distintas situaciones.
– Todos los comportamientos están activos al mismo tiempo, generando salidas a los actuadores.
– Una tarea de arbitraje decide qué señales llegan a los sensores.
– No es necesario un modelo preciso del entorno.– Es modular y ampliable fácilmente.
24/03/2006 SEMINARIO HISPABOT'2006 14
ÍNDICE DE LA PRESENTACIÓN.ÍNDICE DE LA PRESENTACIÓN.
• INTRODUCCIÓN
• PLATAFORMAS HARDWARE
•¿CÓMO COMBINAR LA INFORMACIÓN SENSORIAL?
• SUPERPOSICIÓN DE COMPORTAMIENTOS.SUPERPOSICIÓN DE COMPORTAMIENTOS.
• UN EJEMPLO.
• SISTEMAS DE TIEMPO REAL.
• REDES DE PETRI.
• CONCLUSIONES.
24/03/2006 SEMINARIO HISPABOT'2006 15
FUSIÓN DE COMPORTAMIENTOS.FUSIÓN DE COMPORTAMIENTOS.
– Ejemplo para un microbot con:• Anillo de ultrasonidos.• Detector de infrarrojos.• Detector de nivel bajo de batería.
– Un posible funcionamiento:• Tarea para evitar obstáculos: evitar• Tarea para guiar al robot al banco de recarga cuando
las baterías están bajas: recargar.
24/03/2006 SEMINARIO HISPABOT'2006 16
FUSIÓN DE COMPORTAMIENTOS.FUSIÓN DE COMPORTAMIENTOS.
NIVEL DE BATERÍA
DETECTORIR
ULTRA-SONIDOS
RECARGAR
EVITAR MOTORESS
000000ADAA
IDI00IDDID IDI00IADAA
24/03/2006 SEMINARIO HISPABOT'2006 17
FUSIÓN DE COMPORTAMIENTOS: IMPLEMENTACIÓN.FUSIÓN DE COMPORTAMIENTOS: IMPLEMENTACIÓN.
– Los comportamientos deben ejecutarse concurrentemente.
– Cada comportamiento es una tarea.– Debe comprobarse que es posible atender todas las
tareas: planificabilidad del sistema.– Cada tarea se planifica mediante una herramienta
adecuada: • Máquina de estados. • Red de Petri.
– Las tareas planificadas se traducen a código:• C + Sistema operativo en tiempo real.• Lenguaje de programación concurrente: Java, ADA, etc.
24/03/2006 SEMINARIO HISPABOT'2006 18
ÍNDICE DE LA PRESENTACIÓN.ÍNDICE DE LA PRESENTACIÓN.
• INTRODUCCIÓN
• PLATAFORMAS HARDWARE
•¿CÓMO COMBINAR LA INFORMACIÓN SENSORIAL?
• SUPERPOSICIÓN DE COMPORTAMIENTOS.
• UN EJEMPLO.UN EJEMPLO.
• SISTEMAS DE TIEMPO REAL.
• REDES DE PETRI.
• CONCLUSIONES.
24/03/2006 SEMINARIO HISPABOT'2006 19
FUSIÓN DE COMPORTAMIENTOS: EJEMPLO.FUSIÓN DE COMPORTAMIENTOS: EJEMPLO.
– Robot que se mueve hacia delante, cuando encuentra una fuente de luz la sigue. Si aparecen obstáculos (detectados por IR) los evita. Si, no obstante, choca contra algún objeto, unos sensores de contacto le permiten detectarlo para iniciar una secuencia de escape.
24/03/2006 SEMINARIO HISPABOT'2006 20
FUSIÓN DE COMPORTAMIENTOS: EJEMPLO.FUSIÓN DE COMPORTAMIENTOS: EJEMPLO.
DETECTORESDE
CONTACTO
DETECTORIR
CÉLULASFOTOECAS.
EVITAR
SEGUIR S
ESCAPE
MOTORESSADELANTE
S
24/03/2006 SEMINARIO HISPABOT'2006 21
FUSIÓN DE COMPORTAMIENTOS: EJEMPLO.FUSIÓN DE COMPORTAMIENTOS: EJEMPLO.
MÁQUINA DE ESTADOS PARA LA TAREA DE ESCAPE.
ESPERAR
ATRÁS
IZDADCHA
IMP. IZDA
IMP. FRONTAL
IMP. DCHA
TIMEOUT3
TIMEOUT1 TIMEOUT2
24/03/2006 SEMINARIO HISPABOT'2006 22
FUSIÓN DE COMPORTAMIENTOS: EJEMPLO.FUSIÓN DE COMPORTAMIENTOS: EJEMPLO.
PSEUDO CÓDIGO DE LA TAREA DE ESCAPE:
ESTADO 1:if choque=NO
volverelse if choque=IZDA
Saltar a estado 2else if choque=RIGHT
Saltar a estado 4else Saltar a estado 3
ESTADO2:if tiempo en este estado> timeout1
Saltar a estado 1else
comandos motor=girar dcha.Volver.
........
24/03/2006 SEMINARIO HISPABOT'2006 23
FUSIÓN DE COMPORTAMIENTOS: EJEMPLOFUSIÓN DE COMPORTAMIENTOS: EJEMPLO
void main(){
start_process (motores());start_process (adelante());start_process (seguir());start_process (evitar());start_process (escape());start_process (arbitrar());
}
void arbitrar(){ while(1){ if flag_adelante
entrada_motor=comando_adelante;if flag_seguir
entrada_motor=comando_seguir;if flag_evitar
entrada_motor=comando_evitar;......
Sleep(tick)}
int comando_adelante;int flag_adelante;void adelante(){
while(1){comando_adelante=ADEL;flag_adelante=1;}
}
24/03/2006 SEMINARIO HISPABOT'2006 24
FUSIÓN DE COMPORTAMIENTOS: EJEMPLOFUSIÓN DE COMPORTAMIENTOS: EJEMPLO
24/03/2006 SEMINARIO HISPABOT'2006 25
ÍNDICE DE LA PRESENTACIÓN.ÍNDICE DE LA PRESENTACIÓN.
• INTRODUCCIÓN
• PLATAFORMAS HARDWARE
•¿CÓMO COMBINAR LA INFORMACIÓN SENSORIAL?
• SUPERPOSICIÓN DE COMPORTAMIENTOS.
• UN EJEMPLO..
• SISTEMAS DE TIEMPO REAL.SISTEMAS DE TIEMPO REAL.
• REDES DE PETRI.
• CONCLUSIONES.
24/03/2006 SEMINARIO HISPABOT'2006 26
SISTEMASSISTEMAS DE TIEMPO REAL.DE TIEMPO REAL.
• ¿Qué es un sistema de tiempo real?– Debe cumplir ciertas restricciones de tiempo, es decir
debe ser predecible.– Deben ser fiables y seguros.– Pueden ser críticos o no.
24/03/2006 SEMINARIO HISPABOT'2006 27
SISTEMAS DE TIEMPO REALSISTEMAS DE TIEMPO REAL
• Proceso de diseño:– Identificar estímulos y respuestas asociadas– Definir las limitaciones de tiempo asociadas
con cada estímulo y respuesta– Diseño de algoritmos para el procesamiento de
estímulos y generación de respuestas– Diseño de una planificación del sistema que
garantice que las tareas sean completados a tiempo conociendo sus plazos de respuesta.
24/03/2006 SEMINARIO HISPABOT'2006 28
SISTEMASSISTEMAS DE TIEMPO REAL.DE TIEMPO REAL.
• Los sistemas de tiempo real deben atender, a tiempo, un conjunto de tareas.– Periódicas, aperiódicas o esporádicas, urgentes o no urgentes, etc.
• Los aspectos temporales de la tareas son:Instante de activación Límite (Deadline)
Inicio Fin
Tiempo de respuesta
Plazo máximo de respuesta
24/03/2006 SEMINARIO HISPABOT'2006 29
SISTEMASSISTEMAS DE TIEMPO REAL.DE TIEMPO REAL.
• Concurrencia (atender varios eventos en paralelo):
– Tareas independientes implementadas en:• Lenguajes concurrentes (ADA, Java, etc.)• Lenguaje C + SOTR.
– Debe garantizarse la atención de todas las tareas a tiempo. Para ello:
• Técnicas de planificación de tareas con asignación de prioridades.
24/03/2006 SEMINARIO HISPABOT'2006 30
SISTEMAS DE TIEMPO REAL.SISTEMAS DE TIEMPO REAL.
24/03/2006 SEMINARIO HISPABOT'2006 31
SISTEMAS DE TIEMPO REAL.SISTEMAS DE TIEMPO REAL.
24/03/2006 SEMINARIO HISPABOT'2006 32
SISTEMASSISTEMAS DE TIEMPO REAL: planificación con prioridades fijas.DE TIEMPO REAL: planificación con prioridades fijas.
24/03/2006 SEMINARIO HISPABOT'2006 33
SISTEMAS DE TIEMPO REAL.SISTEMAS DE TIEMPO REAL.
24/03/2006 SEMINARIO HISPABOT'2006 34
SISTEMAS DE TIEMPO REAL.SISTEMAS DE TIEMPO REAL.
24/03/2006 SEMINARIO HISPABOT'2006 35
SISTEMAS DE TIEMPO REAL.SISTEMAS DE TIEMPO REAL.
24/03/2006 SEMINARIO HISPABOT'2006 36
SISTEMAS DE TIEMPO REAL.SISTEMAS DE TIEMPO REAL.
24/03/2006 SEMINARIO HISPABOT'2006 37
SISTEMAS DE TIEMPO REAL.SISTEMAS DE TIEMPO REAL.
24/03/2006 SEMINARIO HISPABOT'2006 38
SISTEMAS DE TIEMPO REAL.SISTEMAS DE TIEMPO REAL.
24/03/2006 SEMINARIO HISPABOT'2006 39
SISTEMAS DE TIEMPO REAL.SISTEMAS DE TIEMPO REAL.
24/03/2006 SEMINARIO HISPABOT'2006 40
SISTEMAS DE TIEMPOSISTEMAS DE TIEMPO REALREAL
• Componentes de un SOTR.– Reloj de tiempo real
• Provee información para la planificaciónde procesos (processscheduling).
– Manejador de interrupciones• Controla las peticiones de servicios aperiódicos.
– Scheduler (Planificador)• Selecciona el próximo proceso a ejecución.
– Administrador de recursos• Asigna recursos de memoria y procesador a las tareas.
– Despachador• Inicia la ejecución de procesos.
– Primitivas para la creación, comunicación y sincronización de tareas.
24/03/2006 SEMINARIO HISPABOT'2006 41
ÍNDICE DE LA PRESENTACIÓN.ÍNDICE DE LA PRESENTACIÓN.
• INTRODUCCIÓN
• PLATAFORMAS HARDWARE
•¿CÓMO COMBINAR LA INFORMACIÓN SENSORIAL?
• SUPERPOSICIÓN DE COMPORTAMIENTOS.
• UN EJEMPLO.
• SISTEMAS DE TIEMPO REAL.
• REDES DE PETRI.REDES DE PETRI.
• CONCLUSIONES.
24/03/2006 SEMINARIO HISPABOT'2006 42
REDES DE PETRI.REDES DE PETRI.
• Una forma de modelar sistemas de tiempo real son las Redes de Petri.
2 2
3
2 2
3
24/03/2006 SEMINARIO HISPABOT'2006 43
REDES DE PETRI: Ejemplo.REDES DE PETRI: Ejemplo.
P1
Enviar mensaje
Esperar ACK
Enviar Ack
Recibir mensaje
P2
24/03/2006 SEMINARIO HISPABOT'2006 44
REDES DE PETRI: Ejemplo.REDES DE PETRI: Ejemplo.
P1 P2
24/03/2006 SEMINARIO HISPABOT'2006 45
REDES DE PETRI: Ejemplo.REDES DE PETRI: Ejemplo.
P1 P2
24/03/2006 SEMINARIO HISPABOT'2006 46
REDES DE PETRI: Ejemplo.REDES DE PETRI: Ejemplo.
P1 P2
24/03/2006 SEMINARIO HISPABOT'2006 47
REDES DE PETRI: Ejemplo.REDES DE PETRI: Ejemplo.
P1 P2
24/03/2006 SEMINARIO HISPABOT'2006 48
REDES DE PETRI: Ejemplo.REDES DE PETRI: Ejemplo.
P1 P2
24/03/2006 SEMINARIO HISPABOT'2006 49
REDES DE PETRI: REDES DE PETRI: EjemploEjemplo 22
Produce
Consume
Buffer
24/03/2006 SEMINARIO HISPABOT'2006 50
REDES DE PETRI: REDES DE PETRI: EjemploEjemplo 22
Produce
Consume
Buffer
24/03/2006 SEMINARIO HISPABOT'2006 51
REDES DE PETRI: REDES DE PETRI: EjemploEjemplo 22
Produce
Consume
Buffer
24/03/2006 SEMINARIO HISPABOT'2006 52
REDES DE PETRI: REDES DE PETRI: EjemploEjemplo 22
Produce
Consume
Buffer
24/03/2006 SEMINARIO HISPABOT'2006 53
REDES DE PETRI: REDES DE PETRI: EjemploEjemplo 22
Produce
Consume
Buffer
24/03/2006 SEMINARIO HISPABOT'2006 54
REDES DE PETRI: REDES DE PETRI: EjemploEjemplo 22
Produce
Consume
Buffer
24/03/2006 SEMINARIO HISPABOT'2006 55
REDES DE PETRI: REDES DE PETRI: EjemploEjemplo 22
Produce
Consume
Buffer
24/03/2006 SEMINARIO HISPABOT'2006 56
REDES DE PETRI: REDES DE PETRI: EjemploEjemplo 22
Produce
Consume
Buffer
24/03/2006 SEMINARIO HISPABOT'2006 57
REDES DE PETRI: REDES DE PETRI: EjemploEjemplo 22
Produce
Consume
Buffer
24/03/2006 SEMINARIO HISPABOT'2006 58
REDES DE PETRI: REDES DE PETRI: EjemploEjemplo 22
Produce
Consume
Buffer
24/03/2006 SEMINARIO HISPABOT'2006 59
REDES DE PETRI: REDES DE PETRI: EjemploEjemplo 22
Produce
Consume
Buffer
24/03/2006 SEMINARIO HISPABOT'2006 60
REDES DE PETRI: REDES DE PETRI: EjemploEjemplo 22
Produce
Consume
Buffer
24/03/2006 SEMINARIO HISPABOT'2006 61
REDES DE PETRI: REDES DE PETRI: EjemploEjemplo 22
Produce
Consume
Buffer
24/03/2006 SEMINARIO HISPABOT'2006 62
REDES DE PETRI: REDES DE PETRI: EjemploEjemplo 22
Produce
Consume
Buffer
24/03/2006 SEMINARIO HISPABOT'2006 63
REDES DE PETRI: Implementación.REDES DE PETRI: Implementación.
• INTERPRETADA:– La estructura de la RdP y su marcado se
codifican en estructuras de datos de las cuales uno o varios programas extraen la información para hacer evolucionar la RdP.
• COMPILADA:– Se generan uno o varios programas cuyos flujos
de control reproducen el comportamiento de la RdP
24/03/2006 SEMINARIO HISPABOT'2006 64
REDES DE PETRI: Implementación.REDES DE PETRI: Implementación.
• Existen varias vías para la implementación:– Interpretada o compilada.– Exhaustiva o dirigida por el marcado.– Síncrona o asíncrona.– Secuencial o en paralelo,– Centralizada o descentralizada (uno o varios
procesos hacen avanzar la red).– Etc.
24/03/2006 SEMINARIO HISPABOT'2006 65
REDES DE PETRI: Implementación.REDES DE PETRI: Implementación.
p23
p1 t1
t2
p3
t01
p0
2
2
char C [][] = {{-1, 0, 1},{ 1, 0,-1},{ 2,-1, 0},{ 0, 1,-2}} ;
BOOLEAN Sensibilizada (unsigned char T) {
BOOLEAN Sensib = TRUE ;int P ;
for (P=0; P<NUMLUG; P++) {if (C[P][T] < 0) {if (M[P] < - C[P][T])Sensib = FALSE ;
}}return Sensib ;
}
void Actualiza_Marcado (MARCADO M, unsigned char T) {
for (P=0; P<NUMLUG; P++) {M[P] += C[P][T] ;
}}
24/03/2006 SEMINARIO HISPABOT'2006 66
REDES DE PETRI: Implementación.REDES DE PETRI: Implementación.
#define NUMLUG 4 #define NUMTRANS 3 ...unsigned char M[NUMLUG] = {1,0,0,0} ;unsigned char Sig_M[NUMLUG] = {1,0,0,0} ;
/*Estructura de datos que codifica la RdP */...
void main (void) {Inicializacion () ;while (TRUE) {memcpy (M, Sig_M, sizeof(M)) ;Generacion_Salidas (M) ;Lectura_Entradas (&MA, &MB, ...) ;for (T=1;T <= NUMTRANS; T++) {if (Sensibilizada (T)) {if (Condicion(T)) {Actualiza_Marcado();Accion (T) ;
}}
}}
}
24/03/2006 SEMINARIO HISPABOT'2006 67
ÍNDICE DE LA PRESENTACIÓN.ÍNDICE DE LA PRESENTACIÓN.
• INTRODUCCIÓN
• PLATAFORMAS HARDWARE
•¿CÓMO COMBINAR LA INFORMACIÓN SENSORIAL?
• SUPERPOSICIÓN DE COMPORTAMIENTOS.
• UN EJEMPLO.
• SISTEMAS DE TIEMPO REAL.
• REDES DE PETRI.
• CONCLUSIONES.CONCLUSIONES.
24/03/2006 SEMINARIO HISPABOT'2006 68
CONCLUSIONES.CONCLUSIONES.
• La plataforma ideal para un microbot: microcontrolador + módulos específicos.
• Elección del µC: precio, disponibilidad, conocimientos y herramientas de desarrollo.
• La mejor estrategia: varios comportamientos, cada uno de los cuales se corresponde con una tarea.
• Planificar las tareas.• Implementar con SOTR + compilador de C.• Modelar con Redes de Petri.