Como fazer com que duas faixas contínuas (faixas do tanque) se movam na mesma velocidade?

12

Eu tenho alguns motores Vex 269 conectados a um Arduino Duemilanove . Esses motores executam alguns passos do tanque Vex . Os dois motores são executados como servos no Arduino usando a Servo Library. O problema que estou tendo é que as duas faixas não giram na mesma velocidade quando enviadas o mesmo ângulo servo. Isso se deve claramente ao fato de as esteiras contínuas terem tantas partes móveis que é difícil obter forças de atrito idênticas em cada esteira.

Como faço para que eles movam a mesma velocidade? Eles deveriam estar se movendo na mesma velocidade, com o mesmo ângulo servo, independentemente do atrito e os motores Vex 269 simplesmente não são fortes o suficiente (o que significa que eu deveria usar o Vex 369 ou outro motor mais potente)? É melhor apenas tentar e errar o tempo suficiente para descobrir qual ângulo de servo resulta em velocidades iguais em cada um? Devo mexer com as faixas até que tenham atritos quase idênticos? Muito obrigado!

golmschenk
fonte

Respostas:

12

A resposta curta é que você precisa de um melhor controle (feedback) para fazer isso. Praticamente, você nunca poderá calibrar o sistema com precisão suficiente para seguir em frente por mais de algumas dezenas de comprimentos do corpo do robô. Depois de discar perfeitamente para um conjunto de condições, o ambiente ou as condições de desgaste serão alteradas e você precisará ajustá-lo novamente.

Condições de superfície, tração, atitude, isolamento do motor (a distribuição de energia elétrica para cada motor a partir de uma fonte de energia comum) e muitos outros fatores operacionais em tempo real afetam a velocidade de avanço de cada lado do bot.

Dependendo dos seus requisitos de precisão, algo tão simples quanto uma bússola magnética (posicionar o robô o mais à frente possível para maximizar sua capacidade de resposta) pode ajudá-lo a manter um rumo durante o movimento para frente.

Frequentemente, não é criticamente importante precisamente em qual direção o seu bot está se movendo; em vez disso, ele simplesmente precisa progredir em alguma tarefa (siga o líder, procure um alvo, etc.).

Se você postar mais detalhes sobre seu robô e seus objetivos de design, eu poderia ajudá-lo ainda mais.

Uma observação sobre a colocação do sensor magnético

Mas, por que eu deveria "posicionar [o transdutor magnético] o mais à frente possível"? Não é verdade que o ângulo é o mesmo? Sim. Isso é verdade, mas a magnitude do campo magnético da Terra não é. Você está em um local diferente na Terra .

Imagine que seu robô é tão grande quanto um carro. Se você se senta no centro geométrico do carro e o carro gira em torno de você, suas coordenadas na Terra não mudaram; somente sua atitude tem. Agora, se você está sentado sobre o capô do carro eo carro repete o movimento anterior, tanto a sua atitude e suas coordenadas mudaram. Mudar as coordenadas produz uma diferença maior na magnitude do campo da Terra do que na rotação sozinha.

Nos últimos anos, trabalhei em uma equipe com o Dr. Dwight Veihland, da Virginia Tech, sem dúvida o principal especialista do mundo em sensores magnéticos de sensibilidade super alta. Se eu cristalizasse o corpo de seu trabalho ( como neste exemplo ), eu diria que ele está sempre em busca de maiores proporções sinal-ruído na detecção de magnitudes cada vez menores.

Qualquer aumento na diferença de magnitude que você pode gerar facilita a vida do seu sensor ... e, nesse caso, você o obtém gratuitamente. Vários robôs de grande desafio da DARPA colocaram o sensor de GPS adiante pelo mesmo motivo.

DrFriedParts
fonte
1
Para expandir a excelente resposta do DrFriedParts, consulte "Controle PID" para descobrir mais sobre um tipo de controle de feedback comumente usado. Pergunta para DrFriedParts: como o posicionamento da bússola o mais à frente possível maximiza a capacidade de resposta? O ângulo será o mesmo, independentemente, embora eu possa ver se afastando das peças e motores de metal para ajudar.
usar o seguinte código
@ViennaMike - Obrigado! =) Expandi minha resposta para cobrir sua pergunta com mais detalhes do que cabia em um comentário.
DrFriedParts 08/12/12
Alguém conhece um artigo publicado com experimentos mostrando que a localização do sensor magnético no robô melhora a precisão da orientação devido à posição no campo magnético da Terra? Parece plausível, mas não estou convencido de que o efeito seria perceptível. Eu suspeitaria que apenas afastar o sensor de outros eletrônicos do robô teria um efeito maior. Eu ficaria interessado em ver os resultados de quaisquer experiências sobre isso!
golmschenk
@ViennaMike - O controle PID dos motores não pode ser usado aqui para resolver o problema. Você não possui nenhum feedback de posição / velocidade / corrente; portanto, não há nada para inserir no loop de controle do PID. O PID fornece um meio de abordar suavemente um valor-alvo, mas você não possui um valor-alvo sem feedback adicional sobre a posição do robô / velocidade de rotação diferencial das duas faixas (por exemplo, você precisa de mais informações do que o cenário / robô do OP providenciar).
DrFriedParts
@golmschenk - Veja o primeiro grande desafio da DARPA e os documentos divulgados pelas várias equipes da universidade sobre o posicionamento da antena GPS nos veículos (mesmo conceito) ... ou veja os documentos relevantes da Veihland. O efeito é substancialmente visível nas velocidades do carro ou com sensores magnéticos de escala de minutos. É perceptível em praticamente qualquer escala robótica prática com GPS.
DrFriedParts