«

Ιούν 09

Πως θα φτιάξω ένα ρομπότ;

ID-100390126Στο άρθρο αυτό θα περιγράψουμε την διαδικασία που ακολουθούμε για να σχεδιάσουμε, να κατασκευάσουμε και να προγραμματίσουμε ένα ρομπότ. Όμως σημειώστε ότι δεν θα μπούμε στον τρόπο υλοποίησης κάθε φάσης ούτε στα εργαλεία που θα χρησιμοποιήσουμε. Στόχος μας είναι να κατανοήσουμε τα βήματα που πρέπει να ακολουθήσουμε προκειμένου να φτιάξουμε ένα ρομπότ.

Η απλή περίπτωση είναι να θέλουμε να φτιάξουμε ένα εκπαιδευτικό ρομπότ. Η διαδικασία σε αυτή τη περίπτωση είναι απλή. Αγοράζουμε το kit που θέλουμε και ακολουθούμε τις οδηγίες. Αυτό που κάνουν τα εκπαιδευτικά kits είναι να απλοποιούν την όλη διαδικασία δίνοντας μας έτοιμες τις οδηγίες, τα σχέδια και τα υλικά. Αν το καλοσκεφτεί κανείς αυτό που θα περιγράψουμε σε αυτό το άρθρο, τουλάχιστον τα βήματα μέχρι και την υλοποίηση του ρομπότ, είναι η διαδικασία που ακολουθούμε για να φτιάξουμε ένα kit. Η διαδικασία που θα περιγράψουμε αφορά οποιοδήποτε ρομπότ. Φυσικά θα δούμε την όλη διαδικασία συνοπτικά. Στόχος είναι να κατανοήσουμε τις βασικές αρχές της διαδικασίας προκειμένου να μπορούμε να την προσαρμόσουμε στις ανάγκες μας.

Τα βήματα που ακολουθούμε όταν σχεδιάζουμε ένα ρομπότ είναι: ορίζουμε το πρόβλημα, κάνουμε την απαραίτητη έρευνα, κάνουμε τον αρχικό σχεδιασμό, δημιουργούμε ένα πρωτότυπο, υλοποιούμε το ρομπότ, το προγραμματίζουμε, το ελέγχουμε και στο τέλος το αξιολογούμε. Συνήθως τα βήματα αυτά επαναλαμβάνονται αρκετές φορές μέχρι να πετύχουμε το αποτέλεσμα που θέλουμε. Η διαδικασία είναι κυκλική. Καθώς περνάμε από βήμα σε βήμα, αν ανακαλύψουμε κενά ή σφάλματα σε ένα ή περισσότερα από τα προηγούμενα βήματα, επανερχόμαστε, κάνουμε τις απαραίτητες αλλαγές και συνεχίζουμε. Όταν η αξιολόγηση του ρομπότ γίνει επιτυχώς κλείνει ο κύκλος.

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

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

Κατά τη φάση συλλογής πληροφοριών θα πρέπει να καταλάβουμε τι ακριβώς θα κάνει το ρομπότ. Κατ’ αρχήν μας ενδιαφέρει η λειτουργικότητα του. Πως θα κινείται; Θα χειρίζεται άλλα αντικείμενα και με ποιο τρόπο; Τι μορφή ενέργειας θα χρησιμοποιεί; Θα αντιλαμβάνεται το περιβάλλον του; Θα έχει κάποια μορφή ευφυΐας;  Έπειτα πρέπει να δούμε την εξωτερική του εμφάνιση. Πόσο σημαντικό ρόλο παίζει η εμφάνιση του;  Έχει σημασία το χρώμα, το σχήμα, τα υλικά κατασκευής;

Εξίσου σημαντική όμως είναι και η εργονομία. Πόσο δυνατό πρέπει να είναι;  Πόσο σταθερό πρέπει να είναι; Πόση ακρίβεια χρειάζεται στις κινήσεις του; Πόσο εύκολο πρέπει να είναι στο χειρισμό του;  Τι αντοχή πρέπει να έχει όσον αφορά τη θερμοκρασία; Και φυσικά το σπουδαιότερο, υπάρχουν ειδικά μέτρα ασφαλείας που πρέπει να λάβουμε υπόψη μας; Έχοντας όλες αυτές τις πληροφορίες θα πρέπει να κάνουμε και μια εκτίμηση κόστους κατασκευής. Είναι σημαντικό να ξέρουμε, αν η υλοποίηση που σχεδιάζουμε είναι οικονομικά εφικτή.

Στο σημείο αυτό έχουμε αρκετές πληροφορίες για να εξετάσουμε τους πιθανούς τρόπους κατασκευής. Μπορούμε να διακρίνουμε τους τρόπους κατασκευής: α) με την κοπή και την σχηματοποίηση των υλικών, β) με την χρήση συνδέσμων (βίδες, κόλες, συγκόλληση),  γ) με τη διαμόρφωση των υλικών (χτύπημα κλπ) και τέλος δ) με τη δημιουργία αντιγράφων χρησιμοποιώντας καλούπια. Για να επιλέξουμε σωστά την διαδικασία ή τις διαδικασίες που θα χρησιμοποιηθούν για την κατασκευή, πρέπει να λάβουμε υπόψη μας τα υλικά, τις διαθέσιμες εγκαταστάσεις, την διαθεσιμότητα και τις τεχνικές γνώσεις του προσωπικού και τέλος τα κόστη παραγωγής.

Σε αυτό το σημείο θα πρέπει να απαντήσουμε σε μερικά πολύ σημαντικά ερωτήματα, που δεν έχουν άμεση σχέση με τον σχεδιασμό. Έχουν να κάνουν με την επίδραση της κατασκευής και της λειτουργίας του συγκεκριμένου ρομπότ στην κοινωνία και στο περιβάλλον. Ο σχεδιαστής ενός ρομπότ οφείλει να λάβει υπόψη του τις συνέπειες στην υγεία και την ασφάλεια των ανθρώπων, των ζώων και του ευρύτερου περιβάλλοντος. Για παράδειγμα πρέπει να λάβει υπόψη του τα επίπεδα θορύβου, τις πιθανές μυρωδιές και την μόλυνση που μπορεί να επιφέρει το ρομπότ.

Όπως καταλαβαίνετε η όλη διαδικασία της συλλογής των απαραίτητων πληροφοριών είναι επίπονη και χρονοβόρα. Το πλεονέκτημα όμως αυτής της διαδικασίας είναι πως κάνει σχετικά απλή υπόθεση τον σχεδιασμό. Έχοντας το αρχικό μας σχέδιο μπορούμε πλέον να περάσουμε στη φάση δημιουργίας του πρωτοτύπου. Στόχος μας σε αυτή τη φάση είναι να ελέγξουμε, να διορθώσουμε και να βελτιώσουμε το σχεδιασμό μας. Καλό είναι να μην μείνουμε μόνο σε ένα τρόπο υλοποίησης του σχεδίου μας. Το ιδανικό θα ήταν να σκεφτούμε τουλάχιστον τρεις πιθανές λύσεις. Έτσι κάνοντας διάφορες δοκιμές μπορούμε να καταλήξουμε στο καταλληλότερο. Πολύτιμος βοηθός μας στη φάση αυτή μπορεί να είναι κάποιο kit κατασκευών, όπως για παράδειγμα της Lego.

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

Επειδή η όλη διαδικασία κατασκευής ενός ρομπότ είναι πολύπλοκη είναι απαραίτητο να φτιάξουμε ένα χρονοδιάγραμμα, το οποίο θα περιγράφει τα βήματα που θα ακολουθήσουμε. Για κάθε βήμα πρέπει να καταγράψουμε: α) τι ακριβώς θα κάνουμε, β) τι υλικά χρειαζόμαστε, γ) τι εργαλεία χρειαζόμαστε και δ) πόσο χρόνο υπολογίζουμε ότι θα μας πάρει για να ολοκληρώσουμε το βήμα αυτό.  Το χρονοδιάγραμμα αυτό θα είναι ο οδηγός μας κατά την διαδικασία κατασκευής του ρομπότ.

Αν όλα έχουν πάει καλά μέχρι τώρα, η διαδικασία κατασκευής θα πρέπει να γίνεται απλά ακολουθώντας τα σχέδια, το χρονοδιάγραμμα και τις σημειώσεις στο ημερολόγιο κατασκευής. Αν υπάρχουν κενά ή δεν είναι απολύτως ξεκάθαρο τι πρέπει να κάνουμε ή πως πρέπει να το κάνουμε, τότε πρέπει να γυρίσουμε πίσω και να ξανατρέξουμε την όλη διαδικασία. Με την ολοκλήρωση της φάσης κατασκευής θα πρέπει να έχουμε το «σώμα» του ρομπότ έτοιμο. Είμαστε έτοιμοι να ασχοληθούμε με το «μυαλό» του.

Η φάση προγραμματισμού του ρομπότ μας είναι και η πιο ενδιαφέρουσα αφού το κάνει λειτουργικό. Ανάλογα με τις λειτουργίες που θέλουμε να κάνει το ρομπότ μας επιλέγουμε και τον τρόπο υλοποίησης αυτής της φάσης. Συνήθως, θεωρώντας ότι το ρομπότ μας θέλουμε να έχει μια στοιχειώσει ευφυΐα, πρέπει να γράψουμε ένα πρόγραμμα, το οποίο θα επιτρέπει στο ρομπότ μας να λειτουργήσει. Το ρόλο του «εγκεφάλου» του ρομπότ μας παίζει ο μικρό-ελεγκτής. Αυτός είναι υπεύθυνος για την εκτέλεση του προγράμματος. Αν θέλουμε να το δούμε αφαιρετικά, ένα ρομπότ κάνει τρία πράγματα. Μαζεύει πληροφορίες από το περιβάλλον του, τις επεξεργάζεται και αντιδρά σε αυτές. Ανάλογα με την πολυπλοκότητα των λειτουργιών, που θέλουμε να επιτελέσει το ρομπότ μας, είναι πιθανό να πρέπει να του δώσουμε κάποια «αρχική γνώση» και πιθανόν την δυνατότητα να μαθαίνει και να σχεδιάζει.

Για να αντιληφθεί το ρομπότ τι συμβαίνει γύρω του χρησιμοποιεί μικρές συσκευές, τους αισθητήρες. Ένας αισθητήρας μπορεί να «βλέπει» το φως του χώρου, το χρώμα των γύρω αντικειμένων, τη θέση του ρομπότ, την απόσταση του ρομπότ από άλλα αντικείμενα, την θερμοκρασία, την υγρασία και πολλά άλλα πράγματα. Προκειμένου να αντιδράσει το ρομπότ και πιθανόν να επηρεάσει το περιβάλλον του έχει τους μηχανισμούς δράσεις. Αυτοί μπορεί να είναι κινητήρες που του επιτρέπουν να κινηθεί, βραχίονες για να χειριστεί αντικείμενα, laser για την κοπή αντικειμένων και διάφορες άλλες συσκευές που χρειάζονται για τις λειτουργίες του. Για να πούμε ότι ολοκληρώθηκε η διαδικασία του προγραμματισμού θα πρέπει να έχουμε γράψει το πρόγραμμα, να το έχουμε «ανεβάσει» στον μικρό-επεξεργαστή και να έχουμε συνδέσει τους αισθητήρες και τους μηχανισμούς δράσης.

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

Επιτέλους έχουμε δημιουργήσει το ρομπότ  μας, το οποίο με λίγη τύχη θα λειτουργεί! Σχεδόν τελειώσαμε. Έχουμε όμως ακόμα ένα βήμα, το οποίο είναι και το πιο σημαντικό από όλα: η αξιολόγηση του ρομπότ μας. Στην ουσία κάνουμε ποιοτικό έλεγχο. Ακολουθήθηκαν οι απαιτήσεις; Χρησιμοποιήθηκαν τα σωστά υλικά; Είναι η κατασκευή ποιοτική; Εκτιμήσαμε σωστά το χρόνο και το κόστος; Πρέπει επίσης να ελέγξουμε ότι το ρομπότ μας λειτουργεί σωστά και αποδοτικά στο κανονικό του περιβάλλον. Όπως βλέπετε στη φάση αυτή αξιολογούμε δύο πράγματα. Το πρώτο είναι η απόδοση του ρομπότ με βάση τους αρχικούς στόχους. Το δεύτερο είναι η απόδοση η δική μας ως σχεδιαστές, κατασκευαστές, προγραμματιστές ή αξιολογητές, ανάλογα με ποιον ή ποιους ρόλους είχαμε αναλάβει.

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

Image courtesy of Pansa at FreeDigitalPhotos.net