Inhoudsopgave:

MyPetBot (een bot die u volgt): 10 stappen (met afbeeldingen)
MyPetBot (een bot die u volgt): 10 stappen (met afbeeldingen)

Video: MyPetBot (een bot die u volgt): 10 stappen (met afbeeldingen)

Video: MyPetBot (een bot die u volgt): 10 stappen (met afbeeldingen)
Video: Pet Shop Boys - What Have I Done To Deserve This (Official Video) [HD REMASTERED] 2024, November
Anonim
Image
Image
MyPetBot (een bot die jou volgt)
MyPetBot (een bot die jou volgt)
MyPetBot (een bot die jou volgt)
MyPetBot (een bot die jou volgt)

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

Rover montage
Rover montage
Rover montage
Rover montage
Rover montage
Rover montage

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.

  1. Zoek een door Arduino bestuurd voertuig.
  2. Wikkel er een powerbank omheen.
  3. Wikkel er een frambozenpi strak omheen.
  4. Lijm de picamera met een lichte hoek naar boven.
  5. Verbind alles met elkaar.
  6. Voila!

Stap 2: Raspbian

Raspbian
Raspbian
Raspbian
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
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

Download de code
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)

FollowMe (Python)
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

Arduino
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

GUI
GUI
GUI
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: