Caminho de construçãoIntermediárioUm fim de semana

Construa um robô Mecanum que se desloca lateralmente

Um robô que percorre lateralmente um quadrado de 1 m, retorna a menos de 5 cm do início sem girar e mantém o deslocamento na mesma direção pelo piso enquanto você o gira.

Esquema técnico de Construa um robô Mecanum que se desloca lateralmenteBASE_LINKVxVyωzFOUR WHEELS · THREE DEGREES OF FREEDOMROLLERS AT 45° MAKE AN X

O que você está construindo

Um robô de quatro rodas que pode se mover em qualquer direção pelo piso sem precisar girar antes e que pode girar sem alterar a direção de deslocamento. Empurre-o lateralmente por um corredor em que ele mal cabe; mantenha uma câmera apontada para algo enquanto ele contorna o alvo; corrija 3 cm de desvio com passos de 3 cm, em vez de sair em arco e voltar em arco.

Este é o primeiro robô deste site com três velocidades controláveis de forma independente, em vez de duas. Também é o primeiro cuja tração é realmente mais difícil do que seus sensores, e por isso quase toda a construção é formada por motores, encoders e laços de controle.

O teste de aceitação é deliberadamente direto: percorra os quatro lados de um quadrado de 1 m com deslocamento lateral e volte ao ponto inicial a menos de 5 cm, com a orientação inalterada. Nenhum robô de direção diferencial pode sequer tentar esse teste.

O número que conduz o projeto

Tudo nesta construção volta a uma constante:

k = lx + ly

onde lx é metade do entre-eixos (do eixo dianteiro ao traseiro, dividido por dois) e ly é metade da bitola (das rodas esquerda às direita, dividido por dois). Na construção de referência, 75 mm e 85 mm, então k = 0,160 m.

Esse único número acopla a rotação às rodas. Se ele estiver errado, o robô ainda se moverá — mas um comando de rotação puro o faz deslizar pelo piso, e um deslocamento lateral puro descreve uma curva, porque rotação e translação estão se misturando. Meça de centro de roda a centro de roda, não a placa do chassi, que normalmente é mais larga do que você imagina.

Os outros números que vale escrever no chassi com marcador antes de começar:

Grandeza Construção de referência Origem
Raio da roda r 48,5 mm Rodas Mecanum de 97 mm
Contagens por volta da roda 1440 12 CPR × 30:1 × 4 bordas de quadratura
Metros por contagem 212 µm 2πr ÷ 1440
Velocidade máxima da roda V_MAX 0,60 m/s Medida sobre blocos e depois reduzida em 15%
Limite diagonal 0,424 m/s V_MAX ÷ √2, e nenhuma melhoria de motor o remove
Limite de aceleração 5,9 m/s² μg/√2 com μ = 0,85 — a massa se cancela

Lista de materiais

Item Qtd. Custo aproximado Observações
Rodas Mecanum, 80 ou 97 mm 4 £28–70 Compre um conjunto de quatro — duas com os roletes montados para a esquerda, duas para a direita
Motorredutor N20 com encoder, 30:1 4 £9–14 cada Use motores iguais. A faixa útil é de 100–250 rpm na roda
Ponte H dupla TB6612FNG 2 £4–8 cada Um L298N funciona, mas tem queda de tensão de cerca de 3 V; em um pacote 2S, isso custa quase toda a velocidade máxima
Placa de desenvolvimento ESP32 1 £6–12 Quatro canais PWM, quatro pares de pinos de interrupção de encoder e telemetria Wi-Fi sem custo adicional
IMU MPU6050 1 £2–4 Monte-a reta, longe dos motores, na linha central do chassi
LiPo 2S, 1500–2200 mAh, 25C 1 £12–20 Dimensionada pela corrente, não pela capacidade — quatro motores entram em travamento e consomem ~5 A no total
BEC de 5 V ou conversor buck 1 £3–5 Não alimente o ESP32 pelo trilho dos motores
Placa de chassi, 200 × 180 mm 1 £10–25 Acrílico cortado a laser, alumínio de 3 mm ou um chassi que você mesmo fabrique
Suportes de motor, cubos, fixadores 1 conjunto £8–15 Adapte o furo do cubo ao eixo do motor — 3, 4 ou 6 mm
Capacitor de filtro, 470 µF 2 £1 Um em paralelo com o trilho de motores de cada driver

£90–170 no total. As rodas e o fato de haver quatro motores, em vez de dois, explicam a diferença em relação aos £50 de um robô de duas rodas.

Como tudo se conecta

        2S LiPo ──┬── 470 µF ── TB6612FNG #1 ── FL motor ── FL encoder ─┐
                  │                         └── FR motor ── FR encoder ─┤
                  ├── 470 µF ── TB6612FNG #2 ── RL motor ── RL encoder ─┼── ESP32
                  │                         └── RR motor ── RR encoder ─┘   (4 PWM,
                  └── 5 V BEC ──────────────────────────────── ESP32 ──────  8 GPIO,
                                                                   │         I²C)
                                                   MPU6050 ── I²C ─┘

Três decisões de fiação que não são óbvias:

  • O ESP32 tem regulador próprio. Quatro motores partindo juntos provocam um pico de corrente que faz a tensão da bateria cair, e um controlador que compartilha esse trilho sofre queda de tensão e reinicia no meio de um comando. Parece exatamente uma falha de software. Leia o tutorial do orçamento de potência antes de culpar o código.
  • Um capacitor de filtro em paralelo com cada driver. 470 µF perto da placa. Pontes H puxam corrente em rajadas, e a indutância dos fios transforma essas rajadas em picos.
  • A IMU fica na linha central, reta e o mais longe dos motores que a placa permitir. A deriva de guinada já é ruim sem um campo magnético dos quatro motores próximos.

Construa em marcos

Cada um tem um teste. Não avance com uma falha sem resolvê-la — em um robô com quatro motores, as falhas se multiplicam.

1. Rodas instaladas e verificação do X

Parafuse as quatro rodas e fique diretamente acima do robô. Siga a linha dos roletes que você vê no topo de cada roda.

Duas vistas de cima do mesmo robô de quatro rodas, com a frente para cima. No painel superior, intitulado correto, um braço em X, com braço de giro lx mais ly igual a 160 milímetros, e linhas ciano tracejadas estendidas a partir dos roletes visíveis de cada roda cruzam no centro do robô e formam um X. No painel inferior, intitulado errado, um O, com braço de giro do valor absoluto de lx menos ly igual a 10 milímetros, as mesmas linhas das rodas marcadas em vermelho formam um losango ao redor do robô e nunca passam pelo centro. Uma legenda diz para ficar acima do robô e seguir os roletes visíveis no topo.
Marco 1, e os cinco segundos mais baratos de toda a construção. Estenda os roletes que você vê no topo de cada roda: eles precisam se cruzar no meio do robô. Baixar SVG

Teste: essas quatro linhas apontam para o centro do robô e formam um X. Se formarem um losango, troque duas rodas diagonalmente. Aprovação: um X. Esta é uma verificação de cinco segundos que economiza um dia.

2. Cada motor individualmente

Conecte os quatro e escreva um programa que acione uma roda por vez a 40% por um segundo.

Teste: ative cada uma e confirme que a roda correta gira no sentido correto. Aprovação: quatro rodas, quatro direções corretas, nenhum par trocado. Corrija a fiação na montagem, não com sinais de menos no código — você perderá a conta.

3. Encoders

Uma volta de cada roda, feita com a mão.

Teste: imprima a contagem. Aprovação: dentro de 2% de 1440 e positiva quando a roda gira para frente. Uma contagem que salta ou gira para trás significa que você está gerando a interrupção em um canal em vez de dois, ou lendo um volatile long sem desabilitar interrupções.

4. Cinemática sobre blocos

Coloque o robô sobre blocos e comande um deslocamento lateral puro.

Teste: pares diagonais se opõem — dianteiro esquerdo e traseiro direito giram para um lado, dianteiro direito e traseiro esquerdo para o outro. Aprovação: exatamente esse padrão. Depois comande uma rotação pura: o lado esquerdo para um lado, o direito para o outro. Se uma roda discordar, ela está no canto errado e a etapa 1 errou.

5. Um laço de velocidade

Ajuste alimentação direta e depois PI em uma única roda, sobre blocos e depois sob carga.

Teste: comande 0,3 m/s e pressione o pneu com o dedo. Aprovação: a velocidade se mantém e o PWM aumenta visivelmente. Faça isso uma vez corretamente; as outras três são cópias com seus próprios kS e kV.

6. Todas as quatro em linha reta

Quatro laços, 100 Hz, no piso. Comande 3 m em linha reta.

Teste: meça a deriva lateral no final. Aprovação: menos de 20 mm e repetível em três execuções. Com controle aberto, isso normalmente fica entre 80–200 mm e varia a cada vez.

7. Deslocamento lateral de 1 m

Teste: comande exatamente um metro para o lado e meça a distância e a mudança de orientação. Aprovação: dentro de 5 cm e com menos de 3° de mudança de orientação. Uma curva consistente significa que a constante k está errada; uma curva aleatória significa que um laço de velocidade não está mantendo o valor.

8. IMU e orientação pelo campo

Calibre o viés na inicialização e adicione o botão de zeragem da orientação.

Teste: mantenha o comando para a frente e gire o robô com a mão por uma volta completa. Aprovação: ele continua se deslocando na mesma direção pelo piso. Parado, a guinada deriva menos de 3° por minuto.

9. O quadrado

O teste de aceitação. Comande 1 m para frente, 1 m para a direita, 1 m para trás e 1 m para a esquerda, sem comandar rotação em lugar nenhum.

Teste: meça a distância até o ponto inicial e a mudança de orientação. Aprovação: dentro de 5 cm e 3°.

Como fica um bom resultado

Medição Primeira tentativa, com controle aberto Ajustado, com controle fechado
Deriva lateral em 3 m reto 80–200 mm, varia com a bateria Menos de 20 mm, repetível
Precisão do deslocamento lateral de 1 m 10–20 cm, com uma curva visível Dentro de 5 cm
Mudança de orientação durante o quadrado 10–30° Menos de 3°
Velocidade diagonal máxima O que sobrevive à saturação 0,42 m/s — o limite √2, alcançado com limpeza
Velocidade conforme a tensão da bateria cai de 8,4 → 7,0 V Cai ~17% Não muda até os motores saturarem
Erro de odometria durante o quadrado Não vale a pena medir 2–5 cm em um bom piso, muito pior em um piso empoeirado

A última linha é honesta, não decepcionante. Nesta tração, o deslizamento dos roletes é o mecanismo, então a odometria é o número mais fraco do robô, mesmo quando tudo funciona. Inclua essa limitação nas expectativas em vez de tentar eliminá-la.

Observações dos componentes que importam

O sentido de montagem das rodas é uma propriedade do conjunto. Duas rodas compradas separadamente no mesmo anúncio muitas vezes têm o mesmo sentido de montagem. Verifique antes de furar qualquer coisa.

Cada rolete precisa girar livremente. Dê um toque em cada um com a mão antes de instalar as rodas. Um rolete travado transforma aquele canto em uma roda comum apontada 45° fora do alinhamento, de forma intermitente, e parece exatamente um bug de software.

Rodeas Mecanum são pesadas. Cada uma pesa de 180–400 g, então até 1,6 kg do robô são rodas. Essa é massa giratória nas extremidades dos braços de momento, o que faz o robô parecer lento e explica a importância do limite de aceleração.

O piso é um componente. Concreto polido e vinílico ficam em torno de μ = 0,8. Um piso de academia empoeirado, uma camada de spray de cabelo deixado em outro robô ou uma emenda no piso vinílico reduzem isso pela metade localmente, e o robô muda de comportamento ao atravessar. Veja o que μ = 0,25 faz antes de culpar o ajuste.

Quando algo dá errado

Sintoma Causa Correção
Para a frente está bom, mas o deslocamento lateral faz curva e rotação Uma roda no canto errado Verificação do X; o resíduo da cinemática será grande e constante
Desloca-se para o lado oposto ao comando As quatro rodas estão espelhadas Troque o par esquerdo pelo direito
Uma rotação no lugar também produz translação k errado, ou medido no chassi Meça de centro de roda a centro de roda
O robô reinicia quando os quatro motores partem Queda de tensão, não uma falha Regulador separado para o ESP32; capacitores de filtro; verifique a resistência interna da bateria
A diagonal é muito mais lenta que a reta O limite √2 — funcionando como projetado Nada a corrigir
Desvia para fora das curvas sob qualquer controle automático Saturação individual dos motores em vez de reduzir o comando Dimensione o comando pela roda mais limitada
É controlado bem manualmente, mas não funciona de forma autônoma Odometria, não controle IMU para a orientação; mantenha execuções curtas; considere rodas passivas
Uma roda fica sempre saturada Comando excessivo, ou esse motor é o mais fraco Reduza V_MAX para o que as quatro realmente conseguem manter
As contagens do encoder derivam ao longo de minutos Bordas perdidas em alta velocidade Gere interrupções nos dois canais; verifique se a ISR é curta

Para onde seguir

Rodeas passivas. Duas ou três rodas omnidirecionais sem motor, em suportes com mola, com seus próprios encoders. Elas não exercem torque e, portanto, não deslizam; transformam o pior número deste robô no melhor.

Seguimento de caminho holonômico. Pure pursuit e Stanley pressupõem um robô que esterça. Uma base que se desloca lateralmente pode fazer melhor — acompanhe a posição ao longo do caminho e a orientação de forma independente, porque você tem atuadores separados para elas.

Uma câmera em uma base que mantém a orientação. O pareamento natural: um fluxo de visão é muito mais fácil quando a câmera pode permanecer apontada para o alvo enquanto a base se reposiciona. É para isso que o movimento holonômico realmente serve.

ROS 2. Este é o primeiro sistema de tração deste site em que o cmd_vel — cujo linear.y é ignorado explicitamente por um robô de direção diferencial — finalmente tem efeito. Substituir a função de conversão de twist em velocidade das rodas pela versão Mecanum de quatro linhas representa a maior parte do trabalho.

Roteiro do projeto

O caminho de construção

Siga a árvore tecnológica das peças até um robô funcionando. Cada nó é desbloqueado quando seus pré-requisitos são concluídos, e seu progresso fica salvo neste dispositivo.

0 / 17 concluídos

100%
Objetivo

Um robô que se desloca em um quadrado e volta para casa

O projeto inteiro

Tutorial

O movimento holonômico é mesmo o que você quer?

25 min

Abrir tutorial
Componente

Quatro motores com encoders

Motorredutor N20

Ver componente
Caminho de aprendizagem

Movimento holonômico

Caminho de aprendizagem

Abrir caminho

Componentes

Tutoriais deste caminho

Pratique antes de fazer a fiação

Ajuste no simulador ao vivo

O caminho de construção passa por um laboratório no navegador. Acerte o comportamento aqui e depois transfira suas configurações para o robô real.

Perguntas frequentes

Posso construir isso com um Arduino Uno?

