• Nenhum resultado encontrado

Multi-Layered Control Applied to Autonomous Robot Soccer

N/A
N/A
Protected

Academic year: 2021

Share "Multi-Layered Control Applied to Autonomous Robot Soccer"

Copied!
5
0
0

Texto

(1)

Multi-Layered Control Applied to Autonomous

Robot Soccer

Controle Multi-Nível Aplicado a Futebol de Robôs Autônomos

Ivan O. Nunes, Thaylo X. Freitas, Igor O. Nunes, Marcos V. C. Couto, Jackson W. Brito, Leonardo S. Paulucio

Universidade Federal do Espírito Santo Vitória – ES – Brasil

ivanoliv.1@gmail.com, thayloxavier@gmail.com, igordeoliveiranunes@gmail.com, marcoscaus@gmail.com, jackson.brito@gmail.com, leonardo.paulucio@hotmail.com

Abstract— This paper proposes a multi-layered control strategy for deployment of an autonomous robot soccer team. The highest level of control corresponds to the decider of the soccer strategies (I.g., dribble, pass, shoot), to be defined with artificial intelligence algorithms and based on the state of the soccer game. Middle level controller uses a video camera, as feedback, to capture positions and angles and Lyapunov multi-variable control technique calculate necessary wheels’ speed in order to get the agents to desired positions, angles and speeds. The lowest level of control implements a PID (Propotional, Integral, Derivative) controller, using Arduino microcontroller platform and optical encoder sets, to output motors’ voltage according to the wheels’ speed determined in the middle level control. The hardware contruction and software implementation are also described. The final goal of this project is to build a team to compete in the Latin American Robotics Competition 2014, IEEE Very Small Soccer Size category.

Keywords— Robotics; Arduino; Automatic Control; Image Processing; Soccer.

Resumo— Este artigo propõe uma estratégia de controle multi-nível para implantação de um time de futebol de robôs autônomo. O nível mais alto de controle corresponde ao decisor das estratégias de futebol (I.g., driblar, tocar, chutar), a serem definidas por algorítimos de inteligência artificial baseando-se no estado atual do jogo. O controle intermediário usa uma câmera de vídeo, como realimentação visual, para capturar posições e ângulos e a técnica de controle multi-variável de Lyapunov para calcular as velocidades das rodas que permitirão levar os agentes às posições, ângulos e velocidades desejados. O nível mais baixo do controle implementa um controlador PID (Propotional, Integral, Derivative), usando o microcontrolador Arduino e pares de encoders óticos, para determinar a tensão a ser aplicada em cada roda de acordo com a velocidade determinada pelo controle intermediário. A contrução do hardware e a implementação do software também são descritos. O objetivo final deste projeto é construir um time para competir na Latin American Robotics Competition 2014, categoria IEEE Very Small Soccer Size.

Keywords— Robótica; Arduino; Controle Automático; Processamento de Imagens; Futebol.

I. INTRODUÇÃO

O desafio IEEE VSSS (Very Small Size Soccer) da LARC

(Latin American Robotics Competition) propõe a construção de

um time de futebol de robôs. Cada equipe é formada por três robôs autônomos de tamanho limitado (7.5 x 7.5 x 7.5cm), controlados unicamente por um computador externo que utiliza uma câmera de vídeo para aquisição de dados visuais do campo de futebol e comanda os robôs por meio de uma interface de comunicação sem fio.

A equipe Equipe de Robótica da Universidade Federal do Espírito Santo (ERUS), formada por alunos do Centro Tecnológico da UFES (Universidade Federal do Espírito Santo), desenvolveu um time de robôs para cumprir esse desafio.

O time consiste de três robôs idênticos. As estruturas mecânicas foram projetadas utilizando o software de modelagem 3D OpenSCAD [1], impressas por uma impressora 3D - Sethi3D [2]. No projeto eletrônico foram utilizados microcontroladores de prototipação Arduino [3], módulos XBee [4], que implementam o protocolo ZigBee [5], para

(2)

comunicação com o computador externo e encoders óticos para aquisição das velocidade das rodas.

Este artigo é dividido em cinco seções. A seção dois define a infraestrutura do sistema implantado. Todos os recursos de

hardware e as funções por eles desempenhadas são descritos

na seção dois. A seção três discorre sobre as funções implementadas pelo software embarcado nos robốs e pelo software do computador central de controle. A seção quatro é a mais importante, pois descreve o controle multi-nível implementado para possibilitar o funcionamento do time de futebol de robôs. Por fim a seção cinco traz as conclusões e os trabalhos futuros propostos.

II. INFRAESTRUTURAE HARDWAREDO SISTEMA A. Infraestrutura Mecânica

A estrutura mecânica modelada consiste de um chassi (Figura 2) que da a sustentação e a forma ao robô. O chassi foi modelado para se adequar às dimensões impostas pela categoria IEEE VSSS.

Cada robô possui, posicionado no centro de seu chassi, um par de motores Pololu de 7 Volts e redução de 30:1 (Figura 3).

Acoplado a cada motor, existe um conjunto composto por uma roda e uma coroa de anteparos (Figura 4). A coroa de anteparos é utilizada para obstruir ou permitir a passagem de ondas no espectro infravermelho. Com isso, de posse de um emissor infravermelho e um fototransistor é possível construir um encoder ótico para contabilizar a velocidade de cada uma das rodas.

Esses três componentes básicos agregados compõem a arquitetura estrutural dos robôs.

B. Infraestrutura de Hardware

O hardware dos robôs é composto por um conjunto de módulos onde cada módulo desempenha uma funcionalidade específica. Entre as funcionalidades estão: processamento, comunicação sem fio, acionamento dos motores e sensoriamento da velocidade das rodas. Abaixo são associadas as funcionalidades e os módulos de hardware utilizados. 1) Processamento e controle: Arduino Nano [3]. 2) Comunicação sem fio: Xbee 802.15.4 [4, 5]. 3) Acionamento dos motores: Ponte-H LM298.

4) Sensoriamento das velocidades das rodas: circuito construído utilizando emissores infravermelho e fototransistores em conjunto com a coroa de anteparos mostrada na Figura 4.

Os módulos de hardware 2, 3 e 4 foram conectados ao Arduino Nano (1) por meio de uma PCB (Printed Circuit

Board). O Arduino por sua vez comanda os demais periféricos

de modo a realizar todas as funções necessárias ao bom funcionamento do robô. A Figura 5 mostra o hardware desenvolvido acomodado dentro da estrutura mecânica desenvolvida.

A leitura da velocidade das rodas é implementada em software por meio de interrupções de mudança de nível lógico e interrupções por tempo. A interface com o módulo Xbee é utilizada para que seja possível receber comandos do computador central. O acionamento dos motores com diferentes intensidades é realizado por meio de um PWM

Figura 4: Conjunto roda e coroa de anteparos.

Figura 2: Chassi projetado para os robôs.

(3)

(Pulse Width Modulation). Estas funções fundamentais são realizadas por software e serão descritas na seção três.

III. SOFTWAREDO SISTEMA A. Software do Computador Central

O software do computador central é responsável por comandar o time como um todo. Nesse software é realizado o processamento de imagens para identificar a posição e o ângulo dos robôs no campo. Para isso foi utilizada a biblioteca OpenCV [6].

No que tange ao controle do time, dois dos três níveis de controle propóstos neste trabalho são implementados no computador central, o controle de alto nível e o controle intermediário. Com isso o computador central deve, a partir das imagens processadas determinar os comandos contendo a velocidades das rodas a serem enviados para cada robô. A última funcionalidade básica que o software do computador central deve implementar é o envio das mensagens por meio do módulo Xbee. Faludi [7] exemplifica vastamente a criação deste tipo de comunicação.

B. Software Embarcado nos Robôs

O software embarcado nos robôs deve ser capaz de receber os comandos advindos do computador central que contêm os

points de velocidade de cada uma das rodas. Com esses set-points deve ser implementado, no software embarcado, o

controle de baixo nível, para que os motores ligados às rodas atinjam os set-points rapidamente e com erro estacionário mínimo.

Mais detalhes sobre a implementação do controlador de baixo nível com o PID serão abordados na seção quatro. Por ora vale destacar que, para permitir que esse controle seja implementado é necessário que se adquira a velocidade das rodas para que seja feita a retroalimentação do sistema. Por isso o software embarcado é também responsável por realizar a contagem das rotações das rodas e o cômputo do número de rotaçôes por intervalo de tempo. Para isso são utilizadas interrupções por nível lógico e por tempo [3].

O encoder ótico gera as mudanças de nível lógico que permitem contar o número de rotações das rodas.

C. Comunicação entre o Computador Central e os Robôs

Para viabilizar a transmissão sem fio dos comandos, os módulos XBee devem ser previamente configurados [7]. No contexto do sistema proposto, os XBees dos robôs são configurados para receber os comandos apenas do computador central. Com isso, o computador central precisa estabelecer comunicação com todos os robôs, cada um à sua vez, sendo necessário realizar o broadcast das mensagens. Para que os nodos sensores descubram qual deles é o destinatário da mensagem, é necessário inserir na mensagem um identificador. O software embarcado nos robôs faz a leitura do identificador, caso o identificador corresponda ao robô ele recebe o comando, caso contrário ele o ignora.

A Tabela I mostra o formato das mensagens enviadas pelo computador central para os robôs.

TABELA I: MENSAGENS TRANSMITIDAS

Tabela I Dados Transmitidos

