Taula de continguts:
- Pas 1: parts
- Pas 2: peces impreses en 3D
- Pas 3: Codi
- Pas 4: Obtenir les dades
- Pas 5: etiquetar les imatges
- Pas 6: formació
- Pas 7: compilació del model entrenat
- Pas 8: reciclar el model de detecció
- Pas 9: desplegueu el model
- Pas 10: Construeix el braç robòtic
- Pas 11: Connexió del RPI i del braç robòtic
- Pas 12: tocs finals
- Pas 13: córrer
- Pas 14: Treball futur
- Pas 15: preguntes?
Vídeo: Recicla el robot d'ordenació: 15 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Sabíeu que el percentatge mitjà de contaminació a les comunitats i empreses arriba fins al 25%? Això significa que una de cada quatre peces de reciclatge que llenceu no es recicla. Això es deu a un error humà als centres de reciclatge. Tradicionalment, els treballadors classifiquen les escombraries en diferents contenidors segons el material. Els éssers humans estan obligats a cometre errors i acaben no classificant correctament les escombraries, cosa que provoca la contaminació. A mesura que la contaminació i el canvi climàtic esdevenen encara més importants a la societat actual, el reciclatge té una part important en la protecció del nostre planeta. En utilitzar robots per ordenar les escombraries, les taxes de contaminació disminuiran dràsticament, per no dir molt més barates i sostenibles. Per solucionar-ho, vaig crear un robot d’ordenació de reciclatge que utilitza l’aprenentatge automàtic per ordenar entre diferents materials de reciclatge.
Pas 1: parts
Assegureu-vos que teniu les següents parts a seguir junt amb aquest tutorial:
Parts impreses en 3D (vegeu el pas següent)
Raspberry Pi RPI 4 4 GB
Accelerador USB de Google Coral
Arduino Uno R3
Mòdul de càmera Raspberry Pi V2
Font d'alimentació de paret de 5V 2A DC
Alimentació DC 12V
SG90 9g Micro Servos 4pcs.
Femella de bloqueig hexagonal de niló autoblocant M3 x 0,5mm d'acer inoxidable 100pcs.
Cargols de titani de capçal de botó M3x20 10 unitats.
Servomotor analògic de parell motor MG996R 4pcs.
Targeta de memòria Samsung 32GB Select
Cable flexible Adafruit per a càmera Raspberry Pi - 1 metre
Assortiment de rosques separadores de cargol separador de llautó femella femella M2
Ventilador de 12 mm de 60 mm
Caixa del projecte de 6,69 "x 5,12" x 2,95"
Pas 2: peces impreses en 3D
Haureu d’imprimir en 3D totes les parts del braç robotitzat. Podeu trobar tots els fitxers aquí.
Pas 3: Codi
Cloneu el dipòsit de GitHub per seguir aquest tutorial.
Pas 4: Obtenir les dades
Per entrenar el model de detecció d'objectes que pugui detectar i reconèixer diferents materials de reciclatge, he utilitzat el conjunt de dades de la paperera que inclou 2527 imatges:
- 501 got
- 594 paper
- 403 cartró
- 482 plàstic
- 410 metall
- 137 escombraries
La imatge superior és un exemple d'una de les imatges del conjunt de dades.
Aquest conjunt de dades és molt petit per formar un model de detecció d'objectes. Només hi ha unes 100 imatges d’escombraries massa petites per formar un model precís, així que vaig decidir deixar-ho de banda.
Podeu utilitzar aquesta carpeta de Google Drive per baixar el conjunt de dades. Assegureu-vos de descarregar el fitxer dataset-resized.zip. Conté el conjunt d'imatges que ja es redimensionen a una mida més petita per permetre un entrenament més ràpid. Si voleu canviar la mida de les imatges en brut al vostre gust, descarregueu el fitxer dataset-original.zip.
Pas 5: etiquetar les imatges
A continuació, hem d’etiquetar diverses imatges de diferents materials de reciclatge per poder entrenar el model de detecció d’objectes. Per fer-ho, he utilitzat labelImg, un programari gratuït que us permet etiquetar quadres que delimiten objectes en imatges.
Etiqueta cada imatge amb l'etiqueta adequada. Aquest tutorial us mostra com fer-ho. Assegureu-vos que cada quadre de delimitació sigui el més a prop del límit de cada objecte per assegurar-vos que el model de detecció sigui el més precís possible. Deseu tots els fitxers.xml en una carpeta.
La foto superior mostra com etiquetar les vostres imatges.
Aquesta és una experiència molt tediosa i increïble. Afortunadament per vosaltres, ja us he etiquetat totes les imatges. El podeu trobar aquí.
Pas 6: formació
Pel que fa a la formació, vaig decidir utilitzar l'aprenentatge per transferència mitjançant Tensorflow. Això ens permet formar un model decentment precís sense una gran quantitat de dades.
Hi ha un parell de maneres de fer-ho. Ho podem fer a la nostra màquina d’escriptori local al núvol. L'entrenament a la nostra màquina local trigarà molt de temps en funció de la potència del vostre equip i de la vostra GPU. Aquesta és probablement la forma més senzilla al meu parer, però de nou amb la desavantatge de la velocitat.
Hi ha algunes coses clau a destacar sobre l’aprenentatge per transferència. Heu d’assegurar-vos que el model pre-entrenat que utilitzeu per a la formació sigui compatible amb el TPU Coral Edge. Aquí podeu trobar models compatibles. He utilitzat el model MobileNet SSD v2 (COCO). No dubteu a experimentar amb altres també.
Per entrenar a la vostra màquina local, us recomanaria que seguiu el tutorial de Google o el tutorial EdjeElectronics si s'executa al Windows 10. Personalment, he provat el tutorial EdjeElectroncs i he aconseguit l'èxit al meu escriptori. No puc confirmar si el tutorial de Google funcionarà, però em sorprendria si no ho faci.
Per entrenar al núvol, podeu utilitzar AWS o GCP. He trobat aquest tutorial que podeu provar. Utilitza els núvols TPU de Google que poden entrenar el model de detecció d’objectes de manera ràpida. Feu servir també AWS.
Tant si entreneu a la màquina local com al núvol, hauríeu d’acabar amb un model de tensorflow entrenat.
Pas 7: compilació del model entrenat
Perquè el vostre model entrenat funcioni amb el Coral Edge TPU, heu de compilar-lo.
A la part superior es mostra un diagrama per al flux de treball.
Després de l’entrenament, heu de desar-lo com a gràfic congelat (fitxer.pb). Després, heu de convertir-lo en un model Tensorflow Lite. Tingueu en compte com diu "Quantització post-formació". Si heu utilitzat els models pre-entrenats compatibles quan utilitzeu l'aprenentatge per transferència, no cal que ho feu. Feu un cop d'ull a la documentació completa sobre compatibilitat aquí.
Amb el model Tensorflow Lite, heu de compilar-lo amb un model Edge TPU. Vegeu detalls sobre com fer-ho aquí.
Pas 8: reciclar el model de detecció
Si no voleu superar la molèstia d’entrenar, convertir i compilar el model de detecció d’objectes, consulteu el meu model de detecció de reciclatge aquí.
Pas 9: desplegueu el model
El següent pas és configurar Raspberry Pi (RPI) i Edge TPU per executar el model de detecció d'objectes entrenat.
Primer, configureu el RPI mitjançant aquest tutorial.
A continuació, configureu Edge TPU seguint aquest tutorial.
Finalment, connecteu el mòdul de la càmera RPI al raspberry pi.
Ja esteu a punt per provar el vostre model de detecció d'objectes.
Si ja heu clonat el dipòsit, voldreu anar al directori RPI i executar el fitxer 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
Ha d’aparèixer una finestra petita i, si poseu una ampolla d’aigua de plàstic o un altre material de reciclatge, hauria de detectar-la com la imatge superior.
Premeu la lletra "q" al teclat per finalitzar el programa.
Pas 10: Construeix el braç robòtic
El braç robòtic és un braç imprès en 3D que he trobat aquí. Només heu de seguir el tutorial per configurar-lo.
La imatge superior mostra com va resultar el meu braç robòtic.
Assegureu-vos que connecteu els pins de servo als pins d'E / S Arduino del meu codi. Connecteu els servos de baix a dalt del braç en aquest ordre: 3, 11, 10, 9, 6, 5. Si no el connecteu en aquest ordre, el braç mourà el servo equivocat.
Proveu-lo per funcionar navegant al directori Arduino i executant el fitxer basicMovement.ino. Això simplement agafarà un objecte que col·loqueu davant del braç i el deixareu enrere.
Pas 11: Connexió del RPI i del braç robòtic
Primer hem de muntar el mòdul de la càmera a la part inferior de l’urpa. La imatge superior mostra com ha de quedar.
Intenteu alinear la càmera el més recta possible per minimitzar els errors en agafar el material de reciclatge reconegut. Haureu d’utilitzar el cable de cinta llarg del mòdul de la càmera tal com es veu a la llista de materials.
A continuació, heu de penjar el fitxer roboticArm.ino a la placa Arduino.
Finalment, només hem de connectar un cable USB entre el port USB de l’RPI i el port USB de l’Arduino. Això els permetrà comunicar-se mitjançant sèries. Seguiu aquest tutorial sobre com configurar-lo.
Pas 12: tocs finals
Aquest pas és completament opcional, però m'agrada posar tots els meus components en una petita caixa de projectes.
Les imatges anteriors mostren el seu aspecte.
Podeu trobar el quadre del projecte a la llista de materials. Acabo de perforar alguns forats i he utilitzat separadors de llautó per muntar l’electrònica. També he muntat 4 ventiladors de refrigeració per mantenir un flux d'aire constant a través de l'RPI i el TPU quan està calent.
Pas 13: córrer
Ja esteu a punt per encendre tant el braç robotitzat com el RPI. Al RPI, només podeu executar el fitxer recycle_detection.py. Això obrirà una finestra i el braç robòtic començarà a funcionar igual que al vídeo de demostració. Premeu la lletra "q" al teclat per finalitzar el programa.
No dubteu a jugar amb el codi i divertiu-vos!
Pas 14: Treball futur
Espero utilitzar R. O. S. per controlar el braç robòtic amb moviments més precisos. Això permetrà recollir objectes amb més precisió.
Pas 15: preguntes?
Si teniu cap pregunta, no dubteu a deixar un comentari a continuació.
Recomanat:
Sistema d'ordenació del color: sistema basat en Arduino amb dos cinturons: 8 passos
Sistema de classificació de colors: sistema basat en Arduino amb dues corretges: el transport i / o l’envasament de productes i articles en el camp industrial es fa mitjançant línies fabricades amb cintes transportadores. Aquests cinturons ajuden a moure l’article d’un punt a un altre amb una velocitat específica. Algunes tasques de processament o identificació poden ser
Sistema senzill d'ordenació de productes amb Raspberry Pi i Arduino: 5 passos
Sistema de classificació de productes senzill amb Raspberry Pi i Arduino: sóc un FAN de l’enginyeria, m’encanta programar i fer projectes relacionats amb l’electrònica en el meu temps lliure, en aquest projecte compartiria amb vosaltres un sistema de classificació de productes senzill que he fet recentment. aquest sistema, si us plau, prepareu els components a
PAPER HUNGRY ROBOT - Pringles recicla el robot Arduino: 19 passos (amb imatges)
PAPER HUNGRY ROBOT - Pringles Recycle Arduino Robot: Aquesta és una altra versió de Hungry Robot que vaig construir el 2018. Podeu fabricar aquest robot sense impressora 3D. Tot el que heu de fer és comprar una llauna de Pringles, un servomotor, un sensor de proximitat, un arduino i algunes eines. Podeu descarregar tots els
Gesture Hawk: robot controlat amb gestos manuals mitjançant la interfície basada en el processament d’imatges: 13 passos (amb imatges)
Gesture Hawk: robot controlat amb gestos manuals mitjançant interfície basada en el processament d’imatges: Gesture Hawk es va mostrar a TechEvince 4.0 com una interfície simple màquina basada en el processament d’imatges. La seva utilitat rau en el fet que no es requereixen cap sensor addicional ni un dispositiu portàtil, excepte un guant, per controlar el cotxe robòtic que funciona amb diferents
COM FER UNA REPLICA DEL FAMÍLIC ESTANY D'ALTOIDES. (I RECICLA AL MATEIX TEMPS): 7 passos
COM FER UNA REPLICA DEL FAMÍLIC ESTANY D'ALTOIDES. (I RECICLA AL MATEIX TEMPS): Hola, aquest indestructible tracta de com fer una caixa metàl·lica de la mateixa mida (o de la mida que vulgueu) de la llauna dels Altoides. Sabeu què significa això ???? Això vol dir que podeu fer les vostres pròpies llaunes ….. QUALSEVOL MIDA QUE VOLEU !!!!!!!!!!! Heus aquí com. MATERIALS: 2