LabSTEMinators – Εργαστήρι STEM, Terminator

LabSTEMinators – Εργαστήρι STEM, Terminator

 

 

Περιγραφή έργου

Το έργο μας αφορά το σχεδιασμό και τη δημιουργία ενός ρομπότ το οποίο θα συμβάλει στην άμβλυνση της εγκληματικότητας σε δημόσιους χώρους στο βαθμό της πρόληψης. Συγκεκριμένα, με τη χρήση κάμερας θα “σαρώνει” με προκαθορισμένη συχνότητα ή μετά από οπτικό ερέθισμα, ένα δημόσιο χώρο (βλ. εμπορικό κέντρο, συναυλιακό χώρο, γήπεδο, κτλ) και θα εντοπίζει φονικά αντικείμενα όπως όπλα διαφόρων μοντέλων. Στην περίπτωση εντοπισμού, άμεσα θα προχωράει σε μια σειρά προκαθορισμένων ενεργειών, όπως για παράδειγμα η ενημέρωση ενός κέντρου διαχείρισης. Επίσης, θα έχει τη δυνατότητα να εντοπίζει σεσημασμένους κακοποιούς “σκανάρωντας” πρόσωπα που βρίσκονται στον ίδιο χώρο και να ενημερώνει τη σχετική Αρχή.

 

Εξοπλισμός

Για την υλοποίηση του παραπάνω έργου θα χρειαστούμε τον παρακάτω εξοπλισμό:

  1. Raspberry Pi 3 – Model B+
  2. Raspberry Pi Camera Module V2 (8MP,1080p)
  3. 16GB Micro SD – TRANSCEND Class 10
  4. 3x Αισθητήρες Υπερήχων 2 – 400cm SR04
  5. Servo Standard 6kg.cm Plastic Gears (Feetech FS5106B)
  6. USB Powered Speakers
  7. Arduino UNO
  8. 3x Μπαταρία Λιθίου 18650 3.7V 3350mAh
  9. Μπαταριοθήκη 3×18650 – με Καλώδια
  10. Lithium Battery Charger and Protection Module 1A – TP4056
  11. Μετατροπέας DC-DC Step-Up 2-24V 2A – SX1308
  12. 3D PRINTING filaments

 

 

 

 

 

 

 

 

 

 

 

Τα μέρη του ρομπότ εκτυπώθηκαν από 3D εκτυπωτή που κατασκευάστηκε από τους μαθητές σε παρελθόντα χρόνο. Τα σχέδια του ρομπότ δημιουργήθηκαν με το Fusion 360 (free) και σε αυτή την περίπτωση αγοράστηκαν τα νήματα για την εκτύπωση (περίπου 2 κιλά). Όμως, η κατασκευή θα μπορούσε να υλοποιηθεί και με έτοιμα μέρη του εμπορίου τα οποία συναρμολογούνται.

 

Λειτουργία

Αρχικά, για να δουλέψει σωστά η εφαρμογή, θα πρέπει να “εκπαιδεύσουμε” το ρομπότ να αναγνωρίζει τα πρόσωπα μιας σειράς συγκεκριμένων ατόμων των οποίων (εν τω προκειμένου των μελών της ομάδας). Έχουμε φτιάξει μια εφαρμογή η οποία φωτογραφίζει 40 φωτογραφίες ενός ατόμου και τις αποθηκεύει με έναν αύξων αριθμό στον φάκελο Dataset. Η εφαρμογή είναι γραμμένη σε python και έχει όνομα faceToDateset.py.

Όπως φαίνεται και στη διπλανή εικόνα, ο χρήστης με κωδικό 4 φωτογραφίζεται 40 φορές και κάθε φωτογραφία αποθηκεύεται με όνομα που προκύπτει από το πρόθεμα User, τον κωδικό του (4) και τον αύξων αριθμό (1,2,3,..39,40). Έτσι, προκύπτει για κάθε φωτογραφία όνομα της μορφής πχ User.4.36.jpg. Αν για παράδειγμα το ρομπότ μας αναγνωρίζει 5 πρόσωπα, θα πρέπει να έχουμε αποθηκεύσει στο φάκελο dataset 200 (5 x 40) φωτογραφίες.

Στη συνέχεια, μια δεύτερη εφαρμογή, η faceTrainer.py δημιουργεί με τα περιεχόμενα του φακέλου dataset (φωτογραφίες) το αρχείο “trainer.yml” το οποίο χρησιμοποιείται από το κυρίως πρόγραμμά μας για να αναγνωρίσει τα πρόσωπα.

Και τέλος, αφού έχουμε προετοιμάσει το ρομπότ να αναγνωρίζει τα πρόσωπα, ξεκινάμε την εφαρμογή εκτελώντας το πρόγραμμα main.py. Το πρόγραμμα, αφού κάνει την αρχικοποίηση, ξεκινάει την αναγνώριση. Αξίζει να σημειώσουμε πως για κάθε πρόσωπο με όνομα “username” υπάρχει στον φάκελο labmodules/personProfiles ένα αντίστοιχο αρχείο κειμένου με το ίδιο όνομα (βλέπε τις παρακάτω εικόνες)

 

 

 

 

 

Το αρχείο περιέχει σε κάθε γραμμή πληροφορία η οποία ακολουθεί μια λέξη κλειδί χωρισμένη με #.