Baixe o app para aproveitar ainda mais
Prévia do material em texto
Mostra Nacional de Robótica (MNR) 1 ROBÔ DE COMPETIÇÃO CATEGORIA SEGUIDOR DE LINHA UTILIZANDO ALGORITMO PID E PLATAFORMA ARDUINO Luan Marinho Morais Pereira 1 , Gabriel Sabino Oliveira 1 , Pablo Henrique Ribeiro Bezerra 1 , Flávio Alves dos Santos 1 , Francisco Marcelino Almeida de Araújo 2 1LABIRAS, DEPARTAMENTO DE INDUTRIA, SEGURANÇA E PRODUÇÃO CULTURAL – DISPC IFPI Endereço: Praça da Liberdade, 1597. Bairro Centro. 64000-040 –TERESINA–PI 2 Universidade Estadual do Piauí – UESPI Endereço: Rua João Cabral, 2231. Bairro Pirajá. 64002-150 –TERESINA– PI E-mail: marcelino@labiras.cc Resumo: Robôs Seguidores de Linha são robôs autônomos que tem a finalidade de seguir um trajeto descrito por uma linha desenhada sobre uma superfície de cor contrastante com a cor da linha. Em competições, vence o robô que finaliza o percurso em menor tempo seguindo o trajeto completamente. Com base nisso, foi desenvolvido um robô seguidor de linha e seu software utilizando a plataforma Arduino e controle com algoritmo PID, visando obter um melhor desempenho e mais precisão comparado ao método ON/OFF, que é muito impreciso quando a velocidade do robô é alta e as curvas são acentuadas. No sensoriamento da linha foi utilizada uma barra de sensores de refletância por infravermelho (IR). O software foi desenvolvido na linguagem C. Os parâmetros referentes ao PID foram ajustados através do método de tentativa e erro. Os testes foram feitos utilizando a técnica ON/OFF no robô, em seguida, foi utilizado o controle PID, levando em consideração o desempenho e o tempo para fazer todo um percurso, que foi projetado para os testes. Nos resultados, o controle PID mostrou-se mais eficiente, obtendo melhores resultados, além de a pesquisa poder servir de base para estudantes dos cursos técnicos e das engenharias, para entender como funcionam as técnicas de controle de processos na prática. Palavras Chaves: Robôs Seguidores de Linha, Controle PID, Arduino, Competição de Robótica. Abstract: Line follower robots are autonomous robots that have the finality of follow a way described by a line drawn on a surface of contrasting color with the line color. At competitions, wins the robot that finishes the route in less time, following the route completely. On this basis, was developed a line follower robot and your software using the Arduino platform and control by PID algorithm, in order to obtain a better performance and more precision compared to ON/OFF method, that is very inaccurate when the velocity is high and the bends are accentuated. In the sensing of the line was used a reflectance sensors array that uses infrared (IR). The software was developed in C language. The PID parameters were adjusted by trial and error method. The tests were made using the ON/OFF technique in the robot, then was used the PID control, considering the performance and the time to complete an entire route, that was projected to the tests. In results, the PID control proved to be more efficient; getting better results, beyond the research can serve as a basis for students of technical curses and engineering, to understand how to work the process control techniques in practice. Keywords: Line Follower Robots, PID Control, Arduino, Robotics Competition. 1 INTRODUÇÃO O termo robótica refere-se ao estudo e utilização de robôs para diversas aplicações. Isaac Asimov, cientista e escritor, usou o termo pela primeira vez em 1942 em uma de suas obras chamada de “Runaround”. A criação de robôs surgiu da necessidade do homem de automatizar atividades industriais. Como consequência benéfica da revolução industrial surgiram máquinas cada vez melhores capazes de realizar e reproduzir diversas tarefas, de forma autônoma ou não [CITI, 2014]. Desde então, uso de robótica na indústria se tornou comum. Robôs têm sido úteis até mesmo para execução de atividades simples rotineiras das pessoas, ou até mesmo atividades que exijam certo grau de risco para as pessoas fazerem. Hoje, robôs são integrados de diversos sensores que permitem monitorar atividades e o meio em que o mesmo se encontra além de realimentar sistemas proporcionando a execução de tarefas de forma autônoma. Desta forma, pelo fato dos robôs executarem tarefas importantes, tem-se buscado cada vez mais desenvolver robôs com processamentos mais rápidos e cada vez mais precisos [IEEE SPECTRUM, 2010]. Hoje já existem diversas formas e artifícios para melhorar o desempenho e o tempo de realização das atividades. Uma das formas bem conhecidas no ramo industrial é através do algoritmo PID (Proporcional-Integral-Derivativo). “O sucesso dos controladores PID também é reforçado pelo fato de que muitas vezes representam o componente fundamental para os sistemas de controle mais sofisticados que podem ser implementados quando a lei básica de controle não é suficiente para obter os desempenhos requeridos [VISIOLI, 2006]”. Mostra Nacional de Robótica (MNR) Este artigo visa apresentar o desenvolvimento de um robô de competição na categoria seguidor de linha, utilizando a plataforma Arduino e algoritmo PID, aplicando o método das tentativas e erros para ajuste dos valores das constantes do controle PID. 2 ARDUINO Arduino é uma plataforma de prototipagem eletrônica de código aberto, ele pode sentir o ambiente recebendo uma entrada de uma variedade de sensores e pode atuar ao seu arredor através do controle de luzes, motores, e outros atuadores [ARDUINO, 2014]. Ele comporta um microcontrolador e um conversor USB/Serial para ser possível comunicar o microcontrolador a um computador. Existem diversas versões da placa, mas a mais conhecida é o Arduino UNO R3. Estas placas possuem diversos pinos que podem ser utilizados como entrada ou saída de sinais (digitais ou analógicos), esses pinos permitem a comunicação com dispositivos externos como leds, LCDs (Liquid Crystal Display), sensores, relés, pontes “H”, pequenos motores, e demais dispositivos que podem indicar um status ou simplesmente atuar, modificando o processo. O microcontrolador da placa UNO R3 é o ATmega328P de 8bits, com 32 kbytes de memória flash, 2 kbytes de RAM (Random Access Memory). Pelo fato do Arduino UNO R3 possuir apenas 6 entradas com conversor analógico digital e o projeto deste artigo requerer 8 entradas deste tipo, opto-se pelo uso de uma placa Arduino Mega 2560 R3. Este por sua vez, usa o microcontrolador ATmega2560 de 8 bits, com 256 kbytes de memória Flash, 8 kbytes de RAM, além de possuir 54 pinos digitais que podem ser usados como entrada ou saída (sendo que 15 possuem o recurso PWM) e 16 entradas analógicas [ATMEL CORPORATION, 2014]. O Arduino possui IDE (Integrated Development Environment) própria. O ambiente de código livre Arduino torna fácil escrever código e enviá-lo à placa I / O. A IDE é executável em Windows, Mac OS X, e Linux. O ambiente é escrito em Java e baseado em Processing, avr-gcc e outros softwares de código livre [ARDUINO, 2014]. 2.1 IDE ARDUINO A linguagem de programação Arduino se baseia em Wiring, que por sua vez simplifica o uso da linguagem C/C++ no programa. Por ser código livre, hoje já existem na internet, gratuitamente, várias de bibliotecas escritas em C++ que podem ser incluídas no código fonte, de qualquer um que esteja programando, para diversas tarefas [ARDUINO, 2014]. 2.2 ESTRUTURA DA LINGUAGEM A linguagem é bem simples, e é compostas por duas funções principais, a função setup() e a função loop(). Não somente estas funções, a linguagem também pode compor outras funções criadas pelo programador. Quando iniciado o Arduino, as funções são executadas linha por linha. A função setup() além de ser a primeira função a ser executada ao iniciar o programa, é executada apenas uma vez quando o Arduino é ligado ou quando for reiniciado. Énessa função que são configurados os pinos, além de iniciar/ativar a comunicação serial. A função loop() é a segunda função a ser executada, nela as instruções são executadas infinitamente, ou seja, ao executar a última linha dentro da função, o programa volta ao início do loop e é executado novamente. É no loop que são chamadas as funções de leitura de pinos, atuação dos pinos e porta serial, também é a parte do código onde é programada toda a lógica do processo. 3 CONTROLE PID O PID é o algoritmo de controle mais usado na indústria e tem sido utilizado em todo o mundo para sistemas de controle industrial. A popularidade de controladores PID pode ser atribuída em parte ao seu desempenho robusto em uma ampla gama de condições de funcionamento e em parte à sua simplicidade funcional, que permite aos engenheiros operá-los de uma forma simples e direta [NATIONAL INSTRUMENTS, 2011]. Para isto é necessário entender que no cotidiano existem variáveis que podem ser controladas e manipuladas, variáveis como pressão, vazão, temperatura, nível, são exemplos comuns. Para que estas variáveis possam ser mantidas sob controle dentro de um processo são utilizadas técnicas de controle que quando aplicadas buscam manter sempre constantes os valores desejados pelo usuário, por exemplo, um ar condicionado configurado para uma temperatura de 20°C possui um sistema de controle que monitora a temperatura ambiente e atua seu sistema de refrigeração para manter a temperatura de 20°C constante [FRANCHI, 2011]. O controle PID leva este nome por ser um sistema de controle Proporcional-Integrador-Derivativo, mais da metade dos controladores industriais utilizados atualmente empregam esquemas de controle PID ou PID modificado [OGATA, 2003]. O controlador PID recebe o valor de uma variável do processo, que é obtido através de um sensor e compara este valor com um set-point/referência configurado, para calcular o valor de erro. A partir do valor deste erro são calculados os valores proporcionais, integrativos e derivados que são somados na saída resultando numa resposta para elementos finais de controle, como válvulas, por exemplo. O processo funciona em malha fechada, ou seja, o controlador recebe o feedback constante do sensor responsável pela leitura da variável, observe a figura 1. Figura 1 - Diagrama de blocos de um controlador PID em malha fechada. No diagrama de blocos acima é mostrado o fluxo do controle PID em uma malha fechada, onde e(t) é o erro calculado no tempo que é resultado do Set-point – f(t), s(t) é a saída do controlador PID que é o resultado da somatória dos valores proporcionais, integrador e derivativo, e f(t) é o sinal de feedback constante [CONTROL TUTORIALS, 2012]. Mostra Nacional de Robótica (MNR) 3 O cálculo é realizado da seguinte forma no controlador: 𝑃𝐼𝐷𝑣𝑎𝑙𝑢𝑒 = 𝐾𝑝 ∗ 𝑃 +𝐾𝑖 ∗ 𝐼 +𝐾𝑑 ∗ 𝐷 Onde: Kp: ganho proporcional Ki: ganho integrativo Kd: ganho derivativo P: correção proporcional ao erro. A correção a ser aplicada ao processo deve crescer na proporção que cresce o erro entre o valor real e o desejado. I: correção proporcional ao erro x tempo. Erros pequenos, mas que existem há muito tempo requerem correção mais intensa. D: correção proporcional à taxa de variação do erro. Se o erro está variando muito rápido, esta taxa de variação deve ser reduzida para evitar oscilações [NOVOS, 2014]. O PID não é a solução para o controle de todo o tipo de processo. Uma vez que os requisitos de desempenho foram especificados, o próximo passo é analisar o sistema e selecionar um controle adequado. Na grande maioria das aplicações, um controle PID irá fornecer os resultados exigidos [NATIONAL INSTRUMENTS, 2011]. Quando sua aplicação é viável o controle PID é vantajoso por ser capaz de emitir um sinal de saída variável para o atuador, consequentemente a variável de processo será manipulada de forma mais precisa, suave e estável. Diferentemente do modo de controle ON/OFF, que liga e desliga o atuador, o PID pode modulá-lo de 0 a 100%. Considerando o exemplo anterior do ar condicionado, se seu sistema de controle for ON/OFF ele liga e desliga o compressor para manter a temperatura constante, o PID consegue gerar uma saída que pode ser usada por um inversor de frequência para realizar a modulação desse compressor de 0 a 100% da velocidade. 4 O TRABALHO PROPOSTO O desafio do trabalho foi desenvolver um robô seguidor de linha que fosse capaz de seguir a linha sem sair do trajeto e que realizasse uma volta no percurso em menor tempo possível, o que fez com que o robô estivesse sendo sempre configurado para atingir níveis mais altos de desempenho. Para atingir níveis de desempenho satisfatórios trabalhou-se com a hipótese de que o robô sendo controlado por PID seria capaz de alcançar um melhor desempenho e que este método de controle faria com que o robô seguisse a linha de forma mais precisa e suave. O robô seguidor de linha é um robô construído para participar de competições onde o ganhador é o robô que consegue percorrer um trajeto com uma linha branca desenhada em fundo preto, ou uma linha preta desenhada em fundo branco, sem se perder no percurso nem utilizar atalhos. O robô do projeto foi construído sobre uma placa de MDF, utilizada como chassi. Sobre este chassi foi instalado um par de motores com rodas acopladas, uma placa Arduino MEGA, os sensores de refletâncias, uma ponte H, uma roda boba, e a bateria. O Arduino realiza o controle do processo, ele recebe a leitura dos sensores e executa o algoritmo PID para corrigir os erros, a saída é enviada para uma ponte H, que controla a velocidade e direção dos motores. Figura 2 – Funcionamento do Loop(). Todas estas atividades foram realizadas por quatro estudantes de engenharia mecânica, elétrica e técnico em eletrotécnica, que dividiram os trabalhos em construção do chassi, configuração eletrônica, estudo do processo e programação. Primeiramente foi elaborado um protótipo do chassi e definido todo o circuito eletrônico do robô, após estar feito, foi elaborado uma pista para executar os testes. O robô e a pista de testes produzida foram elaborados com base nas regras da competição de seguidores de linha da Robocore [ROBOCORE, 2014]. Figura 3 – Modelagem Conceitual da Versão Final do Robô. 5 MATERIAIS E MÉTODOS Aqui serão mostrados quais materiais foram utilizados para construção do robô, e como decorreram os testes para ajustar constantes de ganho do PID. Figura 4 – Robô Seguidor de Linha Montado Mostra Nacional de Robótica (MNR) 5.1 MATERIAIS O corpo do robô foi feito com MDF (Medium-Density Fiberboard), possui 2 micro motores com redução 30:1, 1 par de rodas pololu 60x8mm e uma grande esfera transferidora, além de alguns parafusos. Para o sensoriamento foi utilizado uma barra de sensores de refletância IR (QTR-8A – um conjunto de 8 sensores de saída analógica). E para controle foi utilizado um Arduino Mega 2560 R3 e uma ponte “H” L298. Tabela 1 – Lista de Materiais. 5.2 MÉTODOS Os testes foram realizados numa pista feita pelo grupo. Ela foi elaborada em CAD com um tamanho de 2,10x1,40m, a linha possui uma largura de 19,0mm ±1mm, e foi projetada em cor branca sobre um fundo preto, conforme as regras do campeonato Winter Challeng [ROBOCORE, 2014], sendo as cores da figura 5 representativas. A pista foi impressa em lona. Ela possui uma área que define a partida/chegada do robô, que é utilizada para marcar quando o robô completa voltas no percurso, também é composta por curvas de leves e maiores acentuações com pequenas linhas de referência para indicar o início/fim da curva. Uma área circular é utilizada para o teste da capacidade de curva do robô, e linhas perpendiculares estão presentes para simular cruzamentos na pista. Figura 5 – Pista de testes. Osprimeiros testes do robô foram realizados sem o controle PID pelo método ON/OFF e com uma velocidade baixa, após os testes com a velocidade baixa foram realizados novos testes e em cada um destes a velocidade era aumentada. Após os testes pelo método ON/OFF, mudou-se o software com a implementação do algoritmo PID, inicialmente com as constantes Kp, Ki e Kd ajustadas para zero. Assim pelo método de tentativa e erro, foi ajustado o primeiramente o valor de Kp, depois Kd e por último Ki. Os valores das constantes de ganho foram várias vezes redefinidas durante estes testes até que se encontrasse sintonia, e, por conseguinte, fazer o robô seguir a linha de maneira mais suave. Em cada teste realizado era medido o tempo que o robô levava para completar uma volta completa no percurso. Uma verificação visual era realizada para checar como estava a estabilidade do robô seguindo a linha e para que pudessem ser corrigidos as oscilações e movimentos bruscos que faziam o robô sair da linha. 6 RESUTADOS E DISCURSSÃO Durante os primeiros testes sem PID, utilizando o método de controle ON/OFF, e com a velocidade baixa, foi visto que o robô oscilava muito e realizava movimentos muito bruscos tentando se estabilizar em meio a linha. Quando a velocidade foi aumentada, ainda utilizando o método ON/OFF, verificou- se que o robô não conseguia fazer as curvas. Ele se desestabilizava e saía da linha. Quando o controle PID foi implementado com as constantes zeradas, constatou-se que robô seguia um movimento próximo do retilíneo e não fazia curvas. Após isto, ajustou-se inicialmente Kp até que o robô começasse a seguir a linha (oscilando ou não). Após isto, o inicio-se o ajuste de Kd para que diminuísse a oscilações em meio a linha. E por fim, ajustou-se Ki para otimizar o controle, melhorando o tempo de resposta da saída. Com todos os testes, foi comprovado experimentalmente que o controle PID é mais eficiente e eficaz que o método de controle ON/OFF, para o seguidor de linha, sendo que quando usava o controle ON/OFF o robô levava muito tempo para fazer o percurso (quando conseguia fazer totalmente) enquanto que com o controle PID, percorria a pista com muito mais velocidade e com oscilações bem pequenas. 7 CONCLUSÕES Com base no que foi apresentado, é possível observar que o controle do seguidor de linha utilizando controle PID é bem mais eficiente que utilizando o método de controle ON/OFF. Embora algumas adversidades como o material da pista, que refletia as ondas infravermelhas (IR) de maneira instável, o robô projetado conseguiu percorrer a pista elaborada muito bem. O trabalho desenvolvido utilizando métodos de controle é ideal para estudantes dos cursos técnicos, engenharias e áreas da tecnologia, pois é uma forma de mostrar na prática como funcionam os algoritmos de controle e a forma como cada um se comporta. Um aperfeiçoamento do trabalho desenvolvido neste artigo pode ser a elaboração de um material didático para estudantes de automação, tomando como base de estudo tudo que foi desenvolvido no seguidor de linha, explicando um passo a passo de como pode ser construído um robô, e utilizá- lo como ferramenta de teste para cálculos e procedimentos matemáticos de controle. REFERÊNCIAS BIBLIOGRÁFICAS ARDUINO. Home Page. Disponível em: <http://www.arduino.cc>. Acesso em: 07/07/2014. ARDUINO. Introduction. Disponível em: <http://arduino.cc/en/Guide/Introduction>. Acesso em: 12/07/2014. MATERIAIS QUANTIDADES ARDUINO MEGA 2560 R3 1 un. PONTE H L298 1 un. MDF(Medium-Density Fiberboard) 15cmx15cm Micro Motores com Redução 30:1 2 un. Par de Rodas 60x8mm 1 un. Esfera Transferidora 1 un. BARRA DE SENSORES QTR-8A 1 un. Mostra Nacional de Robótica (MNR) 5 ATMEL CORPORATION. ATmega328p. Disponível em: <http://www.atmel.com/pt/br/devices/ATMEGA328P.a spx>. Acesso em: 08/07/2014. ATMEL CORPORATION. ATmega2560. Disponível em: <http://www.atmel.com/devices/atmega2560.aspx>. Acesso em: 08/07/2014. CITE. História da Robótica. Disponível em: <http://www.citi.pt/educacao_final/trab_final_inteligenc ia_artificial/historia_da_robotica.html>. Acesso em: 07/07/2014. CONTROL TUTORIALS. Introduction: PID Controller Design. Disponível em: <http://ctms.engin.umich.edu/CTMS/index.php?exampl e=Introduction§ion=ControlPID>. Acesso em: 10/07/2014. FRANCHI, Claiton Moro.Controle de Processo Industriais – Princípios e Aplicações. São Paulo: Érica, v. 1, 2011. IEEE SPECTRUM. World Robot Population Reaches 8,6 Million. Disponível em: <http://spectrum.ieee.org/automaton/robotics/industrial- robots/041410-world-robot-population>. Acesso em: 12/07/2014. NATIONAL INSTRUMENTS. Explicando a Teoria PID. Disponível em: < http://www.ni.com/white- paper/3782/pt/>. Acesso em: 09/07/2014. NOVOS. Artigo Técnico – Introdução ao controle PID. Disponível em: <http://das.ufsc.br/~aarc/ensino/posgraduacao/DAS661 3/PID_Novus.pdf>. Acesso em: 10/07/2014. OGATA, Katsuhiko; LEONARDI, Fabrizio. Engenharia de controle moderno. Prentice Hall, 2003. ROBOCORE. Eventos. Disponível em: <https://www.robocore.net/upload/attachments/robocore __regras_seguidor_de_linha_165.pdf.>. Acesso em: 15/04/2014. VISIOLI, Antonio. Practical PID control. Springer, 2006. https://www.robocore.net/upload/attachments/robocore__regras_seguidor_de_linha_165.pdf https://www.robocore.net/upload/attachments/robocore__regras_seguidor_de_linha_165.pdf
Compartilhar