7
El sistema desarrollado fue diseñado en tres capas nombradas respectivamente: visión, estrategia y control. En este artículo nos centraremos en la visión y control, porque estas capas tienen características más técnicas para explorar. Las principales características de la capa de visión son: el reconocimiento de objetos basado en el color y el uso del algoritmo CAMSHIFT para seguir objetos. Por otro lado, las características de la capa de control son el uso de un protocolo ZigBee basado en un dispositivo de comunicación para enviar comandos a los robots y el uso de un controlador no lineal para movilizarlos. Nuestro objetivo en el desarrollo de este sistema era fusionar algunos conceptos en Ciencias de la Computación e Ingeniería Electrónica que por lo general se enseñan por separado, pero que estan inherentemente vinculados . Así, la idea de montar un sistema autónomo para la liga IEEE Very Small Size Soccer era una manera de hacer esto. El sistema consta de tres capas: • Visión: esta capa recibe la entrada del sistema, un cuadro de la imagen, y su salida es una matriz que contiene la posición actual, la orientación y la velocidad de nuestro equipo de robots, además de la posición y la velocidad de los robots oponentes y la pelota; • Estrategia: a partir de la información visual, esta capa proporciona una salida que es una matriz que contiene la posición deseada y orientación de cada robot de nuestro equipo; • Control: esta capa recibe la posicion deseada para cada compañero de equipo, calcula la velocidad adecuada para los motores y envía estos comandos a los robots. Estas velocidades durarán durante el ciclo de control del sistema. La Figura 1 muestra el modelo del sistema, incluyendo el flujo de datos. Es importante mencionar el alcance de cada capa para aclarar qué funcionalidades se realizan por software y cuáles son realizadas por hardware. Básicamente visión y estrategia son capas de software, pero el control tiene tanto de software y funcionalidades de hardware, ya que incluye la definición de software de las órdenes motoras para movilizar los robots y el uso de hardware para el envío de la información por el dispositivo de comunicación basado en el protocolo ZigBee y el control de los motores a través de un microcontrolador.

Paper Brasil

Embed Size (px)

DESCRIPTION

gasgagasgasgags

Citation preview

Page 1: Paper Brasil

El sistema desarrollado fue diseñado en tres capas nombradas respectivamente: visión, estrategia y control. En este artículo nos centraremos en la visión y control, porque estas capas tienen características más técnicas para explorar. Las principales características de la capa de visión son: el reconocimiento de objetos basado en el color y el uso del algoritmo CAMSHIFT para seguir objetos. Por otro lado, las características de la capa de control son el uso de un protocolo ZigBee basado en un dispositivo de comunicación para enviar comandos a los robots y el uso de un controlador no lineal para movilizarlos.

Nuestro objetivo en el desarrollo de este sistema era fusionar algunos conceptos en Ciencias de la Computación e Ingeniería Electrónica que por lo general se enseñan por separado, pero que estan inherentemente vinculados . Así, la idea de montar un sistema autónomo para la liga IEEE Very Small Size Soccer era una manera de hacer esto. El sistema consta de tres capas:

• Visión: esta capa recibe la entrada del sistema, un cuadro de la imagen, y su salida es una matriz que contiene la posición actual, la orientación y la velocidad de nuestro equipo de robots, además de la posición y la velocidad de los robots oponentes y la pelota;

• Estrategia: a partir de la información visual, esta capa proporciona una salida que es una matriz que contiene la posición deseada y orientación de cada robot de nuestro equipo;

• Control: esta capa recibe la posicion deseada para cada compañero de equipo, calcula la velocidad adecuada para los motores y envía estos comandos a los robots. Estas velocidades durarán durante el ciclo de control del sistema.

La Figura 1 muestra el modelo del sistema, incluyendo el flujo de datos. Es importante mencionar el alcance de cada capa para aclarar qué funcionalidades se realizan por software y cuáles son realizadas por hardware. Básicamente visión y estrategia son capas de software, pero el control tiene tanto de software y funcionalidades de hardware, ya que incluye la definición de software de las órdenes motoras para movilizar los robots y el uso de hardware para el envío de la información por el dispositivo de comunicación basado en el protocolo ZigBee y el control de los motores a través de un microcontrolador.

