Turinys:

Perdirbimo rūšiavimo robotas: 15 žingsnių (su nuotraukomis)
Perdirbimo rūšiavimo robotas: 15 žingsnių (su nuotraukomis)

Video: Perdirbimo rūšiavimo robotas: 15 žingsnių (su nuotraukomis)

Video: Perdirbimo rūšiavimo robotas: 15 žingsnių (su nuotraukomis)
Video: Kaip rūšiuoti atliekas www.ismaniejirobotai.lt 1-4 klasei .Dirba ir planšetėse 2024, Liepa
Anonim
Image
Image
Duomenų gavimas
Duomenų gavimas

Ar žinojote, kad vidutinis užterštumo lygis bendruomenėse ir įmonėse svyruoja iki 25%? Tai reiškia, kad vienas iš keturių išmestų atliekų nėra perdirbamas. Taip yra dėl žmogaus klaidų perdirbimo centruose. Tradiciškai darbuotojai, priklausomai nuo medžiagos, surūšiuos šiukšles į skirtingas dėžes. Žmonės privalo padaryti klaidų ir galiausiai netinkamai surūšiuoti šiukšles, o tai sukelia užteršimą. Kadangi tarša ir klimato kaita šiandieninėje visuomenėje tampa dar svarbesni, perdirbimas užima didžiulę vietą mūsų planetos apsaugai. Naudojant robotus šiukšlėms rūšiuoti, užteršimo lygis smarkiai sumažės, jau nekalbant apie daug pigesnį ir tvaresnį. Norėdami tai išspręsti, sukūriau perdirbimo rūšiavimo robotą, kuris naudoja mašininį mokymąsi rūšiuoti tarp skirtingų perdirbamų medžiagų.

1 žingsnis: dalys

Įsitikinkite, kad kartu su šia pamoka turite sekti šias dalis:

3D spausdintos dalys (žr. Žingsnį žemiau)

Raspberry Pi RPI 4 4GB

„Google Coral“USB spartintuvas

„Arduino Uno R3“

„Raspberry Pi“fotoaparato modulis V2

5V 2A DC sieninis maitinimo šaltinis

DC 12V maitinimo šaltinis

SG90 9g mikro servos 4vnt.

M3 x 0,5 mm nerūdijančio plieno savaiminio fiksavimo nailono šešiabriaunė veržlė 100 vnt.

Titano varžtai M3x20, 10 vnt.

MG996R metalinis pavarų sukimo momento analoginis servo variklis 4 vnt.

„Samsung 32GB“pasirinkite atminties kortelę

„Adafruit Flex“kabelis „Raspberry Pi“fotoaparatui - 1 metras

M2 vyriškas moteriškas žalvario tarpiklio atsukimo varžto veržlės asortimento rinkinys

60 mm 12 V ventiliatorius

6,69 x 5,12 x 2,95 colio projekto dėžutė

2 žingsnis: 3D spausdintos dalys

Turėsite 3D spausdinti visas roboto rankos dalis. Visus failus galite rasti čia.

3 žingsnis: kodas

Prašome klonuoti mano „GitHub“saugyklą ir sekti kartu su šia pamoka.

4 žingsnis: Duomenų gavimas

Norėdami išmokyti objekto aptikimo modelį, galintį aptikti ir atpažinti įvairias perdirbimo medžiagas, naudoju šiukšliadėžės duomenų rinkinį, kuriame yra 2527 vaizdai:

  • 501 stiklas
  • 594 popierius
  • 403 kartonas
  • 482 plastikas
  • 410 metalas
  • 137 šiukšlės

Aukščiau pateiktas paveikslėlis yra pavyzdys iš duomenų rinkinio vaizdų.

Šis duomenų rinkinys yra labai mažas, kad būtų galima išmokti objektų aptikimo modelį. Yra tik apie 100 šiukšlių vaizdų, kurių yra per mažai, kad būtų galima parengti tikslų modelį, todėl nusprendžiau jo neatsižvelgti.

Šį „Google“disko aplanką galite naudoti norėdami atsisiųsti duomenų rinkinį. Būtinai atsisiųskite failą dataset-resized.zip. Jame yra vaizdų rinkinys, kurio dydis jau sumažintas, kad būtų galima greičiau treniruotis. Jei norite pakeisti neapdorotų vaizdų dydį pagal savo skonį, atsisiųskite failą dataset-original.zip.

5 žingsnis: vaizdų žymėjimas

Vaizdų žymėjimas
Vaizdų žymėjimas

Toliau turime pažymėti kelis skirtingų perdirbimo medžiagų vaizdus, kad galėtume apmokyti objektų aptikimo modelį. Norėdami tai padaryti, naudoju nemokamą programinę įrangą „labelImg“, leidžiančią vaizduose pažymėti objektų ribojimo langelius.

Kiekvieną vaizdą pažymėkite tinkama etikete. Ši pamoka parodo, kaip. Įsitikinkite, kad kiekvienas ribojimo langelis yra kuo arčiau kiekvieno objekto krašto, kad aptikimo modelis būtų kuo tikslesnis. Išsaugokite visus.xml failus aplanke.

Aukščiau esančioje nuotraukoje parodyta, kaip pažymėti vaizdus.

Tai labai varginanti ir varginanti mintis. Ačiū jums, aš jau pažymėjau visus vaizdus jums! Jį rasite čia.

6 žingsnis: mokymas

Kalbant apie mokymą, nusprendžiau naudoti perkėlimo mokymąsi naudojant „Tensorflow“. Tai leidžia mums išmokti pakankamai tikslų modelį be didelio duomenų kiekio.

Yra keletas būdų, kaip tai padaryti. Tai galime padaryti naudodami vietinį stalinį kompiuterį debesyje. Mokymasis mūsų vietiniame kompiuteryje užtruks labai ilgai, priklausomai nuo to, koks jūsų kompiuteris yra galingas ir ar turite galingą GPU. Tai turbūt lengviausias būdas, mano nuomone, bet vėlgi su neigiamu greičiu.

Yra keletas pagrindinių dalykų, kuriuos reikia atkreipti dėmesį į mokymąsi perkelti. Turite įsitikinti, kad iš anksto apmokytas modelis, kurį naudojate treniruotėms, yra suderinamas su „Coral Edge TPU“. Čia galite rasti suderinamų modelių. Naudojau „MobileNet SSD v2“(COCO) modelį. Taip pat galite eksperimentuoti su kitais.

Jei norite mokytis savo vietiniame kompiuteryje, rekomenduočiau vadovautis „Google“pamoka arba „EdjeElectronics“pamoka, jei veikia „Windows 10.“. Asmeniškai aš išbandžiau „EdjeElectroncs“vadovėlį ir pasiekiau sėkmės darbalaukyje. Negaliu patvirtinti, ar „Google“pamoka veiks, bet būčiau nustebinta, jei ne.

Norėdami treniruotis debesyje, galite naudoti AWS arba GCP. Radau šią pamoką, kurią galite išbandyti. Jis naudoja „Google“debesies TPU, kurie gali labai greitai išmokyti jūsų objektų aptikimo modelį. Nesivaržykite naudoti ir AWS.

Nesvarbu, ar treniruojatės vietinėje mašinoje, ar debesyje, turėtumėte gauti apmokytą „tensorflow“modelį.

7 žingsnis: parengto modelio sudarymas

Mokomo modelio sudarymas
Mokomo modelio sudarymas

Kad jūsų apmokytas modelis veiktų su „Coral Edge TPU“, turite jį surinkti.

Aukščiau yra darbo eigos schema.

Po treniruotės turite išsaugoti jį kaip įšaldytą grafiką (.pb failą). Tada turite jį paversti „Tensorflow Lite“modeliu. Atkreipkite dėmesį, kaip sakoma „Kvantavimas po treniruotės“. Jei mokydamiesi perkelti naudojote suderinamus iš anksto apmokytus modelius, to daryti nereikia. Peržiūrėkite visą suderinamumo dokumentaciją čia.

Naudodami „Tensorflow Lite“modelį, turite jį sukompiliuoti į „Edge“TPU modelį. Išsamią informaciją apie tai, kaip tai padaryti, rasite čia.

8 žingsnis: perdirbimo aptikimo modelis

Jei nenorite pervargti objekto aptikimo modelio mokymo, konvertavimo ir sudarymo, peržiūrėkite mano perdirbimo aptikimo modelį čia.

9 veiksmas: įdiekite modelį

Įdiekite modelį
Įdiekite modelį

Kitas žingsnis yra nustatyti „Raspberry Pi“(RPI) ir „Edge“TPU, kad būtų paleistas apmokytas objektų aptikimo modelis.

Pirmiausia nustatykite RPI naudodami šią mokymo programą.

Tada nustatykite „Edge TPU“vadovaudamiesi šia pamoka.

Galiausiai prijunkite RPI kameros modulį prie aviečių pi.

Dabar esate pasirengęs išbandyti savo objektų aptikimo modelį!

Jei jau klonavote mano saugyklą, norėsite pereiti į RPI katalogą ir paleisti failą test_detection.py:

python test_detection.py --model 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

Turėtų pasirodyti mažas langas ir, jei įdėsite plastikinį vandens butelį ar kitą perdirbimo medžiagą, jis turėtų jį aptikti, kaip parodyta aukščiau.

Norėdami baigti programą, paspauskite klaviatūros raidę „q“.

10 žingsnis: sukurkite robotų ranką

Sukurkite robotų ranką
Sukurkite robotų ranką

Robotinė ranka yra 3D spausdinta ranka, kurią radau čia. Tiesiog sekite vadovą, kaip jį nustatyti.

Aukščiau esančiame paveikslėlyje parodyta, kaip pasirodė mano robotinė ranka.

Įsitikinkite, kad prijungėte servo kaiščius prie mano kodo Arduino įvesties/išvesties kaiščių. Prijunkite servoservus nuo rankos apačios iki viršaus tokia tvarka: 3, 11, 10, 9, 6, 5. Jei nesujungiate tokios eilės, ranka pajudės netinkamai!

Patikrinkite, ar jis veikia, eidami į „Arduino“katalogą ir paleisdami failą „basicMovement.ino“. Tai tiesiog paims daiktą, kurį pastatysite prieš ranką, ir numes už jo.

11 veiksmas: RPI ir robotinės rankos prijungimas

RPI ir robotų rankos prijungimas
RPI ir robotų rankos prijungimas

Pirmiausia turime pritvirtinti kameros modulį prie letenos apačios. Aukščiau pateiktame paveikslėlyje parodyta, kaip jis turėtų atrodyti.

Pabandykite sulygiuoti fotoaparatą kuo tiesiau, kad sumažintumėte klaidas, suimant atpažįstamą perdirbimo medžiagą. Turėsite naudoti ilgą kameros modulio juostinį kabelį, kaip parodyta medžiagų sąraše.

Tada turite įkelti failą roboticArm.ino į „Arduino“lentą.

Galiausiai, mes tiesiog turime prijungti USB kabelį tarp RPI USB prievado ir „Arduino“USB prievado. Tai leis jiems bendrauti serijiniu būdu. Vadovaukitės šia pamoka, kaip tai nustatyti.

12 žingsnis: paskutiniai prisilietimai

Paskutiniai prisilietimai
Paskutiniai prisilietimai
Paskutiniai prisilietimai
Paskutiniai prisilietimai

Šis žingsnis yra visiškai neprivalomas, tačiau man patinka visus savo komponentus sudėti į gražią mažą projekto dėžutę.

Aukščiau esančiuose paveikslėliuose parodyta, kaip tai atrodo.

Projekto laukelį rasite medžiagų sąraše. Aš ką tik išgręžiau skylutes ir naudoju žalvario atramas elektronikai montuoti. Taip pat sumontavau 4 aušinimo ventiliatorius, kad karštas oras nuolat tekėtų per RPI ir TPU.

13 žingsnis: bėgimas

Dabar esate pasiruošę įjungti tiek robotinę ranką, tiek RPI! RPI galite tiesiog paleisti failą recycle_detection.py. Tai atvers langą ir robotinė ranka pradės veikti kaip demonstraciniame vaizdo įraše! Norėdami baigti programą, paspauskite klaviatūros raidę „q“.

Nesivaržykite žaisti su kodu ir linksmintis!

14 žingsnis: būsimas darbas

Tikiuosi pasinaudoti R. O. S. valdyti robotų ranką tikslesniais judesiais. Tai leis tiksliau paimti objektus.

15 žingsnis: kyla klausimų?

Jei turite klausimų, nedvejodami palikite komentarą žemiau!

Rekomenduojamas: