Improvement of a Robotic Soccer Team Using a Mutiayered Contro Architecture Dougas F. Tavares, Leonardo S. Pauucio, Rodofo V. Vaentim Universidade Federa do Espírito Santo Abstract Very Sma Size Soccer is an important category of Latin American Robotics Competition (LARC) due to the wide range of chaenges within mobie autonomous robotics technoogies that it comprises. In this paper, we describe the recent advancements of ERUS VSSS team towards our third participation in LARC. In our previous work, we detaied the muti-ayered contro strategy for the robot soccer team depoyment, aso we pointed possibe improvements. In the present work, we detai some improvements regarding to the trajectory contro, structura aterations, some new strategies which are possibe due to the modifications and we present the GUI used to monitor and caibrate the team. The fina goa of this project is to buid a team to compete in the Latin American Robotics Competition 016, IEEE Very Sma Soccer Size category I. INTRODUÇÃO O desafio IEEE VSSS (Very Sma Size Soccer) da LARC (Latin American Robotics Competition) propõe a construção de um time de futebo de robôs. Cada equipe é formada por três robôs autônomos de tamanho imitado (7.5 x 7.5 x 7.5cm), controados unicamente por um computador externo que utiiza uma câmera de vídeo para aquisição de dados visuais do campo de futebo e comanda os robôs por meio de uma interface de comunicação sem fio (figura 1). Este trabaho descreve os aprimoramentos em reação as tecnoogias utiizadas para a criação do time de futebo de robôs da Equipe de Robótica da Universidade Federa do Espírito Santo (ERUS), formada por aunos do Centro Tecnoógico da Universidade Federa do Espírito Santo (CT-UFES), que participa pea terceira vez desta categoria. O time consiste de três robôs idênticos. As estruturas mecânicas foram projetadas utiizando o software de modeagem 3D OpenSCAD [1], impressas por uma impressora 3D - Sethi3D []. No projeto Fig. 1. Esquemático de uma partida do IEEE VSSS eetrônico foram utiizados microcontroadores de prototipação Arduino [3], móduos XBee [4], que impementam a camada de enace 80.15.4 [5], para comunicação com o computador externo e encoders ópticos para aquisição das veocidade das rodas. Em trabahos anteriores [6] foi proposto uma arquitetura de controe muti-níve. Aém disso, foi construída a parte mecânica e projetados a eetrônica, o sistema de comunicação e o processamento de imagens. A seção II traz uma breve revisão das contribuições anteriores e o restante do artigo aborda novos avanços incuídos no projeto até a presente data. Entre as contribuições deste trabaho vae ressatar: Impementação e testes do níve intermediário da arquitetura de controe, utiizando reaimentação negativa e um controador não-inear que garante a chegada no setpoint orientado ao go adversário. Impementação de uma interface gráfica robusta utiizando a bibioteca OpenCV [7], usada na caibração e no monitoramento dos robôs e testes. Mehoria pontua na estrutura, possibiitando a condução da boa.
Impementação e descrição do níve superior da arquitetura de controe, que determina a estratégia dos agentes durante a partida. O restante do artigo é organizado em cinco seções. A seção II faz uma breve contextuaização istando as contribuições anteriores com objetivo de permitir o entendimento do presente trabaho. A seção III aborda o funcionamento da camada intermediária de controe utiizando a reaimentação negativa para panejamento da trajetória do robô. A seção IV discorre sobre o níve mais ato da arquitetura de controe, ou seja, o decisor das estratégias de jogo para cada um dos robôs. A seção II- E descreve as mehorias estruturais propostas. Por fim, a seção VII traz as concusões e os principais trabahos futuros propostos. II. CONTRIBUIÇÕES ANTERIORES Esta seção traz uma visão gera das contribuições anteriores com o objetivo de contextuaizar o presente trabaho permitindo seu mehor entendimento. Mais detahes sobre as contribuições anteriores são descritos em [6] e [8]. A. Arquitetura de Controe Muti-Níve A principa contribuição deste é a proposta de uma arquitetura de controe muti-níve vertica, onde cada níve de controe atua fornecendo os setpoints do níve de controe imediatamente subjacente. Dessa forma, o probema compexo de reaizar o controe de mutiagentes pode ser divido em probemas mais simpes, faciitando a depuração do sistema. A figura mostra a inter-reação entre os níveis de controe da arquitetura proposta. B. Estrutura Mecatrônica: A estrutura mecânica e eetrônica do robô é mostrada na figura 3. As mehorias estruturais são descritas na seção II-E. Fig. 3. Estrutura mecânica e eetrônica do robô. C. Lower Layer: Controador PID Anteriormente foi projetado um controador PID para a camada mais baixa da arquitetura de controe proposta. Essa camada tem por objetivo fazer com que as rodas atinjam o setpoint de veocidade comandado pea camada intermediária de controe com resposta mais próxima possíve da criticamente amortecida. Esse processo consiste de 1) inferir a resposta do motor aos sinais PWM enviado peo Arduino (Figura 4) e com base na curva de resposta do motor caibrar as constantes do controador PID (Figura 5). Vae ressatar que a curva de resposta do motor é obtida por meio do encoder ótico, portanto, quanto maior a precisão do encoder para medição da veocidade das rodas mehor o funcionamento da camada inferior do controe. Fig.. Arquitetura de controe muti-níve D. Processamento de Imagens e Comunicação Entre os Robôs e o Computador Centra Aém dos níveis intermediário e superior da arquitetura de controe, o software do computador centra é responsáve peo processamento das imagens obtidas com a câmera, para identificar a
Fig. 4. Curva de resposta do motor ao sina PWM Fig. 5. Resposta ao degrau para o controe PID da veocidade das rodas. posição e o ânguo de cada um dos robôs no campo. Para isso foi utiizada a bibioteca OpenCV [7]. Por fim, é necessário estabeecer comunicação entre o computador centra e os robôs. A comunicação foi impementada utiizando rádios Xbee [4] e é baseada no capítuo de [9]. E. Estrutura 1) Chassis: Os chassis foram modeados com objetivo de se obter uma grande estabiidade, aderência da rodas e resistência dos robôs. Estes são aguns dos aspectos mais reevantes no projeto estrutura, visto que os jogadores se movimentam em ata veocidade, estando sujeitos a coisões e que necessitam de eevada força de atrito nas rodas para evitar que sejam impedidos de se ocomover peos jogadores adversários. Primeiramente, com o objetivo de se conseguir ata estabiidade, a massa da estrutura foi distribuída de forma a abaixar seu centro de gravidade. Para ampiar o atrito, optouse por se utiizar um chassi mais pesado. Por fim, foram construídas armaduras de aumínio para evitar que os robôs sejam danificados durante as coisões. ) Motores: Devido à importância de aumentar o peso, descrita na seção II-E.1, para que a veocidade dos robôs não fosse afetada, foram utiizados motores com maior potência. Os motores utiizados foram Poou 75:1 HP dua-shaft [10]. 3) Encoders: Foram utiizados os Poou Optica Encoder Pair Kit, 5V [11] que fazem a medição no eixo estendido do motor, antes da caixa de redução dos motores, aumentando assim a resoução. Isso permite uma maior precisão na medição das veocidades das rodas e, por consequência, mehor controe das mesmas. F. Processamento de imagens De forma a reduzir o tempo de processamento da imagem foi utiizado o agoritmo Mean Shift [1] que é impementado nativamente na bibioteca OpenCV. Em comparação com o processamento da imagem toda, o processamento por regiões é mais rápido porém menos confiáve, já que existe a possibiidade do objeto sair da região de busca. Aém disso, a necessidade de se saber de antemão a ocaização do objeto no cico anterior não permite a utiização da segunda técnica sozinha. Outra forma de aumentar o desempenho é o uso de processamento paraeo. A busca por cada um dos objetos (seis robôs e uma boa) pode ser feita independentemente. III. Midde Layer: CONTROLANDO TRAJETÓRIAS Quando faa-se do controe de movimento de veícuos autônomos, existem três cassificações. O controe de posicionamento, onde busca-se reduzir o erro posição do robô em reação a um ponto abaixo de um certo vaor; o controe de seguimento de caminho, onde o robô deve buscar uma sucessão de pontos, neste caso o caminho é fixo; e o controe de seguimento de trajetória e segue o mesmo princípio de seguir sucessivos pontos, entretanto, neste caso, o caminho é uma função do tempo. Nosso caso é o seguimento de trajetória. A. Tarefa do posicionamento Em quaquer instante de tempo, podemos representar o robô peo vetor [x, y, θ] T como pode ser visto pea Figura 6.
Fig. 6. Modeo cinemático de um veícuo diferencia Fig. 7. Experimento reaizado verificando a trajetória do robô em direção a boa e em seguida ao go A partir da anáise das reações das variáveis contidas na figura 6, é possíve determinar um conjunto de equações para desocamento inear e anguar do robô e também definir as medidas de erros para o sistema de controe. ẋ = v ẏ = v (1) θ = w Sendo: v = (v E + v R ), w = (v E v R ) Onde: v E = Veocidade da roda esquerda. v R = Veocidade da roda direita. = Distância entre as rodas. () Na forma matricia, representa-se o sistema como: ẋ ẏ = θ 1 1. [ ] ve vr (3) O que pode-se aproximar para pequenos intervaos de tempo: x y = θ 1 Sendo a matriz do sistema: A = 1 1 1 [ ] ve vr (4) (5) Entretanto, no caso em questão, tem-se a posição a cada intervao de tempo e precisa-se determinar a veocidade das rodas para minimizar o erro. Um detahe a se notar é de que a matriz A não é quadrada, portanto, precisa-se obter a pseudoinversa de A dada por A [13] Usa-se como erro [x B x R, y B y R, α] T [ ] ve vr = A x y (6) erro A impementação deste controe é mostrada na Figura 7, sendo importante notar que o robô chega com orientação votada para o go adversário.
iustrada pea reta amarea. Caso o ponto verde utrapasse agum dos pontos vermehos, o setpoint é escohido como o ponto vermeho correspondente. A componente da bissetriz tem como objetivo manter o robô em uma posição prováve de chegada da boa, mesmo quando esta está distante. Já a componente horizonta impede variações bruscas no setpoint quando a boa se aproxima do go, evitando que o robô não consiga acançá-o a tempo de evitar o go adversário. Fig. 8. Estratégia do Goeiro. IV. Upper Layer: DECISOR DA ESTRATÉGIA Esta seção descreve o funcionamento do níve superior da arquitetura de controe, responsáve por gerar os setpoints de posição de cada jogador, que são passados para o níve imediatamente inferior. Por simpicidade, optou-se pea definição de três papéis distintos, sendo ees excusivos e imutáveis para cada um dos robôs. Estas estratégias - goeiro, defensor e atacante - são descritas nas subseções seguintes. A. Goeiro Este pape é designado a um dos robôs com o objetivo de impedir que a boa entre em seu próprio go. A estratégia é iustrada na 8, onde o setpoint do goeiro é representado peo ponto verde, que fica sobre o segmento de reta pontihado. O setpoint é cacuado pea média das coordenadas dos pontos azu e amareo. O ponto azu é obtido pea interseção da inha pontihada com a reta azu que tem a incinação da bissetriz do ânguo formado entre a boa e as traves. Já o ponto amareo corresponde à interseção do segmento pontihado com uma reta horizonta que cruza o centro da boa, B. Defensor O setpoint do robô defensor permanece sempre no ado do campo correspondente ao próprio go. A posição é determinada por uma predição da posição da boa baseada nos instantes anteriores. Essa predição é utiizada para que o defensor antecipe a chegada da boa a um determinado ponto e, assim, boqueie sua chegada à área do goeiro e empurre a boa em direção à área do atacante. Outro ponto a se destacar, é que o defensor procura chegar na boa direcionado para o campo adversário. C. Atacante A função do atacante é conduzir a boa em direção ao go. Para isso, seu setpoint caminha em direção à parte de traz da boa à medida que o robô se aproxima dea, fazendo com que esta seja empurrada na direção ao go adversário. V. MELHORAS ESTRUTURAIS O agoritmo de controe de trajetória utiizado possibiita o robô chegar a boa orientado na direção do go, assim se faz possíve conduzir a boa. Para isso, se fez necessária uma ateração na estrutura usada nos anos anteriores. Foi anexada a capa de proteção uma peça como mostrada na Figura 9. VI. INTERFACE GRÁFICA Uma parte importante da camada intermediária de controe é o feedback do posicionamento dos robôs no campo, obtido por processamento de imagens. Há duas características importantes a evar em consideração ao se projetar um sistema com esse propósito: confiabiidade e desempenho. A confiabiidade está reacionada à verossimihança entre os dados capturados peo processamento das imagens e a reaidade. Caso haja grandes divergências, o sistema tomará decisões incorretas. Já probemas de desempenho no processamento de
Fig. 10. Interface de Caibração de Cores Fig. 9. Modeo da nova estrutura imagens fazem com que o tempo de de resposta dos robôs aumente. Um dos focos deste trabaho é na mehoria do desempenho, em termos de tempo de processamento, sem perda de confiabiidade. Por ser uma etapa tão importante, buscou-se simpificar ao máximo as tarefas de caibração e de monitoramento dos robôs. Nas versões anteriores era dispendioso a tarefa de caibração de cores para cada agente aém das dimensões da arena. Com isso, desenvoveu-se uma interface gráfica em C++ como mostrada na Figura 10 e 11. Com essa ferramenta conseguiu-se um ganho de produtividade consideráve. VII. CONCLUSÃO E TRABALHOS FUTUROS Esse trabaho discorre sobre a continuação do projeto de um time autônomo de futebo de robôs. O diferencia do presente trabaho está na proposta e impementação, como prova de conceito, de uma estratégia de controe muti-níve para idar com o probema compexo da criação de robôs autônomos cooperativos. A impementação mostrou-se computacionamente eficiente e de baixo custo, tendo por isso viabiidade de utiização prática. A arquitetura de controe muti-níve pode ser doravante utiizada como referência no desenvovimento de testbeds de Fig. 11. Janea de Monitoramento baixo custo para robótica móve e cooperação entre robôs. Este é o terceiro ano de participação da ERUS na LARC e existem ainda diversos desafios e oportunidades de mehoria no time de robôs. Entre eas vae citar 1) o aprimoramento das técnicas de inteigência artificia para permitir jogadas eaboradas e predição da estratégia do time adversário; ) maior utiização de campos potenciais no panejamento das trajetórias e 3) apicação do protótipo a outros tipos de situações, aém do futebo. A cooperação entre mutiagentes pode ser utiizada nos mais diversos tipos de atividades industriais e acadêmicas. REFERENCES [1] Openscad, http://www.openscad.org/, accessado em: 1-07-015. [] Sethi 3d printer, http://www.sethi3d.com.br, accessado em: 1-07-015.
[3] Arduino, http://http://www.openscad.org/, accessado em: 1-07-015. [4] Xbee ieee 80.15.4 radios, http://www.digi.com/xbee, accessado em: 1-07-015. [5] J. Zheng and M. J. Lee, A comprehensive performance study of ieee 80.15. 4, 004. [6] I. O. Nunes, T. X. Freitas, I. O. Nunes, M. V. Couto, J. W. Brito, and L. S. Pauucio, Muti-ayered contro appied to autonomous robot soccer, in Latin American Robotics Competition 014 - LARC 014 - Team Description Papers, 014. [7] G. Bradski et a., The opencv ibrary, Doctor Dobbs Journa, vo. 5, no. 11, pp. 10 16, 000. [8] I. O. Nunes, T. X. Freitas, I. O. Nunes, M. V. Couto, L. S. Pauucio, D. F. Tavares, and G. A. Santos, Depoyment of a robotic soccer team using a mutiayered contro architecture, in Latin American Robotics Competition 015 - LARC 015 - Team Description Papers, 015. [9] I. O. Nunes, Monitoramento do consumo de energia e acionamento remoto de equipamentos por meio de redes de sensores sem fio, 014. [10] 75:1 micro meta gearmotor hp with extended motor shaft, https://www.poou.com/category/60/micro-metagearmotors, accessado em: 13-07-015. [11] Optica encoder pair kit for micro meta gearmotors, 5v, https://www.poou.com/category/157/encodersfor-micro-meta-gearmotors, accessado em: 13-07-015. [1] G. Bradski and A. Kaeher, Learning OpenCV: Computer Vision with the OpenCV Library. O Reiy Media, 008. [Onine]. Avaiabe: https://books.googe.com.br/books?id=seagiofueic [13] Pseudo inversa, https://inst.eecs.berkeey.edu/ ee17a/book/ogin/defpseudo-inv.htm, accessado em: 14-03-016.