Caminho de construçãoIntermediárioUm ou dois fins de semana

Construa um robô mini sumo: preensão, cunha e detecção de borda

Um robô mini sumo que procura o oponente, o empurra para fora do anel e para sozinho na borda branca, em vez de dirigir para fora da borda.

Esquema técnico de Construa um robô mini sumo: preensão, cunha e detecção de bordaCLEARANCE FIELD

O que você está construindo

Dois robôs, um anel e nenhum sensor apontado para alguma coisa além do outro e do piso. O que ainda estiver dentro no final vence.

É o objetivo mais simples deste site, mas não é o projeto fácil que parece, porque o sumo é o único robô em que a mecânica decide o resultado e o código só precisa não destruí-la. Todas as outras construções aqui recompensam algoritmos melhores. Esta recompensa uma cunha mais afiada.

Essa inversão vale experimentar uma vez. É também por isso que a ordem de construção abaixo passa o primeiro dia em aritmética e o último em comportamento, o contrário de como a maioria das pessoas começa.

Os três números que decidem tudo

A força de empurrão é 5,9 N, e seus motores poderiam fazer 25 N. Um robô de 500 g com pneus de silicone tem tração limitada por um fator de quatro. A tração não é a restrição e nunca será; portanto, construa até o limite de peso, coloque cada grama sobre as rodas motrizes e destine a capacidade dos motores à relação de transmissão, não à potência.

Uma cunha que levanta 40% do oponente dá 2,3× o empurrão dele. O peso que ela tira dele fica em você, então a razão é (1+f)/(1−f) e cresce muito. Nenhuma outra mudança isolada chega perto.

Você pode rodar a cerca de 0,8 m/s. Não porque os motores acabem, mas porque 25 mm de borda mais 25 ms de latência são todo o espaço de parada que existe. A maioria dos primeiros robôs tem uma relação de transmissão que produz o dobro dessa velocidade e perde para a borda, não para o oponente.

Essas três frases são todo o projeto. Tudo abaixo explica como chegar a elas.

Lista de materiais

O mini sumo tem uma classe formal: área de 10 × 10 cm no início, máximo de 500 g, em um anel de 77 cm com borda branca de 2,5 cm. As regras definem a lista de peças.

Peça Qtd. Custo aproximado Observações
Arduino Uno ou Nano 1 US$ 5 Um Nano cabe muito melhor na área de 10 cm
Sensores de refletância IR 2–4 US$ 5 Detecção de borda. Pelo menos um em cada canto da frente
VL53L0X 2–3 US$ 10–15 Detecção do oponente. Feixe estreito vence sonar em um anel
Motores N20 com encoder 2 US$ 16 Alta relação de torque — 1:100 ou mais reduzida. Velocidade não é o objetivo
TB6612FNG 1 US$ 3
Chassi com cunha de aço 1 US$ 10–25 A cunha é a arma; o aço também é o lastro
Pacote de bateria 1 US$ 10 Também é massa útil — coloque sobre as rodas motrizes
Pneus de silicone ou de alta aderência 2 US$ 5 A melhoria de maior valor da lista

Total: aproximadamente US$ 65–90.

Há duas observações que decidem lutas, e não apenas fazem o robô funcionar.

A massa fica sobre as rodas motrizes, até o limite. Força de empurrão é atrito, e atrito é o coeficiente vezes a carga normal. Cada grama que não está sobre um pneu motriz é desperdício, e por isso robôs de sumo chegam a exatamente 500 g e colocam quase toda essa massa em duas rodas.

Os pneus importam mais do que os motores. Um robô que atingiu seu limite de tração não ganha nada com mais torque — as rodas simplesmente giram. Passar de plástico rígido (µ ≈ 0,4) para silicone (µ ≈ 1,2 ou mais) quase triplica a força de empurrão disponível por cinco dólares, algo que nenhuma melhoria de motor iguala.

Ordem de construção

1 — Decida primeiro a massa e os pneus. Eles definem sua força de empurrão antes de existir uma única linha de código. Mire no limite de 500 g, com a massa baixa e sobre as rodas motrizes; use pneus de silicone ou uretano macio, não os que vieram com o kit do chassi. µ 1,2 contra µ 0,7 oferece 72% mais empurrão e custa o preço de um conjunto de rodas.

2 — Escolha a relação de transmissão para obter torque e verifique a corrente de travamento. O sumo vive na extremidade de torque da curva do motor, em torno de 0,8 m/s na roda, e não nos 1,5 que um kit de chassi pressupõe. Depois calcule quanto dois motores consomem quando estão travados — cerca de 3 A — e planeje a bateria para isso, não para a corrente de cruzeiro. Uma luta inteira é um travamento sustentado.

3 — Faça-o parar na borda, sozinho no anel. Este é o marco. Monte sensores de refletância nos dois cantos da frente, tão à frente quanto possível enquanto ainda virem a linha branca, calibrados para o anel real em vez da sua mesa. Dirija em velocidade máxima contra a borda, cinquenta vezes, de todos os ângulos. Até isso ser perfeitamente confiável e repetível, não há motivo para adicionar um oponente — um robô que se expulsa sozinho perde sem nunca ser empurrado.

