Πίνακας περιεχομένων:

Hawking Bot: 5 βήματα
Hawking Bot: 5 βήματα

Βίντεο: Hawking Bot: 5 βήματα

Βίντεο: Hawking Bot: 5 βήματα
Βίντεο: 🚀 RUTUBE и ТОЧКА. Разработка РУТУБА за 5 часов *БЕЗ ВОДЫ* [Next / React / Nest / PostgreSQL / Redux] 2024, Νοέμβριος
Anonim
Image
Image
Φτιάξτε το Hawking Bot σας
Φτιάξτε το Hawking Bot σας

Το Hawking Bot είναι ένα Lego MINDSTORMS EV3 Project εμπνευσμένο από τον αείμνηστο Stephen Hawking. Ο Stephen Hawking είχε καλή αίσθηση του χιούμορ, οπότε είμαι σίγουρος ότι θα είχε εγκρίνει αυτό το έργο. Το Hawking Bot μπορεί να περιηγηθεί στα εμπόδια και ανταποκρίνεται στις κινήσεις και στη συνέχεια εκφωνεί ένα από τα διάσημα ηχητικά τσιμπήματα του Stephen Hawking και κινείται προς την κατεύθυνση του κινούμενου αντικειμένου. Χρησιμοποιεί τον υπερηχητικό αισθητήρα που σαρώνει το περιβάλλον του με μια σάρωση της κεφαλής.

Βήμα 1: Φτιάξτε το Hawking Bot σας

Όλα τα απαιτούμενα κομμάτια βρίσκονται στο βασικό σετ EV3 Lego MINDSTORMS με εξαίρεση τον αισθητήρα υπερήχων (τα μάτια του) που πρέπει να αγοράσετε ξεχωριστά.

Βήμα 2:

Εικόνα
Εικόνα

Ο κώδικας για το Hawking Bot είναι όλα γραμμένος σε python 3. Ένα αρχείο με δυνατότητα εκκίνησης για εκτέλεση python σε περιβάλλον Debian Linux στο Bot Hawking μπορεί να μεταφορτωθεί από τον ιστότοπο ev3dev. Μπορείτε να κατεβάσετε τον κώδικα για να τρέξετε το Hawking Bot από εδώ. Όλος ο κώδικας περιέχεται σε ένα αρχείο κλάσης, ώστε να μπορείτε να χρησιμοποιήσετε τις υπάρχουσες μεθόδους ή ακόμα και να τις τροποποιήσετε αν θέλετε.

Παρακολουθήστε αυτό το βίντεο με λεπτομερείς οδηγίες σχετικά με τον τρόπο ρύθμισης του Debian Linux και του Python3 στο ρομπότ σας. Αν και αυτό είναι ειδικά για μια ρύθμιση Mac, θα είναι ακόμα χρήσιμο να αποκτήσετε μια γενική κατανόηση της διαδικασίας. Αυτό είναι έργο σε εξέλιξη. Ο υπερηχητικός αισθητήρας είναι κατά καιρούς αναξιόπιστος και αυτό απαιτεί πιο έξυπνο κώδικα για την ανίχνευση «υπερβολικών». Θα ήθελα να δω συνεισφορές από άλλους για να γίνει ο κώδικας πιο αποτελεσματικός και λιγότερο επιρρεπής σε σφάλματα.

Βήμα 3: Φτιάξτε τα δικά σας Hawking Soundbites

Εντάξει τώρα θέλετε να έχετε μερικές περίφημες αναφορές ή απλές εκφράσεις από τον καθηγητή Χόκινγκ. Υπάρχουν πολλά βίντεο όπου μπορείτε να τον ακούσετε να μιλά και στη συνέχεια υπάρχουν οι διαλέξεις του που αποτελούν θησαυρό σοφίας και χρήσιμων ήχων.

Χρειάζεστε ένα πρόγραμμα όπως το Audacity που λειτουργεί σε πολλές πλατφόρμες για να επιλέξετε και να κόψετε τα αγαπημένα σας soundbites.

Αποθηκεύστε το soundbite σας ως αρχείο wav mono ως SH6, SH7,… SH11, SH12 και ούτω καθεξής.

Παρακάτω θα βρείτε μερικά δείγματα που έχω δημιουργήσει σύμφωνα με την παραπάνω μέθοδο.

Βήμα 4: Συμβουλές και κόλπα

Συμβουλές και κόλπα
Συμβουλές και κόλπα
Συμβουλές και κόλπα
Συμβουλές και κόλπα

Το Hawking Bot συνοδεύεται από μονάδα αυτοελέγχου για να διασφαλιστεί ότι όλα τα καλώδια είναι συνδεδεμένα και η ισχύς της μπαταρίας είναι επαρκής. Χαλαρές, χαμένες ή ακόμη και χαλασμένες συνδέσεις μπορεί να προκύψουν εύκολα. Αυτή η ενότητα λοιπόν είναι πολύ χρήσιμη. Η μέθοδος 'checkConnection' ελέγχει μόνο εάν υπάρχει ηλεκτρική σύνδεση. Πρέπει ακόμα να διασφαλίσετε ότι οι κινητήρες είναι συνδεδεμένοι στη σωστή θύρα.

Η κίνηση της κεφαλής είναι απαραίτητη για το Hawking Bot να σαρώσει το έδαφός του και να βρει τη μεγαλύτερη διαδρομή χωρίς εμπόδια μπροστά. Τα καλώδια χρειάζονται αρκετό χώρο για να ικανοποιήσουν τις κινήσεις του κεφαλιού. Επομένως, είναι σκόπιμο να τα συνδέσετε όπως φαίνεται στη φωτογραφία.

Το Hawking Bot λειτουργεί καλύτερα με μεγάλα εμπόδια και σε επίπεδη και λεία επιφάνεια. Τα χαλιά είναι πιο δύσκολα για τους κινητήρες και ίσως χρειαστεί να προσαρμόσετε τις ρυθμίσεις για να προσαρμόσετε τη συμπεριφορά για διαφορετικές επιφάνειες.

Το Hawking Bot δεν είναι σε καμία περίπτωση τέλειο και αυτό είναι ένα πρωτότυπο που θα επωφεληθεί από περαιτέρω βελτιώσεις. Ο κώδικας σχολιάζεται πλήρως και θα πρέπει να είναι εύκολο για εσάς να καταλάβετε τι κάνουν οι διάφορες μέθοδοι. Διάφορα bits έχουν σχολιαστεί με #, αν αφαιρέσετε το # μπροστά από την "εκτύπωση", το τρέχον πρόγραμμα θα σας δείξει τις διάφορες ενδείξεις και υπολογισμούς αισθητήρων.

Βήμα 5: Προτεινόμενες βελτιώσεις, ενημερώσεις και μελλοντικές ιδέες

Τώρα που έχετε κατασκευάσει με επιτυχία το ρομπότ σας, θέλετε να το πάρετε στο επόμενο επίπεδο. Θα μπορούσατε να βελτιώσετε τη μέθοδο MotionDetector. Αυτή τη στιγμή τόσο συχνά παίρνει λάθος ανάγνωση. Μπορείτε να δείτε τις πραγματικές ενδείξεις χωρίς να σχολιάσετε τα disA και disB (στο κάτω μέρος του μπλοκ μεθόδου). Η λάθος ανάγνωση συνήθως ξεχωρίζει από άλλες αναγνώσεις, ώστε να μπορείτε να γράψετε έναν αλγόριθμο για να σταματήσει το ρομπότ να ανταποκρίνεται σε λάθος ανάγνωση.

Perhapsσως θέλετε να έχετε τον πλήρη έλεγχο του ρομπότ και απλώς να ελέγχετε τις διάφορες λειτουργίες του με τηλεχειρισμό. Θα μπορούσατε να το κάνετε αυτό μέσω Bluetooth και να γράψετε ένα πρόγραμμα Android για επικοινωνία με το ρομπότ. Ωστόσο, μια πολύ πιο εύκολη προσέγγιση θα ήταν να βρεθεί μια θέση για τον υπέρυθρο αισθητήρα να αναλάβει τον έλεγχο του Hawking Bot.

Τι γίνεται με το ρομπότ να μάθει για το περιβάλλον του; Αυτό θα μπορούσε να επιτευχθεί με μια προσέγγιση k-πλησιέστερου γείτονα ή πιθανώς με ένα νευρωνικό δίκτυο. Το τούβλο EV3 έχει περιορισμένη επεξεργαστική ισχύ αν και υποστηρίζει το Numpy. Μια εναλλακτική λύση θα ήταν ένα BrickPi που θα σας επέτρεπε να τρέχετε μια βιβλιοθήκη τεχνητής νοημοσύνης όπως το Tensorflow, αλλά η πρόθεση αυτού του οδηγού ήταν να χρησιμοποιήσετε το κιτ Lego EV3 MINDSTORMS χωρίς να χρειαστεί να αγοράσετε πολλά ακριβά πρόσθετα κομμάτια εκτός από τον αισθητήρα υπερήχων.

Ωστόσο, η προσέγγιση εκμάθησης επανατοποθέτησης k-πλησιέστερων γειτόνων θα πρέπει να λειτουργεί στο τούβλο EV3 και αυτός είναι ο προτεινόμενος αλγόριθμος. Εναπόκειται σε εσάς να βρείτε μια υλοποίηση εργασίας ή να εντοπίσετε τυχόν προβλήματα:

Μάθηση ενίσχυσης για το Hawkings Bot

Η ιδέα είναι ότι οι 7 αναγνώσεις USS κωδικοποιούνται σε ένα διάνυσμα και οι τελευταίες 10 ανατροπές κεφαλής χρησιμοποιούνται για τη δημιουργία ενός διαδοχικού διανύσματος 70 καταχωρήσεων. Οι πρώτες αναγνώσεις είναι ελλιπείς, οπότε θα γεμίσουν με μηδενικά. Κάθε καταχώρηση περιέχει την τιμή απόστασης από το USS. Αυτό είναι το διάνυσμα κατάστασης s. Το σύστημα επιτρέπει 1000 καταχωρήσεις. Στη συνέχεια, η παλαιότερη καταχώρηση θα αντικατασταθεί και οι καταχωρήσεις ηλικίας για κάθε ζεύγος s-r θα μειωθούν κατά μία.

Το bot δεν πρέπει να πλησιάζει περισσότερο από 10 cm σε ένα αντικείμενο. Αυτό δημιουργεί αρνητική ανταμοιβή. Για απλότητα; οι καλές ενέργειες ανταμείβονται με 1 και οι κακές με 0. Αυτό δημιουργεί πιθανότητα ανταμοιβής για κάθε συνδυασμό δράσης-κατάστασης. Θα χρησιμοποιήσουμε μειωμένες ανταμοιβές και άπληστη πολιτική epsilon.

Αυτό δημιουργεί 3 μεγάλους πίνακες κατάστασης-επιστροφής (s-r) και για τις τρεις ενέργειες δεξιά, ευθεία μπροστά και αριστερά-μπορεί να είναι δυνατή η γρήγορη και αργή ταχύτητα για κάθε ενέργεια. Τότε θα είχαμε 6 ενέργειες και 6 πίνακες αναζήτησης s-r.

Κάθε φορά που καταγράφεται μια νέα κατάσταση συγκρίνεται με τους πίνακες, η Ευκλείδεια απόσταση (ή παρόμοιο μέτρο) χρησιμοποιείται για τον εντοπισμό του πλησιέστερου γείτονα. Αυτό δεν θα ταξινομηθεί αλλά μάλλον ένα όριο t έχει οριστεί για να αποδεχθεί την κατάσταση ως πολύ παρόμοια, να αντικαταστήσει την υπάρχουσα κατάσταση και να ενημερώσει για την υψηλότερη ανταμοιβή και να πραγματοποιήσει τη σχετική ενέργεια α. Εάν δεν είναι παρόμοιο (d> t) εισάγετε ένα νέο ζεύγος s-r για κάθε ενέργεια a. Εάν υπάρχει ισοπαλία μεταξύ των ενεργειών για το s-r (όλες έχουν την ίδια ανταμοιβή) επιλέξτε τυχαία, αλλά αυτό δεν είναι συνηθισμένο και θα μπορούσε να παραλειφθεί.

Το t θα πρέπει να προσδιοριστεί πειραματικά, εάν το t είναι πολύ μικρό παρόμοιες καταστάσεις αγνοούνται και κάθε κατάσταση θεωρείται ως μοναδική. Πολύ μεγάλο α σημαίνει ότι ακόμη και μάλλον ανόμοιες καταστάσεις συγκεντρώνονται μεταξύ τους, γεγονός που θα μπορούσε να επηρεάσει την ικανότητα επιλογής καλών ενεργειών. Μπορεί να είναι δυνατή η χρήση στατιστικών μεθόδων για τον προσδιορισμό του καλύτερου t.

Ο πίνακας μοιάζει κάπως έτσι: Αριθμός συμμετοχής - Διάνυσμα κατάστασης - ανταμοιβή για τη δράση 1 - ανταμοιβή για τη δράση 2 - επιβράβευση για τη δράση 3.

Υποθέτω ότι η πραγματική εφαρμογή θα είναι δύσκολη, αλλά πρέπει να αξίζει τον κόπο. Καλή τύχη!

Συνιστάται: