• Nenhum resultado encontrado

TRABALHO DE CONCLUSÃO DE CURSO SETEMBRO/2008 UNIVERSIDADE FEDERAL DE ITAJUBÁ ENGENHARIA DE CONTROLE E AUTOMAÇÃO

N/A
N/A
Protected

Academic year: 2021

Share "TRABALHO DE CONCLUSÃO DE CURSO SETEMBRO/2008 UNIVERSIDADE FEDERAL DE ITAJUBÁ ENGENHARIA DE CONTROLE E AUTOMAÇÃO"

Copied!
7
0
0

Texto

(1)

P

P

P

P

ROJETO

ROJETO

ROJETO DE UM

ROJETO

DE UM

DE UM

DE UM

T

T

T

T

IME DE

IME DE

IME DE

IME DE

R

R

R

R

OBÔS

OBÔS

OBÔS

OBÔS

A

A

A

A

UTÔNOMOS

UTÔNOMOS

UTÔNOMOS

UTÔNOMOS

Bruno Marques de Faria Paula

Bruno Marques de Faria Paula

Bruno Marques de Faria Paula

Bruno Marques de Faria Paula

Orientador: Prof.

Carlos A. M. Pinheiro

Istituto de Engenharia de Sistemas e Tecnologia da Informação (IESTI)

Resumo - Este trabalho tem como objetivo o desenvolvimento de hardware e softwares visando à implementação de um time de Futebol de Robôs. Como objetivo mais amplo este projeto servirá como base para testes de novas estratégias de sistemas robóticos autônomos. Poderá servir também como plataforma de pesquisas em inteligência artificial, em sistemas multi-agentes, e até mesmo possibilitar a participação da instituição em torneios de futebol de robôs.

Palavras-Chave: Robótica cooperativa, futebol de robôs, processamento de imagem.

I.

I

NTRODUÇÃO

Desde 1997, pesquisadores de diferentes países têm disputado a copa do mundo de futebol de robôs (RoboCup). O princípio de funcionamento do futebol de robôs é simples e está ilustrado na Fig. 01.

• Uma câmera posicionada acima do campo coleta imagens do jogo. Essas imagens são enviadas a um computador, que identifica a posição dos robôs (inclusive dos adversários) e da bola.

• Estas posições são enviadas a um programa de estratégia que decide, sozinho, qual a atitude que cada um dos robôs deve tomar.

• A estratégia é transmitida aos robôs por um sistema de transmissão de radiofreqüência.

• Cada robô tem um sistema receptor que converte as ondas de radio em impulsos elétricos para comandar os motores que impulsionam os mesmos.

Fig. 1 – Estrutura do jogo. I.1 Estrutura dos robôs

A categoria para pequenos robôs da FIRA (Federation of international Robot-soccer Association) estabelece que os jogos são disputados entre dois times, cada qual composto por três robôs com dimensões máximas de 75 mm x 75 mm x 75 mm. A estrutura dos robôs (Fig. 02) deve prever alojamentos para os componentes constituintes dos mesmos.

Como as dimensões são pequenas, é necessário utilizar materiais leves e ao mesmo tempo resistentes para suportar pequenas colisões.

A capa protetora dos robôs precisa ser forte o suficiente para sofrer as colisões com os oponentes, mas ao mesmo tempo deve ser leve e fácil de ser retirada para manutenção.

T

RABALHO DE

C

ONCLUSÃO DE

C

URSO

S

ETEMBRO

/200

8

U

NIVERSIDADE

F

EDERAL DE

I

TAJUBÁ

(2)

Fig. 02 – Estrutura do robô.

Na região superior dos robôs são colocados papéis adesivos com duas cores de sinalização. As cores são utilizadas pelo sistema de visão computacional para identificar a cor padronizada do time e a cor individual de cada robô.

I.2 Sistema de movimentação