ID do Robô Velocidades das Rodas Enviada

pelo computador

central

1 byte - ('a','b','c'...) 2 bytes – Um byte com a velocidade de cada uma das rodas.

IV. CONTROLE MULTI-NÍVEL A. Arquitetura do Sistema de Controle

A principal contribuição deste trabalho é a proposta de uma arquitetura de controle multi-nível, onde cada nível de controle atua fornecendo os set-points do nível de controle imediatamente subjacente. Dessa forma, o problema complexo de realizar o controle de multiagentes pode ser divido em problemas mais simples, facilitando a depuração do sistema. A Figura 6 mostra a interrelação entre os níveis de controle da arquitetura proposta.

Na Figura 6 pode-se observar que o decisor de alto nível atua a partir do estado do jogo, determinando as posições e orientações de cada um dos robôs. O controlador intermediário (Lyapunov), realimentado com as posições e orientações dos

Figura 5: Robô com estrutura mecânica e eletrônica.

(4)

robôs advindas da camera de vídeo, recebe o set-points de posição e orientação e define qual velocide cada roda deve ter para alcançar esses set-points. O valor de velocidade necessário para cada roda é enviado para o robô, onde o PID atua para alcançar esse valor da melhor forma possível. Cada um desses níveis de controle será detalhado a seguir.

B. Controlador Baixo Nível (PID)

O controlador baixo nível recebe do controlador intermediário os set-points de velocidade das rodas. Neste nível de controle o objetivo é que as rodas atinjam o set-point desejado no tempo mais curto possível e com erro estacionário mínimo (se possível, sem erro estacionário). Para isso é utilizado um controlador PID.

Para se utilizar um controlador PID é necessário conhecer o comportamento do sistema. No caso do hardware e do

software descritos na seção três, a entrada que determina a

velocidade da roda é dada por um inteiro de zero a 255 que determina um valor proporcional entre zero e 6 Volts para a saida dos motores utilizando o PWM. A velocidade é medida em número de interrupções de nível a cada 50 milissegundos. Para implementar o PID é necessário conhecer a relação, em malha aberta entre estas duas gradezas. Para isso foi realizada uma campanha de medições para obter uma série de pares (valor do PWM, velocidade da roda). Ao fim das medições foi realizada a interpolação dos pontos representados por estes pares obtendo uma função que representa o efeito do acionamento dos motores com o PWM na velocidade da roda media em número de interrupções de nível por segundo.

O gráfico da Figura 7 mostra três curvas. A curva em verde mostra o conjunto de pares obtidos para a roda girando livre (sem o robo apoiado em uma superfície). A curva em azul mostra o conjunto de pares para o robo andando no chão, ou seja, considera o efeito do peso do robô. A curva vermelha é o resultado da interpolação dos pares de pontos (PWM x Velocidade) que resulta em uma função exprime o comportamento do sistema de forma realista.

Com a função obtida por meio da interpolação dos pares de dados (Equação 3), é possível relacionar por software o valor de PWM com a velocidade da roda.

Onde: - G = 49.647 (valor máximo de velocidade) - θ = 24.49 (zona morta do motor)

- τ = 50.117

-p é o valor de PWM entre 0 e 255. - f é função de velocidade da roda.

Vale ressaltar que a função muda de acordo com a estrutura de cada robô e que para valores inferiores à zona morta do motor (PWM < 25) a velocidade da roda é zero.

Possuindo esta relação é possível projetar os valores de Kp, Ki e Kd do controlador PI que melhor se ajustam à resposta desejada. A Figura 8 mostra o funcionamento do PID projetado para este modelo de robô.

Com isso o robô é capaz de receber e alcançar um set-point determinado pelo controle intermediário.

C. Controlador Intermediário (Lyapunov)

O objetivo do controlador intermediário é determinar os

set-points de velocidade das rodas para que o robô execute uma

determinada tragetória. Um exemplo de trajetória seria: Desviar do robô adversário, alcançando a bola e empurrando-a em diração ao gol. Para isso é necessário determinar um conjunto de ângulos e posições em que o robô deve chegar, ao longo do tempo. A determinação da tragetória a ser seguida é realizada pelo nível mais alto de controle.

Figura 7: Curvas de Valor de PWM x Velocidade das rodas.

Figura 8: Resposta ao degrau do controlador PID projetado.

(5)

A partir da análise das relações cinemáticas (Figura 9), pode-se notar que a planta do sistema de controle de posição e de orientação é não linear, por isso, é necessário o uso de um método aplicável ao controle estável desse tipo de sistema.

Em [8] o uso de uma função candidata de Lyapunov quadrática, resultou na definição de leis de controle simples, suaves e efetivas para o controle de robôs similares ao robô de duas rodas. Com uma abordagem similar foi possível estabelecer funções de controle que garantem a convergência assintótica da trajetória. O procedimento analítico consiste nos passos:

