Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Construindo Tanque LEGO Autônomo de Baixo Custo com NVIDIA Jetson Nano e Isaac SDK

Construindo Tanque LEGO Autônomo de Baixo Custo com NVIDIA Jetson Nano e Isaac SDK

Neste guia demonstro como transformar kit LEGO EV3 padrão em robô tracked totalmente autônomo, alimentado por NVIDIA Jetson Nano, Isaac SDK, LiDAR YDLIDAR-X4 e câmera visão Pixy2. Resultado é alternativa budget-friendly aos designs de referência Carter e Kaya, ainda retendo todas capacidades avançadas de percepção e planejamento da stack robótica NVIDIA.

Vá para Parte 8 ou Parte 10 para demo completa de navegação autônoma.

Projeto consiste nos seguintes componentes:

Por Que Isaac SDK e Não ROS?

Por Que Peças LEGO?

Escolher este caminho introduz alguns desafios:

Parte 1: Começando

1. Instalar Isaac SDK

2. Reconhecimento de Voz (Opcional)

3. Imagem EV3dev

Grave última imagem ev3dev-stretch em cartão microSD ou microSDHC. microSDXC não suportado pelo brick EV3.

4. Cross-Compiler ARM para ev3dev

sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi 

Como Ubuntu 18.04 (host e Jetson) usa GLIBC 2.28 enquanto ev3dev usa GLIBC 2.24, devemos compilar com linking dinâmico exceto para math library. Ajuste arquivo jetson-ev3/toolchain/CROSSTOOL accordingly, ou use imagem Docker Debian 9.

5. Workspace Jetson + EV3

git clone https://github.com/andrei-ace/jetson-ev3.git 

Edite jetson-ev3/WORKSPACE para apontar para seu path Isaac SDK:

local_repository( name = 'com_nvidia_isaac', path = '/home/andrei/ml/isaac' ) 

E atualize path toolchain em jetson-ev3/toolchain/CROSSTOOL:

# edit with your path to the toolchain linker_flag: '-L/home/andrei/ml/jetson-ev3/toolchain' 

6. Conectar Jetson Nano com EV3

Use cabo USB-A para mini-USB. SSH no EV3 do Jetson:

ssh user@ev3dev.local 

Senha padrão: maker.

7. Tutorial Ping-Pong

Codelet "Ping-Pong" do Isaac demonstra comunicação inter-processo. Adapte para enviar mensagens entre Jetson e brick EV3.

Build servidor EV3:

bazel build --config=ev3dev //apps/ev3/ping_pong:ev3_pong 

Deploy cliente no Jetson:

<YOUR-ISAAC-INSTALL>/engine/build/deploy.sh --remote_user <YOUR-USER-JETSON> -p //apps/ev3/ping_pong:ping_pong-pkg -d jetpack43 -h <YOUR-JETSON-IP> 

Rode ambos binários. EV3 deve falar mensagens "Ping".

Parte 2: Controlando Motor do Isaac

Usando mesmos princípios, controle motores EV3 via driver Isaac custom que imita base Segway RMP. Ev3ControlServer roda no EV3:

bazel build --config=ev3dev //packages/ev3/ev3dev:ev3_control_server ev3_control_server ev3dev.local:9000 

Integre servidor com Sight virtual joystick para teleoperação manual.

Parte 3: Construindo o Robô

Chassi segue de perto design oficial EV3 Track3r da LEGO. Case Jetson Nano vem de este repo GitHub.

Parte 4: Arquitetura Apps Isaac

App Isaac consiste em três camadas:

Abaixo exemplo conciso de app navegação controlada por voz. (Veja pasta voice_control completa para todos JSON files.)

{ 'name': 'voice_control', 'modules': [ '//apps/ev3/voice_control:voice_control_goal_generator', '@com_nvidia_isaac//packages/navigation', '@com_nvidia_isaac//packages/planner' ], 'config_files': [ 'apps/ev3/voice_control/model/isaac_vcd_model.metadata.json' ], 'config': { ... }, 'graph': { 'nodes': [...], 'edges': [...] } } 

Subgraphs são reutilizáveis; stack navegação compartilhada across todas variantes robô.

Parte 5: Rodando Isaac Apps no EV3

Driver EV3 implementa mesma API da base Segway RMP, permitindo reuso direto de apps Isaac existentes como controlador joystick, GMapping distribuído e stack navegação completa.

Parte 6: Calibração Odometria

Odometria precisa é crítica para operação autônoma. Ev3ControlServer expõe duas chamadas RPC:

Usando raio roda e track width, calcule velocidade linear como:

if left == right: v = left elif left == -right: v = 0 else: v = (left + right) / 2 

Velocidade angular derivada do diferencial velocidades rodas dividido por track width.

Parte 7: Navegação Autônoma Controlada por Voz

Subgraph detecção voz escuta microfone e emite voice_command_id quando palavra-chave treinada detectada. Treinei RNN em três palavras — "jetson", "left", "right" — usando Isaac Speech Toolkit. Modelo resultante baixável do repositório projeto.

Quando comando recebido, GoalGenerator publica goal ao global planner. Exemplo, rotacionar robô 90° esquerda:

auto proto = rx_detected_command().getProto(); int id = proto.getCommandId(); auto goal_proto = tx_goal().initProto(); goal_proto.setStopRobot(true); goal_proto.setTolerance(0.1); goal_proto.setGoalFrame('robot'); ToProto(Pose2d::Rotation(90), goal_proto.initGoal()); tx_goal().publish(); 

Na prática, sistema funciona confiavelmente no modo 10 W. A 5 W latência inferência (≈30 ms) é alta demais para operação suave.

Parte 8: Mapeamento com GMapping Distribuído

Mapeamento realizado em host PC enquanto EV3 fornece dados LiDAR. Deploy app GMapping distribuído no Jetson:

./engine/build/deploy.sh --remote_user andrei -p //apps/ev3:gmapping_distributed_ev3-pkg -d jetpack43 -h 192.168.0.218 

No host rode:

bazel run apps/ev3:gmapping_distributed_host 

Garanta arquivo JSON host aponta para IP correto Jetson:

'tcp_subscriber': { 'isaac.alice.TcpSubscriber': { 'port': 5000, 'host': '192.168.0.218' } } 

Após alguns minutos exploração, grid ocupação high-res gerado.

Conclusão

Com investimento modesto em peças LEGO Technic, YDLIDAR e câmera Pixy2, você pode construir robô tracked totalmente autônomo que alavanca poder total do Isaac SDK da NVIDIA. Sistema suporta comandos de voz, mapeamento LiDAR-based e percepção GPU-accelerada, tornando plataforma versátil para pesquisa, educação e projetos hobby.

Todo código, arquivos config e modelos treinados disponíveis no repositório projeto.

Processo de manufatura

  1. Carro Autônomo Donkey Car: IA TensorFlow MobileNetV2 para Coleta de Lixo
  2. Raspberry Pi Tank: Adicionando Sensores de Alcance e Rumo para Navegação Precisa
  3. JQR Quadrúpede Autônomo: Robô de Pernas DIY para Navegação e Resgate Autônomos
  4. Preparando para Futuro Autônomo: Como Donos de Frotas Podem Sair na Frente
  5. Modelo Premium 1:24 de Tanque de Batalha Principal Tipo 99 Usinado CNC
  6. Robô Autônomo Domina Entrada por Portas – Um Avanço para Robôs de Serviço
  7. Robôs Montadores Autónomos da NASA Constroem Habitats Lunares
  8. Tanques de Reserva: Propósito, Tipos e Benefícios
  9. Diretrizes Críticas de Segurança para Soldagem de Tanques de Combustível
  10. Como Consertar Vazamento de Combustível no Carro: Guia Rápido e Seguro