Taula de continguts:
- Subministraments
- Pas 1: muntatge del Rover
- Pas 2: Raspbian
- Pas 3: OpenVino
- Pas 4: baixeu el codi
- Pas 5: FollowMe (Python)
- Pas 6: baixeu els models
- Pas 7: Arduino
- Pas 8: GUI
- Pas 9: servei
- Pas 10: això és tot! Diverteix-te
Vídeo: MyPetBot (un robot que us segueix): 10 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
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
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.
- Trobeu-vos un vehicle controlat per Arduino.
- Estreny-hi un banc d’energia.
- Estreny-hi un pi de gerds.
- Enganxeu la càmera fotogràfica amb un lleuger angle cap a la part superior.
- Connecteu-ho tot.
- Voila!
Pas 2: 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 é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
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)
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
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
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:
Persona que segueix el carretó: 8 passos
Persona que segueix el carretó: els robots cada dia reben més atenció en moltes indústries. A partir d’avui, els robots s’encarreguen de la majoria de feines trivials en què abans es requeria atenció humana. Comencem per una de simple: un robot que us segueix a mesura que aneu. El
UNA LÍNIA DE SENSORS QUE SEGUEIX EL ROBOT: 5 passos
UN SENSOR DE LÍNIA SEGUINT ROBOT: en aquest instructable us mostraré com fer un robot seguidor de línia utilitzant només un sensor
Robot Arduino 5 en 1 - Segueix-me - Seguiment de la línia - Sumo - Dibuix - Evitar obstacles: 6 passos
Robot Arduino 5 en 1 | Segueix-me | Seguiment de la línia | Sumo | Dibuix | Evitar obstacles: aquesta placa de control del robot conté un microcontrolador ATmega328P i un controlador de motor L293D. Per descomptat, no és diferent d’una placa Arduino Uno, però és més útil perquè no necessita un altre blindatge per accionar el motor. És lliure de salt
Segueix-me el robot mitjançant NodeMCU: 4 passos
Follow Me Robot mitjançant NodeMCU: és molt senzill Follow Me Robot mitjançant NodeMCU. Utilitza el sensor de distància NodeMCU HC SR04 per detectar l’objecte / ésser humà proper. Quan detecti l’Objecte / Humà començarà a seguir
Comandament a distància sense fils que utilitza el mòdul NRF24L01 de 2,4 Ghz amb Arduino - Nrf24l01 Receptor transmissor de 4 canals / 6 canals per quadcòpter - Helicòpter Rc - Avió Rc amb Arduino: 5 passos (amb imatges)
Comandament sense fils que utilitza un mòdul NRF24L01 de 2,4 Ghz amb Arduino | Nrf24l01 Receptor transmissor de 4 canals / 6 canals per quadcòpter | Helicòpter Rc | Avió Rc amb Arduino: per fer funcionar un cotxe Rc | Quadcopter | Drone | Avió RC | Vaixell RC, sempre necessitem un receptor i un transmissor, suposem que per RC QUADCOPTER necessitem un transmissor i un receptor de 6 canals i aquest tipus de TX i RX és massa costós, així que en farem un al nostre