26
VisualHFSM 4: Programaci´ on de humanoides con aut´ omatas de estado finito usando JdeRobot aster en Sistemas Telem´ aticos e Inform´ aticos Borja Men´ endez Moreno

VisualHFSM4: Programación de humanoides con autómatas de estado finito usando JdeRobot

Embed Size (px)

Citation preview

VisualHFSM 4: Programacion de humanoidescon automatas de estado finito usando

JdeRobot

Master en Sistemas Telematicos e Informaticos

Borja Menendez Moreno

Indice 1

Indice

Introduccion

Objetivos

Infraestructura

Soporte del Nao en JdeRobot

VisualHFSM 4.0

Conclusiones

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Introduccion 2

Introduccion

Robotica

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Introduccion (cont.) 3

Simulacion en robotica

Ofrecen entornos virtuales,

emulan

Permiten probar y depurar

antes de llevar al robot real

Repeticion de experimentos

Las caıdas no duelen

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Introduccion (cont.) 4

Programacion de robots con automatas

Representan comportamientos

Estados y transiciones

Manera sencilla de organizar

comportamientos

Autogeneracion de codigo

SMACH, xaitControl

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Introduccion (cont.) 5

Humanoide Nao en la URJC

Procesador 500 MHz, 256 MB

RAM, ethernet, WiFi...

SDK NAOqi: multiplataforma,

multilenguaje

Pacientes con demencia

RoboCup: jugar al futbol

BICA: componentes iterativos

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Objetivos 6

Objetivos

Herramienta software en JdeRobot para programar comportamientos ba-

sados en automatas de estado finito en el robot Nao, real o simulado.

Sub-objetivos:

Soporte en JdeRobot del robot Nao simulado en Gazebo

Soporte en JdeRobot del robot Nao real

Herramienta de programacion visual con automatas

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Infraestructura 7

Infraestructura

GTK+ y Glade

Simulador Gazebo

JdeRobot y ICE

Robot Nao y NAOqi

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Soporte del Nao en JdeRobot 8

Soporte del Nao en JdeRobot

Conexion de la aplicacion

con robot real y simulado

Mismos interfaces

Probar en simulacion antes

que en real

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Soporte del Nao en JdeRobot (cont.) 9

Soporte del Nao simulado en Gazebo

Modelo en XML

Bibliotecas dinamicas (.so)

API local (Gazebo)

Interfaces ICE (JdeRobot)

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Soporte del Nao en JdeRobot (cont.) 10

Modelo del Nao simulado en Gazebo

Forma humanoide

Multiples articulaciones

Dos camaras

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Soporte del Nao en JdeRobot (cont.) 11

Acceso software a articulaciones controladas en posicion

Un plugin por cada articulacion

Pose3DEncoders: posicion de un

encoder

Pose3DMotors: comandar accio-

nes a un motor

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Soporte del Nao en JdeRobot (cont.) 12

Funcionamiento de los plugins

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Soporte del Nao en JdeRobot (cont.) 13

Robot real en JdeRobot: NaoServer

Cada articulacion: Pose3DEncoders,

Pose3DMotors

Vision: Camera

Caminar: Motors

Secuencias de movimientos combinados:

NaoMotions

• Patada a la pelota

• Levantarse

• Parar la pelota

Todo se ejecuta dentro del robot

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Soporte del Nao en JdeRobot (cont.) 14

NaoServer - Camara

Hardware limitado, camara

no muy buena

Dos modos de captura pro-

bados: YUV422 y RGB

8-10 fps, maximo 11 fps

(ethernet, WiFi y local)

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Soporte del Nao en JdeRobot (cont.) 15

Experimentos - NaoViewer

Teleoperador para Nao real y

Nao simulado

Caminata

Visualizacion de la camara

Secuencias de movimientos

combinados

Cuello en posicion

Todas las articulaciones

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Soporte del Nao en JdeRobot (cont.) 16

Experimentos - FollowBall

Nao real y Nao simulado

Entrada: imagenes en tiempo

real

Filtro de color

Salida: velocidad del cuello

(pan&tilt)

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

VisualHFSM 4.0 17

VisualHFSM 4.0

Desarrollo de comportamientos

graficamente

Disminuye el tiempo de desarrollo

Codigo mas fiable, robusto

Generacion sencilla de automatas

complejos

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

VisualHFSM 4.0 (cont.) 18

Editor grafico

Menu desplegable

Arbol de texto auto-actualizable

Zona de “dibujado” de automata

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

VisualHFSM 4.0 (cont.) 19

Generador automatico de codigo

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

VisualHFSM 4.0 (cont.) 20

Jerarquıa

Mas potente, pero plantilla mas

compleja

Funcionamiento iterativo:

• Evaluacion de transiciones

• Ejecucion codigo de estado

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

VisualHFSM 4.0 (cont.) 21

Estados fantasma

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

VisualHFSM 4.0 (cont.) 22

Experimentos

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Conclusiones y lıneas futuras 23

Conclusiones y lıneas futuras

Programacion del soporte del Nao

• Simulado (Plugins Gazebo)

• Real (NaoServer)

• Validado experimentalmente (NaoViewer y FollowBall)

Desarrollo de VisualHFSM 4.0

• C, GTK+2, GnomeCanvas → C++, GTK+3, GooCanvas

• Corregidos los errores

• Carga dinamica de interfaces

• Valido para cualquier robot, no solo Pioneer 2-DX

• Validado experimentalmente (automata jerarquico)

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Conclusiones y lıneas futuras (cont.) 24

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot

Conclusiones y lıneas futuras (cont.) 25

Lıneas futuras

Interfaces v, w y l para Nao simulado

Uso “masivo” de VisualHFSM

Visualizacion en tiempo de ejecucion del automata

Generacion de automatas para ROS o RoboComp

c©B. Menendez VisualHFSM 4: Programacion de humanoides con automatas de estado finito usando JdeRobot