ReMake - scanner 3D de obiecte - Roboti - Prahova - Lucrari 2022 Nationala

Informatii generale

Descriere

ReMake este un scanner 3D extrem de ușor de folosit. Doar amplasați obiectul pe patul de printare, urmați instrucțiunile afișate pe ecran, iar ReMake va începe procesul de scanare.
Procesul de scanare constă în realizarea unei serii de poze realizate la diferite unghiuri în jurul obiectului. Astfel de fiecare dată se realizează o poza cu laser pentru informații referitoare la adancimea obiectului și o poza fără laser pentru informații cu privire la culoarea obiectului în punctele respective. Unghiul pozelor este modificat prin rotirea patului pe care este așezat obiectul, iar în fața acestuia se afla camera împreună cu o banda de leduri pentru a regla contrastul.
Prin folosirea unor algoritmi de tip computer vision se detectează poziția laserului în imagine, iar apoi prin triangulare și prin formula legii lentilelor se obține adâncimea obiectului la un anumit unghi. Punctele sunt transformate din sistemul sferic în sistemul cartezian și sunt introduse într-o structura tridimensională. În continuare prin diferiți algoritmi de reconstrucție se determină suprafața obiectului, se “netezește” și se salvează în format stl. Transferul de date are loc prin WiFi folosind conexiuni ssh.
ReMake se diferențiază prin faptul că dispune de un braț mobil care va putea scana obiectul din fiecare unghi și de un senzor de greutate care vă v-a ajuta să aflați posibile materiale din care este făcut obiectul.

Tehnologii

Pentru a asigura o construcție rapidă și sigură a robotului, am proiectat ideile în Autodesk Inventor. După mai multe prototipuri am ajuns la o versiune finală cu un design eficient și optim. Etapa următoare a constat în printarea pieselor cu ajutorul unei imprimante 3D. Timpul total de printare a fost de aproximativ 41h, iar materialul folosit a fost în totalitate PETG.
ReMake are 2 motoare care mișcă patul și brațul care ține camera, sistemul de laser (laser+servo motor care conferă rotație laserului), luminile și microcomputer Raspberry Pi 4. Robotul are un senzor de presiune pe patul de scanare pentru a putea afla greutatea obiectului, o funcție care va ajuta la aflarea materialului din care este făcut obiectul. Partea hardware este controlată de un microcontroller Raspberry Pi Pico.
Pentru a reduce dimensiunile robotului și pentru a-i crește portabilitatea acesta are o sursa principala de alimentare externă de 15V și 70W. Elementele logice lucrează la 5V asigurat de un modul STEP-DOWN intern. În plus robotul dispune și de un regulator liniar de 12V pentru controlul benzi de LED.
Scanerul are la baza doua scripturi principale scrise in Python3 Testalacaremerge.py si respectiv main.py. Primul rulează pe Raspberry Pi și este apelat la start printr-un script shell. Acesta realizează conexiunea cu microcontrolerul Raspberry Pi Pico, înregistrează datele de la camera și senzori, și calculeaza adancimea și culoarea punctelor care constituie obiectul scanat. Cel de-al doilea script este bazat pe MicroPython și rulează la start pe microcontrolerul Raspberry Pi Pico. Funcționalitatea scriptului constituie controlul elementelor hardware, preluarea comenzilor de la utilizator si comunicarea cu microcomputerul Raspberry Pi. Generarea obiectului 3D în format STL se realizează pe computer prin rularea clasei pointcloud.py. Dacă nu se găsesc local datele generate se va încerca descarcarea acestora prin SSH. Motivul procesării pe computer a datelor generate este necesitatea unui procesor grafic avansat pentru calculele de suprafață efectuate.
ReMake, 2098 randuri, 5562 cuvinte, 55430 caractere de cod în 6 clase și 2 scripturi principale. Totul documentat și în limba engleză chiar aici: ReMake API documentation

Cerinte sistem

Linux, Python3, MicroPython, terminal bash, retea locala cu portul 22 deschis

Realizatori

Oana Datcu

  • Scoala: C.N. “Mihai Viteazul”
  • Clasa: 11
  • Judet: Prahova
  • Oras: Ploiești

Alexandru Oprea

  • Scoala: C.N. “Mihai Viteazul” Ploiesti
  • Clasa: 12
  • Judet: Prahova
  • Oras: Ploiesti

Screenshots