Spisu treści:
- Krok 1: Części
- Krok 2: Części drukowane w 3D
- Krok 3: Kod
- Krok 4: Uzyskanie danych
- Krok 5: Etykietowanie obrazów
- Krok 6: Trening
- Krok 7: Kompilacja wyszkolonego modelu
- Krok 8: Model wykrywania recyklingu
- Krok 9: Wdróż model
- Krok 10: Zbuduj ramię robota
- Krok 11: Podłączanie RPI i ramienia robota
- Krok 12: Ostatnie poprawki
- Krok 13: Bieganie
- Krok 14: Przyszła praca
- Krok 15: Pytania?
Wideo: Recyklingowy robot sortujący: 15 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Czy wiesz, że średni poziom skażenia w społecznościach i firmach wynosi do 25%? Oznacza to, że co czwarty wyrzucany materiał do recyklingu nie podlega recyklingowi. Jest to spowodowane błędem ludzkim w centrach recyklingu. Tradycyjnie pracownicy sortują śmieci do różnych pojemników w zależności od materiału. Ludzie popełniają błędy i nie sortują właściwie śmieci, co prowadzi do skażenia. Ponieważ zanieczyszczenie i zmiana klimatu stają się jeszcze bardziej znaczące w dzisiejszym społeczeństwie, recykling odgrywa ogromną rolę w ochronie naszej planety. Dzięki wykorzystaniu robotów do sortowania śmieci, wskaźniki zanieczyszczeń drastycznie zmniejszą się, nie wspominając o dużo tańszych i bardziej zrównoważonych. Aby rozwiązać ten problem, stworzyłem robota sortującego recykling, który wykorzystuje uczenie maszynowe do sortowania różnych materiałów pochodzących z recyklingu.
Krok 1: Części
Upewnij się, że masz następujące części do naśladowania wraz z tym samouczkiem:
Części drukowane 3D (patrz krok poniżej)
Raspberry Pi RPI 4 4 GB
Akcelerator USB Google Coral
Arduino Uno R3
Moduł kamery Raspberry Pi V2
Zasilacz ścienny 5V 2A DC
Zasilanie DC 12 V
SG90 9g Mikro Serwa 4szt.
Nylonowa nakrętka zabezpieczająca sześciokątna M3 x 0.5mm ze stali nierdzewnej 100szt.
Śruby tytanowe z łbem kulistym M3x20 10szt.
MG996R Metal Gear Torque Analog Servo Motor 4szt.
Samsung 32 GB wybierz kartę pamięci
Kabel Adafruit Flex do kamery Raspberry Pi - 1 metr
M2 męski żeński mosiężny zestaw nakrętek dystansowych z nakrętką dystansową
Wentylator 60mm 12V
Pudełko projektowe 6,69 "x 5,12" x 2,95"
Krok 2: Części drukowane w 3D
Będziesz musiał wydrukować w 3D wszystkie części ramienia robota. Wszystkie pliki można znaleźć tutaj.
Krok 3: Kod
Sklonuj moje repozytorium GitHub, aby śledzić je wraz z tym samouczkiem.
Krok 4: Uzyskanie danych
Aby wyszkolić model wykrywania obiektów, który może wykrywać i rozpoznawać różne materiały do recyklingu, użyłem zestawu danych trashnet, który zawiera 2527 obrazów:
- 501 szkła
- 594 papier
- 403 karton
- 482 plastik
- 410 metalu
- 137 śmieci
Powyższy obrazek jest przykładem jednego na obrazach z zestawu danych.
Ten zestaw danych jest bardzo mały, aby wytrenować model wykrywania obiektów. Jest tylko około 100 zdjęć śmieci, które są za mało, aby wytrenować dokładny model, więc postanowiłem to pominąć.
Możesz użyć tego folderu na Dysku Google do pobrania zestawu danych. Pamiętaj, aby pobrać plik dataset-resize.zip. Zawiera zestaw obrazów, których rozmiar został już przeskalowany do mniejszego rozmiaru, aby umożliwić szybsze szkolenie. Jeśli chcesz zmienić rozmiar nieprzetworzonych obrazów zgodnie z własnymi upodobaniami, pobierz plik dataset-original.zip.
Krok 5: Etykietowanie obrazów
Następnie musimy oznaczyć kilka obrazów różnych materiałów recyklingowych, aby wytrenować model wykrywania obiektów. Aby to zrobić, użyłem labelImg, darmowego oprogramowania, które pozwala na etykietowanie ramek ograniczających obiekty na obrazach.
Oznacz każdy obraz odpowiednią etykietą. Ten samouczek pokazuje, jak to zrobić. Upewnij się, że każda ramka ograniczająca znajduje się jak najbliżej granicy każdego obiektu, aby zapewnić jak najdokładniejszy model wykrywania. Zapisz wszystkie pliki.xml w folderze.
Powyższe zdjęcie pokazuje, jak oznaczyć swoje obrazy.
To bardzo żmudne i paraliżujące umysł doświadczenie. Na szczęście dla Ciebie już oznaczyłem wszystkie obrazy! Znajdziesz go tutaj.
Krok 6: Trening
W zakresie szkoleń zdecydowałem się na transfer learning z wykorzystaniem Tensorflow. Pozwala nam to trenować przyzwoicie dokładny model bez dużej ilości danych.
Możemy to zrobić na kilka sposobów. Możemy to zrobić na naszym lokalnym komputerze stacjonarnym w chmurze. Trening na naszym lokalnym komputerze zajmie bardzo dużo czasu, w zależności od tego, jak potężny jest Twój komputer i czy masz potężny procesor graficzny. To chyba najłatwiejszy sposób moim zdaniem, ale znowu z minusem szybkości.
Należy zwrócić uwagę na kilka kluczowych kwestii związanych z transferem uczenia się. Musisz upewnić się, że wstępnie wytrenowany model, którego używasz do treningu, jest zgodny z Coral Edge TPU. Kompatybilne modele znajdziesz tutaj. Użyłem modelu MobileNet SSD v2 (COCO). Zapraszam do eksperymentowania z innymi.
Aby trenować na komputerze lokalnym, polecam skorzystanie z samouczka Google lub samouczka EdjeElectronics, jeśli działa w systemie Windows 10. Osobiście przetestowałem samouczek EdjeElectroncs i osiągnąłem sukces na moim komputerze. Nie mogę potwierdzić, czy samouczek Google zadziała, ale byłbym zaskoczony, gdyby tak nie było.
Aby trenować w chmurze, możesz użyć AWS lub GCP. Znalazłem ten samouczek, który możesz wypróbować. Wykorzystuje TPU w chmurze Google, które mogą bardzo szybko trenować model wykrywania obiektów. Zachęcamy również do korzystania z AWS.
Niezależnie od tego, czy trenujesz na komputerze lokalnym, czy w chmurze, powinieneś otrzymać wytrenowany model tensorflow.
Krok 7: Kompilacja wyszkolonego modelu
Aby wytrenowany model działał z TPU Coral Edge, musisz go skompilować.
Powyżej znajduje się schemat przepływu pracy.
Po przeszkoleniu należy go zapisać jako zamrożony wykres (plik.pb). Następnie należy go przekonwertować na model Tensorflow Lite. Zwróć uwagę, jak jest napisane "Kwantyzowanie po treningu". Jeśli podczas korzystania z uczenia transferu korzystałeś ze zgodnych wstępnie wytrenowanych modeli, nie musisz tego robić. Zapoznaj się z pełną dokumentacją dotyczącą kompatybilności tutaj.
W przypadku modelu Tensorflow Lite musisz go skompilować do modelu Edge TPU. Zobacz szczegóły, jak to zrobić tutaj.
Krok 8: Model wykrywania recyklingu
Jeśli nie chcesz przechodzić przez kłopoty z trenowaniem, konwertowaniem i kompilowaniem modelu wykrywania obiektów, zapoznaj się z moim modelem wykrywania recyklingu tutaj.
Krok 9: Wdróż model
Następnym krokiem jest skonfigurowanie Raspberry Pi (RPI) i Edge TPU do uruchomienia wytrenowanego modelu wykrywania obiektów.
Najpierw skonfiguruj RPI, korzystając z tego samouczka.
Następnie skonfiguruj Edge TPU zgodnie z tym samouczkiem.
Na koniec podłącz moduł kamery RPI do raspberry pi.
Jesteś teraz gotowy do przetestowania swojego modelu wykrywania obiektów!
Jeśli sklonowałeś już moje repozytorium, będziesz chciał przejść do katalogu RPI i uruchomić plik 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.txt
Powinno pojawić się małe okienko, a jeśli włożysz plastikową butelkę z wodą lub inny materiał z recyklingu, powinno to wykryć, jak na powyższym obrazku.
Naciśnij literę „q” na klawiaturze, aby zakończyć program.
Krok 10: Zbuduj ramię robota
Ramię robota to ramię wydrukowane w 3D, które tutaj znalazłem. Po prostu postępuj zgodnie z samouczkiem dotyczącym konfigurowania.
Powyższy obrazek pokazuje, jak wyszło moje ramię robota.
Upewnij się, że podłączasz piny serwa do pinów Arduino I/O w moim kodzie. Połącz serwa od dołu do góry ramienia w następującej kolejności: 3, 11, 10, 9, 6, 5. Niepodłączenie go w tej kolejności spowoduje, że ramię poruszy niewłaściwym serwo!
Sprawdź, czy działa, przechodząc do katalogu Arduino i uruchamiając plik basicMovement.ino. To po prostu chwyci przedmiot, który umieścisz przed ramieniem, i upuści go z tyłu.
Krok 11: Podłączanie RPI i ramienia robota
Najpierw musimy zamontować moduł kamery na spodzie pazura. Powyższy obrazek pokazuje, jak powinien wyglądać.
Staraj się ustawić kamerę tak prosto, jak to możliwe, aby zminimalizować błędy w chwytaniu rozpoznanego materiału z recyklingu. Będziesz musiał użyć długiego kabla taśmowego modułu kamery, jak pokazano na liście materiałów.
Następnie musisz wgrać plik roboticArm.ino na płytkę Arduino.
Na koniec musimy tylko podłączyć kabel USB między portem USB RPI a portem USB Arduino. To pozwoli im komunikować się przez port szeregowy. Postępuj zgodnie z tym samouczkiem, jak to skonfigurować.
Krok 12: Ostatnie poprawki
Ten krok jest całkowicie opcjonalny, ale lubię umieszczać wszystkie moje komponenty w ładnym, małym pudełku projektowym.
Powyższe zdjęcia pokazują, jak to wygląda.
Możesz znaleźć skrzynkę projektu na liście materiałów. Po prostu wywierciłem kilka otworów i użyłem mosiężnych wsporników do zamontowania elektroniki. Zamontowałem również 4 wentylatory chłodzące, aby utrzymać stały przepływ powietrza przez RPI i TPU, gdy są gorące.
Krok 13: Bieganie
Jesteś teraz gotowy do włączenia zarówno ramienia robota, jak i RPI! W RPI możesz po prostu uruchomić plik recycle_detection.py. Spowoduje to otwarcie okna, a ramię robota zacznie działać, tak jak w filmie demonstracyjnym! Naciśnij literę „q” na klawiaturze, aby zakończyć program.
Zapraszam do zabawy z kodem i baw się dobrze!
Krok 14: Przyszła praca
Mam nadzieję, że skorzystam z R. O. S. kontrolować ramię robota za pomocą bardziej precyzyjnych ruchów. Umożliwi to dokładniejsze podnoszenie przedmiotów.
Krok 15: Pytania?
Jeśli masz jakieś pytania, zostaw komentarz poniżej!
Zalecana:
Arduino - Robot rozwiązujący labirynt (MicroMouse) Robot podążający za ścianą: 6 kroków (ze zdjęciami)
Arduino | Robot rozwiązujący labirynt (MicroMouse) Robot podążający za ścianą: Witam Jestem Isaac i to jest mój pierwszy robot „Striker v1.0”. Ten robot został zaprojektowany do rozwiązywania prostego labiryntu. W konkursie mieliśmy dwa labirynty i robota był w stanie je zidentyfikować. Wszelkie inne zmiany w labiryncie mogą wymagać zmiany w
Kapelusz sortujący: 3 kroki
Tiara Przydziału: Ponieważ zbliżamy się do tej pory roku, w której przebieramy się w różne kostiumy, pewnego roku nasi pracownicy szkoły zdecydowali, że tematy będą podzielone na wydziały. Harry Potter był popularnym wyborem, a ponieważ naprawdę zaczynałem robić szydełkowanie lalek Amigurumi i
PAPER HUNGRY ROBOT - Pringles Recycle Arduino Robot: 19 kroków (ze zdjęciami)
PAPER HUNGRY ROBOT - Pringles Recycle Arduino Robot: To kolejna wersja Hungry Robot, którą zbudowałem w 2018 roku. Możesz zrobić tego robota bez drukarki 3d. Wystarczy kupić puszkę Pringles, serwomotor, czujnik zbliżeniowy, arduino i kilka narzędzi. Możesz pobrać wszystkie
Joy Robot (Robô Da Alegria) - Open Source 3D Printed, Arduino Powered Robot!: 18 kroków (ze zdjęciami)
Joy Robot (Robô Da Alegria) – Open Source 3D Printed, Arduino Powered Robot!: Pierwsza nagroda w konkursie Instructables Wheels Contest, druga nagroda w Instructables Arduino Contest i drugie miejsce w konkursie Design for Kids Challenge. Dziękujemy wszystkim, którzy na nas głosowali!!!Roboty są wszędzie. Od zastosowań przemysłowych po u
Robot Butter: robot Arduino z kryzysem egzystencjalnym: 6 kroków (ze zdjęciami)
The Butter Robot: the Arduino Robot With Existential Crisis: Ten projekt jest oparty na serialu animowanym „Rick and Morty”. W jednym z odcinków Rick tworzy robota, którego jedynym celem jest przynoszenie masła. Jako studenci z Bruface (Wydział Inżynierii w Brukseli) mamy zlecenie na mecha