1) Define-se uma função potencial V (função candidata de Lyapunov) tal que:

2) Se for possível fazer com que os atuadores (inputs de velocidades das rodas) da planta de controle se relacionem com as variáveis de estado de tal forma que a formulação (3) seja atendida, o sistema é assitoticamente estável.

Assim, é possível elaborar um conjunto de funções de atuação de tal forma que o robô possa se deslocar até uma posição desejada ao mesmo tempo em que atinge a orientação adequada.

D. Controlador de Alto Nível (Inteligência Artificial)

O controlador de alto nível é o decisor da estratégia do time. Esse nível é o responsável, por exemplo, por diferenciar o comportamento do goleiro e dos jogadores da linha. Neste nível diversas técnicas de inteligência artificial, reconhecimento de padrões e predição podem ser aplicadas. Algoritimos de inteligência artificial aplicavéis ao futebol de robôs não serão abordados no contexto deste trabalho estando relacionados na lista de trabalhos futuros.

V. CONCLUS ESṌ E TRABALHOS FUTUROS

Esse trabalho discorre sobre o projeto de um time autônomo de futebol de robôs. O diferencial do presente trabalho está na proposta de uma estratégia de controle

multi-nível para lidar com o problema complexo da criação de robôs autônomos. A implementação pautou-se no estado da arte das tecnologias de sistemas embarcados para construir um sistema computacional eficiente e de baixo custo, tendo por isso viabilidade de utilização prática. Os testes realizados comprovam a usabilidade do sistema proposto. A arquitetura implementada como prova de conceito pode ser doravante utilizada como referência no desenvolvimento de aplicações de baixo custo para robótica móvel.

Foram implementadas as funcionalidades básicas para permitir que o time participe em alto nível da LARC. A partir deste sistema básico, abre-se um leque oportunidades para realização de pesquisas e implementação de melhorias. Entre elas vale destacar:

1) Aprimoramento nos mecanismos de controle utilizados.

2) Aprimoramento das técnicas de inteligência artificial para permitir jogadas elaboradas e predição da estratégia do time adversário.

3) Embora o Arduino funcione muito bem para os propósitos do time de futebol de robôs, ele é um hardware de prototipação e sua principal vantagem é a facilidade de implementação. No processo de transformação do protótipo em produto, a substituição do Arduino por micro controladores e interfaces de hardware específicas permitiriam uma redução considerável no custo de produção de um robô.

4) Aplicação do protótipo a outros tipos de situações, além do futebol. A cooperação entre multiagentes pode ser utilizada nos mais diversos tipos de atividades industriais e acadêmicas. REFERÊNCIAS [1] http://www.openscad.org/, acessado em 14/08/2014. [2] http://www.sethi3d.com.br/, acessado em 14/08/2014. [3] http://www.arduino.cc/, acessado em 14/08/2014. [4] http://www.digi.com/xbee/, acessado em 14/08/2014.

[5] Gutierrez, J. A., Naeve, M., Callaway, E., Bourgeois, M., Mitter, V., & Heile, B. (2001). IEEE 802.15. 4: a developing standard for low-power low-cost wireless personal area networks. network, IEEE, 15(5), 12-19. [6] Bradski, Gary. "The opencv library." Doctor Dobbs Journal 25.11

(2000): 120-126.

[7] Faludi, R. (2010). Building wireless sensor networks: with ZigBee,

XBee, arduino, and processing. " O'Reilly Media, Inc.".

[8] Aicardi, Michele, et al. "Closed loop steering of unicycle like vehicles via Lyapunov techniques." Robotics \& Automation Magazine, IEEE 2.1 (1995): 27-35.

Referências

Documentos relacionados

Ara bé: sé del cert que jo existeixo i sé també que totes les imatges (i, en general, totes les coses que es refereixen a la naturalesa dels cossos) potser són només somnis

Quanto aos grandes players, as fintechs consideram as instituições financeiras nacionais como barreiras para a entrada no negócio, mesmo utilizando a estrutura dessas

Os professores que ministram disciplinas diretamente relacionadas à Gestão de Operações nos cursos de Administração selecionados para participar do estudo, com base nos

Studies on the effect of volatile and non-volatile metabolites of Trichoderma species indicated that the mycelial growth of the pathogen was minimum (20.7 and 17.3

O primeiro, construído por historiadores e em determinado contexto histórico-social-econômico não se encerra em si mesmo, ou seja, possui uma historicidade, na qual

New causative agents for lacrimal canaliculitis are emerging and include Streptococcus and Staphylococcus spp., and surgical removal of all concretions along with topical

assim imagens mais puras das vias lacrimais excretoras, com riqueza de detalhamento, nitidamente superior às obtidas com a técnica convencional.. O equipamento usado foi