33
Programaci´ on del robot humanoide Nao para la RoboCup Jos´ e Mar´ ıa Ca˜ nas Plaza http://gsyc.es/jmplaza Universitat Rovira i Virgili, 13 marzo 2009

Programación del robot humanoide Nao para la RoboCup

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 19

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 de la porterıa 25

c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup

Percepcion de la porterıa 26

c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup

Percepcion de la porterıa 27

c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup

Percepcion de la porterıa 28

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

Percepcion del campo 30

c©2009 GSyC Programacion del robot humanoide Nao para la RoboCup

Percepcion del campo 31

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