O controle da movimentação dos robôs é executado por servo-motores de corrente contínua (CC). O controle de direção dos servo-motores permite a movimentação para frente, para trás e para os lados.

I.3 Sistema de transmissão RF

O principal objetivo do futebol de robôs é efetuar de forma autônoma o controle dos robôs para desenvolver uma estratégia de jogo. Para isso, o computador deve monitorar continuamente a imagem captada do campo, dos jogadores e da bola e, com base na localização de cada um dos elementos, deve enviar os sinais de controle para comandar cada um dos robôs da equipe. É então necessário utilizar um sistema de comunicação por radiofreqüência (RF), por meio do qual o computador envia informações às unidades do time em questão.

O sistema de transmissão RF executa as seguintes funções:

• Recebe os comandos enviados pela porta serial do computador e converte os níveis de tensão apropriados para o transmissor de RF.

• O circuito transmissor RF recebe os dados e envia-os para os robôs por meio de uma antena.

I.4 Circuito eletrônico do robô

O circuito eletrônico do robô apresenta os seguintes componentes:

• Sistema de recepção RF. Este módulo recebe o sinal serial transmitido e envia essas informações para um microcontrolador instalado em cada robô.

• O microcontrolador recebe o sinal serial e manipula os dados recebidos para identificar cada pacote de dados correspondente aos comandos dos robôs.

• O programa de controle envia sinais de controle para um módulo de potência a fim de definir a direção de acionamento e ajustar a velocidade de cada motor.

O módulo de potência consiste basicamente de uma ponte H que permite o comando simultâneo de dois motores por meio de sinais PWM, e promove também a ampliação do sinal enviado pelo microcontrolador para os motores.

Na comunicação dos dados foi usada uma USART (Universal Asynchronous Reciever Transmitter) que permite trabalhar com um protocolo de comunicação serial, fazendo a recepção dos dados em formato serial. Para transmitir todas as informações necessárias para locomover os robôs foram definidos pacotes de oito bits.

Todos os robôs recebem o mesmo dado. Criam-se máscaras para que cada robô compreenda suas instruções

e ignore as que não são destinadas a ele.

II.

D

ESENVOLVIMENTO

II.1 Visão computacional

Uma das partes fundamentais no desenvolvimento de um time de robôs autônomos é a visão computacional. Responsável pelo sensoriamento dos robôs e da bola, a visão computacional deve ser capaz de fornecer as informações necessárias para as tomadas de decisões das reações de cada jogador. Essas informações são, essencialmente, a posição e o sentido dos robôs do

próprio time, do time adversário e da bola.

O sistema deverá possuir uma câmera instalada sobre o

campo. Ela captura a imagem e a envia para um computador que a processa adequadamente por meio de um software específico.

O software apresentado neste trabalho foi desenvolvido

na linguagem C# em ambiente “Visual Studio” e tem

como principal função fazer uma varredura na imagem obtida por uma camera e detectar as cores que definem

cada jogador segundo um padrão. O software foi desenvolvido de acordo com as seguintes premissas:

• O sistema é representado por uma combinação de cores.

• Cada unidade possui duas cores, a primeira representa o time e a segunda é particular a cada unidade.

• A bola é de cor laranja e na prática pode ser usada uma bola de golfe.

(3)

Realizando a aquisição de imagens o software detecta as unidades e a bola, podendo assim definir a posição e o respectivo deslocamento de cada componente da partida.

A utilização do software é ilustrada (Fig. 03) a seguir.

Obs: Para efeito de exemplificação, foi definido que a cor do time será azul e a cor da bola, laranja. As cores vermelho e verde diferenciam as unidades.

Fig. 03 – Software de detecção das unidades.

O software possui as seguintes funcionalidades:

1. Visualizador da imagem capturada pela camera ligada ao sistema e posicionada sobre o campo. O software varre a imagem capturada pela camera pixel-a-pixel em formato jpg e obtem os padrões RGB de cada pixel.

