1
Robótica Reactiva y experimentos con el Robot Khepera
Dr. Fernando M. Montes G.Laboratorio de Robótica
Maestría en Inteligencia ArtificialUniversidad Veracruzana
http://www.uv.mx/mia
Contenido
• 1. Introducción a la robótica reactiva• 2. Comparación entre algunas plataformas
robóticas comercialesa.Lego Mindstormsb.El Robot Pioneerc. El Robot Khepera
Contenido
• 3. El robot Khepera y su software de controla. Especificacionesb. Torretas de extensiónc. Simuladores d. Software de control remoto
• 4. Diseño de experimentos con el robot Kheperaa. El simulador KpraSIMb. Recolección de latasc. Tareas colectivasd. Visión activae. Algoritmos Genéticos
• 5. Notas Finales
2
Introducción a la robótica reactiva
Conceptos básicos
Robots para qué, cómo?
• ¿Construyo?
• ¿Programo?
• ¿Controlo?
• ¿Guío?
Lo hago que aprenda
Le enseño a aprender
Actividades para controlar el sistemarobótico
• Controlar las salidas, generalmente los motores y algunos sensores de luz y sonido.
• Leer y procesar señales de entrada.• Reaccionar a eventos externos (tal como se
detectan a través de los sensores de entrada). • Proporcionar una estructura programable que
gestione todo lo anterior, mientras se alcanzala meta global
3
Arquitectura robótica
• Proporciona una forma basada en principios de organizar un sistema de control. Proporciona unaestructura y restricciones (Mataric,1992)
• Describe un conjunto de componentesarquitecturales y las formas en las que interaccionan(Dean & Wellman)
• Determina el comportamiento del agente, imponerestricciones en cómo puede sensar, planear y actuarpara alcanzar una meta o realizar su tarea
Enfoques para describir arquitecturas
• Por las relaciones entre las primitivas• Por la forma en la que los datos
sensoriales son procesados y distribuidosa través del sistema.
• Por la cantidad de influencia que tiene la percepción sobre la conducta de la persona, el animal o el mecanismo
Murphy, 2000
Las primitivas básicas robóticas
Se usan para descomponer funcionalmente un robot:
• Sensar: tomar la información de los sensores y producir una salida útil para otras funciones
• Planear: tomar la información de los sensores o de la base de conocimientos para producir unao más tareas que el robot ejecutará
• Actuar: produce las órdenes de salida para los actuadores
4
Primitivas robóticas
Órdenes para los actuadores
Informaciónsensada o directivas
Actuar
DirectivasInformación(sensada y/o cognitiva)
Planear
Informaciónsensada
Datos de los sensores
Sensar
SalidaEntradaPrimitivasrobóticas
Estrategias de control
• Basadas en la planeación o deliberativas
• Reactivas
• Basadas en el comportamiento
• Híbridas
PlanearSensar Actuar
Modelo jerárquico/deliberativo
5
Características de las estrategias de control deliberativas
• Utilizan un modelo centralizado del mundo
• Para ello la fusión de sensores• Un planificador usa el modelo del
mundo para generar la secuencia de acciones más adecuada
• Activación síncrona de los elementos
Órdenes paralos actuadores
Informaciónsensada odirectivas
Actuar
DirectivasInformación(sensada y/o cognitiva)
Planear
Informaciónsensada
Datos de los sensores
Sensar
SalidaEntradaPrimitivasrobóticas
Flujo de los procesos en el paradigmadeliberativo
Características de las estrategias de control reactivas
• El control es derivado de un conjunto no centralizadode reglas {condición,acción}
• Los modelos internos o representaciones del mundo son locales, distribuidos
• No hay búsquedas• Para cada conjunto de lecturas de sensores se toma y
se ordena una acción• No hay una representación interna, hay un
acoplamiento directo entre los sensores y los actuadores/acciones
• Hay un ciclo de re-alimentación rápido a través del mundo
• La activación de las conductas es asíncrona
6
ActuarSensar
Modelo reactivo
Órdenes paralos actuadores
Informaciónsensada odirectivas
Actuar
DirectivasInformación(sensada y/o cognitiva)
Planear
Informaciónsensada
Datos de los sensores
Sensar
SalidaEntradaPrimitivasrobóticas
Flujo de los procesos en el paradigmareactivo
Características de las estrategias de control basadas en el comportamiento
• Pueden usar algunas representaciones internas• Realizan cómputos en las representaciones para
decidir la acción que se llevará a cabo.• Hacen mapeos entre las condiciones y las acciones.
Usan un conjunto de filtros perceptuales acopladosdirectamente a una acción.
• El control se deriva de una colección de conductasparalelas, concurrentes, descentralizadas
• Las conductas codifican la estrategia de control y el conocimiento del sistema. No se manipulanestructuras de datos ni representaciones simbólicascomplejas
• Sensado continuo que asegura una convergenciaprobabilista
7
Planear
Sensar Actuar
Modelo Sistemas Basado en el comportamiento (híbrido)
Órdenes paralos actuadores
Informaciónsensada odirectivas
Sensar/Actuar
DirectivasInformación(sensada y/o cognitiva)
Planear
SalidaEntradaPrimitivasrobóticas
Flujo de los procesos en el paradigma del modelo híbrido
Criterios para evaluar arquitecturas
• Soporte para la modularidad
• Nicho objetivo
• Facilidad de portabilidad a otros dominios
• Robustez
8
Situaciones bajo las cuales son adecuadas lasestrategias reactivas
• Tareas bien definidas• Entorno bien conocido• Equipado con los sensores para percibir la
información necesaria• Metas bien definidas y conocidas
Situaciones en las cuales las estrategiasdeliberativas fracasan
• Para control de muchos robots queinteraccionan, debido a:– El tamaño del espacio global de estados, crece
exponencialmente– La incertidumbre de la percepción se vuelve no-
razonable con la complejidad del medio ambiente– Las interacciones tienen consecuencias temporales
extendidas
El problema se vuelve intratable
Arquitecturas Robóticas como Agentes
• Una arquitectura, también puede ser vista como un agente.
• Un agente actúa sobre diversos ambientes.• Los ambientes en gran parte determinan el actuar de
los agentes.• La diversidad del agente ofrece al mismo tiempo
restricciones que limitan el desarrollo de la misma, pero también ofrece oportunidades para el desarrollo.
• Las plataformas robóticas también se benefician de esta situación.
9
Reglas para construir un plataformarobótica
Inicie con un prototipo pequeñoDiseñe todo al mismo tiempoProteja la transmisión (engranes/poleas) del entornoMantenga el centro de masa en el centro geométrico del robotUn robot es más impresionante si se mueve más rápidoLos objetos se deben detectar con suficiente distancia para que el robot no choque contra ellos y los pueda dañar o así mismoLa complejidad agrega pesoEl peso agrega complejidadEl peso consume más energíaLa energía agrega pesoSi el robot no hace nada su consumo de energía debe ser nulo
Agentes (Russell & Norvig)
• Un agente es cualquier cosa que puede verse como aquél que percibe su ambiente a través de sensores y actúa sobre ese ambiente a través de actuadores.
• Agentes Humanos: ojos, orejas,y otros órganos como sensores; manos, piernas, boca y otras partes del cuerpo como actuadores.
• Agente Robótico: cámaras y sensores infrarojoscon diversos motores como actuadores.
Agentes y ambientes (Russell & Norvig)
• La función del agente mapea percepciones en el tiempo con acciones:
[f: P* A]• El programa del agente corre en una arquitectura física
para producir f• agente = arquitectura + programa
10
Tipos de Agentes (Russell & Norvig)
• Existen cuatro tipos básicos de agentes, los cuales incrementan su autonomía:
• Agentes Reflejos Simples• Agentes Reflejos basados en Modelos• Agentes basados en Metas• Agentes basados en Utilidades
Agentes Reflejos Simples
Agentes basados en Modelos
12
Comparación entre algunas plataformas comerciales
Lego MindstormsEl Robot PioneerEl Robot Khepera
¿Cuál es la tarea de programar un robot?
Diseñador/Programador
Medio Ambiente
Robot
Control
Control
Podemos considerar que la tarea de programación de un robot es una tarea de control de 2o. orden debidoa que el diseñador quierecontrolar el robot que a suvez controlará (modificará, actuará en) un ambiente
Enfoques para la programación de robots
Lenguajes específicospara programación
robótica
Lenguajes generalesde programación
Extensioneso
constructos(órdenes y tipos de datos)
+
13
SaphiraVer 6.2c
Saphira
• Es un ambiente para programar el robot Pionner2DX
• Sigue el modelo cliente/servidor paraestablecer la cooperación entre el robot y la computadora en la que se programa
• Consta de dos partes, – Un servidor instalado en el robot– Un cliente instalado en la computadora
Servidor
• Administra los detalles de bajo nivel de los sistemas del robot– Operación de los motores, – procesado de sus sensores (decodificadores de giro)– Activación, disparo, recolección de ecos,
procesamiento de los datos de los sonares– Responder al cliente– Registrar y enviar los reportes requeridos
14
El robot como servidor
Ancho de banda del Canal(9600) baudios)
Control de Velocidad y ángulo
Integración de posición
Despachadorsonares y E/S
Comunicación de paquetes
Control PWM del motor
Conteo del decodificador
Rango de los sonares Control de E/S
Funcionesde control bajo nivel
10 khz
1 khz Int
Int
P2OS
Cliente
• Aisla al programador de los detalles de bajo nivel del robot• Media entre el robot o el simulador y un cliente a través de la
comunicación• Utiliza un protocolo de paquetes, es un flujo de bits que consiste
de 4 elementos– 2 bytes para un encabezado– 1 byte para la cuenta del número de datos a enviar y el número de
bytes de verificación (checksum) en el paquete– 1 orden del cliente incluyendo parámetros o 1 bloque de datos de
información– 2 bytes de verificación
Cliente Saphira
Actividades y microtareas del usuario
Rutinas de control y de aplicación
Comunicación en paquetes
Sistema Operativo síncrono de microtareas
Rutinasasíncronasdel
usuario
15
Arquitectura de Saphira
Localización y registro del mapa
Seguimientode personas
Reconocimientode objetos
ConstrucciónDe superficies
Informaciónsin procesar
Sensores
Planificadortopológico
Tareas de navegación
ConductasMetas
Conductasreactivas
Entradaoral
Procedural Reasoning
Syistem(PRS-lite)
Actuadores
Biblioteca deesquemas
Local Perceptual Space(LPS) graphic window
Procedural Reasoning System (PRS- Lite)
• Se basa en un controlador a nivel de tarea quesigue una aproximación que hace uso de conocimiento procedimental.
Alternativas para programar el clienteSaphira
• Lenguaje de alto nivel Colbert• Conjunto de funciones o API• Gramática de conductas (Behavior Grammar)
16
Colbert
• Colbert es un lenguaje de alto nivel para programar robots. • Se considera una extensión de “C”.Guarda ciertas similitudes y diferencias
con ese lenguaje. • Saphira contiene un evaluador del lenguaje Colbert que consiste en un
intérprete. • La biblioteca de Saphira suman su funcionalidad al evaluador Colbert, esto
permite unir el evaluador con variables, estructuras y funciones nativas de C.
• Colbert tiene un conjunto de funciones con las cuales es posible definir actividades (tareas), estructurar un despachador de tareas, especificar conductas a través de reglas difusas, entre otros
• Estas instrucciones se usan en dos formas:– directa en la zona interactiva del ambiente gráfico,– formando programas de actividades que se cargan con la opción “load” del
menú principal
Funciones básicas de Saphira
• sfConnectToRobot(int ctype, char *channel) conecta al simulador o al robot.– Los valores de ctype:
• sfLOCALPORT (simulador y servidor local)• sfTTYPORT, • sfTCPPORT.
– Los valores para el canal: • sfCOMLOCAL (simulador pipe), • sfCOM1/2 (puerto tty), o • una cadena
– (e.g., /dev/cua1 para un puerto tty, flakey.ai.sri.com para unaconexión TCP).
Funciones básicas de Saphira
• void sfRobotCom(int com) – envía una orden en paquete al robot, con un argumento. Los
nombres simbólicos de las órdenes inician con el prefijosfCOMxx.
• void sfRobotComInt(int com, int arg)– envía una orden en paquete al robot, con un argumento. Los
nombres simbólicos de las órdenes inician con el prefijosfCOMxx.
• void sfSetMaxRVelocity(int vel)– establece la velocidad máxima de rotación del robot a vel
deg/sec. Las órdenes de giro (turn) usan este valor comomáximo; Las órdenes de rotación (rotate) no pueden excederla.
17
Detalles para la instalación del software Saphira
• modificar el autoexec.bat para agregar el camino para llegar a saphira, por ejemplo,– Para Windows 95, 98 se agrega la variable de entorno
• set saphira=d:\robotik\saphira\ver62– En el caso de WinXP y 2000 se puede modificar el registro de las variables de
ambiente en el • Mi PC -> propiedades del sistema -> variables de entorno
– Nueva » Saphira» ruta en la que se encuentran los ejecutables del ambiente gráfico y del simulador generalmente se
encuentran en el subdir bin, de C:\saphira\ver62, así que se pone:» C:\saphira\ver62
• modificar las propiedades de los programas ejecutables para que se puedan ejecutar en este ambiente,por ejemplo– se puede seleccionar que se ejecuten como en win95
• agregar la biblioteca dinámica sf.dll al subdirectorio de dll's– o al subdirectorio \system del directorio de Windows en el caso de la versión
6.x– o al subdirectorio \system32 del directorio de Windows para la versión 8.x
Uso del robot Pioneer
Ambientes de programación para Lego
18
SISTEMAROM
SISTEMA DE FIRMWARE ESTÁNDAR
PROGRAMAS DEL USUARIO
HARDWARE
CÓDIGO RCX
COMPILADOR NQC
Ladrillo
Lego
Computadora (host)
Programa en código RCX
Programa NQC
Código en bytes
Ambiente estándar de programación
LegOS
Programas del Usuario
SISTEMAROM
HARDWARE
Ladrillo
Lego
Computadora (host)
Programa en LegOS
Código nativo binario
Compilador de “C”
Ambiente LegOS
LegOS
Programas del Usuario
SISTEMAROM
HARDWARE
Ladrillo
Lego
Computadora (host)
Programa en Lejos
Código nativo binario
Compilador de “Java”
Ambiente Lejos
20
El robot Khepera y su Software de control
Descripción
http://www.k-team.com/
Introducción
• Desarrollado por el Laboratorio de Microprocesadores e Interfaces (LAMI) y el Instituto Ferderal Suizo de Tecnología en Lausanne (EPFL).
• Diseñado como herramienta de investigación y de enseñanza.
• Permite el desarrollo de algoritmos de ejecución de trayectorias, evasión de obstáculos, pre-procesamiento de información sensora y robótica conductual.
Introducción
• El control de los robot Khepera se hace a través del puerto serial.
• Se pueden el siguiente software para controlar los robot Khepera:– Matlab®, http://www.mathworks.com/
– Sysquake®, http://calerga.com/
– Webots®, http://www.cyberbotics.com
– YAKS®, http://r2d2.ida.his.se/
21
Operación
1. LEDs
2. Serial line
3. Reset Button
4. Running modeselector
5. IR sensors
6. Battery charger
7. ON-OFF switch
Operación
Este módulo se puede usar como una interfaz para comunicación entre el robot y la computadora y como fuente externa de poder.
Operación
Carga y comunicación con el robot Khepera.
22
Especificaciones
• Procesador: Motorola 68331, 25MHz.• RAM: 512 Kbytes.• Flash: 512 Kbytes Programable.• Locomoción: 2 servo motores con odometríaincorporada.
• Velocidad: Max: 1 m/s, Min: 0.02 m/s.• Sensores: 8 Infrarrojos que detectan proximidad y luz ambiental con un rango de 100 mm.
Especificaciones
• I/O: 3 Entradas Análogas Inputs (0-4.3V, 8bit.
• Alimentación: Adaptador o Baterías recargables NiMH.
• Autonomía: 1 hora de movimiento continuo.• Comunicación: Puerto Serial estándar, hasta 115kbps.
Especificaciones
• Bus de extensión: Varios Módulos de expansión pueden ser conectados.
• Tamaño: Diámetro: 70 mm, Altura: 30 mm.
• Peso: aprox. 80 g.• Carga: aprox. 250 g.
23
Especificaciones
Los ocho sensores infrarrojos ubicados alrededor del Khepera
El robot Khepera y su Software de control
Torretas de extensión
Pinza
•Procesador: Motorola 68HC11.•RAM: 256 bytes.•ROM: 2 Kbytes.•Locomoción: 2 motores DC con odometría
24
Pinza
• Sensores: Barrera óptica y resistividad en la pinza
• Bus de Extensión: Usa el mismo módulo de extensión K-Extension bus.
• Tamaño: 65 x 90 x 10 mm.• Carga: aprox. 50 g.
Vídeo
• Salida vídeo: PAL o NTSC, 75 Ohms BNC.• Picture Elements: PAL: 500(H)x582(V) pixels, NTSC: 510(H)x492(V) pixels.• Transmisión Vídeo: Cable flexible y contacto rotante.• Tamaño: Diámetro: 55 mm, Altura: 50 mm.
Vídeo
• Field of View– Standard: 39deg (H) x 28 (V).– Opcional: lentes de 360deg (H) x
55deg (V).• Bus de Extensión: No pueden conectarse otras torretas
encima de la de vídeo.
25
Vídeo inalámbrico
• Torreta de Visión Inalámbrica
Torreta CMUcam
•CMOS Cámara a Color•176x255 RGB Color 24-bitpor pixel•Procesamiento a bordo:seguimiento de color, diferencia de cuadros, histogramas, etc.•Diámetro: 55 mm•Altura: 40 mm
Otras torretas de vídeo
• Torreta de Visión Lineal
26
Torreta de E/S
• Entradas: 8 digital, 2 análogos (absoluta) con ganancia ajustable, 1 diferencial análogo.• Salidas: 4 digitales baja potencia, 1 digital alta-potencia, 1 control de motores(puente H completo).
Torreta de E/S
• Bus de Extensión: Posibilidad de usarel módulo de extensión K-Extension bus.
• Tamaño: Diámetro: 55 mm, Altura: 10 mm.
Torreta de radio (I)
• Velocidad: 9600 bps, típico 4800 bps.• Frecuencia: 418 MHz or 433,920 MHz• Rango: 10m.• Máximo numero de robots: 32.• Procesador: Motorola M68331.• RAM: 32 Kbytes.• ROM: 128 Kbytes.• Tamaño: 55 x 55 x 15 mm
27
Torreta de radio (II)
• Velocidad: 115200bps y 38400bps.• Frecuencia: 2.4 GHz.• Rango: 30m.• Máximo número de robots: 7.• Procesador: Microchip PIC18F.• RAM: 2 Kbytes.• ROM: 32 Kbytes.• Tamaño: 55 x 55 x 15 mm.
El robot Khepera y su Software de control
Simuladores
KSIM
• Java• Modificable• WSU Khepera
Serial Interface
• http://ehrg.cs.wright.edu/ksim/downloads/downloads.html
28
YAKS
• Win & Unix• ANN• Requiere:
– GTK+, for graphicalinterface
– GtkGlArea, forOpenGL interface
• http://r2d2.ida.his.se/
Khepera Simulator 2.0
KIKS
• Matlab 5.3 y 6.0• Puede simular hasta
128 Kheperasconectados a través de TCPIP
• Open Source -modificable
• Soporte para la torreta de visión lineal
• http://www.tstorm.se/projects/kiks/
29
Evolutionary Robotics Toolbox
• Matlab 5.0+• Win/Solaris• Enfocado a robótica
evolutiva• Definición de
funciones de adaptabilidad
• http://diwww.epfl.ch/lami/team/urzelai/ertbx.html
Webots
Webots
• Multiplataforma:Win/Mac/Unix
• Multirobot: Khepera, PIONEER, AIBO, etc
• Programación en C/C++/Java
• Posibilidad de usar cómputo distribuido sobre tcpip
30
Webots
http://www.cyberbotics.com
El robot Khepera y su Software de control
Software de control remoto
Conexión Serial
9600 baudios, 8 bit, 1 bit de inicio, 2 bit de parada, no paridad
31
Conexión Serial
• B - Leer versión de Software• D,1,1 - Ajustar Velocidad• G - Ajustar Odometría• H - Leer Odometría• N - Leer sensores infrarrojos• O - Leer sensores de luz ambiental
LabView
kMatlab
Khepera Command kMatlab equivalent
-------------------------------------------------------------
B - Read software version kBiosD - Set speed kSetSpeed
E - Read speed kGetSpeed
G - Set position to the position counter kSetEncoders
H - Read position kGetEncodersL - Change LED state kLED
N - Read proximity sensors kProximity
O - Read ambient light sensors kAmbientT - Send a message to an extension turret kTurret
32
Diseño de experimentos con el robot Khepera
Ejemplos
El Simulador KpraSIM
• Basado en RobotWorld por Henrik Lernmark y Tim Portnoff
• Desarrollado por el M.I.A.
José [email protected]
Diseño de experimentos con el robot Khepera
Recolección de latas
33
Forrajeo de Latas
• Comida nutritiva de color rojo
• Comida venenosa de color azul
• Estación de recarga de color verde
• El robot tiene que recoger la comida y liberarla en las esquinas
• El sensor óptico en la pinza se usa para confirmar la presencia de comida
Forrajeo de Latas
Diseño de experimentos con el robot Khepera
Tareas colectivas
34
Esquema simple de persecución
• Tres robot Khepera están equipados con antenas y sombreros de colores
• Un robot Khepera con cámara tiene que perseguirlos
• Se usan distintas configuraciones para el simulador y la implementación real
Siguiendo a dos líderes
Diseño de experimentos con el robot Khepera
Visión activa
35
Configuración con dos cámaras
Percepción en robots heterogéneos
(a) cámara en la arena (b) vista aérea.
Percepción de los Robots
36
Itchy & Scratchy
Diseño de experimentos con el robot Khepera
Algoritmos Genéticos
Algoritmo Genético
Inicializar población(controladores del robot)
Actuar en el entorno
Reproducción selectiva y mutaciones
Nueva generación
Evaluación: retorno de calidad
Fenotipo
Múltiples puntos
Genotipo
[XX XY]
. . .[XY XX]
N individuos
37
Transferencia al robot Khepera
Generación 1
Generación 20
Notas Finales
El robot Pioneer con un SICK LaserRangefinder
39
Control sobre la red (simple.exe)
Referencias y bibliografía
• Introduction to AI Robotics. Robin Murphy. The MIT Press. 2001• Behavior-Based Robotics. Arkin. The MIT Press. 2000• Behavior-Based Primitives for Articulated Control. Maja J. Mataric, Matthew Williamson,
John Demiris, Aswath Mohan. • Behavior-Based Systems. Pattie Maes. SAB.199?• Behavior-Based Control: Main properties and implications, Maja Mataric. En Proceedings of
the IEEE International Conference in Robotics and Automation, Workshop on Architectures for Intelligent Control Systems. Niza, Francia. Mayo 1992
• A Behavior-Based Arm Controller. Jonathan H. Connell. A.I. Memo 1025. junio 1988• Vehicles: Experiments in Synthetic Psychology, Valentino Braitenberg. MIT Press, 1984• Precambric Intelligence”, Rodney H. Brooks, The MIT Presss, 1999• Una propuesta para el diseño de agentes estrictamente reactivos. De la Mora Bazáñez, C.
R. Tesis de Maestría. Maestría en Inteligencia Artificial. UV. 1997• Situated Cognition. Clancey, • Agentes computacionales cognitivos reactivos en la modelación de la conducta visuomotora
de una rana". García Vega, V. A., Tesis de Maestría. Maestría en ciencias de la computaciónUACP y P del CCH.1993
• Estudio sobre el comportamiento grupal de robots reactivos modelando conductas de recolección y anidamiento. Angélica Muñoz Meléndez. Tesis de Maestría. Maestría en Inteligencia Artificial. UV. 1997
• Mecanismos de selección de acción, Alejandro Guerra Hernández. Tesis de Maestría. Maestría en Inteligencia Artificial. UV. 1997
• A Robot Model of Action Selection in the Vertebrate Brain, Fernando Montes González, PhD Thesis. University of Sheffield. 1991