Title: Laboratorio de Rob
1INSTITUTO TECNOLÓGICO AUTÓNOMO DE MÉXICO
- Laboratorio de Robótica
- Arquitectura SSL
- Ernesto Torres Vidal
- Jesús Rodríguez Ordoñez
- Profr Dr. Alfredo Weitzenfeld Ridel
2Agenda
- Arquitectura de un equipo SSL
- Sistema de Visión (EKVision)
- Sistema de Inteligencia Artificial (EKIntel)
- Referee
- Robot
3Arquitectura de un equipo SSL
Señal de Video 1
Sistema de Visión
Señal de Video 2
Posiciones de los Robots y Pelota
Sistema de Inteligencia Artificial
Módulo de Comunicación
Comandos a los Robots
Señales del Árbitro
Robot
Control del Árbitro
Módulo de Comunicación
Mecánica
Electrónica
4Arquitectura SSL
- Sistema de visión
- (EKVision)
5Dimensiones de la Cancha
Las cámaras se colocan 4m por encima del campo
6Hardware y conexión de cámaras
- 2 cámaras Guppy (G-033C) marca AVT (Allied Vision
Technology) - Elementos de conexión
- 2 cables FireWire 4m
- 2 repetidores FireWire
- 2 transformadores de 9v
- 1 tarjeta ExpressCard con 2 puertos FireWire
- Brazos para sujetar las cámaras
7Hardware y conexión de cámaras
8Instalación del software
- Compuesto por dos programas
- Software provisto por AVT
- Sistema EKVision
9Software de AVT
- Visualizar las imágenes de las cámaras
- Realizar la configuración del formato de la
imagen - Ajustar parámetros como
- obturador de la cámara
- cuadros por segundo
- ganancia
- brillo de la imagen
10Ajuste de las cámaras
- Ejecutar el software de AVT
- Seleccionar las cámaras
11Ajuste de las cámaras
- Orientar y ajustar el foco de la imagen
- Ver completamente los límites del campo y una
sección extra a partir de la media cancha - Ver la imagen lo más derecha posible.
- El ajuste del foco se realiza manualmente y debe
permitir que los bordes de los parches sean
distinguibles y no se vean borrosos.
12Configuración de la imagen Format
- Configurar la resolución de la imagen576x444
(Width, Height) - Máximo 60.15 fps
- Los puntos left y top son útiles para centrar la
imagen
13Configuración de la imagen Ctrl 1
- Shutter modifica los cuadros/s
- Gain mejorar el tono de los colores cuando hay
poca iluminación
14Sistema EKVision
- Basado en el ejemplo FireDemoProject que se
encuentra dentro del FirePackage de AVT. - Programado utilizando la interfase gráfica de MFC
de Microsoft Visual C 6.0 - Permite
- obtener el buffer de las imágenes,
- modificar los settings,
- realizar zoom
- tomar imágenes .bmp
15EKVision Menú Principal
- ActiveCardpermite seleccionar una o dos cámaras.
- Controles principales para el manejo de todo el
sistema - Cámara
- Procesamiento
- Calibración
16Sistema de coordenadas del sistema de visión
17Controles
- Cámara Permite seleccionar alguna de las dos
cámaras sobre la que se quiere trabajar en los
procesos de calibración - Procesamiento permite cambiar entre la etapa
inicial de calibración y el proceso de búsqueda
de objetos - Calibración permite seleccionar entre los dos
tipos de calibración con los que cuenta el
sistema geométrica y color
18Calibración Geométrica
- Obtener un sistema de coordenadas correspondiente
a las medidas reales en el campo. - Permite resolver los problemas de distorsión
ocasionados por el lente gran angular y la
intersección entre las cámaras en la región de la
media cancha.
19Pasos para la calibración geométrica
- 1. Seleccionar la cámara que se desea calibrar y
las opciones de CALIBRACION y GEOMETRICA. - 2. Se selecciona el tabulador titulado
Geométrica.
20Pasos para la calibración geométrica
- 3. Dos opciones
- - Iniciar un nuevo proceso de calibración
- - Abrir los parámetros de la cámara generados
por una calibración anterior.
21Iniciar un nuevo proceso de calibración
- 1. Seleccionar la opción Iniciar dentro del grupo
Start Calib Process. - 2. Se habilitan los puntos de referencia que se
deben capturar para que la calibración funcione. - Punto Coordenada (X,Y) mm Cámara que lo utiliza
- P0 4700,6600 Cámara 2
-
- P8 4700,3300 Cámaras 1 y 2
-
- P22 0,0 Cámara 1
22Nuevo proceso de calibración (Cont.)
- 3. Seleccionar el botón y el punto en la imagen
en donde se encuentra ese punto. Si la selección
es correcta aparece una cruz naranja y se añade a
la lista
23Nuevo proceso de calibración (Cont.)
- 4. Al terminar los puntos de una cámara oprimir
el botón Detener. Se puede reiniciar el proceso
con el botón limpiar. Se guarda un archivo dentro
de la carpeta C\Calibraciones en el que
automáticamente se escribe en el nombre del
archivo la fecha actual
24Nuevo proceso de calibración (Cont.)
- 5. Seleccionar la opción Generar para obtener un
nuevo archivo con el que a partir del archivo de
puntos se generan los parámetros de la cámara por
medio del algoritmo Tsai. - 6. Finalmente se carga este archivo en el grupo
Parámetros para Conversión.
25Pasos para la calibración por color
- 1. Seleccionar la cámara que se desea calibrar y
las opciones de CALIBRACION y COLOR en el menú
principal. - 2. Se selecciona el tabulador Calibración
26Calibración por color (Cont.)
- 3. El control está compuesto por una lista de los
colores que se quieren calibrar. - Existen dos métodos para calibrar por color.
Para cambiar entre ambos se utilizan los
siguientes controles
27Cubo RGB
28Calibración por color RGB
- 4. Para calibrar se selecciona el color y los
píxeles que se quieren capturar directamente en
la imagen con el botón izquierdo del ratón. - Si se desea eliminar una selección se oprime el
botón derecho del ratón. - En caso de que un grupo de píxeles formen una
región se dibujará un círculo punteado alrededor
de la región. - Cada color calcula un promedio del valor total de
los píxeles seleccionados.
29Espacio HSV
30Calibración por color HSV
- Este espacio tiene tres dimensiones, acotado
entre un rango mínimo y uno máximo. - Los colores en la imagen se pueden separar
fácilmente por medio de estos rangos.
31Calibración por color HSV
- Finalizada la calibración de todos los colores en
HSI es necesario realizar una conversión del
equivalente de estos rangos al espacio RGB
seccionando la opción Conjunta.
32Manejo de archivos de calibración de color
- Podemos guardar o abrir el resultado de una
calibración o limpiar completamente una
calibración utilizando los siguientes controles
33Búsqueda de Objetos
34Búsqueda de Objetos Validación de regiones
- Se define el color con el que juegan los robots
en Equipo EK. - Una vez realizada la segmentación de la imagen se
utiliza el algoritmo RLE para formar regiones que
representen a los parches y a la pelota.
35Búsqueda de Objetos Parámetros de Búsqueda
- Definir el radio de los robots y el radio de los
parches los cuales varían dependiendo de la
altura de las cámaras
36Información de los robots y la pelota
- El resultado de la búsqueda se encuentra en el
tabulador Búsqueda. Se obtiene la coordenada
real, la velocidad de movimiento (Vx y Vy), y el
resultado del filtro de Kalman corrección y
predicción.
37Información de los robots y la pelota (Cont.)
- La información de los robots se encuentra en el
tabulador RobotsEK para nuestro equipo y
RobotsVS para los contrarios. - Los datos que se obtienen son la coordenada, la
orientación del robot y la velocidad de
movimiento.
38Comunicación EKVision y EKIntel
- Se realiza por medio de una comunicación directa
en red por medio de un cable cruzado. - La configuración de las computadoras es la
siguiente
Computadora Dir IP Máscara de Red Socket
EKVision 192.168.0.2 255.255.255.0 5001
EKIntelSSL 192.168.0.1 255.255.255.0 5001
39Arquitectura SSL
- Sistema de Inteligencia Artificial
- (EKIntel)
40Hardware y conexión con periféricos
- Los comandos que genera el sistema de
inteligencia se envían a los robots de forma
inalámbrica con un transceiver conectado a la
computadora mediante un cable paralelo y el cuál
debe estar alimentado por medio de un
transformador de 9volts
41Hardware y conexión con periféricos
- Se realiza otra conexión con el Referee box por
medio de una conexión LAN por ethernet. Se
utiliza el siguiente convertidor USB-Ethernet
42Hardware y conexión con periféricos
- También se utiliza un joystick para probar el
control de los robots Logitech Freedom 2.4
Cordless Joystick que se conecta por un puerto
USB
43Sistema EKIntel
- El menú principal permite seleccionar que
periféricos se desean utilizar. - Si alguno de los dispositivos no esta bien
instalado el sistema no funcionará apropiadamente.
44Sistema EKIntel
- Información principal del funcionamiento del
sistema - Otro recuadro informa el estatus del josytick.
45Sistema EKIntel
- Los controles generales sirven para elegir el
color de los robots y el sentido en el que
juegan. También incluyen el control de
simulación. - La configuración del sentido y color se leen y
guardan al iniciar y cerrar el sistema en la ruta
C\Robotica\Controles en el archivo
Controles.txt
46EKIntel Sistema de referencia
47EKIntel Robots EK y contrarios
- Dos controles para controlar a diez robots.
- El sistema puede controlar hasta 10 robots
jugando 5 contra 5.
48(No Transcript)
49- Cada robot contiene la siguiente información
- La información correspondiente a cada robot se
guarda y se carga en los archivos de texto
RobotsEK.txt y RobotsVS.txt ubicados en
C\Robotica\Robots
50Simulador y control
51Simulador Parámetros
- La ventana de Simulación permite modificar
cualquiera de los parámetros utilizados dentro
del simulador de los robots - err_dist_sim Rango para decidir si un robot ha
llegado a su posición final. - err_ang_sim Rango para decidir si un robot ha
llegado a su orientación final. - profundidad Rango para decidir si se puede
manipular la pelota con el kicker y el dribbler. - angulo_frontal Ángulo de apertura para definir
si la pelota está en frente del robot
52Simulador Parámetros
- aceleracion_pel Desaceleración de la pelota por
la fricción de la alfombra - tiempo Periodo que define la velocidad de
simulación. - elasticidad Entre 0,1 define el porcentaje de
velocidad que mantiene la pelota después de
chocar con algún robot o portería. - vel_50 Velocidad de simulación cuando la
velocidad de control está al 50 - giro_50 Velocidad de giro cuando la velocidad
de control está al 50
53Simulador Parámetros
- Cada vez que se guarda algún cambio, al cerrar el
programa, se actualiza el archivo Simulador.txt
ubicado en C\Robotica\Simulador. - Es posible cargar archivos con otros nombres
utilizando el botón Cargar Archivo
54Simulador Configuración de Velocidad
- Existen dos formas de ajustar las tres
velocidades utilizadas en el simulador máxima,
de giro y de pateo - Personalizada los valores se ingresan
directamente en el sistema. - Automática permite ajustar las tres velocidades
utilizando el slider de Velocidad control. De
esta forma la relación entre velocidad real (mm
por segundo) y el porcentaje definido por el
slider se realiza por los parámetros de
simulación vel_50 y giro_50. - La velocidad de pateo no se modifica de forma
automática.
55EKIntel Control
- Dos finalidades.
- Configurar los parámetros para controlar a los
robots cuando se controlan de forma autónoma. - Ajustar los parámetros cuando se desea controlar
a los robots por medio del joystick.
56Parámetros de control
- err_dist_drive Margen para decidir si un robot
ha llegado a su posición final. - err_ang_dirve Margen para decidir si un robot ha
llegado a su orientación final. - max_byte Máximo valor que puede tomar un dato
que se va a enviar por el transceiver. - radio_robot Radio del robot (puede variar
dependiendo de la altura de la cámara). - dist_ref Distancia que debe moverse la pelota a
partir de un punto de referencia para cambiar
automáticamente de estado de juego.
57Parámetros de control
- err_radio Parámetro de error para definir un
cambio de estado por cercanía a un punto - dist_fren Distancia de frenado y aceleración
para la velocidad lineal - ang_fren Ángulo de frenado para la velocidad de
giro - Los parámetros de control se guardan y se abren
en el archivo de texto ControlMovimiento.txt en
la ruta C\Robotica\Control.
58Parámetros del joystick
- ang_sum_joy Ángulo que se aumenta al ángulo
actual para definir la orientación final por
medio del joystick - division_ejes Número de niveles de velocidad que
puede tener cada eje del joystick - rango_giro Rango de sensibilidad para anular el
movimiento de giro del joystick - sensibilidad Rango de sensibilidad para anular
el movimiento del joystick - Los parámetros de control se guardan y se abren
en el archivo de texto Joystick.txt en la ruta
C\Robotica\Joystick.
59Pruebas sencillas
- Con el método Ratón se puede dar click a
cualquier punto de la cancha para definir la
coordenada a la que se desea mover el robot sin
modificar su orientación. - Línea Recta se define el vector de movimiento
de forma polar o cartesiana. En caso de estar
activo se escribe la distancia y el ángulo en el
que se quiere mover al robot, así como la
orientación final. - Dispositivos del Robot. El dribbler se controla
por medio del checkbox Dribbler y existen
siete posibles niveles de pateo Kicker.
60Gráficas
- El sistema EKIntel utiliza una representación
gráfica del campo de juego la cual está
programada utilizando OpenGL. - La visualización puede ser en 2D o 3D
61Gráficas Vector de movimiento
- Vector de movimiento se compone de una línea que
indica la trayectoria en línea recta que debe
seguir el robot y un circulo que representa la
orientación que debe tomar
62Gráficas Potencia del kicker
- Potencia del kicker La potencia de pateo se
indica con variaciones entre los colores amarillo
y rojo en donde amarillo es el nivel 1 y rojo es
el nivel 7
63Gráficas
- Uso del dribbler La activación del dirbbler se
dibuja con un círculo morado - Número del Robot
64Gráficas Uso del dribbler
- Árbol de evasión El árbol creado para la evasión
de obstáculos es un conjunto de puntos y líneas
que describen los nodos y las extensiones
65Gráficas Trayectorias
- Trayectorias Se pueden ver los últimos n puntos
por los que ha pasado el robot.
66Gráficas pelota
- Pelota Además de la pelota se dibuja una línea
que representa la predicción que entrega el
sistema de visión por medio del filtro de Kalman.
67Referee
- El tabulador del referee Ref muestra una
ventana que permite generar comandos en caso de
que el Referee-box no esté conectado a la
computadora. - El uso del árbitro es indispensable para la
programación de los comportamientos en la IA.
68Protocolo del Referee
69Diagrama de estadosdel Referee-box
70Inteligencia EK y contrarios
- La inteligencia artificial es el núcleo del
sistema y es el que permite controlar los robots
de manera autónoma. - Todo el árbol utilizado para definir los
comportamientos se guarda en un archivo de texto
en la ruta C\Robotica\Inteligencia. Con el
nombre ArbolEKárbol a usar.txt. - Para que el sistema pueda generar el árbol
requiere de una serie de archivos ubicados en la
carpeta C\Robotica\Inteligencia\JugadasEK.
71Inteligencia EK y contrarios