Com dificuldade, e o motivo é a quantidade de pinos, não o poder de processamento. Quatro rodas precisam de quatro saídas PWM e quatro encoders em quadratura precisam de quatro pares de pinos com capacidade de interrupção. Um Uno tem seis pinos PWM distribuídos em três timers — e, no momento em que você usa a biblioteca Servo ou tone(), dois deles param de funcionar — e exatamente dois pinos de interrupção externos. Você pode contornar com interrupções de mudança de pino e abrir mão de um encoder, mas passará o fim de semana lutando contra a placa em vez do robô. Um ESP32 ou um Mega 2560 custa algumas libras a mais e elimina completamente o problema. Esta construção usa um ESP32 porque ele também oferece telemetria Wi-Fi, realmente útil ao ajustar quatro laços de controle ao mesmo tempo.

Quanto custa construir um robô Mecanum?

Cerca de £90–170, dependendo do tamanho das rodas e da qualidade dos motores, aproximadamente o dobro de um robô equivalente de duas rodas. Os custos adicionais são previsíveis: quatro rodas Mecanum em vez de quatro simples constituem o maior custo isolado; há também quatro motores em vez de dois, quatro canais de ponte H, quatro cabos de encoder e uma bateria maior, porque quatro motorredutores em travamento consomem o dobro da corrente no pior caso. A troca do controlador pega muita gente desprevenida — reserve o dinheiro desde o começo, não depois de furar o chassi.

Por que meu robô Mecanum anda bem para frente, mas gira quando se desloca lateralmente?

Uma roda está no canto errado, e esse é, de longe, o erro de construção Mecanum mais comum. Para frente parece normal porque as componentes laterais ainda se cancelam em grande parte; é o deslocamento lateral que expõe o problema, porque a roda instalada no lugar errado empurra na direção transversal ao comando, em vez de longitudinalmente. Fique acima do robô, olhe diretamente para baixo e siga os roletes que você vê no topo de cada roda: essas quatro linhas devem apontar para o centro do robô e formar um X. Se formarem um losango, troque duas rodas diagonalmente. Você pode ver exatamente o que uma roda invertida faz, antes de ter uma, na predefinição de uma roda montada ao contrário do simulador.

Preciso da IMU?

Para os testes autônomos, não — o robô fará seu quadrado sem uma. Para controlá-lo manualmente, sim, em cerca de dez segundos depois de pegar o controle. Um robô holonômico pode apontar para uma direção enquanto se move em outra, então uma pessoa perde de vista qual lado passou a ser a esquerda ou a direita quase imediatamente. O controle orientado pelo campo corrige isso com uma matriz de rotação e precisa de um ângulo de guinada de alguma fonte. É uma peça de £2 e seis linhas de código, e toda equipe que pula isso acabou adicionando-a depois da primeira vez que alguém levou o robô contra uma mesa.

Quão precisa é a odometria em uma base Mecanum?

Menos precisa do que nos robôs de duas rodas deste site, e isso não é um problema de ajuste. O deslizamento dos roletes é o mecanismo do movimento lateral, então um encoder de roda mede a roda e não necessariamente o piso. Espere que a navegação estimada para frente seja aproximadamente tão boa quanto em qualquer robô de direção diferencial e que a navegação estimada lateral seja bem pior — alguns por cento em um bom piso, muito mais em um piso empoeirado. Planeje para isso: use a IMU para a orientação, mantenha as execuções autônomas curtas e, se o robô realmente precisar saber onde está, adicione rodas omnidirecionais passivas, que não exercem torque e, portanto, não deslizam.

Este robô consegue empurrar coisas?

Mal. Uma roda Mecanum só gera tração ao longo do eixo de seus roletes a 45°, o atrito limita todo o vetor de força e apenas a componente na direção de rolamento desloca efetivamente o robô — então ele tem cerca de 71% da tração que teria com rodas comuns, sem considerar que a borracha dos roletes costuma ter aderência menor que a de um pneu. Adicionar peso não ajuda, porque mais massa gera proporcionalmente mais atrito e proporcionalmente mais inércia, e os dois se cancelam exatamente. Se empurrar objetos for o objetivo, construa um robô mini sumo com rodas comuns; ele vencerá todas as vezes.