Índice:

MyPetBot (um bot que segue você): 10 etapas (com imagens)
MyPetBot (um bot que segue você): 10 etapas (com imagens)

Vídeo: MyPetBot (um bot que segue você): 10 etapas (com imagens)

Vídeo: MyPetBot (um bot que segue você): 10 etapas (com imagens)
Vídeo: Transcreva vídeos em 3 minutos com ChatGPT [MUITO RÁPIDO!] 2024, Novembro
Anonim
Image
Image
MyPetBot (um bot que segue você)
MyPetBot (um bot que segue você)
MyPetBot (um bot que segue você)
MyPetBot (um bot que segue você)

Ai é uma das mais belas aplicações da matemática. É basicamente um monte de operações de matrizes otimizadas para corresponder ao resultado que você está procurando. Felizmente, existem toneladas de ferramentas de código aberto que nos permitem fazer uso delas.

Eu originalmente tive a ideia há muito tempo, quando estava trabalhando em uma cachoeira desativada pelas pessoas que passavam por ali. Eu estava usando sensores de ultrassom e descobri tarde demais que eles não funcionam muito bem quando estão molhados … Não foi uma experiência divertida. Acabamos usando um botão grande que as pessoas pressionariam se quisessem passar. Ficou tudo bem porque estava calor e as pessoas adoravam se molhar, mas o problema ficou na minha cabeça … Como detectar pessoas e ativar uma reação.

Estou contando essa história porque quero salientar que esse princípio pode ser usado para muitas outras aplicações! Seguir seu rosto com um brinquedo é apenas uma delas. Para instalações interativas, você pode fazer qualquer tipo de coisa. Você pode usar um modelo para detectar se um rosto está sorrindo. Você poderia contar o número de cães em um parque. Você pode fechar suas cortinas quando as pessoas estiverem passando. Ou… faça um controlador para sua base nintendo na posição do seu corpo…. Você pode baixar muitos outros modelos Ai que fazem qualquer tipo de coisa.

Existem alguns tutoriais sobre como fazer a inferência de Ai funcionar com o raspberry pi. Estou aqui para lhe ensinar como fazer a integração do orifício em uma unidade autônoma. Assim que seu robô inicializar, ele iniciará os programas necessários.

Suprimentos

  • Robô paralaxe: escolhi este robô porque o tinha por perto, mas qualquer robô que possa ser controlado com um arduino fará o trabalho.
  • Framboesa pi: Recomendo pelo menos o framboesa pi 3B +.
  • Intel Neural Stick: A taxa de inferência vai de um por segundo a 8. Você realmente precisa de um se quiser fazer Ai em um pi framboesa.
  • Banco de energia: maneira mais fácil de gerenciar a energia. Funciona com a framboesa pi 3B +, você pode querer verificar se funciona com a pi 4.
  • Picamera: Gosto de usar a picamera em vez de um usb.

Etapa 1: montagem móvel

Conjunto Rover
Conjunto Rover
Conjunto Rover
Conjunto Rover
Conjunto Rover
Conjunto Rover

O objetivo do tutorial é principalmente sobre o software, então não quero entrar muito em detalhes sobre o rover. Ele funciona com este robô, mas poderia funcionar realmente com qualquer outro hardware. Nem precisa ser para um rover, você pode usar isso para uma câmera com sensor de movimento.

  1. Encontre um veículo controlado pelo Arduino.
  2. Aperte bem um banco de energia para ele.
  3. Enrole um pi de framboesa nele.
  4. Cole a picamera com um leve ângulo em direção ao topo.
  5. Conecte tudo junto.
  6. Voila!

Etapa 2: Raspbian

Raspbian
Raspbian
Raspbian
Raspbian

Estou usando um pi de framboesa, mas não há motivo para não usar outro linux … depende de você. Eu poderia liberar uma imagem plug and play para queimar um cartão SD, irei fazer isso se houver pessoas suficientes interessadas.

Instale o Raspbian: Você pode instalar o Raspbian Buster Lite. Não vamos usar o desktop… Apenas a conexão SSH Secure Shell.

Conecte ao seu Pi: Primeiro você pode se conectar ao seu raspberry pi com uma conexão Ethernet

Configure seu wi-fi: agora você pode configurar sua conexão sem fio

Etapa 3: OpenVino

OpenVino
OpenVino

OpenVino é uma ótima biblioteca com suporte da Intel. Eles fizeram um ótimo trabalho na compilação de modelos de exemplo e tornaram a maior parte do framework ai compatível. Você precisa desta biblioteca para o Intel Neural Stick.

Instalação do Python3: você precisa instalar o Python 3.

Instalação do OpenVino: Uma vez feito isso, você verá uma linha "[setupvars.sh] OpenVINO environment initialized" toda vez que você se conectar ao raspberry pi.

OpenVino é uma extensão do opencv. Para testá-lo, você pode iniciar o python3 e importar o cv2.

digite no shell:

