Tutorial · Intermediário · 30 min

Planejamento de cobertura: varra um piso inteiro

Chegar a algum lugar e cobrir todo lugar são problemas diferentes. Varreduras aleatórias, em espiral e boustrophedon, comparadas a uma varredura perfeita.

Um problema diferente de chegar a algum lugar

A* encontra uma rota até um objetivo. Um planejador de cobertura precisa tocar em cada célula alcançável, o que muda completamente o objetivo: não há um destino para se aproximar, nenhuma heurística para guiar você, e o sucesso não é binário.

A métrica que substitui esse sucesso binário é a distância percorrida por metro quadrado varrido. Com área de piso A e uma escova de largura w, um robô perfeito varre cada célula uma única vez e nunca repete:

d_optimal = A / w

Um cômodo de 20 m² com uma escova de 250 mm exige 80 m. Todos os números abaixo são múltiplos desse valor, porque o ideal é a única referência que continua válida quando o cômodo muda.

A lei que governa a varredura sem mapa

Um robô que não sabe onde já passou cobre nova área do piso na proporção do quanto ainda está sem cobertura. Isso corresponde a uma equação diferencial cuja solução é:

covered(d) ≈ 1 − e^(−d / d_optimal)

Considere três pontos dessa curva e o comportamento de todo o problema fica evidente:

Cobertura Distância
63% 1,0 × ideal
90% 2,3 × ideal
99% 4,6 × ideal

Os últimos 9% custam mais do que os primeiros 90%. Esse é o problema do coletor de cupons com uma escova acoplada, e é o único fato que explica todos os robôs aspiradores que você já observou.

O que realmente acontece

A teoria pressupõe que cada metro de percurso caia em uma região do piso escolhida independentemente. Um robô real se desloca em linhas retas, portanto metros consecutivos são correlacionados — ele continua revarrendo a área sobre a qual já está. Em medições realizadas em cinco cômodos no simulador de cobertura:

Dois gráficos empilhados. O superior mostra o percentual do piso coberto em função da distância percorrida, dividida pela distância de uma varredura perfeita, para três estratégias medidas e a curva teórica tracejada 1 − e^(−d / d_optimal). A varredura planejada sobe mais íngreme e se estabiliza em noventa por cento; o deslocamento aleatório com rebote sobe mais devagar, mas ultrapassa noventa e nove por cento; a espiral é a mais lenta de todas. O gráfico inferior é um gráfico de barras horizontais com a distância necessária para que cada estratégia alcance cinquenta, noventa e noventa e nove por cento de cobertura; a varredura planejada nunca alcança noventa e nove por cento.
Metade esquerda do painel superior: nada separa as três estratégias na primeira metade do piso. A diferença está no painel inferior — 90% custa 1,3× a distância da estratégia planejada, 2,9× a da estratégia aleatória e 5,5× a da espiral, e somente as duas estratégias não planejadas chegam a 99%. Baixar SVG
Estratégia 50% 90% 99% Termina em
Varredura planejada 0,75× 1,35× nunca 90,4%
Deslocamento aleatório com rebote 0,91× 2,90× 6,76× 99,6%
Espiral + reposicionamento 0,87× 5,54× 10,96× 99,5%

Três pontos dessa tabela valem mais do que o restante desta página.

Na primeira metade do piso, nada importa. As três estratégias apresentam diferenças de até 20% entre si em 50%. Um robô sem sensores e sem memória é realmente tão bom quanto um planejador na primeira metade do trabalho — exatamente por isso que a abordagem barata é viável comercialmente e por isso que observar superficialmente nunca revela a diferença.

O deslocamento aleatório é pior do que a própria teoria previa. São 6,76× contra os 4,61× previstos em 99%, porque um rebote em linha reta continua revisitando o piso que acabou de percorrer. Trate 1 − e^(−d) como um limite otimista, não como uma estimativa.

O planejador nunca conclui a varredura. Ele para em 90,4% e permanece ali, e isso não é um defeito.

Por que o planejador deixa um décimo do piso

Um planejador de cobertura precisa manter o corpo do robô afastado de cada parede e de cada perna de mesa. Por isso, aumenta as dimensões de cada obstáculo pelo raio do robô mais uma margem e planeja dentro do espaço restante. Tudo o que fica fora é piso ao qual o robô nunca poderá chegar.

Na execução medida, 130 das 133 células perdidas pelo planejador estavam a no máximo duas células de uma parede ou de um móvel. Apenas três estavam em piso aberto. As perdas não ficam espalhadas — formam um anel ao redor de cada obstáculo no cômodo.

Isso explica dois recursos presentes em todas as máquinas comerciais:

  • A escova lateral que avança além do chassi. A escova é mais larga que a parte que entra em contato, portanto alcança áreas do piso às quais as rodas nunca chegam.
  • A passagem junto às paredes. É um comportamento executado em uma etapa separada, porque a varredura sistemática não consegue realizá-lo.

O deslocamento aleatório acaba alcancando essas bordas por sorte — sua única vantagem.

Escolhendo as faixas

Para uma varredura sistemática, o único parâmetro real é o espaçamento entre as faixas.

Espaçar as faixas com distância exatamente igual a uma largura de escova deixa uma área não limpa entre elas para qualquer erro de orientação — e nada depois encontrará essa faixa, porque o plano considera o piso concluído. Com 10–20% de sobreposição, as faixas se fecham, ao custo de exatamente essa porcentagem em distância.

Essa sobreposição, somada à distância percorrida para contornar os móveis, explica o valor de 1,35× do planejador. Não é desperdício; é o preço de um plano que funciona em um robô real.

Mais duas escolhas importam mais do que parecem:

  • Percorra as faixas ao longo do eixo longo do cômodo. Cada curva custa tempo e não cobre uma nova área do piso, portanto reduzir à metade o número de faixas reduz à metade o custo das curvas.
  • Planeje o deslocamento entre trechos; não atravesse um trecho para o outro. Quando um móvel divide uma faixa em dois trechos, o robô precisa contorná-lo. Planejar esse deslocamento como o caminho mais curto pelo espaço livre é a diferença entre um plano e um desejo.

Os sensores que cada estratégia exige

Esta é a verdadeira razão para as três existirem.

O deslocamento aleatório precisa de um bit. “Bati em alguma coisa?” Dois interruptores de contato e um gerador de números aleatórios formam o robô inteiro. Sem encoders, mapa, localização nem nada que possa derivar.

A espiral precisa conhecer a distância percorrida desde o centro da espiral atual, que é uma odometria aproximada — suficiente para aumentar um raio, insuficiente para fechar um laço.

Uma varredura planejada precisa saber onde está. Faixas retas, ângulos de giro conhecidos e um deslocamento lateral de uma largura de escova dependem da odometria, e a odometria deriva. Após dez faixas, elas já não estão paralelas. É por isso que máquinas comerciais com planejamento também carregam um giroscópio, uma câmera no teto ou um farol — o planejador é barato, mas a localização que ele pressupõe não é.

Portanto, a estratégia é escolhida pelo orçamento de sensores, não pela elegância do algoritmo. Construa primeiro a versão aleatória: ela funciona, tem vinte linhas e fornece uma linha de base que o planejador precisa superar.

O que isso custa em minutos

Considere o cômodo de 20 m², uma escova de 250 mm e um robô que se desloca a 0,25 m/s:

Estratégia Distância Tempo
Varredura perfeita 80 m 5 min
Planejada 108 m 7 min
Aleatória, até 90% 232 m 15 min
Aleatória, até 99% 541 m 36 min
Espiral, até 99% 877 m 58 min

Uma bateria representa um orçamento de distância. Uma autonomia de uma hora a 0,25 m/s equivale a 900 m, o que cobre confortavelmente um cômodo, mas não três, com estratégia aleatória — e isso, mais do que qualquer ideia algorítmica, impulsionou o mercado de robôs com mapeamento.

Quando dá errado

Sintoma Causa provável
O robô percorre o mesmo laço para sempre Ângulo de rebote determinístico — uma reflexão fixa em um piso retangular forma um caminho fechado
As faixas deixam de ficar paralelas Odometria, não o planejador. Adicione uma referência de orientação
Faixas de piso não varrido entre as passagens Espaçamento definido exatamente na largura da escova, sem sobreposição
Deixa de varrer as bordas dos cômodos Comportamento projetado — adicione uma passagem junto às paredes ou uma escova mais larga
Cobre 90% rapidamente e depois parece parar Também é o comportamento projetado. Observe a curva de cobertura, não o robô
Nunca termina atrás do sofá O deslocamento entre trechos de uma faixa nunca foi planejado
A bateria acaba no meio do cômodo Orçamento de distância excedido; meça a cobertura por metro, não por minuto

Execute as três no mesmo cômodo no simulador de cobertura — arraste os móveis enquanto ele funciona e os números mudam junto. Depois construa o robô de cobertura de cômodo, que começa com a estratégia que não precisa de nada e adiciona sensores apenas onde a medição mostra que vale a pena.

Explore o grafo

Faz parte destas montagens

Projetos e caminhos de aprendizagem que incluem este tutorial.

Leitura complementar

Referências