Στην εποχή της ταχείας ανάπτυξης της τεχνολογίας, η χρήση ρομποτικών συστημάτων είναι ευρεία σε όλο το φάσμα της σύγχρονης ζωής, και η αυτοματοποίηση που επιτυγχάνεται με τη χρήση τους, αποφέρει μεγάλη και ταχύτερη παραγωγή με σχετικά μικρότερο κόστος. Ωστόσο, τα ρομπότ είναι συχνά ασυνεπή κατά τη δοκιμή, καθώς υπάρχουν πολλές απροσδόκητες μεταβλητές. Οι ρομποτικές προσομοιώσεις δίνουν τη λύση στο πρόβλημα αυτό, αφού παρέχουν ένα χαμηλού κόστους, εύκολης πρόσβασης εικονικό περιβάλλον ανάπτυξης ρομπότ. Χρησιμοποιούνται για τη γρήγορη δοκιμή αισθητήρων, την αξιολόγηση του σχεδιασμού ενός ρομπότ, την προσομοίωση εικονικών αισθητήρων, παρέχουν
ελαχιστοποιημένο μοντέλο για προβλέψιμους ελεγκτές μοντέλων, μια αρχιτεκτονική για πραγματικό έλεγχο των ρομπότ και ούτω καθεξής. Οι ρομποτικές προσομοιώσεις λαμβάνουν χώρα σε ειδικά λογισμικά, τους προσομοιωτές ρομποτικής. Ένας προσομοιωτής ρομποτικής είναι ένας προσομοιωτής, που χρησιμοποιείται για τη δημιουργία μιας εφαρμογής για ένα φυσικό ρομπότ χωρίς να εξαρτάται από το πραγματικό μηχάνημα, εξοικονομώντας έτσι κόστος και χρόνο. Σε ορισμένες περιπτώσεις, αυτές οι εφαρμογές μπορούν να μεταφερθούν στο φυσικό ρομπότ χωρίς τροποποιήσεις. Μία από τις πιο δημοφιλείς εφαρμογές για προσομοιωτές ρομποτικής είναι η τρισδιάστατη μοντελοποίηση και απόδοση ενός ρομπότ και του περιβάλλοντός του. Αυτός ο τύπος λογισμικού ρομποτικής έχει ένα μοντέλο, που είναι ένα εικονικό ρομπότ, ικανό να μιμείται την κίνηση ενός πραγματικού ρομπότ σε μια πραγματική κατάσταση. Oρισμένοι προσομοιωτές μάλιστα χρησιμοποιούν μια μηχανή φυσικής, για μια πιο ρεαλιστική παραγωγή κίνησης του ρομπότ. Υπάρχει ένας μεγάλος αριθμός προσομοιωτών ρομποτικής, με τον καθένα να εξυπηρετεί, σε διαφορετικό βαθμό από τους άλλους, είτε διαφορετικούς είτε ίδιους σκοπούς. Παρόλο, όμως, που οι προσομοιωτές γενικότερα προσφέρουν μια πληθώρα προτερημάτων, η ανάγκη για την παραγωγή εφαρμογών και λογισμικού υψηλής ποιότητας έχει γίνει πιο επιτακτική απο ποτέ. Η αύξηση της παραγωγικότητας, ο έλεγχος (αποσφαλμάτωση), η επαλήθευση και συντήρηση του λογισμικού παίζουν καθοριστικό ρόλο στην ποιότητα του τελικού προϊόντος. Τα σύγχρονα λογισμικά, αντιθέτως, εμπεριέχουν μεγάλη πολυπλοκότητα, αφού συχνά αποτελούνται από εκατοντάδες γραμμές κώδικα, διανεμημένες σε πολλά διαφορετικά αρχεία, και εξαρτώνται από πολυάριθμες βιβλιοθήκες. Η αλλαγή μίας και μόνο γραμμής κώδικα, μπορεί να επηρεάσει τη λειτουργικότητα ολόκληρου του συστήματος και να προκαλέσει σφάλματα, κάτι που είναι πολύ πιθανό, αφού τα περισσότερα λογισμικά απαιτούν μεγάλο πλήθος ατόμων για την ανάπτυξή τους. Τη λύση στο ζήτημα της ποιότητας έρχεται να δώσει η αυτοματοποίηση λογισμικού. (continue in full text)
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης της παραμετροποίησης ρομποτικών συσκευών για το περιβάλλον προσομοίωσης Gazebo
1. Σχεδίαση και ανάπτυξη Μηχανισμού
Αυτοματοποίησης της παραμετροποίησης
ρομποτικών συσκευών για το περιβάλλον
προσομοίωσης Gazebo
Design and implementation of an Automation Mechanism for the configuration
of robotic devices for the Gazebo simulator
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ
ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ
Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Εργαστήριο Επεξεργασίας Πληροφορία και Υπολογισμών
Διπλωματική Εργασία του
Χωραφά Χρήστου
Α.Ε.Μ: 8718
Μάρτιος, 2021
Επιβλέποντες:
Αναπληρωτής καθηγητής: Ανδρέας Λ. Συμεωνίδης
Διδάκτωρ: Ζολώτας Χριστόφορος
2. Η άνθιση της τεχνολογίας έχει “εγκαταστήσει” στη ζωή μας το λογισμικό και τη ρομποτική.
• Υπάρχει μεγάλη ανάγκη για
κατασκευή ρομπότ και λογισμικού για
ρομπότ.
• Οι περισσότερες δοκιμές ρομπότ και
εφαρμογών για αυτά γίνονται σε
ειδικά λογισμικά, τους Ρομποτικούς
Προσομοιωτές.
• Μειώνεται έτσι σημαντικά το κόστος
και ο χρόνος ανάπτυξης.
Λογισμικό και Ρομπότ
3. Παρόλα αυτά, συνεχίζουν να υπάρχουν κάποιες δυσκολίες:
Στο Gazebo, η παραμετροποίηση ενός
στοιχείου του απαιτεί τη σύνταξη ενός
.sdf αρχείου, που περιγράφει αυτό το
στοιχείο.
Πράγμα δύσκολο, αφού η σύνταξη ενός
τέτοιου αρχείου απαιτεί ενδελεχή μελέτη των
προδιαγραφών του SDFormat και γνώση της
XML.
Πολλοί μηχανισμοί παράγουν κώδικα για ρομπότ,
αλλά δε διαθέτουν προσομοιωτές ή δυνατότητα
προσομοίωσης.
1 2
3
Προβλήματα
4. Αυξάνεται η παραγωγικότητα και
ποιότητα λογισμικού.
Συνδυάζεται με μια μεθοδολογία αυτοματοποίησης της μηχανικής λογισμικού,
τη Μοντελοστραφή Μηχανική.
Ταυτόχρονα, τις
τέλευταίες δύο
δεκαετίες
αναπτύσσεται
ραγδαία ο κλάδος
της
Αυτοματοποιημένης
Μηχανικής
Λογισμικού.
Προσφέρει
υψηλότερο
αφαιρετικό
επίπεδο, ώστε να
επικεντρώνεται ο
μηχανικός στο
πρόβλημα και όχι
στις λεπτομέρειες
υλοποίησης.
Λύση – Αυτοματοποίηση Λογισμικού
7. Βήματα
Ανάπτυξης
Μελέτη του SDFormat.
Προκύπτει από το SDFormat, περιέχει την
πληροφορία των μοντέλων.
Μετασχηματισμός μοντέλων σε αρχεία
.sdf.
Δημιουργία Μετασχηματισμού Μ2Τ
Μέσω του Sirius UI.
Συλλογή προδιαγραφών που ορίζουν τη
σύνταξη ενός .sdf αρχείου.
Δημιουργία Μετασχηματισμού Μ2M
Δημιουργία μετα-μοντέλου.
Μετασχηματισμός εφαρμογής TekTrain σε
Gazebo Model.
Υλοποίηση γραφικής διεπαφής
8. 1. Η κλάση Sensor. Περιέχει τα
βασικά χαρακτηριστικά, που
κληρονομεί ο κάθε
αισθητήρας.
2. H κλάση Noise. Εισάγει θόρυβο
και αποτελεί έξτρα
παραμετροποίηση για
ορισμένους αισθητήρες.
3. Ο αισθητήρας Sonar. Πέρα από
τα δικά του ξεχωριστά
χαρακτηριστικά, κληρονομεί
και τα βασικά της κλάσης
Sensor.
Μετα-Μοντέλο
9. Γραφική Διεπαφή
Στη γραφική διεπαφή οι αισθητήρες
χωρίζονται σε τύπους Node και Container.
Nodes είναι οι αισθητήρες που δε δέχονται
έξτρα παραμετροποίηση, σε αντίθεση με τα
Containers. Οι αισθητήρες Nodes
απεικονίζονται με το εικονίδιο τους, ενώ
οι αισθητήρες Containers απεικονίζονται ως
“boxes”, μέσα στα οποία μπορεί ο χρήστης να
εισάγει περαιτέρω λειτουργικότητα.
Στη δεξιά πλευρά βρίσκεται η παλέτα της
διεπαφής και περιλαμβάνει όλους τους
αισθητήρες και τις έξτρα λειτουργικότητες
των αισθητήρων τύπου Container.
Γραφική Διεπαφή
10. Γραφική Διεπαφή
Στη γραφική διεπαφή ορίζονται και κάποιοι
Κανόνες Επικύρωσης, που διασφαλίζουν τη
σωστή μοντελοποίηση αισθητήρων, χωρίς
σφάλματα.
Ενδεικτικά, αριστερά παρουσιάζεται ένας κανόνας
που εξασφαλίζει τη μοναδική ονομασία των
αισθητήρων.
Γραφική Διεπαφή
11. Τα Gazebo Models Camera και Sonar,
που δημιουργήθηκαν στο GUI.
Δεξιά απεικονίζονται οι
παραμετροποιήσεις, που μπορούν
να δεχτούν.
Γραφική Διεπαφή
Παραδείγματα μοντέλων αισθητήρων
12. Γραφική Διεπαφή
Model To Text – M2T
Sonar Sensor
Εισαγωγή του δημιουργούμενου μοντέλου
Sonar από τη γραφική διεπαφή στον M2T
μετασχηματισμό και παραγωγή του .sdf
αρχείου του.
13. Γραφική Διεπαφή
Model To Model – M2M
Εισαγωγή μιας εφαρμογής TekTrain στον M2Μ
μετασχηματισμό και παραγωγή των αντίστοιχων Gazebo
Models.
TekTrain App
Παραδοχή: δημιουργείται μόνο ένα μοντέλο αισθητήρα για
κάθε σύνολο λειτουργικοτήτων, εκτός από το Sonar, που
δημιουργείται ένα για κάθε κατεύθυνση ανίχνευσης
εμποδίου.
14. Ακολουθεί ένα βίντεο, στο οποίο παρουσιάζεται η Ροή 1.
Δημιουργία μοντέλων αισθητήρων μέσω της γραφικής
διεπαφής και μετασχηματισμός τους σε .sdf αρχεία.
Παράδειγμα Χρήσης 1
15.
16. Ακολουθεί ένα βίντεο, στο οποίο παρουσιάζεται η Ροή 2.
Δημιουργία μιας εφαρμογής TekTrain και ο
μετασχηματισμός της σε Gazebo Models.
Παράδειγμα Χρήσης 2
17.
18. Αφού γίνει η εισαγωγή των παραγώμενων .sdf
αρχείων στο Gazebo, μπορούμε να
προχωρήσουμε στην προσομοίωση.
Ακολουθεί ένα βίντεο, στο οποίο παρουσιάζεται
μία προσομοίωση στο Gazebo με ένα όχημα.
Φέρει πάνω του τους αισθητήρες Sonar και Ray,
που δημιουργήθηκαν με τον μηχανισμό
αυτοματοποίησης.
Ενδεικτική Προσομοίωση
20. Συμπεράσματα
και Επεκτάσεις
Οι χρήστες δε χρειάζεται
• Να γνωρίζουν τη σύνταξη ενός .sdf αρχείου, που περιέχει τους
αισθητήρες και τις παραμέτρους τους.
• Άρα ουτε την XML.
Οι χρήστες μπορούν
• Να φτιάξουν κάποιο μοντέλο σε μια άλλη γραφική εφαρμογή, και να
μετασχηματίσουν στη συνέχεια το μοντέλο τους σε μοντέλο συμβατό
με το Gazebo.
• Να προχωρήσουν απευθείας στην προσομοίωση, μειώνοντας την
πολυπλοκότητα και τα σφάλματα.
Επεκτάσεις
• Διαφορετικά επίπεδα παραμετροποίησης ( χαμηλό, υψηλο κλπ.).
• Εισαγωγή Gazebo Plug-ins στα μοντέλα (έξτρα λειτουργίες).
• Υποστήριξη M2M και για άλλες εφαρμογές, όπως TekTrain.