Conexión por serial: Com1 ó Com2

Anuncio
Sistema de Visión
Visión es la ventana al mundo de muchos organismos. Su función principal es
reconocer y localizar objetos en el ambiente mediante el procesamiento de las
imágenes. La visión computacional es el estudio de estos procesos, para entenderlos y
construir máquinas con capacidades similares.
La visión para un sistema puede definirse como:
“Visión es un proceso que produce a partir de las imágenes del mundo
exterior, es una descripción que es útil para el observador y que no tiene
información irrelevante”
Durante el partido de fútbol las decisiones de qué caminos y decisiones tomarán los
robots depende de la percepción completa del juego.
Para el proyecto pensamos implementar un sistema de visión que sea lo más robusto
posible. Un sistema sólido será la base para definir la correcta ubicación del equipo; así
como de lo que está sucediendo en el juego.
La parte del software de la visión debe utilizar algoritmos eficientes. Un algoritmo
eficiente se define en este caso como aquel que permita ubicar rápida y
confiablemente a los robots; reduciendo el intervalo del tiempo entre que cada imagen
es capturada y procesada. Aquí también cabe resaltar que la velocidad del lenguaje en
que se programe el algoritmo no debe ir en contra de la meta de tiempo de
procesamiento.
Para que el sistema de visión cumpla correctamente con su meta existen los siguientes
requerimientos:
a)
Se debe montar una cámara de video a máximo 2.5 metros de altura que
permita visualizar la cancha.
b)
Cada equipo tiene un color asignado. Además de que cada jugador tiene a su
vez un color asignado que le distingue de sus compañeros. Estos colores
deberán poder ser visibles por la cámara
El color superior referencia el equipo. El color inferior identifica al jugador.
c)
Las etiquetas que se utilicen para colocar los colores deberán buscar reducir
los cambios de intensidad en los colores; incluso en situaciones con poca
iluminación.
El proceso de visión lo hemos dividido en cuatro fases básicas:
a) Obtener la imagen de la cancha con los robots cada determinado tiempo.
b) Barrer la imagen buscando los colores que identifiquen a los robots y pelota con
que jugamos.
c) Cada píxel encontrado que se ajuste a los colores que pertenecen a cualquiera
de los agentes del juego se somete a un análisis algorítmico. Así se busca
determinar si esos píxeles pertenecen en realidad a algún agente.
d) Se determinan la información de cada agente; su número de ID, su posición en
la cancha y orientación.
Sin embargo, antes que de continuar hablando de algoritmos y programación, es
necesario que entendamos como se obtienen las imágenes desde la cámara, como
llegan al programa y como es que haremos uso de estas imágenes:
Existe un sistema de visión implementando en Visual C++ para Windows. Dentro de
este paquete se contemplan las funciones de reconocimiento de colores, calibración de
la cámara, comunicación con el puerto serial (Com1 ó Com2), manejo de los datos
recibidos por la cámara y desplegado en pantalla de lo capturado.
El sistema está enfocado al uso de VxDs. Los VxD´s (Virtual Device Driver) son
específicos de Windows 95, 98 y ME. Estos drivers son utilizados por el sistema para
interactuar con dispositivos de hardware o para crear hardware "virtual" a partir de
software. Además, tienen acceso directo al kernel del sistema operativo. Hoy día los
Vxds son obsoletos, ya que ningún Windows reciente los soporta; NT4, 2000 y XP no
usan Vxds.
Así mismo, el código depende de un DLL llamado MVLib.dll. MVLib.dll tiene las
funciones necesarias para poder comunicar el software con la cámara y el sistema de
visión. Dentro del DLL se definen acciones de digitalización de la señal, buffereo de los
datos recibidos y desplegado de gráficos en pantalla. Esta DLL es provista por el
fabricante.
El programa trabaja a partir de configuraciones que son definidas por el usuario
dependiendo de las situaciones que imperen en el juego. En cada configuración se
puede definir el tamaño de los robots, el tamaño de la pantalla, la intensidad y los
colores que tiene asociado cada equipo durante el juego.
Sistema de Control
Analizando el simulador que se nos proporcionó, encontramos que el sistema de
control se compone de los siguientes elementos:
1. Medio Ambiente
2. Robots
El proceso de control se basa en la interpretación de los estados posibles del medio
ambiente, y en base a esto se toman las decisiones de cómo controlar los movimientos
y jugadas de los robots.
Para lograr que los robots respondan adecuadamente a estos estímulos del medio
ambiente, el “objeto robot” debe tener los siguientes atributos:
1. Posición en coordenadas polares
2. Velocidad en ambas ruedas
Asi mismo el medio ambiente cuenta con atributos necesarios para que los robots
interpreten los datos y realicen las acciones necesarias.
Los atributos del medio ambiente son:
1. Dimensiones de cancha
2. Posición de la bola
3. Estado del juego
4. Robots (ambos equipos)
5. Posesión de la bola
Los estados que se identifican en el medio ambiente son los siguientes:
1. Jugando (por omisión)
2. Bola libre
3. Inicio de juego
4. Tiro Penal
5. Tiro libre
6. Saque de meta
El sistema de control está enfocado a una arquitectura reactiva, donde los robots Yujin
actúan acorde a los estímulos recibidos desde el medio ambiente.
Entre los principales modos de actuar que deben tener los robots identificamos los
siguientes:
1. Ataque
2. Defensa
3. Tiro
4. Portero
Estas reacciones se ven respaldadas por una serie de instrucciones de bajo nivel que
son encargadas del movimiento del robot. Entre las que se encuentran:
1. Avance
2. Giro
3. Velocidad
Referencias Bibliográficas
SUCAR, Luis E. GOMEZ, Giovanni
“Procesamiento de Imágenes y Visión Computacional”
Departamento de Computación. ITESM Campus Cuernavaca
RUSSELL Stuart, NORVIG Peter
“Inteligencia Artificial, un enfoque moderno”
Prentice Hall, 1996
Descargar