Table des matières:

MyPetBot (un bot qui vous suit) : 10 étapes (avec photos)
MyPetBot (un bot qui vous suit) : 10 étapes (avec photos)

Vidéo: MyPetBot (un bot qui vous suit) : 10 étapes (avec photos)

Vidéo: MyPetBot (un bot qui vous suit) : 10 étapes (avec photos)
Vidéo: удивительный | умный | домашнее животное | бот 2024, Novembre
Anonim
Image
Image
MyPetBot (un bot qui vous suit)
MyPetBot (un bot qui vous suit)
MyPetBot (un bot qui vous suit)
MyPetBot (un bot qui vous suit)

Ai est l'une des plus belles applications des mathématiques. Il s'agit essentiellement d'un ensemble d'opérations de matrices optimisées pour correspondre au résultat que vous recherchez. Heureusement, il existe des tonnes d'outils open source qui nous permettent de l'utiliser.

J'ai eu l'idée à l'origine il y a longtemps lorsque je travaillais sur une cascade désactivée par le jet des passants. J'utilisais des capteurs à ultrasons et j'ai découvert trop tard qu'ils ne fonctionnent pas très bien lorsqu'ils sont mouillés… Ce n'était pas une expérience amusante. Nous avons fini par utiliser un gros bouton sur lequel les gens appuyaient s'ils voulaient passer. Ça s'est bien passé car il faisait chaud et les gens adoraient se mouiller, mais le problème est resté dans ma tête… Comment détecter les gens et activer une réaction.

Je raconte cette histoire parce que je tiens à souligner que ce principe peut être utilisé pour des tonnes d'autres applications ! Suivre votre visage avec un jouet n'est que l'un d'entre eux. Pour les installations interactives, vous pouvez faire n'importe quoi. Vous pouvez utiliser un modèle pour détecter si un visage sourit. On pouvait compter le nombre de chiens dans un parc. Vous pourriez fermer vos stores lorsque des gens passent. Ou… faites un contrôleur pour votre base nintendo sur la position de votre corps…. Vous pouvez télécharger de nombreux autres modèles d'IA qui font tout type de choses.

Il existe quelques tutoriels sur la façon de faire fonctionner l'inférence Ai avec Raspberry Pi. Je suis ici pour vous apprendre comment faire l'intégration du trou dans une unité de travail autonome. Dès que votre robot démarrera, il lancera les programmes nécessaires.

Fournitures

  • Robot de parallaxe: j'ai choisi ce robot parce que je l'avais traîné, mais n'importe quel robot qui peut être contrôlé avec un arduino fera le travail.
  • Raspberry pi: Je recommande au moins le raspberry pi 3B+.
  • Intel Neural Stick: Le taux d'inférence passe d'un par seconde à 8. Vous en avez vraiment besoin si vous voulez faire de l'IA dans un Raspberry Pi.
  • Banque d'alimentation: le moyen le plus simple de gérer l'alimentation. Fonctionne avec le raspberry pi 3B+, vous voudrez peut-être vérifier qu'il fonctionne avec un pi 4.
  • Picamera: J'aime utiliser la picamera au lieu d'un usb.

Étape 1: Assemblage du Rover

Assemblée Rover
Assemblée Rover
Assemblée Rover
Assemblée Rover
Assemblée Rover
Assemblée Rover

Le but du tutoriel concerne principalement le logiciel, je ne veux donc pas trop entrer dans les détails du rover. Cela fonctionne avec ce robot, mais cela pourrait vraiment fonctionner avec n'importe quel autre matériel. Cela n'a même pas besoin d'être pour un rover, vous pouvez l'utiliser pour une caméra à capteur de mouvement.

  1. Trouvez-vous un véhicule contrôlé par Arduino.
  2. Enveloppez-y une banque d'alimentation.
  3. Enveloppez-y un Raspberry Pi.
  4. Collez la picamera avec un léger angle vers le haut.
  5. Connectez tout ensemble.
  6. Voila !

Étape 2: Raspbian

framboise
framboise
framboise
framboise

J'utilise un raspberry pi, mais il n'y a aucune raison de ne pas utiliser un autre linux… à vous de voir. Je pourrais sortir une image plug and play pour graver une carte SD, j'y arriverai si suffisamment de personnes sont intéressées.

Installer le Raspbian: Vous pouvez installer le Raspbian Buster Lite. Nous n'allons pas utiliser le bureau… Seulement la connexion ssh Secure Shell.

Connectez-vous à votre Pi: vous pouvez d'abord vous connecter à votre raspberry pi avec une connexion Ethernet

Configurez votre wifi: vous pouvez maintenant configurer votre connexion sans fil

Étape 3: OpenVino

OpenVino
OpenVino

OpenVino est une excellente bibliothèque prise en charge par Intel. Ils ont fait un excellent travail en compilant des exemples de modèles et ils ont rendu la plupart des frameworks IA compatibles. Vous avez besoin de cette bibliothèque pour l'Intel Neural Stick.

Installation de Python3: vous devez installer python 3.

Installation d'OpenVino: Une fois cela fait, vous verrez une ligne "[setupvars.sh] OpenVINO environment initialized" à chaque fois que vous vous connecterez au raspberry pi.

OpenVino est une extension d'opencv. Pour le tester, vous pouvez lancer python3 et importer cv2.

tapez dans le shell:

python3

tapez en python:

  • importer cv2
  • cv2._version_

La dernière ligne doit renvoyer '4.1.2-openvino' ou n'importe quelle version d'openvino. si si dit opencv votre installation n'a pas fonctionné…

Étape 4: Téléchargez le code

Télécharger le code
Télécharger le code

Tout d'abord, nous installons git. Tapez dans le shell:

sudo apt-get install git

Ensuite, nous pouvons passer au dossier Documents et télécharger le code:

  • cd ~/Documents/
  • git clone

Étape 5: Suivez-moi (Python)

Suivez-moi (Python)
Suivez-moi (Python)

C'est le rôle avec lequel tu veux jouer. Faites si vous suivez! Faites-lui peur ! Suivez votre chien ! Faites-lui reconnaître les expressions du visage !! Harcèle ton chat !!! Tout ce que tu veux.

Vous trouverez quatre dossiers principaux: Arduino, Deployment, Player et FollowMe:

Arduino: Plus d'informations à ce sujet dans la section suivante

Déploiement: C'est ici que j'ai mis l'interface utilisateur. En ce moment, j'ai codé un simple bouton marche/arrêt et une petite visionneuse de caméra avec un contrôle juste amusant.

Lecteur: destiné à être utilisé sur votre ordinateur de bureau. Pour avoir examiné la sortie du bot !

FollowMe: le module qui fait le vrai plaisir

Je mettrai plus de détails sur github, pour n'avoir qu'un seul endroit pour mettre à jour. C'est l'endroit pour le code

Étape 6: Téléchargez les modèles

Les modèles d'inférence ne sont pas inclus dans le code car ils sont assez gros. Mais vous pouvez trouver de nombreux exemples en utilisant le modèle OpenVino Zoo

Vous pouvez utiliser le téléchargeur de modèles ou aller directement jeter ce lien. Dans mon cas, je n'ai pas pu utiliser le téléchargeur de modèles de mon installation Raspberry Pi…

Copiez ensuite le modèle dans un dossier nommé Modèles avec:

  • cd ~/Documents/Suivez-moi
  • Modèles mkdir
  • Modèles de CD
  • wget
  • wget

Vous avez toujours besoin du.xml et du.bin.

Vous pouvez télécharger n'importe quel modèle que vous voulez… Mais vous devrez changer le code. S'amuser!

Étape 7: Arduino

Arduino
Arduino

Nous devons télécharger le code à l'étape précédente. Le code de l'arduino est dedans !

Le code est destiné à piloter deux servos continus, si vous choisissez une configuration différente, vous devez modifier le code.

Il fait essentiellement deux choses. Il communique avec l'ordinateur et il active les servos à la vitesse sélectionnée.

Je pourrais utiliser la sortie du raspberry pi directement pour contrôler les moteurs… mais les arduinos fonctionnent mieux (Ils ont un vrai générateur de fréquence). De plus, je voulais décharger le raspberry pi autant que possible pour accélérer l'inférence.

Étape 8: interface graphique

IHM graphique
IHM graphique
IHM graphique
IHM graphique

Rien d'extraordinaire… Pourtant. Je pourrais ajouter d'autres éléments comme la vue en direct ou les commandes de mouvement. Mais en attendant, un simple démarrage et arrêt fera l'affaire.

Si vous voulez le tester, vous devez le lancer depuis le répertoire FollowMe Level puis l'appeler depuis python3:

  • cd ~/Documents/Suivez-moi
  • Déploiement python3/FollowMe.py

Ensuite, vous pouvez accéder à l'interface dans votre navigateur en tapant:

192.168.0.113:8000

avec la bonne adresse IP bien sûr.

Il y a aussi une visionneuse vidéo avec des commandes… mais pas avec une inférence fonctionnelle

Déploiement python3/StreamVideo.py

Étape 9: Service

C'est ce qui fait que le Rover fonctionne tout seul. Un service est un programme exécuté en arrière-plan de l'ordinateur sans utilisateur. Assurez-vous que TOUS VOS CHEMINS sont absolus et que vous disposez des droits appropriés si vous utilisez des fichiers et que le service fonctionnera correctement.

Pour exécuter un script python en tant que service, vous devez référencer le script dans un fichier de service. Le fichier de service se trouve dans le code téléchargé depuis git dans le dossier Deployment. Le nom est FollowMe.service.

Pour le copier, tapez ce qui suit dans le shell:

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

La première fois que vous copiez le fichier, vous devez mettre à jour systemctl… ou redémarrer:

sudo systemctl démon-recharger

Et pour commencer:

sudo systemctl démarrer FollowMe

Vous pouvez également utiliser les commandes stop, enable et disable. Les deux derniers sont pour un changement d'état persistant.

Petite explication….

Openvino a besoin de chemins supplémentaires dans les variables système pour fonctionner. Malheureusement, l'installation normale ne fonctionnera pas en tant que service. Vous avez donc besoin de ce fichier pour définir les variables.

Notez que mon installation est pour python 3.7 donc il y a une variable que vous devrez peut-être ajuster… Bonne chance !

Ce fichier référence le script python dans le chemin absolu:

/home/pi/Documents/FollowMe/Déploiement/FollowMe.py

Étape 10: C'est tout ! S'amuser

Commentaires? toujours le bienvenu

Conseillé: