segunda-feira, 4 de fevereiro de 2019

Encontrando o valor X de giro do robô.

Programar um robô para girar um determinado ângulo sem você conhecer nada sobre o robô, pode ser um desafio. Muitas vezes somos levados a testar valores até achar um padrão que nos satisfaça, mas é possível encontrar um valor coerente para tal desafio. Por isso hoje iremos desenvolver um valor inicial padrão baseado em uma rotação de 360 graus do robô para você fazer seus testes com ele, pois mesmo usando cálculos matemáticos, ainda existem forças como o atrito que modificam o valor padrão encontrado. Vamos começar com um robô educador que possua a roda básica do EV3 (5,6 x 2,8 cm) e que possua um eixo total de 15 cm, conforme descrito na imagem abaixo:


A primeira coisa que precisamos entender é o que o robô faz quando usa-se o bloco Pilotagem e o valor de Direção:100, onde temos um dos motores girando para um lado e o outro motor para o outro, conforme a imagem abaixo:


Com isso temos duas coisas a serem calculadas em separado: o valor do comprimento da circunferência descrita pelo movimento de 360º do robô e o valor de quantos graus corresponde 1 centímetro do comprimento da roda e que devem ser multiplicados ao final. 


Vamos começar por encontrar o valor em graus que correspondem a um centímetro do comprimento da roda. Use o valor obtido anteriormente (https://matematicanarobotica.blogspot.com/2019/02/em-busca-da-precisao-para-programar-seu.html) que nos diz que 360 graus equivale a distância percorrida de 17,6 cm e obtemos a partir da divisão de 360 por 17,6 o valor de 20,45 graus. Guarde esse valor pois usaremos ele ao final.
O próximo passo é calcular o comprimento da circunferência descrita pelo robô nesse giro de 360 graus. Já fizemos isso anteriormente no post indicado acima, e vamos refazer o mesmo processo, só que usando o valor de raio de 6,1 cm. Mas você deve estar se perguntando o porque desse valor, já a metade do diâmetro 15 cm é 7,5 cm. A resposta para isso advém de que não podemos considerar toda a largura da roda de 2,8 cm já que durante o processo de giro do robô, essa roda larga sofre um processo de arrasto (atrito) e convencionamos tomar o valor central de cada uma das rodas como o limite máximo da circunferência descrita pelo robô. Descontando 1,4 cm de cada lado obtemos o raio de 6,1 cm. Em seguida, calculando o comprimento da circunferência de raio 6,1 cm obtemos o valor de 38,33 cm.
Conforme falamos acima, multiplicando os valores de 20,45 (graus correspondentes a cada cm de roda) com 38,33 (comprimento da circunferência descrita pelo robô) obtemos o valor de 783,85 (use apenas 784) que será o primeiro valor a ser jogado como fator do seu MyBlocks de giro de robô. Agora é fazer uma bateria de testes, porque o resultado matemático não corresponde 100% a realidade que tem outros atributos envolvidos como o atrito (diferentes pesos de robô, roda e tipos de superfície vai nos gerar diferentes coeficientes de atrito). Nos nossos testes conseguimos um valor bem abaixo do esperado, de 705 para deixar claro. O método matemático serve para dar uma noção de um valor a iniciar a bateria de testes e economizar tempo para outras tarefas mais complexas. Até a próxima!

Nenhum comentário:

Postar um comentário