Innehållsförteckning:

Sorteringsrobot för återvinning: 15 steg (med bilder)
Sorteringsrobot för återvinning: 15 steg (med bilder)

Video: Sorteringsrobot för återvinning: 15 steg (med bilder)

Video: Sorteringsrobot för återvinning: 15 steg (med bilder)
Video: Häng med på en åktur i sorteringsroboten på Mölndals stadsbibliotek 2024, Juli
Anonim
Image
Image
Skaffa data
Skaffa data

Visste du att den genomsnittliga föroreningsgraden i samhällen och företag varierar upp till 25%? Det betyder att var fjärde återvinning du kastar inte återvinns. Detta orsakas av mänskliga misstag i återvinningscentraler. Traditionellt kommer arbetare att sortera papperskorgen i olika sopkärl beroende på material. Människor är skyldiga att göra fel och slutligen inte sortera papperskorgen korrekt, vilket leder till förorening. I takt med att föroreningar och klimatförändringar blir ännu viktigare i dagens samhälle, tar återvinning en enorm roll i att skydda vår planet. Genom att använda robotar för att sortera skräp kommer föroreningarna att minska drastiskt, för att inte tala om mycket billigare och mer hållbara. För att lösa detta skapade jag en återvinningssorteringsrobot som använder maskininlärning för att sortera mellan olika material.

Steg 1: Delar

Se till att du har följande delar att följa tillsammans med denna handledning:

3D -tryckta delar (se steg nedan)

Raspberry Pi RPI 4 4GB

Google Coral USB -accelerator

Arduino Uno R3

Raspberry Pi kameramodul V2

5V 2A DC väggströmförsörjning

DC 12V nätaggregat

SG90 9g Micro Servos 4st.

M3 x 0,5 mm rostfritt stål självlåsande nylon hex-låsmutter 100st.

M3x20 Knapphuvud Titanskruvar 10st.

MG996R Metal Gear Torque Analog servomotor 4st.

Samsung 32GB Välj minneskort

Adafruit Flex -kabel för Raspberry Pi -kamera - 1 meter

M2 Hona Kvinnlig Mässing Spacer Standoff Skruvmutter Sortiment Kit

60mm 12V fläkt

6,69 "x 5,12" x 2,95 "projektlåda

Steg 2: 3D -tryckta delar

Du måste 3D -skriva ut alla delar till robotarmen. Du hittar alla filer här.

Steg 3: Kod

Klona mitt GitHub -arkiv för att följa med den här självstudien.

Steg 4: Skaffa data

För att träna objektdetekteringsmodellen som kan upptäcka och känna igen olika återvinningsmaterial använde jag papperskorgen som innehåller 2527 bilder:

  • 501 glas
  • 594 papper
  • 403 kartong
  • 482 plast
  • 410 metall
  • 137 skräp

Bilden ovan är ett exempel på en på bilderna från datamängden.

Denna datauppsättning är mycket liten för att träna en objektdetekteringsmodell. Det finns bara cirka 100 bilder av skräp som är för lite för att träna en exakt modell, så jag bestämde mig för att lämna den.

Du kan använda den här Google Drive -mappen för att ladda ner datasetet. Se till att ladda ner filen dataset-resized.zip. Den innehåller uppsättningen bilder som redan har ändrats till en mindre storlek för att möjliggöra snabbare träning. Om du vill ändra storlek på raw-bilderna efter eget tycke kan du ladda ner filen dataset-original.zip.

Steg 5: Märkning av bilderna

Märkning av bilderna
Märkning av bilderna

Därefter måste vi märka flera bilder av olika återvinningsmaterial så att vi kan träna objektdetekteringsmodellen. För att göra detta använde jag labelImg, en gratis programvara som låter dig märka objektbegränsande rutor i bilder.

Märk varje bild med rätt etikett. Denna handledning visar dig hur. Var noga med att göra varje avgränsningsruta så nära gränsen för varje objekt för att säkerställa att detektionsmodellen är så exakt som möjligt. Spara alla.xml -filer i en mapp.

Bilden ovan visar hur du märker dina bilder.

Detta är en mycket tråkig och bedövande upplevelse. Tack och lov för dig, jag har redan märkt alla bilder åt dig! Du hittar den här.

Steg 6: Träning

När det gäller utbildning bestämde jag mig för att använda överföringsinlärning med hjälp av Tensorflow. Detta gör att vi kan träna en hyfsat exakt modell utan en stor mängd data.

Det finns ett par sätt vi kan göra detta. Vi kan göra det på vår lokala stationära dator i molnet. Utbildning på vår lokala maskin kommer att ta superlång tid beroende på hur kraftfull din dator är och om du har en kraftfull GPU. Detta är förmodligen det enklaste sättet enligt mig, men igen med nackdelen med hastigheten.

Det finns några viktiga saker att notera om överföringsinlärning. Du måste se till att den förutbildade modellen du använder för träning är kompatibel med Coral Edge TPU. Du hittar kompatibla modeller här. Jag använde MobileNet SSD v2 (COCO) -modellen. Experimentera gärna med andra också.

För att träna på din lokala maskin rekommenderar jag att du följer Googles handledning eller EdjeElectronics -handledning om den körs på Windows 10. Personligen har jag testat EdjeElectroncs självstudie och nått framgång på mitt skrivbord. Jag kan inte bekräfta om Googles handledning kommer att fungera, men jag skulle bli förvånad om den inte gör det.

För att träna i molnet kan du använda AWS eller GCP. Jag hittade den här självstudien som du kan prova. Den använder Googles moln -TPU: er som kan träna din objektdetekteringsmodell supersnabbt. Använd gärna AWS också.

Oavsett om du tränar på din lokala maskin eller i molnet, bör du sluta med en utbildad tensorflödesmodell.

Steg 7: Sammanställning av den utbildade modellen

Sammanställning av den utbildade modellen
Sammanställning av den utbildade modellen

För att din utbildade modell ska fungera med Coral Edge TPU måste du kompilera den.

Ovan är ett diagram för arbetsflödet.

Efter träning måste du spara den som en frusen graf (.pb -fil). Sedan måste du konvertera den till en Tensorflow Lite -modell. Observera hur det står "Kvantisering efter utbildning". Om du använde de kompatibla förutbildade modellerna när du använde överföringsinlärning behöver du inte göra detta. Ta en titt på hela dokumentationen om kompatibilitet här.

Med Tensorflow Lite -modellen måste du kompilera den till en Edge TPU -modell. Se detaljer om hur du gör detta här.

Steg 8: Återvinningsdetekteringsmodell

Om du inte vill gå igenom besväret med att träna, konvertera och sammanställa objektdetekteringsmodellen, kolla in min återvinningsmodell här.

Steg 9: Distribuera modellen

Distribuera modellen
Distribuera modellen

Nästa steg är att konfigurera Raspberry Pi (RPI) och Edge TPU för att köra den utbildade objektdetekteringsmodellen.

Konfigurera först RPI: n med den här självstudien.

Konfigurera sedan Edge TPU efter den här självstudien.

Slutligen, anslut RPI -kameramodulen till hallon pi.

Du är nu redo att testa din objektdetekteringsmodell!

Om du redan har klonat mitt förråd vill du navigera till RPI -katalogen och köra filen test_detection.py:

python test_detection.py --modell recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/detect_edgetpu.tflite --labels recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/labels.t

Ett litet fönster ska dyka upp och om du lägger en vattenflaska av plast eller annat återvinningsmaterial ska det upptäcka det som bilden ovan.

Tryck på bokstaven "q" på tangentbordet för att avsluta programmet.

Steg 10: Bygg robotarmen

Bygg robotarmen
Bygg robotarmen

Robotarmen är en 3D -tryckt arm som jag hittade här. Följ bara handledningen om hur du konfigurerar den.

Bilden ovan visar hur min robotarm blev.

Se till att du ansluter servostiften till Arduino I/O -stiften enligt min kod. Anslut servon från botten till toppen av armen i följande ordning: 3, 11, 10, 9, 6, 5. Om du inte ansluter den i denna ordning kommer armen att flytta fel servo!

Testa om det fungerar genom att navigera till Arduino -katalogen och köra filen basicMovement.ino. Detta tar helt enkelt ett föremål som du placerar framför armen och släpper det bakom.

Steg 11: Anslutning av RPI och robotarm

Anslutning av RPI och robotarm
Anslutning av RPI och robotarm

Vi måste först montera kameramodulen till botten av kloen. Bilden ovan visar hur det ska se ut.

Försök att rikta in kameran så rak som möjligt för att minimera fel vid tagning av det erkända återvinningsmaterialet. Du måste använda den långa kameramodulens bandkabel enligt materiallistan.

Därefter måste du ladda upp roboticArm.ino -filen till Arduino -kortet.

Slutligen måste vi bara ansluta en USB -kabel mellan RPI: s USB -port och Arduino USB -port. Detta gör att de kan kommunicera via serie. Följ den här handledningen om hur du konfigurerar detta.

Steg 12: Final Touch

Sista handen
Sista handen
Sista handen
Sista handen

Detta steg är helt valfritt men jag gillar att lägga alla mina komponenter i en fin liten projektlåda.

Bilderna ovan visar hur det ser ut.

Du hittar projektrutan på materiallistan. Jag borrade precis några hål och använde mässingsavstånd för att montera elektroniken. Jag monterade också 4 kylfläktar för att hålla ett konstant luftflöde genom RPI och TPU när det är varmt.

Steg 13: Löpning

Du är nu redo att slå på både robotarmen och RPI! På RPI kan du helt enkelt köra filen recycle_detection.py. Detta öppnar ett fönster och robotarmen börjar springa precis som i demovideon! Tryck på bokstaven "q" på tangentbordet för att avsluta programmet.

Lek gärna med koden och ha kul!

Steg 14: Framtidsarbete

Jag hoppas kunna använda R. O. S. för att styra robotarmen med mer exakta rörelser. Detta möjliggör en mer exakt plockning av objekt.

Steg 15: Frågor?

Lämna gärna en kommentar nedan om du har några frågor!

Rekommenderad: