Taula de continguts:

MyPetBot (un robot que us segueix): 10 passos (amb imatges)
MyPetBot (un robot que us segueix): 10 passos (amb imatges)

Vídeo: MyPetBot (un robot que us segueix): 10 passos (amb imatges)

Vídeo: MyPetBot (un robot que us segueix): 10 passos (amb imatges)
Vídeo: Основные ошибки при возведении перегородок из газобетона #5 2024, De novembre
Anonim
Image
Image
MyPetBot (un robot que us segueix)
MyPetBot (un robot que us segueix)
MyPetBot (un robot que us segueix)
MyPetBot (un robot que us segueix)

Ai és una de les aplicacions més boniques de les matemàtiques. Bàsicament es tracta d’un munt d’operacions de matrius optimitzades perquè coincideixin amb el resultat que busqueu. Per sort, hi ha un munt d’eines de codi obert que ens permeten fer-ne ús.

Originalment vaig tenir la idea fa molt de temps quan treballava en una cascada desactivada per les persones que passaven el llançament. Feia servir sensors d’ultrasons i vaig descobrir massa tard que no funcionaven gaire quan estan mullats … No va ser una experiència divertida. Vam acabar fent servir un gran botó que la gent premia si volia passar. Va sortir bé perquè feia calor i a la gent li encantava mullar-se, però el problema em va quedar al cap … Com detectar persones i activar una reacció.

Estic explicant aquesta història perquè vull assenyalar que aquest principi es pot utilitzar per a moltes altres aplicacions. Seguir la cara amb una joguina és només un d’ells. Per a instal·lacions interactives es pot fer qualsevol tipus de cosa. Podeu utilitzar un model per detectar si una cara somriu. Es podria comptar el nombre de gossos d’un parc. Podríeu tancar les persianes quan hi passés gent. O … feu un controlador per a la vostra base de Nintendo sobre la vostra posició corporal … Podeu descarregar molts altres models Ai que fan qualsevol tipus de coses.

Hi ha alguns tutorials sobre com fer que la inferència d'Ai funcioni amb raspberry pi. Estic aquí per ensenyar-vos a fer la integració del forat en una unitat de treball autònom. Tan bon punt arrenci el robot, iniciarà els programes necessaris.

Subministraments

  • Robot Parallax: he escollit aquest robot perquè el tenia posat, però qualsevol robot que es pugui controlar amb un arduino farà la feina.
  • Raspberry pi: recomano almenys el raspberry pi 3B +.
  • Intel Neural Stick: la taxa d’inferència va d’un per segon a 8. Realment en necessiteu un si voleu fer Ai en un raspberry pi.
  • Power Bank: la forma més senzilla de gestionar l'energia. Funciona amb el raspberry pi 3B +, és possible que vulgueu comprovar que funciona amb un pi 4.
  • Picamera: m'agrada utilitzar la picamera en lloc d'un USB.

Pas 1: muntatge del Rover

Muntatge del Rover
Muntatge del Rover
Muntatge del Rover
Muntatge del Rover
Muntatge del Rover
Muntatge del Rover

L’objectiu del tutorial es basa principalment en el programari, de manera que no vull aprofundir en els detalls del rover. Funciona amb aquest robot, però pot funcionar realment amb qualsevol altre maquinari. Ni tan sols ha de ser per a un rover, ho podríeu fer servir per a una càmera amb sensor de moviment.

  1. Trobeu-vos un vehicle controlat per Arduino.
  2. Estreny-hi un banc d’energia.
  3. Estreny-hi un pi de gerds.
  4. Enganxeu la càmera fotogràfica amb un lleuger angle cap a la part superior.
  5. Connecteu-ho tot.
  6. Voila!

Pas 2: Raspbian

Raspbian
Raspbian
Raspbian
Raspbian

Estic fent servir un raspberry pi, però no hi ha cap raó per no utilitzar un altre Linux … depèn de vosaltres. Podria alliberar un connector i reproduir la imatge per gravar una targeta SD, hi arribaré si hi ha prou gent interessada.

Instal·leu Raspbian: podeu instal·lar Raspbian Buster Lite. No utilitzarem l'escriptori … Només la connexió ssh Secure Shell.

Connecteu-vos al vostre Pi: primer podeu connectar-vos al raspberry pi amb una connexió Ethernet

Configureu el vostre wifi: ara podeu configurar la vostra connexió sense fils

Pas 3: OpenVino

OpenVino
OpenVino

OpenVino és una gran biblioteca suportada per Intel. Han fet una gran feina en la compilació de models d’exemple i han fet compatible la majoria de frameworks ai. Necessiteu aquesta biblioteca per a Intel Neural Stick.

Instal·lació de Python3: heu d’instal·lar Python 3.

Instal·lació d'OpenVino: un cop fet això, veureu una línia "[setupvars.sh] Entorn OpenVINO inicialitzat" cada vegada que us connecteu al raspberry pi.

OpenVino és una extensió d’opencv. Per provar-lo, podeu iniciar python3 i importar cv2.

escriviu a l'intèrpret d'ordres:

python3

escriviu en python:

  • importar cv2
  • cv2._ versió_

L'última línia hauria de retornar '4.1.2-openvino' o qualsevol versió de openvino. si si diu opencv la vostra instal·lació no ha funcionat …

Pas 4: baixeu el codi

Baixeu-vos el codi
Baixeu-vos el codi

En primer lloc, instal·lem git. Escriviu a l'intèrpret d'ordres:

sudo apt-get install git

A continuació, podem passar a la carpeta Documents i descarregar el codi:

  • cd ~ / Documents /
  • git clone

Pas 5: FollowMe (Python)

FollowMe (Python)
FollowMe (Python)

Aquesta és la part amb la qual vols jugar. Feu si us seguiu! Fes que t’espanti! Segueix el teu gos! Feu que reconegui expressions facials !! Assetgeu el vostre gat !!! El que vulguis.

Trobareu quatre carpetes principals: Arduino, Deployment, Player i FollowMe:

Arduino: més informació a la secció següent

Desplegament: aquí és on poso la interfície d'usuari. Ara mateix he codificat un senzill botó d'inici / parada i un petit visor de càmera amb un control divertit.

Reproductor: es vol utilitzar al vostre PC d’escriptori. Per revisar la sortida del bot!

FollowMe: el mòdul que fa la diversió real

Posaré més detalls a github, de manera que només hi haurà un lloc per actualitzar. Aquest és el lloc per al codi

Pas 6: baixeu els models

Els models d'inferència no s'inclouen al codi, ja que són bastant grans. Però podeu trobar molts exemples utilitzant el model OpenVino Zoo

Podeu utilitzar el descarregador de models o anar directament a aquest enllaç. En el meu cas, no podia utilitzar el descarregador de models de la meva instal·lació de raspberry pi …

A continuació, copieu el model a una carpeta anomenada Models amb:

  • cd ~ / Documents / FollowMe
  • Models mkdir
  • Models de CD
  • wget
  • wget

Sempre necessiteu.xml i.bin.

Podeu descarregar qualsevol model que vulgueu … Però haureu de canviar el codi. Diverteix-te!

Pas 7: Arduino

Arduino
Arduino

Hem de descarregar el codi al pas anterior. Hi ha el codi de l’arduino.

El codi està pensat per impulsar dos servos continus, si escolliu una configuració diferent, haureu de modificar-lo.

Bàsicament fa dues coses. Es comunica amb l'ordinador i activa els servos a la velocitat seleccionada.

Podríem produir la sortida del raspberry pi directament per controlar els motors … però els arduinos funcionen millor (tenen un generador de freqüència real). A més, volia descarregar el raspberry pi tant com fos possible per fer la inferència més ràpida.

Pas 8: GUI

GUI
GUI
GUI
GUI

Res de luxe … Encara. Podria afegir altres coses, com ara la visualització en directe o els controls de moviment. Mentrestant, un simple inici i aturada farà el truc.

Si voleu provar-lo, l’heu d’iniciar des del directori FollowMe Level i després trucar-lo des de python3:

  • cd ~ / Documents / FollowMe
  • Desplegament de python3 / FollowMe.py

A continuació, podeu accedir a la interfície del navegador escrivint:

192.168.0.113:8000

amb l’adreça IP adequada, per descomptat.

També hi ha un visor de vídeo amb controls … però no amb inferència de treball

Desplegament de python3 / StreamVideo.py

Pas 9: servei

Això és el que fa funcionar el Rover per si mateix. Un servei és un programa que s’executa en segon pla de l’ordinador sense usuari. Assegureu-vos que TOTS ELS SEUS CAMINS són absoluts i que teniu els drets correctes si utilitzeu algun fitxer i el servei funcionarà bé.

Per executar un script Python com a servei, heu de fer referència a un script en un fitxer de servei. El fitxer de servei es troba al codi descarregat de git a la carpeta Desplegament. El nom és FollowMe.service.

Per copiar-lo, escriviu el següent a l'intèrpret d'ordres:

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

La primera vegada que copieu el fitxer, heu d'actualitzar systemctl … o reiniciar:

sudo systemctl daemon-recoad

I per començar:

sudo systemctl iniciar FollowMe

També podeu utilitzar les ordres stop, enable i disable. Els dos darrers són per a un canvi d’estat persistent.

Petita explicació….

Openvino necessita alguns camins addicionals a les variables del sistema perquè funcioni. Malauradament, la instal·lació normal no funcionarà com a servei. Per tant, necessiteu aquest fitxer per establir les variables.

Tingueu en compte que la meva instal·lació és per a Python 3.7, per tant, hi ha una variable que potser haureu d'ajustar … Bona sort!

Aquest fitxer fa referència a l'script python al camí d'accés absolut:

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

Pas 10: això és tot! Diverteix-te

Comentaris? sempre benvingut

Recomanat: