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