python3

digite em python:

  • import cv2
  • cv2._ version_

A última linha deve retornar '4.1.2-openvino' ou qualquer versão do openvino. se disser opencv sua instalação não funcionou …

Etapa 4: Baixe o código

Baixe o código
Baixe o código

Primeiro, instalamos o git. Digite no shell:

sudo apt-get install git

Em seguida, podemos mover para a pasta Documentos e baixar o código:

  • cd ~ / Documentos /
  • git clone

Etapa 5: FollowMe (Python)

FollowMe (Python)
FollowMe (Python)

Esta é a parte com a qual você quer jogar. Faça se seguir você! Faça com que tenha medo de você! Siga seu cachorro! Faça com que ele reconheça expressões faciais !! Harase seu gato !!! O que você quiser.

Você encontrará quatro pastas principais: Arduino, Deployment, Player e FollowMe:

Arduino: Mais sobre isso na próxima seção

Implantação: aqui é onde coloco a interface do usuário. Agora mesmo eu codifiquei um botão start / stop simples e um pequeno visualizador de câmera com controle apenas para diversão.

Player: Destinado a ser usado em seu PC de mesa. Por revisar a saída do bot!

FollowMe: o módulo que faz a verdadeira diversão

Vou colocar mais detalhes no github, para ter apenas um lugar para atualizar. Este é o lugar para o código

Etapa 6: Baixe os modelos

Os modelos para inferência não estão incluídos no código, pois são muito grandes. Mas você pode encontrar muitos exemplos usando o modelo Zoo OpenVino

Você pode usar o downloader do modelo ou ir diretamente através deste link. No meu caso, não consegui usar o downloader de modelos da minha instalação do raspberry pi …

Em seguida, copie o modelo em uma pasta chamada Modelos com:

  • cd ~ / Documentos / FollowMe
  • Modelos mkdir
  • modelos de cd
  • wget
  • wget

Você sempre precisa do.xml e do.bin.

Você pode baixar o modelo que quiser … Mas você terá que alterar o código. Divirta-se!

Etapa 7: Arduino

Arduino
Arduino

Conseguimos fazer o download do código na etapa anterior. O código do arduino está nele!

O código destina-se a acionar dois servos contínuos, se você escolher uma configuração diferente, terá que modificar o código.

Basicamente, ele faz duas coisas. Ele se comunica com o computador e ativa os servos na velocidade selecionada.

Eu poderia usar a saída do raspberry pi diretamente para controlar os motores… mas os arduinos funcionam melhor (eles têm um gerador de frequência real). Além disso, eu queria descarregar o pi de framboesa o máximo possível para tornar a inferência mais rápida.

Etapa 8: GUI

GUI
GUI
GUI
GUI

Nada extravagante … ainda. Posso adicionar outras coisas, como visualização ao vivo ou controles de movimento. Mas, enquanto isso, um simples início e parada resolverá o problema.

Se você quiser testá-lo, você deve iniciá-lo a partir do diretório FollowMe Level e, em seguida, chamá-lo de python3:

  • cd ~ / Documentos / FollowMe
  • python3 Deployment / FollowMe.py

Em seguida, você pode acessar a interface em seu navegador digitando:

192.168.0.113:8000

com o endereço IP correto, é claro.

Há também um visualizador de vídeo com controles … mas não com inferência de trabalho

python3 Deployment / StreamVideo.py

Etapa 9: Serviço

É isso que faz o Rover funcionar sozinho. Um serviço é um programa executado em segundo plano no computador, sem um usuário. Certifique-se de que TODOS OS SEUS CAMINHOS sejam absolutos e de que você tenha os direitos corretos se usar qualquer arquivo e o serviço funcionará bem.

Para executar um script Python como um serviço, você precisa fazer referência ao script em um arquivo de serviço. O arquivo de serviço está no código baixado do git na pasta Deployment. O nome é FollowMe.service.

Para copiá-lo, digite o seguinte no shell:

sudo cp ~ / Documents / FollowMe / Deployment / FollowMe.service / etc / systemd / system /

Primeira vez que você copia o arquivo, você precisa atualizar systemctl… ou reiniciar:

sudo systemctl daemon-reload

E para começar:

sudo systemctl start FollowMe

Você também pode usar os comandos parar, habilitar e desabilitar. Os dois últimos são para uma mudança persistente de estado.

Pequena explicação….

O Openvino precisa de alguns caminhos extras nas variáveis do sistema para funcionar. Infelizmente, a instalação normal não funcionará como um serviço. Portanto, você precisa deste arquivo para definir as variáveis.

Observe que minha instalação é para python 3.7, portanto, há uma variável que você pode precisar ajustar … Boa sorte!

Este arquivo faz referência ao script Python no caminho absoluto:

/home/pi/Documents/FollowMe/Deployment/FollowMe.py

Etapa 10: É isso! Divirta-se

Comentários? sempre bem-vindo

Recomendado: