Drone autônomo com Jetson: como a IA escolhe alvos

Drone autônomo com Jetson: como a IA escolhe alvos

2>O dia em que um chip da Nvidia escolheu quem morre

Quando li a reportagem do Olhar Digital sobre o drone russo guiado por IA que matou três civis em Zaporizhzhia, meu primeiro instinto não foi de surpresa técnica — foi de responsabilidade profissional. Porque esse tipo de sistema não é ficção científica: é basicamente o mesmo pipeline de visão computacional que eu e milhares de devs montamos todos os dias em projetos de varejo, agricultura e segurança. A diferença é o dataset de treinamento e quem aperta o gatilho.

Segundo o Olhar Digital, o drone carregava um módulo com chip da Nvidia (provavelmente da linha Jetson, usada amplamente em robótica) e não tinha criptografia. Isso significa que qualquer engenheiro com acesso físico aos destroços pôde ler o código, ver as imagens de referência e entender como a IA escolheu os alvos — neste caso, tanques de propano em um posto de gasolina. Vou destrinchar isso do ponto de vista de quem constrói sistemas desse tipo todos os dias.

O que realmente aconteceu do ponto de vista técnico

O fluxo, como descrito pelas autoridades ucranianas e pelo The New York Times, é exatamente o que chamamos de human-on-the-loop com seleção autônoma de alvo final:

  • Planejamento da missão: operador humano define área geral (o posto de gasolina) ewaypoints.
  • Navegação: o drone segue rota pré-programada, geralmente com GPS + odometria visual.
  • Terminais homing: nos últimos metros, um modelo de visão computacional classifica objetos e escolhe o “alvo de maior valor” baseado no treinamento.
  • Impacto: detonação por contato, sem confirmação humana.

Reparem: não é Terminator. É um classificador YOLO rodando em um Jetson Orin Nano, com um modelo fine-tunado para reconhecer cilindros pressurizados, veículos militares e agrupamentos humanos. Eu monto pipelines funcionalmente idênticos para detectar pragas em plantações ou peças defeituosas em linhas de produção. O que muda é a saída do modelo.

O stack que provavelmente estava nesse drone

Não tenho acesso ao firmware, mas com base no que foi relatado (chip Nvidia, módulo compacto, ausência de criptografia, reconhecimento visual em tempo real), o hardware e software quase certainly seguem este perfil:

  • Computador de bordo: Nvidia Jetson Orin Nano ou Xavier NX — os mesmos que usamos em robótica educacional. Custam entre US$ 200 e US$ 600.
  • Câmera: sensor CMOS pequeno, provavelmente com lente olho de peixe para compensar vibração.
  • Framework: TensorRT + modelo YOLOv8 ou um custom CNN exportado para ONNX.
  • Treinamento: dataset rotulado com imagens térmicas e RGB de alvos esperados.
  • Telemetria: rádio não criptografado operando em frequências ISM — daí os ucranianos terem conseguido interceptar.

O ponto mais perturbador para nós, devs, é o último item. Módulos sem criptografia em drones de combate indicam que o time de engenharia priorizou latência e custo sobre segurança — exatamente o anti-padrão que a maioria dos devs evita em produção, mas que ainda vemos em projetos entregues “ontem”.

Na Prática: montando o pipeline de terminal homing

Para vocês entenderem a simplicidade técnica, vou reproduzir um pipeline reduzido do que esse tipo de sistema faz na fase final do voo. Isso é didático, não reproduzível em ambiente operacional real — e reforço: não estou ensinando a construir armas autônomas. Estou mostrando como o código que devs escrevem para detectar produtos em prateleiras é estruturalmente igual ao de um sistema de seleção de alvo.

# terminal_homing_simulation.py
# Pipeline didático de classificação de alvo com TensorRT + Jetson
import cv2
import numpy as np
import tensorrt as trt
import pycuda.driver as cuda

# 1. Carregar modelo treinado para reconhecer "alvos de alto valor"
def load_engine(engine_path):
    with open(engine_path, "rb") as f:
        runtime = trt.Runtime(trt.Logger(trt.Logger.WARNING))
        return runtime.deserialize_cuda_engine(f.read())

# 2. Pré-processamento do frame (normalização para 640x640)
def preprocess(frame, size=640):
    img = cv2.resize(frame, (size, size))
    img = img.astype(np.float32) / 255.0
    return np.transpose(img, (2, 0, 1))[np.newaxis, :]

# 3. Inferência
def detect(engine, context, frame):
    input_data = preprocess(frame)
    # alocação de buffers CUDA omitida por brevidade
    outputs = engine.run(context, input_data)
    return outputs

# 4. Loop de seleção de alvo
def select_terminal_target(cap, engine, context, classes_of_interest):
    ret, frame = cap.read()
    if not ret:
        return None
    
    detections = detect(engine, context, frame)
    best_target = None
    best_confidence = 0.0
    
    for det in detections:
        confidence = det['confidence']
        class_name = det['class']
        
        # Filtra apenas classes treinadas para engajar
        if class_name in classes_of_interest and confidence > best_confidence:
            best_confidence = confidence
            best_target = det
    
    return best_target

# Uso didático
if __name__ == "__main__":
    # Em um drone real, "classes_of_interest" viria do treinamento militar.
    # Em aplicação civil, seria ["produto_vencido", "praga", "defeito_visivel"]
    classes = ["tanque_propano", "veiculo_militar", "aglomeracao"]
    
    cap = cv2.VideoCapture(0)  # ou stream do CSI camera no Jetson
    engine = load_engine("target_classifier.engine")
    context = engine.create_execution_context()
    
    target = select_terminal_target(cap, engine, context, classes)
    print(f"Alvo selecionado: {target}")

Esse é o coração do problema. A função select_terminal_target() decide o que será atingido sem nenhum humano revisar a saída. Em logística, ela ordena um reabastecimento. Em segurança patrimonial, ela aciona uma câmera de zoom. Em um drone de combate, ela escolhe o ponto de impacto. O código é o mesmo. O contexto é o que define a moral.

O que devs precisam internalizar sobre isso

Sempre que alguém me pede um sistema de “IA que decide sozinha”, eu faço três perguntas antes de escrever uma linha de código:

  1. Quem é responsável se a decisão automática causar dano? Em ML tradicional, o modelo é produto; em sistemas autônomos, o modelo é agente.
  2. O modelo tem “human-on-the-loop” ou “human-out-of-the-loop”? A diferença é se existe veto humano antes da ação irreversível.
  3. O dataset é auditável e representativo? Modelos de visão treinados em datasets enviesados matam proporcionalmente mais pessoas negras — isso já foi documentado em sistemas de policiamento preditivo.

No caso de Zaporizhzhia, a resposta para a pergunta 1 morreu junto com Tetiana Bubynets, de 19 anos. A IA escolheu um tanque de propano. Estilhaços não discriminam.

Erros comuns que devs cometem em sistemas autônomos

Trabalho com sistemas críticos há anos, e esses são os erros que mais aparecem — e que, em escala menor, já causaram acidentes industriais e financeiros:

  • Confiar demais na acurácia do teste. Um modelo com 95% de acurácia erra 1 em cada 20 decisões. Em 1.000 missões, são 50 erros. Em aplicação médica ou militar, isso é inaceitável.
  • Esquecer do adversarial input. Uma camiseta com estampa específica pode enganar classificadores de pessoas. Em segurança, isso é vetor de ataque.
  • Não implementar fallback. Todo sistema autônomo precisa de um modo degradado seguro. Se a câmera falhar, o drone deve pairar e pousar, não continuar missão às cegas.
  • Ignorar telemetria pós-decisão. Em drones comerciais, a gente loga tudo para análise de incidentes. Módulos sem criptografia são convite ao desastre — e ao adversário.
  • Escalar antes de validar em domínio. Testar em ambiente controlado não captura ruído do mundo real. Esse erro custa vidas em carros autônomos e em drones.

O lado que ninguém fala: a criptografia que faltou

O detalhe mais importante para nós, devs, foi o que os ucranianos revelaram: os módulos não estavam criptografados. Isso permitiu que peritos lessem o firmware, vissem as imagens carregadas e reconstruíssem o comportamento do modelo.

Em qualquer sistema crítico moderno, isso seria demissão sumária do time de segurança. Mas revela um padrão: na corrida armamentista, Rússia e Ucrânia estão lançando drones em ciclos de semanas, não meses. Segurança é cortada por prazo. E esse atalho tem consequência direta para civis em solo.

Para devs que trabalham em projetos sensíveis, a lição é dura: criptografia de firmware e telemetria não é feature premium, é requirement mínimo. Se você consegue ler o bitstream, o adversário também consegue — e ele não vai usar o conhecimento para fins acadêmicos.

FAQ — O que devs realmente perguntam sobre isso

Um drone desses é realmente autônomo ou tem humano controlando?
No caso reportado, o humano definiu a área (posto de gasolina), mas a IA escolheu o alvo específico (tanque de propano) com base em reconhecimento visual. Isso é autonomia parcial, não completa — o que torna o debate ético ainda mais traiçoeiro, porque humanos podem alegar que “não escolheram o alvo”.

Qual o chip Nvidia mais provável usado nesse drone?
A linha Jetson (Orin Nano, Orin NX ou Xavier NX) é a mais provável. São SOCs com GPU integrada, otimizados para inferência de modelos de visão em baixa potência (7–25W). Custam entre US$ 200 e US$ 1.500, dependendo do modelo.

É possível detectar e neutralizar esse tipo de drone com software?
Sim. Sistemas de defesa como o Ukrainian Sky Sentinel usam classificação RF + visão computacional para identificar drones inimigos. O problema é a escala: defender contra milhares de unidades autônomas exige automação pesada também do lado defensivo.

Por que a IA escolheu um tanque de propano e não pessoas?
O treinamento priorizou dano material por meio de explosão secundária. Tanques de propano detonam com violência desproporcional ao seu tamanho, multiplicando efeito. O modelo foi treinado para maximizar “kill chain probability”, não para minimizar dano colateral — e isso é uma decisão humana de design, não falha técnica.

Como dev evitar trabalhar em projetos que viram armas autônomas?
Exija cláusulas contratuais de uso final, revise o dataset de treinamento, pergunte sobre o “human-in-the-loop” e recuse projetos sem auditoria ética independente. Na minha experiência, empresas sérias já têm esse comitê. As que não têm geralmente não valem o risco de carreira.

Gostou? Me segue no GitHub e deixa um comentário se tiver dúvida ou quiser aprofundar algum ponto.

Y

Yuri Sousa

Front-End Developer / Designer

Desenvolvedor apaixonado por criar experiências digitais acessíveis e visualmente perfeitas. Escrevo sobre desenvolvimento web, design e tecnologia.