DESENVOLVIMENTO DE UM ROBÔ AUTÔNOMO DO TIPO SUMO ATRAVÉS DO MÉTODO DE CAMADAS Francisco Marcelino Almeida de Araújo1; Ricardo de Andrade Lira Rabêlo2; Carlos Erlan Olival Lima1; Antônio Edson Rocha Filho1; Mário Bibiano da Silva Júnior1 1. LABIRAS, Departamento de Indústria, IFPI Endereço: Praça da Liberdade, 1597 Bairro Centro CEP:64000-040, Teresina - Piauí E-mails: [email protected], [email protected], [email protected], [email protected] 2. LABIRAS, Departamento de Computação, UESPI Endereço: Rua João Cabral, Bairro Pirajá CEP: 64001-150, Teresina - Piauí E-mails: [email protected] Resumo Este artigo tem como objetivo mostrar o desenvolvimento de um projeto de robótica a partir do método de camadas focando-se nas camadas eletrônica e computacional. Na camada eletrônica é apresentado os sensores utilizados, a placa de controle e o circuito que permite a inversão do sentido de rotação do motor. Quanto à camada computacional, é apresentado o método utilizado para realizar o planejamento de velocidade e direção do robô, que será o campo potencial. Este método de planejamento de caminhos pode ser utilizado tanto em ambientes estáticos quanto completamente dinâmicos. Neste trabalho o ambiente é parcialmente dinâmico, pois é considerado que o alvo está em movimento enquanto o obstáculo está estático. Para demonstrar a eficiência deste método de planejamento de caminhos, foi realizada uma simulação no software MATLAB. Palavras Chaves: Método de Camadas, Planejamento de Direção, Planejamento de Velocidade, Robôs Autônomos. Abstract: This paper has the objective of shows the development of a robotics project through of the layered approach. The paper is focus in the electronic and computational layers. In the electronic layer is presented the sensors by using, the control board and the circuit which enables the reverse current direction. In the computational layer is presented the potential field method. The potential field method is used for velocity and direction planning. The potential field can be used in static and dynamic environments. In this work, the environment is partially dynamic, therefore the target is in movement and the obstacle is static. For demonstrating the efficiency of this path planning method, a simulation has been done in the MATLAB software. Keywords: Layered approach, Direction Planning, Velocity Planning, Autonomous Robots. 1 INTRODUÇÃO A robótica móvel segue três ramos: terrestre, aérea e subaquática, porém o princípio de construção do robô é o mesmo para as três ramificações. Um dos métodos aplicados no desenvolvimento de robôs móveis é o de distribuição em camadas. Este método consiste na organização do robô em camadas, que são: a camada mecânica, a camada eletrônica e a camada computacional (PEREIRA, 2010). A camada mecânica engloba os atuadores e a estrutura do robô. A camada eletrônica é onde está incluído todo o circuito, sensoriamento e comunicação do robô. Já a camada de computação é responsável pelo controle autônomo ou guiado do robô, através de sua programação (PEREIRA, 2010). Devido à elevada complexidade do desenvolvimento de um projeto de robótica, este artigo irá se focar apenas no desenvolvimento das camadas computacional e eletrônica. Com relação à camada computacional, se terá como ênfase o método de planejamento de caminho utilizado, que foi o campo potencial. O campo potencial vem sendo bastante utilizado na robótica para a geração de caminhos. Neste método é considerado que a meta a ser alcançada corresponde a uma força de atração e os obstáculos correspondem a uma força de repulsão (FARIA et al, 2006). Com relação à direção a ser seguida pelo robô para desviar dos obstáculos e encontrar o seu alvo é considerada como sendo um vetor resultante da soma de todos os vetores de força envolvidos (FARIA et al, 2006). O método de camadas foi utilizado para a construção de um robô autônomo, com objetivo de participar da competição de guerra de robôs. A categoria escolhida foi a sumo. Nesta categoria o objetivo é empurrar o oponente para fora da arena para que se conquiste a vitória. Para realizar a navegação do robô é considerado que a borda da arena irá equivaler ao obstáculo e estará em movimento estacionário, e o oponente é o alvo em movimento. Este artigo utiliza o método de camadas e o campo potencial para robôs da classe sumô, mas a sua utilização pode ser estendida para outros tipos de robôs terrestres como os seguidores de linha e os robôs utilizados para competições de futebol. Outra implementação para este método é na indústria, pois o método de camadas permite que o desenvolvimento do projeto seja mais rápido e eficiente. Isto é possível devido à divisão das tarefas de construção, o que proporciona que cada parte da equipe se foque em uma camada distinta. 1 2 DEFINIÇÃO DO PROJETO 2.2 Camada Eletrônica O primeiro passo que deve ser seguido na construção de um robô móvel, ou de qualquer projeto que se deseja realizar, é a determinação da sua utilização. Neste projeto pretende-se obter um robô móvel com as dimensões e peso máximo estabelecido pelas regras da competição. Além disso, pretende-se que o robô tenha um elevado torque e seja capaz de detectar o oponente. A camada eletrônica envolve todo o circuito, sensoriamento e comunicação do robô. Quanto ao circuito eletrônico, foi utilizada a Ponte H apresentada na figura 1. Este circuito é utilizado para fazer a inversão do sentido de rotação do motor. Este circuito utiliza semicondutores do tipo Mosfet e um circuito dobrador de tensão para que os semicondutores sejam acionados. O esquema do dobrador de tensão é apresentado na figura 2. A partir desse pressuposto se estabelece o modo de locomoção mais adequado e o tipo de comunicação que será feito. Além disto, se estabelece a forma de aquisição de dados para o posicionamento do robô em relação ao ambiente. Por último deverá ser escolhido o microcontrolador que irá atender as necessidades do projeto (PEREIRA, 2010). Para o robô construído pela Equipe Labiras, foi preciso construir uma ponte H capaz de suportar elevada potência, usando, para isso, os transistores de efeito de campo – FET. O FET usado na ponte H foi o IRF3205, que, segundo seu fabricante, suporta até ±75A (INTERNATIONAL RECTIFIER). Mas como foi dito anteriormente, este artigo terá como foco apenas as camadas eletrônica e computacional, que serão relatadas com mais detalhes a partir do próximo item. O transistor FET é um dispositivo controlado por tensão e como no robô existe apenas uma fonte de tensão para os motores, foi preciso construir um circuito capaz de dobrar a tensão da bateria para que os transistores FET fossem habilitados (FILHO, 2013). A figura 2 representa o esquema do dobrador de tensão utilizado. 2.1 Iniciando o Projeto VCC R7 1 Chave 1 Q7 2 Q1(G) BC558 Q3 10k 1 R2 Q1 Q6 2 BC548 1 1K 1 1 R12 R11 10k IRF3205 R1 2 100 Q1(S) Q3(S) 2 IRF3205 2 10k Chave 2 R8 1 Q8 2 Q4 BC558 10k 1 R10 2 Q4(G) Q2 Q5 1 BC548 1k IRF3205 R9 2 100 IRF3205 1 R3 2 1 10k R4 2 10k DOBRADOR PIN Figura 1. Esquema da Ponte H VCC PIN J3 VCC PIN R2 D2(K) 4 R VCC 8 2k2 C2 Q DC 5 CV 3 7 C1 GND TR 1 2 1N4007 C3 U1 R1 GRND PIN 10u D1 D2 1N4007 10u 15k TH 6 555 0.022u Figura 2 – Esquema do Dobrador de Tensão transistores Q1, Q2, Q3 e Q4 são os FETs responsáveis pelo Por causa do alto custo dos FETs tipo P, foi construída uma funcionamento da ponte h. ponte H numa configuração que usa apenas FETs tipo N. No esquema da Figura 2, os transistores Q5, Q6, Q7 e Q8 são Quanto ao sensoriamento, são utilizados sensores ultrassom usados para amplificar o sinal enviado pelo arduino, que é o para detectar o oponente e sensores de linha para detectar a circuito responsável pelo controle dos movimentos do robô. Os borda da arena. O sensor ultrassom utilizado foi o HC-SRF04, 2 o qual possui um pino que é utilizado como entrada e outra como saída. O alcance é de até 4 metros e o erro é no máximo 3 milímetros. O sensor de linha consiste no emprego de um fototransistor infravermelho e um diodo emissor de luz (LED). Como o ringue é preto e a borda do ringue é branca, este sensor pode ser utilizado para verificar a mudança de cor. Para realizar o controle do robô foi utilizado o Arduino Due, o qual foi escolhido devido a capacidade de processamento do microcontrolador ARM Cortex M3 32 bits. Este microcontrolador é suficiente para processar as funções matemáticas requeridas. 2.3 Camada Computacional Para realizar o planejamento da velocidade e da direção do robô é utilizado o campo potencial. O método campo potencial é o único método empregado atualmente que pode ser utilizado em ambientes completamente dinâmicos, que são ambientes onde o alvo e o obstáculo estão em movimento. O campo potencial é um dos métodos mais empregados para planejamento de caminhos, pois pode ser utilizado tanto com ambientes estáticos como ambientes dinâmicos. Apesar disso, o campo potencial possui uma grande desvantagem, que é o elevado número de entradas necessárias. O campo potencial precisa de uma grande quantidade de recursos computacionais devido a esta elevada dimensionalidade do número de entradas e a complexidade das suas equações. Esta desvantagem pode tornar o método inviável devido à necessidade de hardware mais robusto e oneroso. Neste artigo, o campo potencial é apresentado de forma simplificada, pois se considera que apenas o alvo esteja em movimento. Na figura 3 é apresentada a trajetória do robô, assim como todas as variáveis necessárias para a determinação da velocidade e direção do robô. Na figura 3 temos que os vetores relativos à velocidade e as posições relativas entre o robô e o alvo correspondem as variáveis utilizadas nas equações 1 e 2. Para simplificar o modelamento será considerado nos cálculos apenas um alvo a ser atingido. Para descrever o sistema são utilizadas as seguintes notações: XOY: coordenadas globais no plano de trabalho; palvo ε R2: posição do alvo; valvo ε R2: velocidade do alvo; p ε R2: posição do robô; v ε R2: velocidade do robô; pra = palvo - p: Posição relativa do robô ao alvo; Ψ: ângulo of pra; θalvo: ângulo of valvo; θ: ângulo of v. 2.3.1 Planejamento de Velocidade do Robô Como o planejamento de velocidade está sendo feito para um robô da categoria sumo, foi considerado que a influência do obstáculo é baixa. Portanto, é considerado que não há força de repulsão, consequentemente somente o potencial de atração é utilizado para planejar a velocidade do robô. Na figura 3 são apresentados os ângulos formados entre o robô e o eixo horizontal e entre o eixo horizontal e a trajetória projetada pelo alvo. Além disso, é apresentado o ângulo entre o alvo e o eixo horizontal e os vetores velocidade de cada elemento participante. Considerando que os vetores v, vtar e prt, apresentados na figura 3 formam um triângulo, teremos a partir da lei dos cossenos, que: || || || (|| || || |||| || ) || (1) Nesta equação, se deve assumir que vtar e ||prt|| são diferentes de zero. A direção do robô, segundo (L. HUANG, 2009) é dada pela equação 2, sendo que esta representa o ângulo que o robô faz com o eixo x. || || (2) Nas equações 1 e 2 temos que ε1 é uma constante empírica que corresponde ao fator de escala do potencial atrativo, e quanto maior o seu valor maior será a velocidade determinada para o robô. 2.4 Simulações da Trajetória de um Robô da classe Sumô Autônomo Foi realizada uma simulação no software MATLAB para validar o método de planejamento de caminhos utilizado. Nesta simulação foi estabelecido um ambiente que representa o deslocamento do objeto e do robô dentro de um círculo com diâmetro de 152 centímetros, como é apresentado na figura 5. Nesta representação o alvo primeiramente move-se em linha reta com uma aceleração de 8 m/s2. Isto ocorre até que o robô encontre o alvo. No momento que o alvo alcança a sua velocidade máxima, o movimento torna-se linear com velocidade constante até que encontre um determinado ponto no espaço. A partir desse ponto o alvo começa a escapar do robô em vez de tentar encontrar ele, se movimentando de forma sinodal, com uma aceleração de 8 m/s2. Na simulação o alvo é inicialmente colocado na posição [50 114] enquanto o robô está na posição [50 38]. Estas posições foram escolhidas, pois a mínima distância entre o robô e o alvo no inicio do combate é de 24 centímetros. Portanto, a simulação foi inicializada com o robô e o alvo colocados em lados contrários no centro do raio do círculo. A máxima velocidade estabelecida para o alvo é de 20 cm/s, que é a velocidade média alcançada pela maioria dos robôs usados na competição. O obstáculo é representado pela borda do círculo e a velocidade dele é zero (ROBOCORE). Figura 3. Representação do Posicionamento do Robô em Relação ao Alvo (L.HUANG, 2009) Este movimento do alvo foi designado de forma que se obtivessem algumas possibilidades de movimento do robô oponente durante a partida. O robô oponente é considerado como sendo o alvo nesta simulação. No primeiro momento, o alvo está se movimentando na direção do robô, o que ocorre 3 enquanto o movimento do alvo é em linha reta. Quando o alvo começa a se movimentar de forma sinodal corresponde ao momento em que o robô oponente está tentando escapar. Neste momento o alvo tenta dificultar a percepção do robô que está tentando encontrá-lo, realizando seu movimento na forma de parábola. Na figura 5 é apresentado o movimento que o robô descreve para encontrar o alvo. Para melhor ilustrar o movimento que o alvo descreve, é apresentado na figura 6 o movimento do alvo de forma ampliada. Figura 8. Velocidade do robô com o alvo se movimentando com velocidade variável. Robô Alvo Figura 5. Trajetória descrita pelo robô até encontrar o alvo A partir deste ambiente foram gerados dois gráficos, o primeiro relativo à posição entre o robô e o alvo e o segundo correspondente a velocidade do robô. Estes gráficos são gerados em relação ao tempo e são representados nas figuras 7 e 8, respectivamente. Figura 6. Trajetória descrita pelo alvo A maior velocidade que o robô poderá ter será de 51 cm/s, portanto foi estabelecido o valor de 0,5 para o fator de escala. Este valor foi estabelecido, pois um valor maior que 0,5 faria com que o robô tivesse que se movimentar com uma velocidade superior a máxima velocidade estabelecida. Isto pode ocasionar danos nos motores impossibilitando o movimento do robô. Com os valores estabelecidos para a velocidade e o fator de escala tem-se que o tempo necessário para encontrar o alvo é de 2,261 segundos. O torque máximo do robô com estes parâmetros é de 4,52 N.m, o que permite ao robô carregar um objeto com um peso 5 vezes superior ao seu. Portanto, este robô poderá carregar até 15 quilogramas, já que a sua massa é de 3 quilogramas. Com relação à figura 8, esta mostra a variação da velocidade do robô durante o movimento, que é dividida em três partes. A primeira parte do movimento corresponde ao momento em que apenas o alvo está se deslocando. A segunda parte do movimento corresponde ao instante em que o robô começa a se deslocar, e termina apenas no momento que o robô alcança a sua velocidade máxima. Quanto à terceira parte do movimento, corresponde ao momento em que o robô se deslocará de acordo com as diretrizes estabelecidas pelo campo potencial. Cada parte do movimento será descrita mais detalhadamente a partir da análise dos gráficos das figuras 9, 10 e 11. Na figura 9 é apresentada a primeira parte do movimento, no qual as rodas do robô estão deslizando, sendo que nesse momento o robô não realiza nenhum deslocamento no espaço. O robô fica com as rodas derrapando durante um intervalo de tempo de 0.015 segundos, sendo que a sua velocidade final durante esse primeiro momento será de 0.1766 cm/s. Esta será a velocidade na qual o robô começará a se deslocar. X: 0.015 Y: 0.1766 Figura 7. Distância relativa entre o robô e o alvo, com o alvo se movimentando com velocidade variável. Com relação ao tempo que leva para o robô encontrar o alvo, este depende do fator de escala para potencial atrativo (ε1), sendo que quanto maior o seu valor maior será a velocidade do robô. Entretanto, o valor desta constante é limitado pelo motor utilizado para locomoção do robô, pois há uma velocidade limite que o robô pode alcançar. O motor utilizado para determinar a velocidade máxima do robô foi o PITTMAN (PITTMANEXPRESS, 2013) com uma razão de redução de 29,5:1. Portanto, de acordo com as equações apresentadas por (MEGGIOLARO, 2006), a maior velocidade permitida para o robô será de 51 cm/s. 4 Figura 9. Representação do intervalo de tempo no qual as rodas do robô ficam derrapando O movimento que o robô realiza é uniformemente acelerado, e sua aceleração inicial é dada pela equação apresentada por (MEGGIOLARO, 2006). Esta aceleração corresponde ao momento onde o robô fica derrapando, sendo que o valor determinado foi de 11.772 m/s2. A segunda parte do movimento ocorre desde o momento em que as rodas pararam de deslizar até o momento em que o robô alcança uma velocidade superior a velocidade que é estabelecida pelo campo potencial. O intervalo de tempo em que isto ocorre é de 0.036 segundos. Durante este momento, o robô estará acelerando de acordo com a equação apresentada por (MEGGIOLARO, 2006) para aceleração sem escorregamento. O valor obtido foi de 12.5 m/s2. A terceira parte do movimento é dividida em duas, sendo que ambas correspondem ao momento em que o robô atua sobre as condições impostas pelo campo potencial. A diferença entre elas é que primeiramente o alvo está se movimentando com velocidade constante, e depois com velocidade variável, como é apresentado nas figuras 10 e 11. A terceira parte do movimento inicia-se quando o robô alcança a sua velocidade máxima, que é de 51 cm/s, o mesmo alcança esta velocidade em um intervalo de tempo de 0.041 segundos. A partir desse instante o robô passa a ter a sua velocidade e direção definidas pelo método de campo potencial. Figura 10. Velocidade do Robô quando o Alvo está se Movimentando com Velocidade Constante Figura 11. Velocidade do Robô quando o Alvo está se Deslocando com Velocidade Variável 3 APLICAÇÃO Como já foi comentado anteriormente, este método será aplicado em um robô da categoria sumo, de forma que se possa aprimorar a percepção do mesmo em relação ao ambiente e o oponente. O robô possuirá treze sensores ultrassom dispostos lado a lado com um ângulo de inclinação de 15°, o que é definido devido ao ângulo de abertura do sinal emitido pelo sensor, que é de 15°. Esta configuração será utilizada para cobrir os 180° da visão frontal do robô, e os sensores com este ângulo de abertura foram escolhidos devido a granulometria ser menor. A granulometria menor do ângulo de abertura permite uma percepção mais acurada do ambiente. A localização do sensor que detectou algum objeto será adicionada ou subtraída do ângulo ψ. Na figura 12 é apresenta uma representação de como estes sensores ficarão dispostos. O sensor ultrassônico utilizado é o HC – SR04 (ULTRASONIC RANGING MODULE HC SR04), o qual tem um alcance de até 4 metros. 1 1 Figura 12. Representação da Disposição dos Sensores; 1 – Ângulo de Abertura dos Sensores 4 CONCLUSÃO Este artigo apresentou o método de camadas, que foi o método utilizado para a construção do robô. Neste artigo foram enfatizadas somente as camadas eletrônica e computacional. Na camada computacional apresentada foi enfatizado o método de campo potencial. O método do campo potencial foi utilizado para planejar a velocidade e a direção do robô. O método do campo potencial foi investigado através de uma simulação do ambiente da competição. A simulação foi desenvolvida no software MATLAB. Através da simulação realizada nota-se que o método é bastante efetivo, pois mesmo com uma velocidade relativa pequena, o robô consegue encontrar o seu alvo em apenas 2,261 segundos. Isto ocorre mesmo se considerando que o alvo está em movimento e tentando fugir de seu perseguidor, que no caso, é o robô. Este método pode ser utilizado em qualquer tipo de robô, independentemente do ambiente onde esteja, já que leva em consideração o coeficiente de atrito entre o pneu e a superfície em contato assim como o torque necessário para a movimentação do robô. Futuramente espera-se implementar na indústria, em ambientes desestruturados ou semiestruturados, dos quais temos informações limitadas quanto à disposição estática ou dinâmica dos objetos, através da combinação desta técnica com redes neurais. AGRADECIMENTOS Agradecemos a Dra. Ranoyca Nayana Alencar Leão e Silva e aos alunos de Engenharia Elétrica da UFPI pelo apoio na confecção da ponte H elaborada pelo grupo de pesquisa LABIRAS. REFERÊNCIA BIBLIOGRÁFICA FARIA, Gedson; MARTINS, Priscila da Silva; PEREIRA, Mauro Conti. Time de Robôs controlado por Campos Potenciais.Anais do XXVI Congresso da SBC, pág. 443-448, (2006). 5 FILHO, Daniel O. Basconcello. “Pont-H 12V 40 Amperes”. Disponível em <http://www.robotizando.com.br/artigo_ponte_h_pg1. php> Acessado em 3 de Março de 2013. GILAT, Amos. MATLAB com Aplicações em Engenharia. 2ª ed, Bookman, (2006). INTERNATIONAL RECTIFIER. “irf3205.PDF, IRF 3205 HEXFET® Power MOSFET”. L. HUANG, Velocity planning for a mobile robot to track a moving target — a potential field approach, Robotics and Autonomous Systems 57 (2009) 55–63. MATLAB. Disponível em <http://www.mathworks.com/products/matlab/index.ht ml> Acessado em 29 de março de 2013. MEGGIOLARO, Marco Antônio. Tutorial em Robôs de Combate. Equipe RioBotz, UFRJ, 2006. PEREIRA, Levi C.A; SOBRINHO, Elionai G.A.; CHASE, Otávio A. Método de Desenvolvimento de um Robô Móvel Diferencial Didático. UFPA, 2010. PITTMANEXPRESS. (2013, July) Disponível em <http://www.ametektip.com/Ametek/PublicPDF/Pittma nExpress.pdf> Acessado em Julho de 2013. ROBOCORE. Disponível em < http://www.robocore.net/modules.php?name=Forums&f ile=viewtopic&t=3979> Acessado em 03 de junho de 2013. ULTRASONIC RANGING MODULE HC – SR04. Disponível em < http://www.micropik.com/PDF/HCSR04.pdf> Acessado em 20 de maio de 2013. 6