Cuprins:
- Provizii
- Pasul 1: Asamblarea Rover
- Pasul 2: Raspbian
- Pasul 3: OpenVino
- Pasul 4: Descărcați codul
- Pasul 5: FollowMe (Python)
- Pasul 6: Descărcați modelele
- Pasul 7: Arduino
- Pasul 8: GUI
- Pasul 9: Service
- Pasul 10: Asta e! A se distra
Video: MyPetBot (un robot care te urmărește): 10 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Ai este una dintre cele mai frumoase aplicații ale matematicii. Este practic o grămadă de operații matrice optimizate pentru a se potrivi cu rezultatul pe care îl căutați. Din fericire, există o mulțime de instrumente open source care ne permit să îl folosim.
Am avut inițial ideea cu mult timp în urmă, când lucram la o cascadă dezactivată de oamenii care trec cu aruncarea. Foloseam senzori cu ultrasunete și am descoperit prea târziu că nu funcționează prea mult când sunt umezi … Asta nu a fost o experiență amuzantă. Am ajuns să folosim un buton mare pe care oamenii l-ar apăsa dacă vor să treacă. A ieșit bine pentru că era cald și oamenilor le plăcea să se ude, dar problema a rămas în capul meu … Cum să detectez oamenii și să activez o reacție.
Spun această poveste pentru că vreau să subliniez că acest principiu poate fi folosit pentru alte tone de aplicații! Să-ți urmezi fața cu o jucărie este doar una dintre ele. Pentru instalațiile interactive puteți face orice fel de lucruri. Ați putea folosi un model pentru a detecta dacă o față zâmbește. Ai putea număra numărul câinilor dintr-un parc. Ai putea închide jaluzelele când trec oamenii. Sau … creați un controler pentru baza dvs. Nintendo pe poziția corpului dvs. … Puteți descărca multe alte modele Ai care fac orice fel de lucruri.
Există câteva tutoriale despre cum să faci ca inferența Ai să funcționeze cu raspberry pi. Sunt aici pentru a vă învăța cum să faceți integrarea găurii într-o unitate de lucru auto. De îndată ce robotul pornește, acesta va porni programele necesare.
Provizii
- Robot Parallax: Am ales acest robot pentru că îl aveam așezat, dar orice robot care poate fi controlat cu un arduino va face treaba.
- Raspberry pi: recomand cel puțin raspberry pi 3B +.
- Intel Neural Stick: Rata de inferență merge de la una pe secundă la 8. Chiar ai nevoie de una dacă vrei să faci Ai într-un pi zmeură.
- Power Bank: cel mai simplu mod de a gestiona puterea. Funcționează cu raspberry pi 3B +, poate doriți să verificați dacă funcționează cu un pi 4.
- Picamera: Îmi place să folosesc picamera în locul unui USB.
Pasul 1: Asamblarea Rover
Punctul tutorialului este în principal despre software, așa că nu vreau să intru prea mult în detaliile roverului. Funcționează cu acest robot, dar ar putea funcționa cu orice alt hardware. Nici măcar nu trebuie să fie pentru un rover, ai putea folosi acest lucru pentru o cameră cu senzor de mișcare.
- Găsiți-vă un vehicul controlat de Arduino.
- Strângeți o bancă de energie.
- Înfășurați strâns un pi de zmeură.
- Lipiți camera foto cu un unghi ușor spre partea de sus.
- Conectați totul împreună.
- Voila!
Pasul 2: Raspbian
Folosesc un raspberry pi, dar nu există niciun motiv să nu folosesc un alt linux … până la tine. Aș putea elibera o imagine plug and play pentru arderea unui card SD, o să ajung la el dacă sunt destui oameni interesați.
Instalați Raspbian: Puteți instala Raspbian Buster Lite. Nu vom folosi desktopul … Doar conexiunea ssh Secure Shell.
Conectați-vă la Pi: Mai întâi vă puteți conecta la raspberry pi cu o conexiune Ethernet
Setați-vă wifi-ul: acum puteți configura conexiunea wireless
Pasul 3: OpenVino
OpenVino este o bibliotecă excelentă susținută de Intel. Au făcut o treabă excelentă la compilarea modelelor de exemplu și au făcut ca majoritatea ai framework-ului să fie compatibilă. Aveți nevoie de această bibliotecă pentru Intel Neural Stick.
Instalare Python3: Trebuie să instalați python 3.
Instalare OpenVino: Odată ce ați terminat, veți vedea o linie „[setupvars.sh] mediu OpenVINO inițializat” de fiecare dată când vă conectați la raspberry pi.
OpenVino este o extensie a opencv. Pentru a-l testa, puteți lansa python3 și importa cv2.
tastați în coajă:
python3
tastați în python:
- import cv2
- cv2._ versiunea_
Ultima linie ar trebui să returneze „4.1.2-openvino” sau orice versiune a openvino. dacă dacă spune opencv instalarea dvs. nu a funcționat …
Pasul 4: Descărcați codul
Mai întâi, instalăm git. Tastați în coajă:
sudo apt-get install git
Apoi, putem trece în folderul Documente și descărca codul:
- cd ~ / Documente /
- git clone
Pasul 5: FollowMe (Python)
Acesta este rolul cu care vrei să joci. Asigurați-vă că vă urmează! Fă-l speriat de tine! Urmărește-ți câinele! Faceți-o să recunoască expresiile feței !! Harase pisica ta !!! Orice vrei.
Veți găsi patru foldere principale: Arduino, Deployment, Player și FollowMe:
Arduino: Mai multe despre asta în secțiunea următoare
Implementare: Aici am pus interfața cu utilizatorul. Chiar acum am codificat un simplu buton de pornire / oprire și un mic vizualizator de cameră cu control doar pentru distracție.
Player: Înțeles să fie utilizat pe computerul desktop. Pentru revizuirea rezultatului botului!
FollowMe: Modulul care face distracția reală
Voi pune mai multe detalii pe github, deci pentru a avea un singur loc de actualizat. Acesta este locul pentru cod
Pasul 6: Descărcați modelele
Modelele pentru inferență nu sunt incluse în cod, deoarece sunt destul de mari. Dar puteți găsi o mulțime de exemple folosind modelul OpenVino Zoo
Puteți utiliza programul de descărcare a modelului sau accesați direct acest link. În cazul meu, nu am putut folosi modelul de descărcare de la instalarea mea raspberry pi …
Apoi copiați modelul într-un folder numit Modele cu:
- cd ~ / Documents / FollowMe
- Modele mkdir
- Modele cd
- wget
- wget
Aveți întotdeauna nevoie de.xml și.bin.
Puteți descărca orice model doriți … Dar va trebui să schimbați codul. A se distra!
Pasul 7: Arduino
Trebuie să descărcăm codul de la pasul anterior. Codul pentru arduino este în el!
Codul este menit să conducă două servouri continue, dacă alegeți o configurație diferită, trebuie să modificați codul.
Practic, face două lucruri. Comunică cu computerul și activează servomotoarele la viteza selectată.
Aș putea să ieșim din raspberry pi direct pentru a controla motoarele … dar arduino-urile funcționează mai bine (au un generator de frecvență real). De asemenea, am vrut să descarc zmeura pi cât mai mult posibil pentru a face inferența mai rapidă.
Pasul 8: GUI
Nimic extraordinar … Totuși. Aș putea adăuga alte lucruri, cum ar fi vizualizarea live sau controalele de mișcare. Dar între timp, o simplă pornire și oprire va face trucul.
Dacă doriți să-l testați, trebuie să-l lansați din directorul FollowMe Level și apoi să-l apelați din python3:
- cd ~ / Documents / FollowMe
- implementare python3 / FollowMe.py
Apoi, puteți accesa interfața din browserul dvs. tastând:
192.168.0.113:8000
cu adresa IP corectă, desigur.
Există, de asemenea, un vizualizator de videoclipuri cu comenzi … dar nu cu inferență de lucru
implementare python3 / StreamVideo.py
Pasul 9: Service
Acesta este motivul pentru care Rover funcționează de la sine. Un serviciu este un program care rulează în fundalul computerului fără un utilizator. Asigurați-vă că TOATE CĂILE VOI sunt absolute și că aveți drepturile corecte dacă utilizați orice fișier și serviciul va funcționa bine.
Pentru a rula un script python ca serviciu, trebuie să faceți referire la scriptul într-un fișier de serviciu. Fișierul de serviciu se află în codul descărcat din git în folderul Implementare. Numele este FollowMe.service.
Pentru a-l copia, introduceți următoarele în shell:
sudo cp ~ / Documents / FollowMe / Deployment / FollowMe.service / etc / systemd / system /
Prima dată când copiați fișierul, trebuie să actualizați systemctl … sau să reporniți:
sudo systemctl daemon-reload
Și pentru a începe:
sudo systemctl pornește FollowMe
De asemenea, puteți utiliza comenzile de oprire, activare și dezactivare. Ultimele două sunt pentru o schimbare de stare persistentă.
Mică explicație….
Openvino are nevoie de câteva căi suplimentare în variabilele de sistem pentru ca acesta să funcționeze. Din păcate, instalarea normală nu va funcționa ca un serviciu. Deci, aveți nevoie de acest fișier pentru a seta variabilele.
Observați că instalarea mea este pentru Python 3.7, prin urmare există o variabilă pe care poate fi necesar să o ajustați … Mult succes!
Acest fișier face referire la scriptul python din calea absolută:
/home/pi/Documents/FollowMe/Deployment/FollowMe.py
Pasul 10: Asta e! A se distra
Comentarii? binevenite întotdeauna
Recomandat:
S.H.I.E.L.D - Cineva te urmărește ?: 4 pași (cu imagini)
S.H.I.E.L.D - Cineva te urmărește ?: Am văzut o mulțime de videoclipuri cu oameni jenați când nu au observat că microfonul sau camera lor erau aprinse și mi-a dat ideea acestui proiect. Am scris o aplicație simplă în C # care detectează când se utilizează camera sau microfonul și
Hat Not Hat - o pălărie pentru persoanele care nu poartă cu adevărat pălării, dar care și-ar dori o experiență de pălărie: 8 pași
Hat Not Hat - o pălărie pentru oamenii care nu poartă cu adevărat pălării, dar care și-ar dori o experiență de pălărie: mi-am dorit întotdeauna să pot fi o persoană cu pălărie, dar nu am găsit vreodată o pălărie care să funcționeze pentru mine. Această „pălărie nu pălărie”, sau fascinator așa cum se numește este o soluție crustă superioară la problema mea cu pălăria în care aș putea participa la Kentucky Derby, vacu
Linia E101 care urmărește botul cu difuzor: 11 pași
E101 Bot de urmărire a liniei cu difuzor: Iată un robot de urmărire a liniei care redă muzică atunci când trece peste anumite culori
Tchaibotsky (un robot care cântă la pian): 12 pași (cu imagini)
Tchaibotsky (un robot care cântă la pian): acest instructabil a fost creat pentru a îndeplini cerințele proiectului Makecourse de la Universitatea din Florida de Sud (www.makecourse.com) Tchaibotsky este un robot care cântă la pian Arduino. Motivația a fost să construim ceva care să poată
Urmărește curba tubului: 10 pași
Urmărește curba tubului: Aceasta este pentru toți acei entuziaști și hackeri ai amplificatoarelor de tuburi. Am vrut să construiesc un amplificator stereo cu tub de care să mă pot mândri. Cu toate acestea, în timpul cablării, am constatat că unele 6AU6 au refuzat doar să părtinească unde ar trebui. Eu am