Inhoudsopgave:
- Benodigdheden
- Stap 1: Rover-assemblage
- Stap 2: Raspbian
- Stap 3: OpenVino
- Stap 4: Download de code
- Stap 5: FollowMe (Python)
- Stap 6: Download de modellen
- Stap 7: Arduino
- Stap 8: GUI
- Stap 9: Dienst
- Stap 10: Dat is het! Veel plezier
Video: MyPetBot (een bot die u volgt): 10 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Ai is een van de mooiste toepassingen van wiskunde. Het is in feite een reeks matrices-bewerkingen die zijn geoptimaliseerd om overeen te komen met het resultaat waarnaar u op zoek bent. Gelukkig zijn er talloze open source-tools waarmee we er gebruik van kunnen maken.
Ik had het idee oorspronkelijk lang geleden toen ik aan een waterval werkte die werd gedeactiveerd door passerende mensen. Ik gebruikte ultrasone sensoren en ontdekte te laat dat ze niet veel werken als ze nat zijn… Dat was geen leuke ervaring. Uiteindelijk hebben we een grote knop gebruikt die mensen zouden indrukken als ze wilden passen. Het kwam goed uit want het was warm en mensen vonden het heerlijk om nat te worden, maar het probleem bleef in mijn hoofd… Hoe mensen op te sporen en een reactie te activeren.
Ik vertel dit verhaal omdat ik erop wil wijzen dat dit principe voor tal van andere toepassingen kan worden gebruikt! Je gezicht volgen met een speeltje is er maar één van. Voor interactieve installaties kun je van alles doen. Je zou een model kunnen gebruiken om te detecteren of een gezicht lacht. Je zou het aantal honden in een park kunnen tellen. Je zou je jaloezieën kunnen sluiten als er mensen langskomen. Of… maak een controller voor je nintendo-basis op je lichaamshouding…. Je kunt veel andere Ai-modellen downloaden die allerlei dingen doen.
Er zijn een paar tutorials over hoe je Ai-inferentie kunt laten werken met Raspberry Pi. Ik ben hier om je te leren hoe je van de gatenintegratie een zelfwerkende eenheid kunt maken. Zodra uw robot opstart, start hij de nodige programma's.
Benodigdheden
- Parallax-robot: ik heb voor deze robot gekozen omdat ik hem had liggen, maar elke robot die met een arduino kan worden bestuurd, zal het werk doen.
- Raspberry pi: Ik raad in ieder geval de raspberry pi 3B+ aan.
- Intel Neural Stick: De inferentiesnelheid gaat van één per seconde tot 8. Je hebt er echt een nodig als je Ai in een Raspberry Pi wilt doen.
- Powerbank: eenvoudigste manier om de stroom te beheren. Werkt met de raspberry pi 3B+, misschien wilt u controleren of deze werkt met een pi 4.
- Picamera: Ik gebruik graag de picamera in plaats van een usb.
Stap 1: Rover-assemblage
Het punt van de tutorial gaat voornamelijk over de software, dus ik wil niet te veel ingaan op de details van de rover. Het werkt met deze robot, maar het zou echt met elke andere hardware kunnen werken. Hoeft niet eens voor een rover te zijn, je zou dit kunnen gebruiken voor een bewegingssensor camera.
- Zoek een door Arduino bestuurd voertuig.
- Wikkel er een powerbank omheen.
- Wikkel er een frambozenpi strak omheen.
- Lijm de picamera met een lichte hoek naar boven.
- Verbind alles met elkaar.
- Voila!
Stap 2: Raspbian
Ik gebruik een Raspberry Pi, maar er is geen reden om geen andere Linux te gebruiken… dat is aan jou. Ik zou een plug-and-play-image kunnen vrijgeven voor het branden van een sd-kaart, ik kom eraan als genoeg mensen geïnteresseerd zijn.
Installeer de Raspbian: U kunt de Raspbian Buster Lite installeren. We gaan de desktop niet gebruiken… Alleen de ssh Secure Shell-verbinding.
Maak verbinding met je Pi: eerst kun je verbinding maken met je raspberry pi met een Ethernet-verbinding
Stel je wifi in: Nu kun je je draadloze verbinding configureren
Stap 3: OpenVino
OpenVino is een geweldige bibliotheek die wordt ondersteund door Intel. Ze hebben geweldig werk geleverd bij het samenstellen van voorbeeldmodellen en ze hebben het grootste deel van het ai-framework compatibel gemaakt. Deze bibliotheek heb je nodig voor de Intel Neural Stick.
Python3-installatie: u moet python 3 installeren.
OpenVino-installatie: Zodra dit is gebeurd, ziet u elke keer dat u verbinding maakt met de raspberry pi een regel "[setupvars.sh] OpenVINO-omgeving geïnitialiseerd".
OpenVino is een uitbreiding van opencv. Om het te testen, kun je python3 starten en cv2 importeren.
typ in de shell:
python3
typ in python:
- import cv2
- cv2._versie_
De laatste regel moet '4.1.2-openvino' of een willekeurige versie van openvino retourneren. als als zegt opencv uw installatie niet werkte …
Stap 4: Download de code
Eerst installeren we git. Typ in de shell:
sudo apt-get install git
Dan kunnen we naar de map Documenten gaan en de code downloaden:
- cd ~/Documenten/
- git kloon
Stap 5: FollowMe (Python)
Dit is het deel waar je mee wilt spelen. Zorg dat je je volgt! Maak het bang van je! Volg je hond! Laat het gezichtsuitdrukkingen herkennen!! Plaag je kat!!! Alles wat je wilt.
U vindt vier hoofdmappen: Arduino, Deployment, Player en FollowMe:
Arduino: meer daarover in de volgende sectie
Implementatie: hier plaats ik de gebruikersinterface. Op dit moment heb ik een eenvoudige start/stop-knop gecodeerd en een kleine cameraviewer met besturing, gewoon leuk.
Speler: bedoeld voor gebruik op uw desktop-pc. Voor het bekijken van de output van de bot!
FollowMe: de module die het echte plezier doet
Ik zal meer details op github zetten, zodat ik maar één plek heb om te updaten. Dit is de plek voor de code
Stap 6: Download de modellen
De modellen voor gevolgtrekking zijn niet opgenomen in de code omdat ze vrij groot zijn. Maar je kunt veel voorbeelden vinden met het OpenVino-model Zoo
U kunt de modeldownloader gebruiken of direct naar deze link gaan. In mijn geval kon ik de modeldownloader van mijn Raspberry Pi-installatie niet gebruiken …
Kopieer het model vervolgens naar een map met de naam Models met:
- cd ~/Documents/FollowMe
- mkdir-modellen
- cd-modellen
- wget
- wget
Je hebt altijd de.xml en de.bin nodig.
Je kunt elk model downloaden dat je wilt… Maar je zult de code moeten wijzigen. Veel plezier!
Stap 7: Arduino
We moeten de code downloaden bij de vorige stap. De code voor de arduino zit erin!
De code is bedoeld om twee continue servo's aan te sturen, als u een andere configuratie kiest, moet u de code wijzigen.
Het doet eigenlijk twee dingen. Het communiceert met de computer en activeert de servo's met de geselecteerde snelheid.
Ik zou de output van de Raspberry Pi rechtstreeks kunnen gebruiken om de motoren te besturen … maar Arduino's werken beter (ze hebben een echte frequentiegenerator). Ook wilde ik de Raspberry Pi zoveel mogelijk ontlasten om de gevolgtrekking sneller te maken.
Stap 8: GUI
Niets bijzonders… Toch. Ik zou wat andere dingen kunnen toevoegen, zoals liveweergave of bewegingsbesturing. Maar in de tussentijd zal een eenvoudige start en stop voldoende zijn.
Als je het wilt testen, moet je het starten vanuit de map FollowMe Level en het vervolgens aanroepen vanuit python3:
- cd ~/Documents/FollowMe
- python3 Deployment/FollowMe.py
Vervolgens kunt u de interface in uw browser openen door te typen:
192.168.0.113:8000
met het juiste IP-adres natuurlijk.
Er is ook een videoviewer met bedieningselementen … maar niet met werkende inferentie
python3 Deployment/StreamVideo.py
Stap 9: Dienst
Hierdoor werkt de Rover vanzelf. Een service is een programma dat op de achtergrond van de computer draait zonder een gebruiker. Zorg ervoor dat AL UW PADEN absoluut zijn en dat u over de juiste rechten beschikt als u bestanden gebruikt en dat de service goed werkt.
Om een python-script als een service uit te voeren, moet u naar het script verwijzen in een servicebestand. Het servicebestand bevindt zich in de code die is gedownload van git in de map Deployment. De naam is FollowMe.service.
Typ het volgende in de shell om het te kopiëren:
sudo cp ~/Documents/FollowMe/Deployment/FollowMe.service /etc/systemd/system/
De eerste keer dat u het bestand kopieert, moet u systemctl bijwerken… of opnieuw opstarten:
sudo systemctl daemon-reload
En om te beginnen:
sudo systemctl start FollowMe
U kunt ook de commando's stoppen, inschakelen en uitschakelen gebruiken. De laatste twee zijn voor een aanhoudende verandering van staat.
Kleine uitleg….
Openvino heeft wat extra paden in de systeemvariabelen nodig om te werken. Helaas werkt de normale installatie niet als een service. Dit bestand heb je dus nodig om de variabelen in te stellen.
Merk op dat mijn installatie voor python 3.7 is, daarom is er een variabele die je mogelijk moet aanpassen… Succes!
Dit bestand verwijst naar het python-script in het absolute pad:
/home/pi/Documenten/FollowMe/Deployment/FollowMe.py
Stap 10: Dat is het! Veel plezier
Opmerkingen? altijd welkom
Aanbevolen:
Hoe maak je een beveiligingsdoos die volgt onder ons - Taak elektrische bedrading - Ajarnpa
Hoe maak je een beveiligingsdoos na onder ons spel - Elektrische bedradingstaak: vandaag zal ik je laten zien hoe je een beveiligingsdoos maakt volgens het spel Among Us - Elektrische bedradingstaak
Persoon die wagen volgt: 8 stappen
Persoonsvolgwagen: Robots krijgen elke dag meer en meer aandacht in veel industrieën. Vanaf vandaag nemen robots de meeste triviale taken over waar eens menselijke aandacht nodig was. Laten we beginnen met een simpele: een bot die je volgt als je gaat. De
Een computer demonteren met eenvoudige stappen en afbeeldingen: 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een computer demonteren met eenvoudige stappen en afbeeldingen: dit is een instructie over het demonteren van een pc. De meeste basiscomponenten zijn modulair en gemakkelijk te verwijderen. Wel is het belangrijk dat je er goed over georganiseerd bent. Dit zal helpen voorkomen dat u onderdelen kwijtraakt, en ook bij het maken van de hermontage e
Hoe maak je een lijn die de robot volgt met Rpi 3: 8 stappen
Hoe maak je een lijnvolgende robot met Rpi 3: In deze tutorial leer je hoe je een lijnvolgende robotbuggy bouwt zodat hij gemakkelijk over een baan kan suizen
Bouw een echte klok die op uw pc slaat en een brandblusser die opvalt: 3 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Bouw een echte klok die op je pc slaat en een klok die op een brandblusser slaat: een koperen bel, een klein relais, nog een paar dingen en een echte bel kunnen de uren op je bureaublad slaan. Hoewel dit project op Windows en Mac draait OS X ook, ik besloot Ubuntu Linux te installeren op een pc die ik in de prullenbak vond en daaraan te werken: ik had nog nooit