Σύνταξη άρθρου: Ευθύμης Κυρίκος

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

Σε προηγούμενα άρθρα αναφερθήκαμε στις ρομποτικές μηχανές εξηγώντας πως αποτελούνται από τα εξής μέρη: μηχανικό μέρος, τα ηλεκτρονικά και το λογισμικό.

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

Η αρχιτεκτονική ενός λογισμικού

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

Διάγραμμα αρχιτεκτονικής λογισμικού Ρομποτικής

Λογισμικό Οδηγών

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

Κώδικας γραμμένος σε γλώσσα C που υποστηρίζει λειτουργίες πρώτου επιπέδου

Λογισμικό Πλατφόρμας

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

Λογισμικό δεύτερου επιπέδου. Με τη χρήση σύγχρονου λογισμικού ο κώδικας μπορεί να αντικατασταθεί με σχέδια 

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

Αλγόριθμοι Ελέγχου

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

Απεικόνιση του τρόπου υπολογισμού της τροχιάς από ένα λογισμικό τρίτου επιπέδου
Χάρτης που δείχνει πως το ρομπότ καταλαβαίνει το γύρω του περιβάλλον. Μέσω αισθητήρων μετρά την απόσταση από εμπόδια και τα χρωματίζει

Διεπαφή χρήστη

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

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

 

Πηγές:

  • A Layered Approach to Designing Robot Software. url: http://www.ni.com/white-paper/13929/en/
  • Norman Hendrich, Hannes Bistry, Jianwei Zhang, Architecture and Software Design for a Service Robot in an Elderly-Care Scenario. Computer Science Department, University of Hamburg, Hamburg D-22527, Germany
  • Jongsun Choi, Yongseong Cho, Jaeyoung Choi, Jongmyung Choi, A Layered Middleware Architecture for Automated Robot Services. School of Computer Science and Engineering, Soongsil University, Seoul 156-743, Republic of Korea.
  • K. S. Fu, R. C. Gonzalez, G. S. G. Lee, “Robotics : control, sensing, vision, and intelligence,” McGraw-Hill, 1987. (629.892 FU)

 

Ηλ.Ταχ.:robot@athinodromio.gr

Ευθύμης Κυρίκος

Ηλεκτρολόγος Μηχανικός Ειδικός Αυτοματισμού και Ρομποτικής

 

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

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