segunda-feira, 18 de outubro de 2010

Projeto: rover com suspensão rocker-bogie

Um dos meus projetos mais antigos mas ao mesmo tempo mais parados é o de um rover autônomo que conseguisse navegar sozinho por longas distâncias. A meta era conseguir ao menos uma volta no quarteirão, sem marcação de qualquer tipo, vencendo os obstáculos do caminho. Tempo não era questão, poderia demorar horas se preciso.

Tendo todos os componentes para a navegação à disposição, GPS, sensores e câmera, a grande questão que surgiu foi o design da parte mecânica. Em mais de um ano testando designs e partes diferentes, optei por usar uma suspensão rocker-bogie, semelhante ao design dos rovers da NASA.
 
A animação abaixo ilustra o funcionamento dessa suspensão.


Um dos desafios com robôs autônomos com rodas é enfrentar obstáculos. Por regra, um robô com rodas e sem suspensão não consegue ultrapassar obstáculos de altura maior do que o raio da roda. Como um obstáculo que esse robô com certeza terá de enfrentar são as guias das garagens e a calçada, caso tenha de descer, qualquer design tinha de levar isso em conta.

Deixando de lado a parte chata envolvida, a suspensão rocker-bogie facilita isso garantindo que todas as rodas mantém contato com o solo. Enquanto uma roda está subindo o obstáculo, as outras fornecem mais tração ajudando a "escalada". Quando a roda frontal e central chegam ao topo, elas ajudam a roda traseira a subir. O corpo é ligado à suspensão em apenas um ponto, preso por um diferencial, garantindo que mantém uma inclinação média em relação ao resto do rover.

Esse design é simples e eficiente, podendo ser construído sem molas ou amortecedores de qualquer tipo. Por outro lado, todas as rodas têm motores, e as rodas frontais e traseiras precisam de servos de controle para virar.



Depois de três protótipos com tubos de PVC para testar a idéia, esse é o estado atual do rover. As rodas de automodelismo com 10cm de diâmetro têm pneu de borracha, fornecendo ótima tração. Dentro de cada uma há espaço mais do que suficiente para embutir um servo de tamanho padrão convertido para rotação contínua. As rodas frontais e traseiras têm os servos de controle e conseguem virar cerca de 120°. O diferencial que liga ao corpo consegui de um carrinho de controle remoto de brinquedo e funciona perfeitamente para o fim.

O corpo foi construído de polietileno de alta-densidade e perfis de alumínio reforçando partes críticas. Decidi construí-lo mais alto do que o normal para facilitar passar por obstáculos pequenos ao invés de precisar escalá-los ou contorná-los.

Infelizmente cometi uma falha de design que provavelmente vai exigir correções complicadas, mas quero vê-lo andando assim e avaliar o quão bem funciona.

Apesar de não ter um vídeo do protótipo antigo em movimento, creio que a foto abaixo ilustra melhor a idéia. As caixas empilhadas alteram a altura sob cada roda, mostrando como todas mantém contato com o chão independentemente disso.


O Arduino estará no limite para este projeto. Dos pinos digitais, 0 e 1 serão para o GPS, 2-7 com os servos de movimentação, 8-11 com os servos de direção e os outros para i2C e sensores. Estou considerando a possibilidade de colocar outro Atmega 328 separado comunicando via i2c apenas para sensores de contato e acelerômetro.

Um comentário:

  1. Poxa, me deu uma grande ideia isso para outra aplicação, valeu.

    ResponderExcluir