II. CAPA DE CONTROL

La capa de control se compone de cuatro partes:

• La ley de control;

• Dispositivo de comunicación;

• La programación del microcontrolador;

• Sistema de hardware;

A) Ley de Control

Nuestra metodología era comenzar a usar un controlador sencillo de conseguir, primero, una visión general del comportamiento del sistema y, a continuación, mejorarlo con un controlador robusto. Inicialmente fue diseñado como un controlador de posición proporcional que

Page 2: Paper Brasil

proporcionó buenos resultados pero no alcanzó la meta completa, que iba a proporcionar un controlador estable para la posición y la orientación. Este controlador estable debe garantizar que el robot logra la posición deseada sin causar sobrecarga a la capa de la estrategia, lo que significa que la capa de estrategia es responsable sólo de la definición de la posicion de cada robot mientras que la capa de control es responsable de la ejecución de las órdenes motoras con el fin de lograr la configuración deseada [1].

Actualmente, estamos utilizando un controlador no lineal que tiene como entradas de la posición actual y la orientación de cada robot. Entonces se utilizan el error de orientación y el error de posición por la ley de control para generar los comandos para los motores. Es importante mencionar que estas ecuaciones son procesadas en la PC y después los comandos de motor se envían al microcontrolador que controla el robot.

B) Dispositivo de Comunicación

Se utiliza un dispositivo de comunicación basado en el protocolo ZigBee para enviar las órdenes motoras a los robots. Este dispositivo especifico fue elegido porque tiene una interfaz fácil de configurar, es fácil de usar y un precio accesible. Este dispositivo tiene también diferentes tarjetas de interfaz que se pueden comprar para comunicarse con el chip del módulo ZigBee, por ejemplo, hay RS232 y tarjetas de interfaz USB. Así que es fácil de usar para hacer la comunicación entre la parte del sistema que se ejecuta en la PC y los robots. Por lo tanto sólo tenemos que conectar una tarjeta de comunicación serial o una tarjeta de interfaz ZigBee USB al PC y confirmamos la comunicación de RF con los robots.

Aunque la interfaz de la placa elegida es muy sencilla de utilizar con la PC, no se puede utilizar en la parte superior de los robots porque excede los límites de tamaño del robot. Así que para tener el modulo de comunicacion RF a bordo de cada robot del equipo, fue necesario añadir el chip ZigBee en la tarjeta o tablero de control en los robots, además de respetar el máximo tamaño de 7,5 x 7,5 cm.

D. Physical Structure and Hardware System

The team is formed by differential robots [1] made of

acrylic resin donated by the team from UNESP-Bauru.

Basically the structure is composed by three parts organized

in layers: a box that includes two small DC engines; another

section that contains four 1.2 V and one 9 V rechargeable

batteries and finally the control board which is placed on the

top of the structure. The system described previously can be

observed in Figure 2.

Page 3: Paper Brasil

The control board was designed including the digital

circuit for processing and generating the control signals for

the robot motors and also the RF communication system.

That is based on a MSP430 microcontroller and a ZigBee

module chip. The board also includes the power circuit for

driving the engines. In order to avoid interference caused by

noise from the motors, optical couplers were used.

The power supply for driving the motors is provided by

the four 1.2V batteries, while the 9V battery supplies the

digital circuit. Figure 3 shows the designed control board

and the both circuits separated by the optical couplers.

C) Programacion del Microcontrolador

El microcontrolador MSP430 fue elegido porque es flexible y tiene un conjunto de características que hacen que sea fácil para migrar a una categoría más compleja como IEEE Very Small Size.

Algunas de las características favorables de este microcontrolador son que puede ser programado en C o C ++ y contiene un puerto JTAG que puede ser utilizado para cargar el programa en la memoria del microcontrolador.

Además, después de eso, el programa cargado se puede depurar utilizando ese mismo puerto. La interfaz JTAG para programación y depuración se lleva a cabo a través del puerto paralelo de la PC.

D) Estructura Física y Sistema de Hardware

El equipo está conformado por robots diferenciales [1] hechos de resina acrílica. Básicamente la estructura se compone de tres partes organizadas en capas: una caja que incluye dos motores DC pequeños; otra sección que contiene cuatro baterías de 1,2 V y una de 9 V recargable y, finalmente, el tablero de control, que se coloca en la parte superior de la estructura. El sistema descrito anteriormente puede ser observado en la Figura 2.

El tablero de control se diseñó incluyendo el circuito digital para el procesamiento y la generación de las señales de control para los motores del robot y también el sistema de comunicación RF, que se basan en un microcontrolador MSP430 y un chip de módulo ZigBee. La tarjeta también incluye el circuito de alimentación de control de los motores. Con el fin de evitar la interferencia causada por ruido de los motores, se utilizaron acopladores ópticos (opto acopladores).

Page 4: Paper Brasil

La fuente de alimentación para el accionamiento de los motores es proporcionado por las cuatro baterías de 1.2V , mientras que la batería de 9V suministra la energía para el circuito digital. La Figura 3 muestra la placa de control diseñada y los circuitos de ambos motores separados por los acopladores ópticos.

A. Color Segmentation

The first thing that must be done by the vision layer is

to find the robots from both teams on the field. That is

accomplished by a simp le color segmentation algorithm that

includes the following steps, which are repeated for each

color used on top of the robots:

• The histogram of the color is calculated during a calibration

stage, using markers with the color in different

points on the field.

• The histogram backprojection onto the image is done.

In other words, the color range represented by the

histogram is used for marking the pixels in that range.

• Morphological operations and thresholding are done in

the backprojection image.

• A labeling algorithm is used to find blobs corresponding

to the segmented color.

The above steps generate an image containing all the blobs

related to the different colors, but having distinct labels. The

bigger blobs are considered as belonging to the robots. After

knowing the colors representing our team, the two colors

detected on our robots’ platforms are considered to estimate

their position and orientation. For the robots in the opponent

team we use only one color.

To help implementing that algorithm we used the computer

vision library OpenCV (Open Computer Vision Library)

which is a free library originally developed by Intel.

Page 5: Paper Brasil

III. CAPA DE VISIÓN

La capa de visión consiste en un algoritmo para la segmentación y seguimiento de color

[2], [3]. Antes de explicar el algoritmo vamos a enumerar las especificaciones de la cámara que fue elegida para esta aplicación:

• Frecuencia de imagen máxima: 60 fps;

• Resolución de imagen máxima en 60 fps: 640x480;

• Interfaz de PC: firewire IEEE1934a.

A) Color de Segmentación

Lo primero que se debe hacer en la capa de visión es encontrar los robots de ambos equipos en el campo. Esto es realizada por un simple algoritmo de segmentación de color que incluye los siguientes pasos, que se repiten para cada color que se utiliza en la parte superior de los robots:

• El histograma del color se calcula durante una etapa de calibración, utilizando marcadores con el color en diferente

señala en el campo.

• El histograma retroproyección sobre la imagen se hace.

En otras palabras, la gama de colores representada por la

histograma se utiliza para el marcado de los píxeles en ese rango.

• Las operaciones morfológicas y de umbral se realizan en

la imagen retroproyección.

• Un algoritmo de etiquetado se utiliza para encontrar manchas correspondientes

al color segmentada.

Los pasos anteriores generan una imagen que contiene todas las manchas

relacionada con los diferentes colores, pero tener etiquetas distintas. Los

gotas más grandes se consideran como pertenecientes a los robots. Después

conocer los colores que representan a nuestro equipo, los dos colores

detectado en las plataformas de nuestros robots "son considerados para estimar

su posición y orientación. Para los robots en el oponente

equipo que utilizamos un solo color.

Page 6: Paper Brasil

Para ayudar a la aplicación de dicho algoritmo se utilizó el equipo

biblioteca visión OpenCV (Open Computer Vision Library)

que es una biblioteca libre originalmente desarrollado por Intel.