2. Foto da imagem obtida pela camera, que será utilizada para calibração das cores das unidades, e local onde será demonstrado o processamento da imagem realizado pelo software.

3. Local onde o usuário define a cor básica a ser calibrada. Entende-se por calibração, definir a faixa de RGB (Red, Green, Blue) de cada cor a ser detectada. Seus parâmetros são obtidos ao se acionar o mouse sobre a imagem resultante do item anterior.

4. Ao se selecionar a imagem obtida pela camera, o usuário visualiza os padrões RGB da mesma, os quais são utilizados para realizar a calibração do sistema.

5. Local onde se visualiza o posicionamento dos robôs e da bola, resultado do processamento da imagem realizado pelo software.

O código fonte desenvolvido neste trabalho está contido em um arquivo suplementar (em CD) anexado na versão final do TD. A finalidade é possibilitar outros desenvolvimentos ou aprimoramentos utilizando o mesmo.

II.2 Comunicação Serial

Para conseguir efetuar a transferência de dados do computador para os robôs foi desenvolvido um protocolo de comunicação. Este protocolo considera as seguintes informações:

• O número de pacotes necessários para transmitir toda uma mensagem completa.

• A utilização de padrões para identificar cada pacote de dados e permitir aos robôs decodificarem as informações.

• A máxima velocidade de transmissão admissível para os módulos de RF.

• A utilização de padrões de dados para garantir a qualidade da transmissão.

A transmissão da informação por ondas de rádio é vantajosa neste tipo de aplicação devido à propagação em direções diversas. Para garantir o recebimento de mensagens com o menor número de erros possíveis, o pacote deve apresentar alguns bits de controle que permitam a codificação e o endereçamento da mensagem. Os dados utilizados na transmissão de informações do computador para os robôs são constituídos de três bytes,

cuja estrutura está ilustrada na Tabela 01.

Tabela 01 – Protocolo de comunicação.

Inicial Controle PWM’s

11110000 11XXYY11 VVVVZZZZ

Byte 1 Byte 2 Byte 3

O protocolo é bem simples e cada um dos bytes tem a seguinte função:

Byte inicial – Armazena uma seqüência padronizada com

valor binário dado por 11110000 para identificar o início de um pacote de dados. Este dado poderia ser repetido várias vezes para garantir uma máscara de controle e evitar que outros dados aleatórios pudessem ser entendidos como byte de início.

Byte de controle – Representa uma informação (Tabela

02) constituída de uma máscara (XX) que identifica o robô e outra (YY) que define o sentido (Tabela 03) de cada motor de acionamento.

Byte PWM – Apresenta uma informação em que os

quatro bits mais significativos representam o servo-motor de acionamento de sentido de rotação esquerdo, e os quatro bits menos significativos o servo-motor de sentido de rotação direito. Os valores transmitidos pelo computador para cada um dos motores correspondem à referência para o sinal PWM de comando da ponte H e, quanto maior este valor, maior será a velocidade do motor correspondente.

(4)

Tabela 02 – Exemplo de identificação dos robôs.

XX Identificação do robô

01 Robô 01

10 Robô 02

11 Robô 03

Tabela 03 – Controle dos motores.

YY Ação no robô Motor 01 Motor 02

00 Anda para frente Frente Frente 01 Sentido horário Frente Trás 10 Sentido anti-horário Trás Frente

11 Anda para trás Trás Trás

Para implementar a comunicação serial usou-se uma USART (Universal Synchronous Asynchronous Reciever Transmitter). Trata-se de uma interface de comunicação universal e possui basicamente dois modos de funcionamento: sincronizado e não sincronizado. Neste trabalho será utilizado o modo assíncrono.

A comunicação é feita normalmente com duas vias. Uma delas para a transmissão (TX) e a outra para recepção (RX). Isto possibilita que as informações sejam enviadas e recebidas ao mesmo tempo, cada qual na sua via. Este

modo é conhecido como Full Duplex.

Obs: Este modo é o utilizado na porta serial de computadores para a implementação do padrão RS-232, mas pode ser utilizado também para acesso a outros sistemas.

Nesta modalidade não se utiliza um clock para se sincronizar a comunicação de dados, esta sincronização deve ser feita pela própria via de dados, através de pulsos ou bits de Start.

O tamanho dos dados e o intervalo entre cada bit transmitido ou recebido devem ser programados. A taxa de transmissão/recepção de bits é indicada em bits por segundo, ou bps, conforme (1).

BaudRate

T

BIT

=

1

(1)

Quando uma interface inicia uma transmissão, ela leva o estado de TX para nível baixo, mantendo-o assim pelo tempo TBIT. Esta borda de descida é reconhecida pelo outro periférico (RX) e é suficiente para iniciar o processo de sincronização para recebimento desta

informação.

Para finalizar e garantir o processo de transmissão, TX envia um Stop Bit, que nada mais é que outro bit com

valor fixo em 1, garantindo assim que a linha voltará ao seu estado padrão e o periférico voltará a esperar uma nova recepção.

II.3 Microcontrolador

A utilização de um microcontrolador no robô é essencial para receber o sinal captado pelo módulo de RF, manipular os dados para identificar cada jogador e produzir sinais de controle para um módulo de potência a fim de definir a direção de acionamento e ajustar a velocidade de cada motor de cada robô, objetivando o deslocamento dos mesmos no jogo. Para desenvolvimento do trabalho, optou-se pela utilização do microcontrolador PIC 16F628 da Microchip (Fig. 10).

Fig. 10 – Pinagem do PIC 16F628.

Esse modelo permite comandar simultaneamente vários dispositivos periféricos, desenvolver a comunicação serial por meio de um pino específico, além de ter disponíveis temporizadores internos que podem ser manipulados por interrupções. Uma dessas interrupções será utilizada para produzir os sinais PWM para os servo-motores. A Tabela 04 ilustra as portas utilizadas do microcontrolador em questão.

Tabela 04 – Sinais de controle do microcontrolador.

Porta Bit Tipo Função

1 In Recepção serial da USART 3 Out Habilita sentido horário para o

motor 01 4 Out PWM para motor 01 5 Out Habilita sentido horário para

motor 02

6 Out Habilita sentido reverso para motor 02

PORTB

7 Out PWM para motor 02

PORTA 1 Out Habilita sentido reverso para motor 01

O programa de controle foi desenvolvido em assembly e será entregue em um arquivo suplementar (em CD) anexado na versão final do TD. Este, pode ser dividido em três partes: programa principal, interrupção por overflow e interrupção pela USART. O programa

(5)

principal permite iniciar os registradores e as funções especiais do microcontrolador.

Após a execução dessas ações, o sistema fica aguardando interrupções. A interrupção por overflow é utilizada para produzir sinais PWM (Pulse Width Modulation) para os servomotores.

As figuras 11, 12 e 13 a seguir ilustram, por meio de fluxogramas, as rotinas básicas executadas pelo microcontrolador.

Fig. 11 – Fluxograma principal.

Fig. 12 – Fluxograma da interrupção por overflow.

Fig. 13 – Fluxograma de recepção.

Para se acionar os motores dos robôs são empregadas pontes H por meio do driver L298, que tem a capacidade de controlar dois motores simultaneamente. Este circuito (Fig. 14) é uma ponte dupla desenvolvida para aceitar níveis lógicos TTL e comando e acionar cargas indutivas como relés, solenóides e motores CC ou de passo.

Duas entradas de habilitação são destinadas a habilitar ou desabilitar o dispositivo independentemente dos sinais de controle do driver. As características de alimentação da ponte H são mostradas na Tabela 05. O controle de um determinado motor ligado em uma ponte H é realizado aplicando os níveis L=Baixo, H=Alto e X=Valor Qualquer, conforme ilustrado na Tabela 06.

Inicializa registradores, identifica robô, habilita USART, etc.

Ocorreu interrupção? N S 1 3 Início TOIF=1? Incrementa COUNT COUNT =16? N

Reseta flag TOIF COUNT=0 1 S N 2 S COUNT =0? N Seta saída PWM S COUNT =PWM? N Reseta saída PWM S 3 RCIF=1 ? Zera XXYY 2 S N 3 OK=1 ? Pega PWM1 e PWM2 S N Padrão C3? N Decrementa OK S XX é uni. 01? S Incrementa OK Motor 1 p/ frente? S N PORTB1=1 PORTB3=0 PORTB3=1 PORTB1=0 Motor 2 p/ frente? S N PORTB6=1 PORTB5=0 PORTB5=1 PORTB6=0 3 3

(6)

Fig. 14 – Esquema do driver L298

Tabela 05 – Níveis de alimentação.

Símbolo Parâmetro Valor Unidade

Vs Alimentação 50 V

Vss Nível Lógico 7 V

Vi, Ven Tensão de entrada -0,3 a 7 V Ptot Potência dissipada 25 W

Tabela 06 – Tabela funcional do L298.

Entradas Função

C=H; D=L Frente

C=L; D=H Reverso

Ven=H

C=D Parada rápida do motor Ven=L C=X; D=X Motor livre

Como transmissor e receptores de RF do sistema, foram utilizados circuitos dedicados da RFM da Radiometrix (Fig. 15). Estes módulos de baixa potência constituem um modo prático e eficiente para realizar sistemas de comunicação de dados sem fios. Basicamente os módulos estão disponíveis nas seguintes freqüências: 173,225MHz, 173,250MHz, 418MHz, 433,92MHz, 869,85MHz e 914,5MHz e são modulados em FM. Os módulos em geral possuem alcance que variam de 100 m a 1.000 m conforme o ambiente, e apresentam velocidades de transmissão de dados de 5Kbps até 160Kbps. A utilização dos módulos é simples, são utilizados dois pinos para alimentação, um para transmissão de dados (TX) e outro para recepção (RX).

Fig. 15 – Transmissor e Receptor.

III

I

MPLEMENTAÇÃO

Nas figuras 16 e 17 tem-se o projeto final do hardware do time de robôs.

Na figura 16 tem-se o hardware final de cada robô: receptor de RF; microcontrolador; ponte H; regulador de tensão. Como fonte de tensão é utilizada uma bateria recarregável de 9 ou 12 [V] inserida no chassis de cada robô. A mesma é responsável por alimentar a ponte H que aciona os motores de cada unidade. Um circuito regulador de tensão (7805) regula a voltagem da bateria para o microcontrolador e receptor de RF (onde um pequeno pedaço de fio atua como antena). No testes do projeto foram utilizados motores de acionamento de brinquedos, mas existe no mercado motores dedicados para times de robôs.

Fig. 16 – Diagrama de ligação da unidade.

Lista de componentes de cada robô:

• CI1 – PIC 16F628

• CI2 – L298

• CI3 – Receptor Radiometrix

• CI4 – 7805L (Regulador de Tensão)

• XTAL – 4 Mhz

• C1 e C2 – 33uF

• C3 – 100nF

• R1 e R2 – 27ohms

• M1 e M2 – Motores CC

Na figura 17 tem-se o hardware do transmissor de RF (um pequeno pedaço de fio atua como antena transmissora), que pega dados seriais do computador pessoal que realiza o processamento de imagens da câmera do jogo, e envia os mesmos para os robôs. Um circuito integrado (MAX232) é usado para adequar os níveis da porta serial do computador para o transmissor de RF (um pequeno pedaço de fio atua como antena). Se o conector da porta serial do micro não apresentar uma

(7)

tensão de alimentação disponível, pode-se utilizar um regulador de tensão (7805) ligado a uma fonte externa.

Fig. 17 – Diagrama de ligação de Rádio Frequencia.

Lista de componentes da unidade de RF:

• CI1 – MAX232

• CI2 – Transmissor Radiometrix

• CI3 – 7805L (Regulador de Tensão)

• C1, C2, C3 e C4 – 1uF

Com os recursos disponibilizados conseguiu-se montar um protótipo básico de um robô. O mesmo foi montado em uma estrutura improvisada de plástico. Como câmera digital foi utilizada uma webcam simples. Mas apesar destas limitações, o protótipo funcionou adequadamente e servira como base para a construção de um time que tenha uma câmera, motores CC e caixas adequadas.

IV

C

ONCLUSÃO

Este trabalho de conclusão de curso teve como objetivo o desenvolvimento de um projeto de hardware e software visando à implementação de um time real de Futebol de Robôs. Este tema foi escolhido devido ao fato de agregar diversos assuntos vistos ao longo do curso de Engenharia, como por exemplo: comunicação de dados, processamento de imagem, programação, sistemas de controle, etc.

Paralelo ao desenvolvimento deste trabalho, estava sempre presente a preocupação em aplicar os ensinamentos vistos em sala de aula. Além das pesquisas realizadas no sentido de adquirir os conhecimentos específicos para a realização do projeto.

Neste aspecto, procurou-se buscar detalhes necessários para o desenvolvimento proposto.

Como trabalhos futuros têm-se como objetivos a realização de outras pesquisas a partir deste trabalho, como por exemplo, servir como base para testes de novas

estratégias de sistemas robóticos autônomos, auxiliar aulas práticas de robótica e servir também como plataforma de pesquisas em inteligência artificial, em sistemas multi-agentes, e até mesmo possibilitar a participação da instituição em torneios de futebol de robôs.

Como objetivo mais importante e particular, este trabalho agregou vários conhecimentos complementares a minha formação e neste caso, não há indicadores que mensurem tal realização.

V.

A

GRADECIMENTOS

Meus agradecimentos as freqüentes ajudas que recebi do meu orientador e de colegas, também a Universidade Federal de Itajubá que possibilitou a realização deste trabalho de diploma.

VI.

R

EFERÊNCIAS

[1] Federation of International Robot-soccer Association (FIRA):http://www.fira.net

[2] RoboCup: http://www.robocup2006.org

[3] Reinaldo A. “O sistema de visão computacional do Futebol de robôs”.

[4] Manuais da Microchip.

Referências

Documentos relacionados

29 Table 3 – Ability of the Berg Balance Scale (BBS), Balance Evaluation Systems Test (BESTest), Mini-BESTest and Brief-BESTest 586. to identify fall

After this matching phase, the displacements field between the two contours is simulated using the dynamic equilibrium equation that bal- ances the internal

A educação em saúde tem papel primordial no processo de prevenção e reabilitação, pois, o diálogo e a troca de informações entre o paciente, o profissional e sua

demonstraram que: 1 a superfície das amostras tratadas com o glaze pó/líquido foram as que apresentaram uma camada mais espessa de glaze, com superfícies menos rugosas; 2o grupo

Sendo assim, o programa de melhoria contínua baseado no Sistema Toyota de Produção, e realizado através de ferramentas como o Kaizen, poderá proporcionar ao

Na tentativa de avaliar a confiabilidade das medidas lineares realizadas em radiografias panorâmicas, comparando-as com imagens obtidas por meio de TC, Nishikawa et al., 2010

Leite 2005 avaliou duas hipóteses: a diferentes tempos de condicionamento com AFL não influenciariam nos valores de resistência de união entre uma cerâmica e um cimento resinoso; b

A revisão das produções sobre matriciamento em saúde mental apontou os seguintes eixos: dificuldades na articulação da rede de cuidados e fatores que dificultam o desenvolvimento