Përmbajtje:

Roboti i renditjes së riciklimit: 15 hapa (me fotografi)
Roboti i renditjes së riciklimit: 15 hapa (me fotografi)

Video: Roboti i renditjes së riciklimit: 15 hapa (me fotografi)

Video: Roboti i renditjes së riciklimit: 15 hapa (me fotografi)
Video: Укладка плитки и мозаики на пол за 20 минут .ПЕРЕДЕЛКА ХРУЩЕВКИ от А до Я. #26 2024, Nëntor
Anonim
Image
Image
Marrja e të Dhënave
Marrja e të Dhënave

A e dini se shkalla mesatare e ndotjes në komunitete dhe biznese shkon deri në 25%? Kjo do të thotë që një në çdo katër pjesë të riciklimit që hidhni nuk riciklohet. Kjo është shkaktuar për shkak të gabimit njerëzor në qendrat e riciklimit. Tradicionalisht, punëtorët do të rendisin plehrat në kosha të ndryshëm në varësi të materialit. Njerëzit janë të detyruar të bëjnë gabime dhe të përfundojnë duke mos i renditur plehrat siç duhet, duke çuar në ndotje. Ndërsa ndotja dhe ndryshimi i klimës bëhen edhe më domethënëse në shoqërinë e sotme, riciklimi merr një pjesë të madhe në mbrojtjen e planetit tonë. Duke përdorur robotët për të renditur plehrat, nivelet e kontaminimit do të ulen në mënyrë drastike, për të mos përmendur shumë më të lira dhe më të qëndrueshme. Për të zgjidhur këtë, unë krijova një robot të klasifikimit të riciklimit që përdor mësimin e makinerisë për të renditur midis materialeve të ndryshme të riciklimit.

Hapi 1: Pjesët

Sigurohuni që keni pjesët e mëposhtme për të ndjekur së bashku me këtë udhëzues:

Pjesë të printuara 3D (shiko hapin më poshtë)

Raspberry Pi RPI 4 4 GB

Google Coral USB Accelerator

Arduino Uno R3

Raspberry Pi Kamera Moduli V2

Furnizimi me energji i murit 5V 2A DC

Furnizimi me energji DC 12V

SG90 9g Micro Servos 4pcs.

M3 x 0.5mm Çelik inox Self-Lock Nylon Hex Lock Nut 100 copë.

M3x20 Butoni Kreu Titani Vida 10 copë.

MG996R Metal Gear Torque Analog Servo Motor 4pcs.

Samsung 32GB Zgjidhni Kartën e Kujtesës

Kabllo Adafruit Flex për Kamera Raspberry Pi - 1 metër

M2 Mashkull Femër Tunxh Spacer Standoff Screw Nut Assortment Kit

Tifoz 60mm 12V

Kutia e projektit 6.69 "x 5.12" x 2.95"

Hapi 2: Pjesët e printuara në 3D

Do t'ju duhet të printoni 3D të gjitha pjesët për krahun robotik. Këtu mund të gjeni të gjitha skedarët.

Hapi 3: Kodi

Ju lutemi kloni depozitën time GitHub për ta ndjekur së bashku me këtë udhëzues.

Hapi 4: Marrja e të dhënave

Për të trajnuar modelin e zbulimit të objekteve që mund të zbulojë dhe njohë materiale të ndryshme të riciklimit, kam përdorur grupin e të dhënave të plehrave i cili përfshin 2527 imazhe:

  • 501 gotë
  • Letër 594
  • Kartoni 403
  • 482 plastike
  • 410 metal
  • 137 plehra

Fotografia e mësipërme është një shembull i një në imazhet nga grupi i të dhënave.

Ky grup i të dhënave është shumë i vogël për të trajnuar një model të zbulimit të objektit. Ka vetëm rreth 100 imazhe të plehrave që janë shumë pak për të trajnuar një model të saktë, kështu që vendosa ta lija jashtë.

Ju mund ta përdorni këtë dosje google drive për të shkarkuar grupin e të dhënave. Sigurohuni që të shkarkoni skedarin dataset-resized.zip. Ai përmban grupin e imazheve që tashmë janë ndryshuar në një madhësi më të vogël për të lejuar trajnim më të shpejtë. Nëse dëshironi të ndryshoni madhësinë e imazheve të papërpunuara sipas dëshirës tuaj, mos ngurroni të shkarkoni skedarin dataset-original.zip.

Hapi 5: Etiketimi i imazheve

Etiketimi i Imazheve
Etiketimi i Imazheve

Tjetra, ne duhet të etiketojmë disa imazhe të materialeve të ndryshme të riciklimit në mënyrë që të mund të trajnojmë modelin e zbulimit të objekteve. Për ta bërë këtë, unë përdor labelImg, një softuer falas që ju lejon të etiketoni kutitë e kufizimit të objekteve në imazhe.

Etiketoni çdo imazh me etiketën e duhur. Ky tutorial ju tregon se si. Sigurohuni që të bëni çdo kuti kufizuese sa më afër kufirit të secilit objekt për të siguruar që modeli i zbulimit të jetë sa më i saktë që të jetë e mundur. Ruani të gjithë skedarët.xml në një dosje.

Fotografia e mësipërme tregon se si të etiketoni imazhet tuaja.

Kjo është një përvojë shumë e lodhshme dhe mpirëse e mendjes. Fatmirësisht për ju, unë tashmë i kam etiketuar të gjitha imazhet për ju! Mund ta gjeni këtu.

Hapi 6: Trajnimi

Për sa i përket trajnimit, vendosa të përdor mësimin e transferimit duke përdorur Tensorflow. Kjo na lejon të trajnojmë një model mjaft të saktë pa një sasi të madhe të të dhënave.

Ka disa mënyra se si mund ta bëjmë këtë. Ne mund ta bëjmë atë në desktopin tonë lokal në cloud. Trajnimi në makinën tonë lokale do të marrë një kohë super të gjatë në varësi të fuqisë së kompjuterit tuaj dhe nëse keni një GPU të fuqishme. Kjo është ndoshta mënyra më e lehtë për mendimin tim, por përsëri me anën negative të shpejtësisë.

Ka disa gjëra kryesore që duhen vënë re në lidhje me transferimin e mësimit. Ju duhet të siguroheni që modeli i para-stërvitur që përdorni për trajnim është në përputhje me TPU Coral Edge. Këtu mund të gjeni modele të pajtueshme. Kam përdorur modelin MobileNet SSD v2 (COCO). Mos ngurroni të eksperimentoni edhe me të tjerët.

Për të stërvitur në makinën tuaj lokale, unë do të rekomandoja të ndiqni tutorialin e Google ose tutorialin EdjeElectronics nëse punoni në Windows 10. Personalisht, kam testuar tutorialin EdjeElectroncs dhe kam arritur sukses në desktopin tim. Unë nuk mund të konfirmoj nëse mësimi i Google do të funksionojë, por do të isha i befasuar nëse nuk do të funksiononte.

Për të stërvitur në re, mund të përdorni AWS ose GCP. Kam gjetur këtë tutorial që mund të provoni. Ai përdor TPU cloud të Google që mund të trajnojë modelin tuaj të zbulimit të objekteve shumë shpejt. Mos ngurroni të përdorni edhe AWS.

Pavarësisht nëse stërviteni në makinën tuaj lokale ose në re, duhet të përfundoni me një model të trajnuar tensorflow.

Hapi 7: Përpilimi i modelit të trajnuar

Përpilimi i modelit të trajnuar
Përpilimi i modelit të trajnuar

Në mënyrë që modeli juaj i trajnuar të punojë me Coral Edge TPU, ju duhet ta përpiloni atë.

Më sipër është një diagram për rrjedhën e punës.

Pas trajnimit, ju duhet ta ruani atë si një grafik të ngrirë (skedar.pb). Pastaj, duhet ta konvertoni në një model Tensorflow Lite. Vini re se si thotë "Kuantizimi pas stërvitjes". Nëse keni përdorur modele të pajtueshme të para-trajnuara kur përdorni mësimin e transferimit, nuk keni nevojë ta bëni këtë. Hidhni një sy dokumentacionit të plotë mbi pajtueshmërinë këtu.

Me modelin Tensorflow Lite, duhet ta përpiloni atë në një model Edge TPU. Shikoni detajet se si ta bëni këtë këtu.

Hapi 8: Modeli i Zbulimit të Riciklimit

Nëse nuk doni të kaloni sherrin e trajnimit, konvertimit dhe përpilimit të modelit të zbulimit të objektit, shikoni modelin tim të zbulimit të riciklimit këtu.

Hapi 9: Vendosni modelin

Vendosni Modelin
Vendosni Modelin

Hapi tjetër është ngritja e Raspberry Pi (RPI) dhe Edge TPU për të drejtuar modelin e trajnuar të zbulimit të objekteve.

Së pari, vendosni RPI duke përdorur këtë udhëzues.

Tjetra, vendosni Edge TPU pas këtij udhëzuesi.

Së fundi, lidhni modulin e kamerës RPI me mjedrën pi.

Tani jeni gati për të testuar modelin tuaj të zbulimit të objektit!

Nëse e keni klonuar depon time tashmë, do të dëshironi të lundroni në drejtorinë RPI dhe të ekzekutoni skedarin test_detection.py:

python test_detection.py -model recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/dete_edgetpu.tflite --labels recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_09/09

Një dritare e vogël duhet të shfaqet dhe nëse vendosni një shishe plastike me ujë ose material tjetër riciklues, duhet ta zbulojë atë si imazhi i mësipërm.

Shtypni shkronjën "q" në tastierën tuaj për të përfunduar programin.

Hapi 10: Ndërtoni krahun robotik

Ndërtoni krahun robotik
Ndërtoni krahun robotik

Krahu robotik është një krah i printuar 3D që gjeta këtu. Vetëm ndiqni tutorialin për konfigurimin e tij.

Imazhi i mësipërm tregon se si doli krahu im robotik.

Sigurohuni që të lidhni kunjat servo me kunjat sipas Arduino I/O në kodin tim. Lidhni servot nga poshtë në krye të krahut në këtë mënyrë: 3, 11, 10, 9, 6, 5. Mos lidhja e tij në këtë mënyrë do të bëjë që krahu të lëvizë servo -n e gabuar!

Provoni që të funksionojë duke lundruar në drejtorinë Arduino dhe duke ekzekutuar skedarin BasicMovement.ino. Kjo thjesht do të kapë një objekt që e vendosni para krahut dhe e lëshoni prapa.

Hapi 11: Lidhja e RPI & Krahut Robotik

Lidhja e RPI dhe krahut robotik
Lidhja e RPI dhe krahut robotik

Ne së pari duhet të montojmë modulin e kamerës në fund të kthetrës. Imazhi i mësipërm tregon se si duhet të duket.

Mundohuni të rreshtoni kamerën sa më drejt që të jetë e mundur për të minimizuar gabimet në kapjen e materialit të njohur të riciklimit. Ju do të duhet të përdorni kabllon me fjongo të modulit të gjatë të kamerës siç shihet në listën e materialeve.

Tjetra, duhet të ngarkoni skedarin roboticArm.ino në tabelën Arduino.

Së fundi, ne vetëm duhet të lidhim një kabllo USB midis portës USB të RPI dhe portës USB të Arduino. Kjo do t'i lejojë ata të komunikojnë përmes serisë. Ndiqni këtë tutorial se si ta vendosni këtë.

Hapi 12: Prekjet përfundimtare

Prekjet përfundimtare
Prekjet përfundimtare
Prekjet përfundimtare
Prekjet përfundimtare

Ky hap është plotësisht opsional, por më pëlqen të vendos të gjithë përbërësit e mi në një kuti të vogël të bukur projekti.

Imazhet e mësipërme tregojnë se si duket.

Kutinë e projektit mund ta gjeni në listën e materialeve. Sapo kam shpuar disa vrima dhe kam përdorur prirje prej bronzi për të montuar pajisjet elektronike. Unë gjithashtu montova 4 tifozë ftohës për të mbajtur një rrjedhje konstante të ajrit përmes RPI dhe TPU kur është e nxehtë.

Hapi 13: Vrapimi

Tani jeni gati për të fuqizuar si krahun robotik ashtu edhe RPI! Në RPI, thjesht mund të ekzekutoni skedarin recycle_detection.py. Kjo do të hapë një dritare dhe krahu robotik do të fillojë të vrapojë ashtu si në videon demo! Shtypni shkronjën "q" në tastierën tuaj për të përfunduar programin.

Mos ngurroni të luani me kodin dhe argëtohuni!

Hapi 14: Puna në të ardhmen

Shpresoj të përdor R. O. S. për të kontrolluar krahun robotik me lëvizje më të sakta. Kjo do të mundësojë marrjen më të saktë të objekteve.

Hapi 15: Pyetje?

Mos ngurroni të lini një koment më poshtë nëse keni ndonjë pyetje!

Recommended: