ARKONPROJECT
ROBÓTICA DISTRIBUÍDA / EXPLORAR · EXPERIMENTAR · COMPREENDER

Como é que vários drones
se entendem?

Pensa num bando de pássaros a mudar de direção. Cada um acompanha os que estão perto. Os drones também podem seguir regras locais para se organizar — ou receber lugares definidos numa formação.

Explorar comunicação: LoRa, Wi-Fi e outras redes →
PARA COMEÇARExperimenta separar o grupo

Escolhe Consenso e reduz o raio de comunicação. Repara nas linhas e no número de grupos. Depois aumenta o raio. Se a experiência estiver em pausa, usa “Retomar” ou avança um passo.

O desenho mostra uma experiência visual. Os controlos podem ser usados com o teclado; as explicações descrevem o comportamento. Usa “Ler resultados” para ouvir as métricas atuais sem anúncios contínuos.

BOIDS / MOVIMENTO COLETIVOSIMULAÇÃO 2D
O teu navegador não suporta canvas. As explicações dos algoritmos estão disponíveis abaixo.
—Alinhamento
—Vizinhos por drone
24Drones

Três regras. Um movimento.

Dar espaço

Vizinhos demasiado próximos afastam-se. As setas mostram a reação.

Seguir a direção

Cada drone ajusta a direção para acompanhar os vizinhos.

Ficar com o grupo

Um drone isolado aproxima-se do centro dos seus vizinhos.

01 / DESCENTRALIZAÇÃO

Ninguém vê o todo.

Em Boids e no consenso, cada agente consulta os seus vizinhos. O comportamento global emerge dessas interações locais.

02 / COMUNICAÇÃO

A rede faz a diferença.

Reduz o raio e observa grupos isolados. No consenso, a convergência para um valor comum depende de uma rede conectada.

03 / DO MODELO AO VOO

Simular é o primeiro passo.

As setas são uma simplificação vista de cima. Não simulamos vento, tamanho das hélices ou atrasos da rede. Um bom resultado aqui não prova que o voo real seja seguro.

Chegar a acordo com os vizinhos

Todos usam uma fotografia dos valores anteriores. Assim, o primeiro drone não altera a informação que os restantes vão ler.

Pseudocódigo · exemplo educativo
enquanto a experiência estiver ativa:
    anteriores = copiar_valores_de_todos_os_drones()
    rede = encontrar_vizinhos_no_raio()
    passo = 0,45 / máximo(1, maior_número_de_vizinhos)

    para cada drone i:
        ajuste = 0
        para cada vizinho j de i:
            ajuste += anteriores[j] - anteriores[i]
        novos[i] = anteriores[i] + passo × ajuste

    aplicar_todos_os_valores(novos)

# Grupos sem ligação podem chegar a acordos diferentes.

Pseudocódigo descreve a lógica. As funções com nomes como “ler sensores” representam trabalho que teria de ser implementado. Este exemplo não é código pronto a executar num robô.

Organizar uma formação

Um planeador atribui destinos. Cada drone aproxima-se do seu e abranda, mantendo distância dos vizinhos.

destinos = escolher_forma(círculo, V ou grelha)
atribuir_um_destino_a_cada_drone(destinos)

para cada pequeno intervalo:
    anteriores = copiar_posições_e_velocidades()
    para cada drone:
        erro = destino - posição_anterior
        correção = atração × erro - travagem × velocidade_anterior
        correção += afastamento_dos_vizinhos_próximos(anteriores)
        atualizar_movimento(correção)

# A separação pode impedir a chegada exata a destinos próximos.
Palavras e siglas, em linguagem simples
GNSS
Sistema global de navegação por satélite. GPS e Galileo são exemplos.
IMU
Unidade de medição inercial: sensores que medem aceleração e rotação.
RTK
Posicionamento cinemático em tempo real: correções que podem melhorar a precisão dos satélites.
VIO
Odometria visual-inercial: combinar imagens e sensores de movimento para acompanhar o percurso.
SLAM
Localização e mapeamento simultâneos: construir um mapa e encontrar-se nele.
UWB
Banda ultralarga: rádio que pode medir distâncias a referências locais.
UGV
Veículo terrestre não tripulado: um robô que se desloca no chão.
EKF
Filtro de Kalman estendido: uma forma de combinar medições e previsões para estimar o estado do veículo.
ROS 2
Robot Operating System 2: ferramentas para ligar programas de sensores, decisões e robôs. Não é um autopiloto.
PID
Controlador proporcional, integral e derivativo: combina correção do desvio, erro acumulado e tendência de mudança.

Na formação, um planeador central escolhe os destinos. Em Boids e consenso, cada drone usa apenas os vizinhos. São formas diferentes de organizar o grupo.

Antes de operar drones reais, confirma as regras da ANAC e da EASA, incluindo as condições para vários drones. Regras e entidades a consultar →

Onde estas ideias aparecem na ciência

Estas leituras ajudam a aprofundar o tema. As nossas experiências são simplificações educativas: não são reproduções dos resultados dos artigos.

1987 / SIGGRAPH / Computer Graphics

Flocks, Herds and Schools: A Distributed Behavioral Model →

Craig W. Reynolds

Ligação ao laboratório: Como movimentos de grupo podem nascer de regras locais. É a ligação mais direta à nossa experiência Boids.

O que não devemos concluir: O artigo trata de comportamento animado. Não estabelece garantias de separação ou de controlo para drones reais.

DOI: 10.1145/37402.37406 · em inglês · acesso ao texto completo pode ser pago

Ver na biblioteca científica →
2007 / Proceedings of the IEEE

Consensus and Cooperation in Networked Multi-Agent Systems →

Reza Olfati-Saber, J. Alex Fax e Richard M. Murray

Ligação ao laboratório: Ajuda a perceber por que a rede de vizinhos importa quando agentes precisam de chegar a acordo.

O que não devemos concluir: A demonstração usa valores escalares, ligações bidirecionais e atualizações ideais; o artigo discute uma classe muito mais ampla de sistemas.

DOI: 10.1109/JPROC.2006.887293 · em inglês · acesso ao texto completo pode ser pago

Ver na biblioteca científica →
2004 / The International Journal of Robotics Research

A Formal Analysis and Taxonomy of Task Allocation in Multi-Robot Systems →

Brian P. Gerkey e Maja J. Matarić

Ligação ao laboratório: Ajuda a separar perguntas como quem pode fazer uma tarefa, quando a faz e como repartir o trabalho.

O que não devemos concluir: É uma referência geral sobre equipas de robôs, não uma implementação específica de drone e UGV. O esquema do site não executa negociação automática.

DOI: 10.1177/0278364904045564 · em inglês · acesso ao texto completo pode ser pago

Ver na biblioteca científica →
Explorar todas as referências científicas →

Para continuar a explorar

Craig Reynolds — Boids (1987) (em inglês) →Olfati-Saber et al. — Consensus and Cooperation (2007) (em inglês) →