4 — Leia os sensores de borda a cada passagem do laço. Quatro quintos da sua distância de reação estão esperando a próxima iteração do laço, e uma única leitura de distância bloqueante representa 20 ms de cegueira exatamente no momento errado. Tempo não bloqueante é o aumento de velocidade mais barato disponível.

5 — Adicione detecção do oponente. Um VL53L0X à frente e, opcionalmente, mais dois inclinados para fora a 45°. O feixe estreito importa: um sensor ultrassônico em um anel encontra principalmente o anel.

6 — Escreva o comportamento como estados explícitos. Procurar, avançar, empurrar, recuar, com o reflexo de borda tendo prioridade sobre todos. Este é um exemplo típico para uma máquina de estados finita, porque a verificação da borda precisa rodar em todos os estados e não pode existir nenhum caminho no código em que ela não rode.

7 — Construa a cunha por último e itere nela para sempre. É a parte com maior impacto e a mais fácil de mudar.

O comportamento, em um parágrafo

Comece com uma espera obrigatória — a maioria dos conjuntos de regras exige cinco segundos. Depois, procure: gire no lugar ou faça um pequeno arco até que o sensor frontal informe algo a cerca de 40 cm. Avance com tudo diretamente contra o oponente, com potência máxima. Empurre até que a distância abra (o oponente se moveu) ou você detecte a borda. Recue em qualquer detecção de borda: primeiro, use a marcha à ré no máximo; depois, pare e vire de volta para o centro do anel. Recuar tem prioridade sobre tudo, de qualquer estado, a qualquer momento.

A parte sutil é que empurrar e estar preso parecem idênticos pelo sensor frontal. Se você tiver encoders, velocidade de roda zero com comando na máxima significa travamento; esse é o sinal para recuar e abordar de outro ângulo, em vez de raspar até a bateria acabar.

Observações dos componentes que importam

A ponta da cunha decide as lutas. Chapa fina de aço ou alumínio, desgastada até formar uma aresta e mantida a uma fração de milímetro do piso por algo rígido. Em uma montagem flexível, ela sobe por cima do oponente em vez de passar por baixo, o que inverte o sinal de todo o cálculo de transferência de peso.

Mantenha a frente baixa. A cunha do oponente aplica uma força para cima na sua borda dianteira, e o quanto ela levanta você depende da altura do seu centro de massa acima dela. Robôs altos são virados por robôs que não conseguiriam empurrá-los com mais força.

Não use rodízio se puder evitar. Massa sobre uma roda que rola livre não produz tração. Duas rodas motrizes e um patim de baixo atrito — um botão de PTFE ou a cabeça arredondada de um parafuso — colocam quase toda a massa trabalhando.

Proteja a fiação. Este é o único robô do site que é deliberadamente usado para bater. Tudo o que fica na parte externa leva pancada; tudo o que fica em um conector se solta.

Redutores metálicos. Conjuntos de engrenagens de plástico perdem os dentes em um robô cuja condição normal de operação é o travamento, e um redutor danificado no meio de uma luta é indistinguível de uma bateria morta.

Como fica um bom resultado

Medição Construção típica Competitiva
Massa 400–500 g 499 g — o limite, exatamente
Fração da massa sobre rodas motrizes 70% Mais de 90%
Coeficiente de atrito do pneu 0,6–0,8 (borracha) 1,2–1,5 (silicone)
Força de empurrão 2,5–4 N 6–7 N
Tempo de reação da detecção de borda 60–100 ms Menos de 30 ms
Distância de parada a partir da velocidade máxima 8–15 cm Menos de 5 cm
Alcance de detecção do oponente 30–40 cm 60–80 cm

O tempo de reação da borda é o número que ganha ou perde lutas, e ele tem um efeito maior do que a força de empurrão. A borda branca do anel tem 2,5 cm de largura. Um robô que viaja a 0,5 m/s cruza essa borda em 50 ms — então uma reação de 100 ms significa que o robô já está fora antes de terminar de decidir que deve parar.

Esse orçamento se divide em tempo de leitura do sensor, período do laço e distância de frenagem. Os três podem ser atacados: consulte os sensores de borda muito mais vezes do que tudo o mais, mantenha o laço de controle apertado e freie em vez de rolar livremente — colocar o motor em curto através da ponte H faz o robô parar muito mais rápido do que apenas remover a alimentação.

Vale expressar o limite de tração como aritmética. Com 500 g em duas rodas motrizes e pneus de silicone com µ = 1,4:

força máxima de empurrão = 0.5 kg x 9.81 x 1.4 = 6.9 N

Além disso, as rodas giram independentemente do torque do motor — e é por isso que um robô de sumo é um problema de tração vestindo a roupa de um problema de motor.

Quando algo dá errado

Sintoma Geralmente
Sai do anel sozinho Velocidade alta demais para o orçamento da borda, ou sensores de borda consultados muito devagar
As rodas giram e o robô não vai a lugar nenhum Tração limitada, como projetado — adicione massa ou troque os pneus
Perde para um robô semelhante A cunha dele passou por baixo da sua; altura livre, não potência
Reinicia no meio de um empurrão Queda de tensão no trilho causada pela corrente de travamento — planeje para o travamento
Vê uma borda que não existe IR ambiente ou anel reflexivo; cubra os sensores e recalibre
Persegue a parede do anel em vez do oponente Feixe largo demais — é isso que o tempo de voo corrige
Cai para trás Sem sensores de borda traseiros
Para na linha e depois sai mesmo assim Virou enquanto ainda estava se movendo; pare completamente primeiro

Seis dessas oito situações são falhas mecânicas ou de detecção, a mesma distribuição que o micromouse mostra e pelo mesmo motivo: o algoritmo é a parte pequena.

Se quiser a geometria de detecção e parada sem a disputa de braços mecânicos, o simulador de desvio de obstáculos executa a mesma aritmética de distância de parada com um sensor frontal, e o robô com desvio de obstáculos é a construção mais simples que compartilha a maior parte destes componentes. Para a teoria da tração por baixo de tudo, o caminho de controle de motores começa no dimensionamento e termina na odometria.

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 / 18 concluídos

100%
Tutorial

Descubra o que limita sua força de empurrão

25 min

Abrir tutorial
Componente

Adicione sensores IR voltados para baixo

Componente

Ver componente
Componente

Adicione detecção do oponente

Componente

Ver componente
Componente

Construa um chassi de 10 × 10 cm

Componente

Ver componente
Montagem

Faça-o permanecer no anel

Construção

Objetivo

Vença um embate de empurrão

Objetivo

Componentes

Tutoriais deste caminho

Perguntas frequentes

O que é mini sumo?

Uma classe de combate em que dois robôs autônomos tentam se empurrar para fora de um anel circular, sem armas e sem dano por contato. O mini sumo limita o robô a 500 gramas e a uma área de 10 por 10 centímetros, com altura ilimitada, e o anel é um disco preto de 77 centímetros com uma borda branca de 25 milímetros pintada ao redor. Uma luta termina quando o corpo de um robô toca o piso fora do anel, o que acontece muito mais vezes por dirigir para fora da borda do que por ser empurrado para fora.

Por que existe um limite de peso se robôs mais pesados empurram mais forte?

Porque é exatamente esse o ponto. A força de empurrão em um robô pequeno é limitada pelo atrito — é o coeficiente de atrito vezes o peso sobre as rodas motrizes, e esse número é apenas cerca de um quarto do que os motores poderiam entregar. Limitar a massa limita o empurrão e impede que a classe vire um concurso de quem comprou os maiores motores. Também significa que cada participante deve ser construído no limite, porque dentro das regras a massa é o recurso; abrir mão de 100 gramas é abrir mão de 20% do seu empurrão.

Preciso de encoders nos motores?

Não para um primeiro robô. O sumo não exige odometria — nada precisa saber onde está no anel, apenas se está prestes a sair. Os encoders ficam úteis depois para detectar que você está travado contra um oponente, em vez de dirigindo livremente; esse é um estado realmente diferente, e seu código de comportamento gostaria de conhecê-lo. Comece sem eles e adicione quando a máquina de estados precisar da informação.

Ultrassônico ou tempo de voo para encontrar o oponente?

Tempo de voo, em um anel. Um feixe ultrassônico se espalha por cerca de 15 graus e reflete no piso e em qualquer superfície próxima, então um robô em busca encontra paredes, mesas e a própria borda do anel. Um VL53L0X tem um cone estreito e lê em cerca de 20 milissegundos sem interferência acústica. A alternativa clássica é um par de sensores IR analógicos de curto alcance, inclinados para fora, que são baratos e rápidos, mas enxergam oponentes escuros muito depois dos claros.

A que velocidade o robô realmente deve dirigir?

Mais devagar do que você quer. Com 25 milissegundos de latência entre leitura e freio e pneus de silicone, um robô com o sensor de borda 40 milímetros à frente do eixo pode rodar a cerca de 0,98 metro por segundo antes de não conseguir mais parar dentro da borda — e, como uma inversão brusca faz as rodas deslizarem para o coeficiente cinético menor, cerca de 0,8 metro por segundo é o número honesto. A maioria dos primeiros robôs é construída para um metro e meio por segundo e perde todas as lutas para a borda, não para o oponente.

Por que meu robô perde para um com aparência idêntica?

Quase sempre pela frente. Dois robôs de mesma massa e mesma aderência empurram com a mesma força até um conseguir passar por baixo do outro, e levantar 40% do peso do oponente faz seu empurrão alcançar 2,3 vezes o dele — porque o peso que você levanta é somado à sua tração e retirado da dele. Esse efeito é maior do que qualquer mudança de motor, pneu ou bateria disponível, e é decidido por uma fração de milímetro de altura livre na ponta da cunha.