Upload
lamxuyen
View
225
Download
2
Embed Size (px)
Citation preview
Programacion del robot humanoide Nao parala RoboCup
Jose Marıa Canas Plazahttp://gsyc.es/jmplaza
Universitat Rovira i Virgili, 13 marzo 2009
Contenidos 1
Contenidos
Introduccion, RoboCup
Robots liga estandard: Aibo y Nao
Software de un jugador
Comportamiento seguir pelota
Percepcion de porterıa
Lıneas del campo
Conclusiones
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Introduccion 2
Introduccion
Robotica ficcion vs Robotica real
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Introduccion 3
¿Que es un robot?
Sistema informatico con:
Sensores
Actuadores
Computador
Hay que programarlo para que consiga sus
objetivos y sea sensible a la situacion
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Introduccion 4
Software para robots
Requisitos especıficos
• Vivacidad, agilidad
• Multitarea
• Distribuido, comunicaciones
• Interfaz grafica, depuracion
• Expandible
Simuladores
Lenguajes: ensamblador, C, C++
Sistemas operativos: dedicados o ge-
neralistas
Heterogeneidad
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Introduccion 5
Programacion de robots
Hardware del robot
drivers
Aplicación
Hardware del robot
Aplicación
Plataformadesarrollo
Sistema Operativo
Robots pequenos: procesadores empotrados.
Robots medianos-grandes: el PC como computador principal
Middleware para simplificar la creacion de aplicaciones roboticas
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Introduccion 6
¿Que es la RoboCup?
Competicion cientıfica internacional: robots que jueguen al futbol
Banco de pruebas para madurar tecnologıa robotica
Escenario dinamico, competitivo, cooperativo, inteligencia artificial
www.robocup.org
• Simulada
• Pequena
• Mediana
• Humanoides
• Estandard
Otras categorıas: rescate, hogar, junior
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Introduccion 7
Liga simulada de futbol
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Introduccion 8
Liga pequena de futbol
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Introduccion 9
Liga mediana de futbol
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Introduccion 10
Liga de plataforma estandard de futbol
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Robots de la liga estandard: Aibo y Nao 11
Robots de la liga estandard: Aibo y Nao
Todas las diferencias de comportamiento son de software
La descripcion de los equipos es publica
Es la que mas ha progresado
De cuadrupedos a humanoides
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Robots de la liga estandard: Aibo y Nao 12
Robot Aibo
4 patas
Cuello mecanico
1 camara
IR en el pecho
Sensores contacto
en patas
MIPS 450Mhz
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Robots de la liga estandard: Aibo y Nao 13
Programacion
Objetos monohilo
Se comunican vıa mensajes
Objetos basicos
• OVirtualRobotComm:
Effector, Sensor,
OFbkImageSensor
• OVirtualAudioComm:
Mic, Speaker
• ANT Aibo Network Tool
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Robots de la liga estandard: Aibo y Nao 14
Humanoide Nao
2 patas
Cuello mecanico
1 o 2 camaras
US en el pecho
Inclinometros
Sensores fuerza en pie
AMD Geode 500Mhz
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Robots de la liga estandard: Aibo y Nao 15
Programacion
C++ y Python
Linux, NaoQi
Objetos distribuidos, invocacion de metodos remotos
Modulos, brokers
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Robots de la liga estandard: Aibo y Nao 16
Simulador
Madurar algoritmos
Comodidad trabajar sin robot
Las caıdas no duelen
Mundo, sensores y actuadores
OpenGl para imagenes
Motor fısico: ODE (Open Dy-
namics Engine)
Webots, MS Robotics Studio,
Gazebo
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Software para un jugador 17
Software para un jugador
Capacidades perceptivas
• Pelota
• Porterıa
• Otros jugadores
• Autolocalizacion, lıneas campo
Comportamientos
• Locomocion
• Chutar
• Arquitectura
Coordinacion entre jugadores, p.e. roles, percepcion distribuida
Herramientas
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Software para un jugador 18
Herramientas
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Software para un jugador 20
Percepcion
El sensor principal es la vision
Restricciones para simplificar
• Balizas, pelota, porterıas
de colores
• Luz controlada
Filtros de color
Filtros de bordes
Lıneas
Segmentacion
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Software para un jugador 21
Cada vez mas realista
Limitacion CPU
Oclusiones
La camara se bambolea
OpenCV
Geometrıa proyectiva planar
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Software para un jugador 22
Comportamientos
El movimiento es complejo, coordinacion actuadores
Necesitan informacion perceptiva
Seguir pelota
Chutar porterıa
Centrar
Hacer lo correcto en el momento adecuado. ¿Que hacer? ¿Cuando?
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Comportamiento Sigue-Pelota 23
Comportamiento Sigue-Pelota
Identificar pelota en imagen
Filtro color HSV
Control reactivo PID cuello
Control reactivo cuerpo: giro y traslacion
Busqueda
Patada
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Percepcion de la porterıa 24
Percepcion de la porterıa
Deteccion en la imagen
• Filtro de color HSV
• Transformada Hough
• Esquinas
Geometrıa tridimensional
• Interseccion toros
• Optimizacion distancias
Autolocalizacion
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Percepcion del campo 29
Percepcion del campo
De las lıneas del campo
Puntos significativos: L y T
Autolocalizacion
Deteccion en la imagen
• Filtro de color y bordes
• Transformada Hough
Geometrıa proyectiva planar
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup
Conclusiones 32
Conclusiones
RoboCup fomenta avance en tecnologıa robotica
El software da la inteligencia a los robots moviles.
Plataforma estandard: de cuadrupedos a humanoides
La vision es el sensor principal
Con procesamiento sencillo se pueden generar comportamientos com-
plejos
c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup