Σύνταξη άρθρου: Σοφία Δρακάκη

Επιμέλεια: Κωνσταντίνος Ουρανός

 

 

Ας δούμε τι εννοούμε όταν αναφερόμαστε στον όρο «Προγραμματισμός Ρομπότ». Ας το δούμε καταρχήν με εικόνες. Ας το κάνουμε καταρχήν με εικόνες στον νου μας.

Εικόνα 1

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

Εικόνα 2

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

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

Προγραμματισμός των Ρομπότ

Γνωρίζουμε ότι το Ρομπότ είναι μία μηχανική κατασκευή που μπορεί να εκτελεί προγραμματισμένες εργασίες και, αντίθετα με τις απλές μηχανές, ακολουθεί την μέθοδο Αισθάνομαι (με αισθητήρες), Σκέπτομαι (software), Ενεργώ (μηχανικά μέρη).

Το ότι το Ρομπότ «Σκέπτεται» είναι απλά το αποτέλεσμα του προγραμματισμού του. Για τον προγραμματισμό του μπορεί να ασχολούνται επιστήμονες από διάφορες ειδικότητες, με κυρίαρχους τους αναλυτές και τους προγραμματιστές από τους κλάδους της Επιστήμης Υπολογιστών (Computer Science) και της Μηχανικής Υπολογιστών (Computer Engineering).

Χρησιμοποιώντας μια γλώσσα προγραμματισμού (ενδεικτικά C, C++, Python), προγραμματίζουμε το Ρομπότ μας πώς να αντιδρά ανάλογα με τα ερεθίσματα του περιβάλλοντος του. Αρχικά λοιπόν, ο αναλυτής θα δημιουργήσει έναν αλγόριθμο που θα καθορίσει τον «τρόπο σκέψης» του Ρομπότ, και στη συνέχεια ο προγραμματιστής θα τον μετατρέψει σε κώδικα που «καταλαβαίνει» το Ρομπότ.

Σε αυτό το σημείο, αξίζει να τονίσουμε ότι δεν είναι τόσο εύκολο όσο φαίνεται να φτιάξουμε έναν σωστό και πλήρη αλγόριθμο, ακόμη και για το απλό άνοιξε – κλείσε της πόρτας του σούπερ – μάρκετ.

Πρέπει λοιπόν να προβλέψουμε επακριβώς το τί θα κάνει το πρόγραμμα σε όλες τις καταστάσεις. Άρα δεν αρκεί ένας απλός αλγόριθμος  «Αν έλθει κάποιος άνοιξε την πόρτα και αν περάσει κλείσε», διότι δεν του έχουμε πει τι θα κάνει αν, όσο κλείνει την πόρτα, έλθει κάποιος άλλος!

Αν δοκιμάσει κάποιος να «προγραμματίσει» μόνος του

Πριν να διαβάσετε παρακάτω, πραγματικά αξίζει να σκεφτείτε πώς θα το κάνατε εσείς μόνοι σας. Πώς θα δίνατε οδηγίες σε κάποιον που δεν καταλαβαίνει τίποτε (… στον ηλεκτρονικό σας υπολογιστή) να κάνει ακριβώς αυτό που θέλετε, δηλαδή να ανοίξει την πόρτα, όταν πρέπει και να την κλείσει με ασφάλεια, πάλι όταν πρέπει;

Ας δούμε ένα παράδειγμα

 

 

Ο αλγόριθμος της πόρτας του σούπερ – μάρκετ

  1. Η πόρτα είναι κλειστή.
  2. Αν (πλησιάσει_κάποιος) τότε πήγαινε στο 3 αλλιώς πήγαινε στο 2.
  3. Άνοιξε την πόρτα.
  4. Αν (κάποιος_είναι_από_κάτω) τότε περίμενε αλλιώς πήγαινε στο 5.
  5. Κλείσε λίγο την πόρτα και, αν έκλεισε τελείως, τότε πήγαινε στο 1 αλλιώς πήγαινε στο 6.
  6. Αν (κάποιος_είναι_από_κάτω) τότε πήγαινε στο 3 αλλιώς πήγαινε στο 5.

«Όλα αυτά για μία πόρτα;» θα αναρωτηθεί εύλογα κανείς. Και όμως αυτή είναι μια απλή μορφή του αλγορίθμου. Ο παραπάνω αλγόριθμος χωράει ακόμη νέα πράγματα και βελτιώσεις. Τι σημαίνει για παράδειγμα «αν πλησιάσει_κάποιος;». Το ίδιο θα χειριστούμε έναν που έρχεται και το ίδιο έναν που φεύγει; Θέλουμε να ανοίγει η πόρτα, για να μπει ένα ασυνόδευτο παιδί, αλλά θέλουμε να ανοίξει, για να βγει ένα ασυνόδευτο παιδί; Και αν όχι, αυτό θα το κάνει το πρόγραμμα (software) ή το μηχάνημα (hardware); Τι πλεονεκτήματα έχει η μία προσέγγιση έναντι της άλλης σε κόστος, σε ευκολία, σε διαδικασία συντήρησης και σε όποια άλλη παράμετρο;

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

Είδαμε μόνο την αρχή αλλά νομιζουμε ότι αρκεί για να καταλάβουμε το πόσο όμορφο και ενδιαφέρον είναι το ταξίδι στον κόσμο της Ρομποτικής.

 

 

Σοφία Δρακάκη

Ηλεκτρολόγος Μηχανικός

M. Sc. Computer Engineering

Ιδρύτρια του Κέντρου Ρομποτικής για Παιδιά Citylab