Σχεδίαση και ανάπτυξη προσομοιωτή του ρομπότ της ομάδας PANDORA σε εικονικά περιβάλλοντα



Σχετικά έγγραφα
RobotArmy Περίληψη έργου

Σχεδιαστικά Προγράμματα Επίπλου

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Διαφορές single-processor αρχιτεκτονικών και SoCs

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Πτυχιακή Εργασία Οδηγώντας ένα Ρομποτικό Αυτοκίνητο με το WiFi. Η Ασύρματη Επικοινωνία, χρησιμοποιώντας

RAM BF με απορροφητικό πάγκο τύπου Μodular

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

-I/O-SYSTEM 750 BMS ΕΛΕΓΧΟΣ ΚΤΙΡΙΑΚΩΝ ΕΓΚΑΤΑΣΤΑΣΕΩΝ ΚΑΙ ΚΛΙΜΑΤΙΣΜΟΥ

Εφαρμογή Διαχείρισης Στόλου Οχημάτων «RouteΤracker»

Τεχνολογία Πολυμέσων. Ενότητα 3: Επεξεργασία 3D γραφικών & 3D Animation - Blender Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μοντελοποίηση τρισδιάστατου κόσμου σε πραγματικό κόσμο: το παράδειγμα του Kinect. ιδάσκων: Φ. Αζαριάδης Φοιτήτρια: Άρτεμις-Αγγελική Σφύρη

Διάγνωση WOW! Me Snooper +

Εισαγωγή στην Ρομποτική

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες

Αρχιτεκτονική Λογισμικού

Σχεδιαστικές προδιαγραφές

4/2014 ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΑΤΤΙΚΗΣ ΔΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΕΡΓΑΣΤΗΡΙΑΚΗ ΕΦΑΡΜΟΓΗ 1 ΤO ΡΟΜΠΟΤ INTELLITEK ER-2u

Κεφάλαιο 4: Λογισμικό Συστήματος

Διπλωματική Εργασία. Επιβλέπων καθηγητής: Δρ. Μηνάς Δασυγένης. Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

Σχεδιασμός Οικολογικού Διαμεσολαβητή για την εποπτεία και διαχείριση δικτύου διανομής ηλεκτρικής ενέργειας

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

Δραστηριότητες Έρευνας και Ανάπτυξης του Εργαστηρίου Αυτοματικής Ρομποτικής του Τμήματος Μηχανολογίας του ΤΕΙ Κρήτης

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου

Διατίθεται εφαρμογή για κινητά τηλέφωνα android και ios. Γενική Αρχιτεκτονική Συστήματος

Σύγχρονες διαδικασίες σχεδιασμού, Ανάπτυξης και Παραγωγής προϊόντων

Στρατηγική Επιλογή. Το xline ERP - Λογιστικές Εφαρμογές αποτελείται από:

Αρχιτεκτονική Υπολογιστών

WIRELESS SENSOR NETWORKS (WSN)

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

ΤΕΛΙΚΕΣ ΔΙΠΛΩΜΑΤΙΚΕΣ ΕΡΓΑΣΙΕΣ (6 Μονάδες ECTS)- Ακαδημαϊκό Έτος

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. 4o Εργαστήριο Σ.Α.Ε

Περιγραφή της 3 ης εργαστηριακής εφαρμογής: ρομποτικό σύστημα LEGO NXT

Στρατηγική Επιλογή Capital B.O.S. Capital B.O.S.

25SMEs2009 ΠΑΡΑΔΟΤΕΑ ΕΝΟΤΗΤΑΣ ΕΡΓΑΣΙΩΝ 5: ΟΛΟΚΛΗΡΩΣΗ ΣΥΣΤΗΜΑΤΟΣ. 5.1 Ολοκλήρωση Υποσυστημάτων Πλατφόρμας Διαχείρισης Αισθητήρων

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας)

Προτεινόμενα Θέματα Διπλωματικών Εργασιών

Εφαρμογές Προσομοίωσης

Εισαγωγή στο KNX. Ανακαλύψτε το KNX

Κεφάλαιο 1. Εισαγωγή στα συστήματα σχεδιομελέτης και παραγωγής με χρήση υπολογιστή computer aided design and manufacture (cad/cam)

ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

ΠΛΑΤΩΝΑΣ Έργο ΓΓΕΤ 1SME2009

Εφαρμογές Υπολογιστικής Νοημοσύνης στις Ασύρματες Επικοινωνίες

Σχεδίαση του αλγορίθμου για το παιχνίδι Rat s Life

Εισαγωγή στα συστήματα σχεδιομελέτης και παραγωγής με χρήση υπολογιστή - Computer aided design and manufacture (cad/cam)

Linux Terminal Server Project

Αναφορά εργασιών για το τρίμηνο Μάρτιος 2013 Μάιος 2013 Όνομα : Παπαχριστόπουλος Λεωνίδας

Εισαγωγή στη Σχεδίαση Λογισμικού

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Βαγγέλης Τσιλιγωνέας. Διατμηματικό Πρόγραμμα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήματα M.Sc. In Information Systems

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

Τεχνολογία Πολυμέσων. Ενότητα # 16: Πολυεκπομπή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΟΙ ΑΠΑΙΤΗΣΕΙΣ ΤΟΥ ΕΡΓΟΥ : ΣΥΣΤΗΜΑΤΑ ΣΥΝΑΓΕΡΜΟΥ ΚΑΙ ΚΛΕΙΣΤΟΥ ΚΥΚΛΩΜΑΤΟΣ ΤΗΛΕΟΡΑΣΗΣ (CCTV)

Εργαλεία Κατασκευής Παιχνιδιών Ι (Unreal Editor, Half Life, Doom Editor)

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας.

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Εισαγωγή στη Ρομποτική και τον Προγραμματισμό με τη χρήση του ρομπότ Thymio & του λογισμικού Aseba

Σύμφωνα με το Ινστιτούτο Ρομποτικής της Αμερικής

Εισαγωγή στην Πληροφορική

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 2. Προγραμματισμός Φυσικών Συστημάτων. Συστήματα Πραγματικών Εφαρμογών. Νέα Ψηφιακά Αντικείμενα

SECURE AUTONOMOUS CLOUD BRAINED HUMANOID ROBOT FOR SEARCH AND RESCUE MISSIONS IN HAZARDOUS ENVIRONMENTS

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ

Πληροφορική 2. Τεχνολογία Λογισμικού

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB)

Η προέλευση του Sketchpad 1

ΠΕΡΙΕΧΟΜΕΝΟ. ΜΑΘΗΜΑ: ΡΟΜΠΟΤΙΚΗ (3Ε) Γ τάξη Ημερήσιου ΕΠΑ.Λ. και Γ τάξη Εσπερινού ΕΠΑ.Λ.

ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΚΡΗΤΗΣ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Χρήση του Simulation Interface Toolkit για την Εξομοίωση και Πειραματισμό Συστημάτων Αυτομάτου Ελέγχου

Arduino applications for drone development & programming. 18 th Panhellenic Conference in Informatics 2 nd 4 th of October, 2014

Μάθημα 4.2 Η μητρική πλακέτα

Οδηγίες σχεδίασης στο περιβάλλον Blender

Εφαρμογή Διαχείρισης Στόλου Οχημάτων. «RouteΤracker»

Πλεονεκτήματα και μειονεκτήματα της προσομοίωσης

ΤΙΤΛΟΣ ΑΝΑΦΟΡΑΣ: ΕΦΑΡΜΟΓΗ ΚΑΙ ΑΠΟΤΕΛΕΣΜΑΤΑ ΣΕ ΕΠΙΛΕΓΜΕΝΕΣ ΠΕΡΙΤΠΩΣΕΙΣ

Τεχνικό Δελτίο. Εντάσσοντας την θερμογραφία στο πρόγραμμα συντήρησης

ΠΑΝΕΠΙΤΗΜΙΟ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Κεφάλαιο 6 Λογισμικό Εφαρμογών. Εφαρμογές Πληροφορικής Κεφ.6 Καραμαούνας Πολύκαρπος 1

Σύστηµα Καθοδήγησης σε Parking DUPLINE

Διαχείριση Ενέργειας (BEMS)

Σύστημα Διαχείρισης, Ελέγχου και Παρακολούθησης Ασθενοφόρων και Περιστατικών

Αρχιτεκτονική Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΟΙΚΟΝΟΜΙΑΣ ΥΠΟΔΟΜΩΝ, ΝΑΥΤΙΛΙΑΣ & ΤΟΥΡΙΣΜΟΥ ΑΠΟΦΑΣΗ ΕΠΙ ΔΗΛΩΣΗΣ ΣΗΜΑΤΟΣ ΑΠΟΦΑΣΗ ΕΞ 4288 /

Πολυτεχνείο Κρήτης Τμήμα ΗΜΜΥ Χειμερινό Εξάμηνο Intelligence Lab. Αυτόνομοι Πράκτορες. Κουσανάκης Βασίλης

Κατασκευή Πληροφοριακού Συστήματος Διαχείρισης Στόλου Οχημάτων

ΕΙΣΑΓΩΓΗ ΣΤΑ ΠΡΟΓΡΑΜΜΑΤΑ ΚΑΙ ΤΙΣ ΕΦΑΡΜΟΓΕΣ ΤΟΥ

Ανάλυση, Στατιστική Επεξεργασία και Παρουσίαση Δεδομένων με χρήση Ανοικτών Λογισμικών Δρ. Φίλιππος Σοφός

Η διάρκεια πραγματοποίησης της ανοιχτής εκπαιδευτικής πρακτικής ήταν 2 διδακτικές ώρες

METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα

WSNs- ΜΟΥΣΕΙΟ. ΕΦΑΡΜΟΓΕΣ ΓΙΑ ΤΗΝ ΑΥΤΟΜΑΤΗ ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΚΑΙ ΕΛΕΓΧΟ ΤΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΤΩΝ ΜΟΥΣΕΙΩΝ ΒΑΣΙΣΜΕΝΕΣ ΣΕ WSNs

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Σχεδίαση και ανάπτυξη προσομοιωτή του ρομπότ της ομάδας PANDORA σε εικονικά περιβάλλοντα ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Νικολάου Γ. Πεχλιβανίδη ΑΕΜ: 6582 Επιβλέπων: Ανδρέας Λ. Συμεωνίδης Επικ. Καθηγητής ΤΗΜΜΥ -Α.Π.Θ. Θεσσαλονίκη, Ιούλιος 2013

-2- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Ευχαριστίες Αρχικά θα ήθελα να ευχαριστήσω όλους όσους συνέβαλαν στην επιτυχή ολοκλήρωση αυτής της διπλωματικής εργασίας: Τον καθηγητή μου, κ. Ανδρέα Συμεωνίδη για την άψογη συνεργασία που είχαμε, την εμπιστοσύνη που μου έδειξε, αλλά και την καθοδήγηση και την υποστήριξη του σε όλη την διάρκεια της εργασίας Την οικογένεια μου, για την αμέριστη υποστήριξη και συμπαράσταση σε όλη τη διάρκεια των σπουδών μου Τον πατέρα μου Prof. Γεώργιο Η. Πεχλιβανίδη, και τον αδερφό μου Dr. Ηλία Γ. Πεχλιβανίδη για την σωστή καθοδήγηση και υποστήριξη που μου έδειξαν Του φίλους μου που με στήριξαν Τα μέλη και τους καθηγητές της ομάδα PANDORA για την άψογη συνεργασία και βοήθεια τους.

-3- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Περίληψη Η προσομοίωση ενός φαινομένου με τη χρήση ηλεκτρονικών υπολογιστών είναι μια προσπάθεια απεικόνισης και κατανόησης του φαινομένου αυτού σε ένα εικονικό περιβάλλον. Αποτελεί μια εικονική πραγματικότητα με τρισδιάστατα μοντέλα τα οποία αλληλοεπιδρούν μεταξύ τους σε πραγματικό χρόνο (real- time), έχοντας φυσικές ιδιότητες. Τα μοντέλα αντιπροσωπεύουν το ίδιο το σύστημα, ενώ η προσομοίωση γίνεται για να μελετηθεί η λειτουργία του συστήματος. Με την αλλαγή διαφόρων παραμέτρων στην προσομοίωση παρατηρείται η αντίστοιχη εξέλιξη του συστήματος. Στα πλαίσια αυτής της Διπλωματικής Εργασίας σχεδιάσθηκε και υλοποιήθηκε η προσομοίωση σε εικονικό περιβάλλον του ρομπότ διάσωσης της ομάδας PANDORA του Α.Π.Θ. Συγκεκριμένα, δημιουργήθηκε ένα τρισδιάστατο μοντέλο του ρομπότ καθώς και ένα τρισδιάστατο περιβάλλον προσομοίωσης, το οποίο περιέχει πίστες σχεδιασμένες σύμφωνα με τα πρότυπα του παγκόσμιου διαγωνισμού Robocup Rescue (http://www.robocup.org/) (στον οποίο έχει πάρει μέρος η ομάδα 4 φορές μέχρι τώρα). Κάθε μέρος από το οποίο αποτελείται το ρομπότ σχεδιάστηκε τρισδιάστατα και στην συνέχεια τα μέρη αυτά συντέθηκαν σε πρόγραμμα προσομοίωσης με τις ακριβείς διαστάσεις του οχήματος. Με τον τρόπο αυτό μπορούν να γίνουν έλεγχοι για την ορθή λειτουργία του ρομπότ σύμφωνα με τις εκάστοτε απαιτήσεις, χωρίς να χρειαστεί να κινηθούν και να φθαρθούν διάφορα μηχανολογικά μέρη του τα οποία έχουν συγκεκριμένη διάρκεια ζωής.

-4- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Design and Development of PANDORA S simulated robot in visual environment Abstract Computer simulation of the various phenomena is an effort to illustrate and perceive system dynamics based on specific inputs. When focusing on 3D simulation, it is common to have 3D models interacting with one-another in real time, behaving according to laws of physics and chemistry as defined in literature. These models represent the same system, while simulation takes place in order to observe the behaviour of the system, either as a whole, or as parts. When input parameters change in the simulation, the corresponding propagation in behavior change is observed. Within the context of this diploma thesis the 3D model and the respective environment of the rescuing robot PANDORA (https://pandora.ee.auth.gr) has been designed and developed. A 3D simulation environment has been created, which contains tracks that were designed according to the regulations of the international Robocup Rescue competition (http://www.robocup.org/) (where the team contested 4 times until today). All robot parts were designed in Blender and have been intergrated into a functional 3D model of PANDORA. This way it is possible to text the basic navigation characteristics of the robot, without having to apply them in real life, thus damaging some of the mechanical parts of the robot which have a predefined life span. Nikolaos Pechlivanidis, July 2013 Student of the Department of Electrical & Computer Engineering Aristotle University of Thessaloniki Email: nikolaos.pechlivanidis@gmail.com

-5- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Περιεχόμενα Ευχαριστίες... 2 Περίληψη... 3 Abstract... 4 Περιεχόμενα... 5 Λίστα εικόνων... 8 Κεφάλαιο 1. Εισαγωγή... 10 1.1. Αντικείμενο της Διπλωματικής Εργασίας... 10 1.2. Στόχος της Διπλωματικής Εργασίας... 10 1.3. Εισαγωγή στο ROS... 11 1.4 RoboCup Rescue... 11 1.5. Δομή της Διπλωματικής Εργασίας... 13 Κεφάλαιο 2. Προγράμματα σχεδίασης και προσομοίωσης... 14 2.1 Προγράμματα σχεδίασης τρισδιάστατων μοντέλων... 14 2.1.1 Blender... 14 2.1.2 Ogre 3D... 15 2.1.3 Σύγκριση και επιλογή ανάμεσα σε Blender και Ogre3d... 16 2.2 Προσομοιωτές διαδραστικού περιβάλλοντος... 16 2.2.1 Προσομοιωτής Gazebo... 16 2.2.3 Προσομοιωτής Player... 17 2.2.4 Προσομοιωτής Stage... 17 2.2.5 Προσομοιωτής V-REP... 18 2.2.6 Σύγκριση και επιλογή ανάμεσα σε Gazebo, Stage και V-REP... 19 Κεφάλαιο 3. Περιγραφή του ρομπότ της ομάδας PANDORA... 21 3.1. Εισαγωγή... 21 3.2. Επικοινωνίες... 22 3.3. Μέθοδος Ελέγχου και Συνεργασία Ανθρώπου-Ρομπότ... 22 3.3.1 Αρχιτεκτονική Λογισμικού PANDORA... 22

-6- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία 3.3.2 Γραφική Διασύνδεση Χρήστη PANDORA(GUI)... 25 3.3.3 PANDORA Hardware Αρχιτεκτονική... 26 3.4. Map generation/ printing (Παραγωγή χάρτη/εκτύπωση)... 26 3.4.1 SLAM... 26 3.4.2 Navigation -Πλοήγηση... 27 3.5. Sensors for Navigation and Localization (Αισθητήρες για Πλοήγηση και Προσδιορισμό Θέσης).. 28 3.5.1 Laser Range Finder (Hokuyo URG-04LX)... 29 3.5.2 Ultrasonic Sensors (Αισθητήρες Υπερήχων)... 29 3.7. Άλλοι μηχανισμοί... 29 3.7.1 Robotic Arm (Ρομποτικός Βραχίονας)... 29 3.8. Team Training for Operation (Human Factors) (Εκπαίδευση Ομάδας για το Χειρισμό)... 30 3.9. Possibility for Practical Application to Real Disaster Site (Δυνατότητα για Πρακτική Εφαρμογή σε Πραγματικό Περιβάλλον Καταστροφής)... 31 Κεφάλαιο 4. 3D Modeling (Blender, πίστες)... 32 4.1. Σχεδίαση του τρισδιάστατου μοντέλου του οχήματος... 32 4.2. Πίστες... 35 Κεφάλαιο 5. Αρχιτεκτονική για την υλοποίηση ROS και του μοντέλου (PANDORA ROBOT) στον προσομοιωτή Gazebo... 38 5.1 Αρχιτεκτονική για την υλοποίηση ROS... 38 5.1.1. Εσωτερική δομή ενός πακέτου... 38 5.1.2. ROS nodes (ROS κόμβοι)... 39 5.1.3. ROS topics (ROS θέματα)... 40 5.1.3. ROS bags (ROS θέματα)... 40 5.2 Αρχιτεκτονική για την υλοποίηση του ρομπότ στο Gazebo... 42 5.2.1 Το Gazebo χωρίζεται στις πέντε παρακάτω βιβλιοθήκες... 42 5.2.2 Μορφές προσομοίωσης αρχείων του προσομοιωτή Gazebo... 43 5.2.3. Simulator Description Format (SDF)... 44 5.2.4. Μοντελοποίηση στο Gazebo... 45 5.3. Δημιουργία SDF αρχείου... 46 5.5. Περιγραφή του SDF κώδικα της ομάδας PANDORA... 47 Κεφάλαιο 6. Ενδεικτικά αποτελέσματα... 50

-7- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία 6.1. Εφαρμογές... 50 6.1.1. Απλές εφαρμογές... 50 6.1.2. Απλές εφαρμογές... 51 6.1.3. Σύνθετες εφαρμογές (1)... 52 6.1.4. Σύνθετες εφαρμογές (2)... 53 6.1.5. Σύνθετες εφαρμογές (3)... 54 6.2. Τι δεν έχει γίνει και γιατί... 55 Κεφάλαιο 7. Σύνοψη - συμπεράσματα και μελλοντική εργασία.... 57 7.1. Σύνοψη - Συμπεράσματα... 57 7.2. Μελλοντική Εργασία... 57 Παραρτήματα... 59 Παράρτημα Α: Επιπλέον στοιχεία για το ρομπότ PANDORA... 59 1. Map generation/ printing... 59 2. Sensors for Navigation and Localization... 59 3. Sensors for Victim Identification (Αισθητήρες για Ανίχνευση Θυμάτων)... 60 4. Άλλοι μηχανισμοί... 63 Παράρτημα Β: Κώδικας προσομοίωσης του ρομπότ της ομάδας PANDORAS στο Gazebo... 65 Βιβλιογραφία... 72

-8- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Λίστα εικόνων Εικόνα 1: Το περιβάλλον του Blender... 15 Εικόνα 2: Το περιβάλλον του OGRE 3D... 15 Εικόνα 3: Το περιβάλλον του Gazebo... 17 Εικόνα 4: Το περιβάλλον του Stage... 18 Εικόνα 5: Το περιβάλλον του V-REP... 19 Εικόνα 6: Το ρομπότ της ομάδας PANDORA... 21 Εικόνα 7: Αρχιτεκτονική λογισμικού του PANDORA robot... 23 Εικόνα 8: PANDORA GUI... 25 Εικόνα 9: Hokuyo laser... 29 Εικόνα 10: Βραχίονας του PANDORA robot... 30 Εικόνα 11: Η βαση του PANDORA robot... 32 Εικόνα 12: Η βάση και ο κάτω μέρος του βραχίονα αντίστοιχα... 33 Εικόνα 13: Η βάση της κεφαλής και η κεφαλή αντίστοιχα... 33 Εικόνα 14: Τοποθέτηση bones... 34 Εικόνα 15: Μοντέλο με bones... 34 Εικόνα 16: Το PANDORA robot, όρθια στάση βραχίονα και σε θέση parking αντίστοιχα... 34 Εικόνα 17: Η κίνηση του βραχίονα από ορθή θέση σε θέση parking... 35 Εικόνα 18: Hector_nist_arena_designer... 36 Εικόνα 19: Πίστες σχεδιασμένες στο hector_nist_arena_designer... 37 Εικόνα 20: Message Maps για το PANDORA robot... 41 Εικόνα 21: Συσχέτιση των gzserver και gzclient με τις βιβλιοθήκες... 42 Εικόνα 22: Διάγραμμα Δραστηριοτήτων... 47 Εικόνα 23: Το PANDORA robot στο Gazebo μόνο με sonar αισθητήρα... 50

-9- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Εικόνα 24: Το PANDORA robot στο Gazebo μόνο με sonar αισθητήρα (2)... 50 Εικόνα 25: Λειτουργία του hokuyo laser με ένα εμπόδιο... 51 Εικόνα 26: Λειτουργία του hokuyo laser με δύο εμπόδια... 51 Εικόνα 27: Λειτουργία του hokuyo laser και του sonar αισθητήρα... 52 Εικόνα 28: Λειτουργία δύο ρομπότ ταυτόχρονα... 52 Εικόνα 29: Πλοήγηση του ρομπότ στην πρώτη πίστα... 53 Εικόνα 30: Περιστροφή του ρομπότ στην δεύτερη πίστα... 54 Εικόνα 31: Χαρτογράφηση της τρίτης πίστας... 55

-10- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Κεφάλαιο 1. Εισαγωγή 1.1. Αντικείμενο της Διπλωματικής Εργασίας Ένας από τους τομείς που έχει στραφεί η τεχνολογία με χρήση ηλεκτρονικών υπολογιστών, είναι η προστασία/σωτηρία του ανθρώπου από ακραία καιρικά φαινόμενα, όπως πλημμύρες, πυρκαγιές, τυφώνες και σεισμούς. Κάνοντας χρήση της τεχνολογίας και των μέσων της, υπάρχει η δυνατότητα πρόβλεψης ή/και έγκαιρης επέμβασης σε αντίστοιχες περιπτώσεις. Κάτι τέτοιο είναι ιδιαίτερα κρίσιμο κυρίως όταν πρόκειται για περιπτώσεις στις οποίες κινδυνεύει η ανθρώπινη ζωή και είναι απαραίτητος ο εντοπισμός θυμάτων/επιζώντων.. Ένα από τα πρώτα βήματα της διαδικασίας εύρεσης επιζώντων είναι η εποπτεία και χαρτογράφηση του περιβάλλοντος χώρου, η οποία καθίσταται ευκολότερη, ταχύτερη και πιο αξιόπιστη κάνοντας χρήση των τεχνολογικών μέσων. Ρομπότ-διασώστες τα οποία είναι μικρά, ευέλικτα και ικανά να συλλέξουν την κατάλληλη και αξιοποιήσιμη πληροφορία, είναι πλέον ευρέως διαδεδομένα. Η ομάδα PANDORA του τμήματος ΗΜΜΥ του Α.Π.Θ. έχει αναλάβει την κατασκευή ενός τέτοιου ρομποτικού οχήματος, το οποίο μπορεί να πλοηγηθεί στο χώρο, είτε αυτόνομα είτε μέσω τηλεχειρισμού (από έναν κεντρικό υπολογιστή). Το όχημα αυτό κατά την πλοήγησή του χαρτογραφεί τον περιββάλοντα χώρο κάνοντας χρήση των απαραίτητων αισθητήρων (laser, sonar, infrared). Η διαδικασία χαρτογράφησης έχει ως αποτέλεσμα τη δημιουργία μίας κάτοψης του χώρου (χάρτης). Επιπλέον, διαθέτει και αισθητήρες κατάλληλους για τον εντοπισμό πιθανών θέσεων θυμάτων (διοξειδίου του άνθρακα - CO 2, θερμικούς TPA, κάμερα). Αντικείμενο της παρούσας Διπλωματικής Εργασίας είναι η σχεδίαση και η ανάπτυξη του υπάρχοντος ρομπότ PANDORA σε εικονικό περιβάλλον προσομοίωσης και η σχεδίαση διαφόρων πιστών, οι οποίες αποτελούν τον περιβάλλων χώρο, για την πλοήγηση του οχήματος μέσα σε αυτές. 1.2. Στόχος της Διπλωματικής Εργασίας Στόχος της Διπλωματικής Εργασίας ήταν η προσομοίωση του ρομπότ της ομάδας PANDORA σε εικονικό περιβάλλον. Η προσομοίωση αυτή κρίθηκε απαραίτητη προκειμένου τα μέλη της ομάδας να μπορούν να κάνουν έλεγχο (test) στον κώδικα τους χωρίς να χρειάζεται να κινήσουν το πραγματικό όχημα. Βασικό πλεονέκτημα της προσομοίωσης είναι η εξοικονόμηση χρόνου για την ομάδα, καθώς όλα τα μέλη της έχουν τη δυνατότητα να εργάζονται παράλληλα στο εικονικό ρομπότ και το γεγονός ότι χάρη σε αυτήν αποφεύγεται η γρήγορη φθορά των υλικών. Για την επίτευξη αυτού του στόχου έγιναν τα παρακάτω βήματα:

-11- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Πρώτο βήμα ήταν η επιλογή του κατάλληλου προγράμματος τρισδιάστατης σχεδίασης για την απεικόνιση των επιμέρους τμημάτων του ρομπότ. Τα τμήματα αυτά είναι η βάση του οχήματος, ο βραχίονας και η κεφαλή. Η αναζήτηση και η επιλογή του προγράμματος σχεδίασης έγινε ανάμεσα στις εφαρμογές Blender και Ogre. Λαμβάνοντας υπ όψιν τα πλεονεκτήματα και μειονεκτήματα των δύο προγραμμάτων, αποφασίστηκε ότι καταλληλότερο πρόγραμμα για τη σχεδίαση του συγκεκριμένου οχήματός είναι το Blender. Δεύτερο βήμα, επίσης με τα ίδια κριτήρια καταλληλότητας, ήταν η επιλογή προγράμματος προσομοίωσης του ρομποτικού οχήματος. Η επιλογή έγινε ανάμεσα στα προγράμματα Gazebo, Player/Stage, V-REP. Καταλληλότερο πρόγραμμα προσομοίωσης για την PANDORA κρίθηκε το Gazebo. Τρίτο και τελευταίο βήμα ήταν η δημιουργία εικονικών πιστών σύμφωνα με τους κανονισμούς του παγκόσμιου διαγωνισμού Robocup Rescue, με το hector_nist_arena_designer. Οι πίστες αυτές δημιουργήθηκαν για την διευκόλυνση της προετοιμασίας της ομάδας κατά τη διάρκεια των πειραμάτων, πριν από τη συμμετοχή της στο διαγωνισμό. 1.3. Εισαγωγή στο ROS Το ROS (Robot Operating System) είναι μια πλατφόρμα για την ανάπτυξη λογισμικού για ρομπότ. Το ROS αναπτύχθηκε αρχικά το 2007 στο πλαίσιο της διανομής από το Εργαστήριο Τεχνητής Νοημοσύνης του Στάνφορντ για την στήριξη του Stanford Al Robot Stair project. Το ROS παρέχει πρότυπες υπηρεσίες λογισμικού συστήματος, όπως η αφαίρεση υλικού καθώς και την διαχείριση πακέτων. Είναι βασισμένο σε μια αρχιτεκτονική γραφήματος, όπου η εργασία πραγματοποιείται σε κόμβους που μπορούν να λάβουν ή να στείλουν πληροφορίες μεταξύ τους μέσω μηνυμάτων για τον έλεγχο, το σχεδιασμό, την κατάσταση και την επεξεργασία αισθητήρων του συστήματος. Οι βιβλιοθήκες του ROS λειτουργούν σε Unix (Ubuntu) λογισμικά και είναι σε πειραματικό στάδιο για λογισμικά όπως Mac OS X και Fedora. Το ROS έχει δύο βασικές πλευρές. Πρώτον το λειτουργικό του σύστημα, όπως περιγράφθηκε παραπάνω και δεύτερον τα ros-pkg. Τα ros-pkg είναι μια σειρά πακέτων που προέρχονται από τους χρήστες, τα οποία οργανώνονται σε ομάδες που ονομάζονται στοίβες και υλοποιούν τη λειτουργικότητα του όπως χαρτογράφηση, ταυτόχρονο εντοπισμό, σχεδιασμό, προσομοίωση κ.α. Επίσης παρέχει βιβλιοθήκες και τα εργαλεία για να βοηθήσει τους προγραμματιστές να δημιουργήσουν εφαρμογές ρομπότ. Το ROS έχει αδειοδοτηθεί από μια ανοιχτού κώδικα, BSD άδεια. 1.4 RoboCup Rescue Το RoboCupRescue Robot League είναι ένα διεθνές πρωτάθλημα ομάδων με ένα στόχο την ανάπτυξη και επίδειξη προηγμένων ρομποτικών δυνατότητων διάσωσης με ετήσιους διαγωνισμούς.

-12- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Οι ομάδες πρέπει να αποδείξουν τις ικανότητές τους στην κίνηση του οχήματος, την λειτουργία των αισθητήρων, στην χαρτογράφηση της πίστας που διαγωνίζονται και στον εντοπισμό θύματος. Η κίνηση του οχήματος γίνεται είτε με τηλεχειρισμό είτε σε αυτόνομη κίνηση. Οι νικήτριες ομάδες θα πρέπει να εκτελέσουν αξιόπιστα 7-10 αποστολές των 20-30 λεπτών το καθένα από διάφορα σημεία εκκίνησης που έχουν οριστεί, για να βρουν τα περισσότερα θύματα. Καθώς τα ρομπότ επιτυγχάνουν στα εμπόδια που τίθενται στις αρένες, το επίπεδο δυσκολίας αυξάνεται, έτσι ώστε οι αρένες να πλησιάζουν από τον εργαστηριακό στον πραγματικό κόσμο. Οι αρένες (πίστες) RoboCupRescue κατασκευάστηκαν για να δοκιμαστούν τα ρομπότ σε καταστάσεις έκτακτης ανάγκης που αναπτύχθηκαν από το αμερικανικό Εθνικό Ινστιτούτο Προτύπων και Τεχνολογίας μέσω της ASTM Διεθνούς Επιτροπής για εφαρμογές ασφάλειας. Οι πίστες αυτές ακολουθούν κάποια συγκεκριμένα πρότυπα κατασκευής. Το πεδίο του ανταγωνισμού διαιρείται σε χρωματικά κωδικοποιημένες αρένες με συνεχές προκλήσεις με την αύξηση των επιπέδων δυσκολίας. Τα επίπεδα δυσκολίας και οι χρωματικές πίστες είναι: Εικονικά Θύματα: Εύρεση θύματος από διάφορα σημάδια ζωής, όπως κίνηση, χαρακτηριστικά προσώπου, ήχο και CO2. Τα εικονικά θύματα είναι κατανεμημένα σε όλες τις αρένες που απαιτούν εντοπισμό τρύπας σε τοίχο σε διαφορετικά υψόμετρα. Κίτρινη Πίστα: Πλήρως αυτόνομη πλοήγηση και αναγνώριση θυμάτων, αυτή η αρένα αποτελείται από τυχαίους λαβύρινθους διαδρόμων και δωματίων σε συνεχή κεκλιμένα επίπεδα 15 ο. Πορτοκαλί Πίστα: Στην πίστα αυτή επιτρέπεται η τηλεκίνηση ή η αυτόνομη πλοήγηση του οχήματος για τον εντοπισμό θυμάτων. Αυτή η αρένα αποτελείται από εδάφη κεκλιμένου επιπέδου 15 καθώς και εμπόδια όπως σκάλες. Κόκκινη Πίστα: Στην πίστα αυτή επιτρέπεται η τηλεκίνηση ή η αυτόνομη πλοήγηση του οχήματος για τον εντοπισμό θυμάτων. Αυτή η αρένα αποτελείται από σύνθετα εδάφη και απαιτεί προηγμένη κινητικότητα από τα ρομπότ. Μπλε Πίστα: Διαθέτει σύνθετα εδάφη για την τοποθετήσει ενός ωφέλιμου φορτίου (μπουκάλι) που διαθέτει από την αρχή. Εναέρια Πίστα (<2 KG): Για μικρά μη επανδρωμένα εναέρια συστήματα κάτω των 2 kg, τα οποία απογειώνονται και προσγειώνονται κάθετα. Τα οχήματα αυτά πρέπει να είναι ικανά να αποφύγουν εμπόδια καθώς και να ακολουθούν μια γραμμή με διαφόρους βαθμούς αυτονομίας.

-13- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία 1.5. Δομή της Διπλωματικής Εργασίας Η Δομή της παρούσας εργασίας είναι η ακόλουθη: Το 1 ο Κεφάλαιο αποτελεί μια γενική εισαγωγή στο θέμα της Διπλωματικής Εργασίας, περιγράφοντας το αντικείμενό, τους στόχους, μια μικρή εισαγωγή στην πλατφόρμα που στηρίζει το όχημα (ROS), τους γενικούς κανόνες για τον διαγωνισμό RoboCup Rescue και το γενικό πλαίσιο υλοποίησής της. Στο 2 ο Κεφάλαιο περιγράφονται τα προγράμματα σχεδίασης και προσομοίωσης του ρομπότ. Συγκεκριμένα εξετάζονται τα βασικά χαρακτηριστικά του κάθε προγράμματος, πλεονεκτήματα και μειονεκτήματα, καθώς και οι λόγοι της τελικής επιλογής του προγράμματος σχεδίασης Blender και του προγράμματος προσομοίωσης Gazebo. Στο 3 ο Κεφάλαιο περιγράφεται η λειτουργία το ρομπότ της ομάδας PANDORA, καθώς και το πως το επιτυγχάνει. Ακόμα αναλύονται τα μέρη τα οποία αποτελούν το ρομπότ, ενώ παρουσιάζεται και ο τρόπος με τον οποίο επικοινωνούν μεταξύ τους. Στο 4 ο Κεφάλαιο περιγράφεται η επιλογή τμηματοποίηση του ρομπότ στα συγκεκριμένα τμήματα και η σχεδίαση τους. Επίσης αναλύεται ο τρόπος σχεδίασης πιστών σε εικονικό περιβάλλον. Στο 5 ο Κεφάλαιο παρουσιάζεται και αναλύεται η αρχιτεκτονική του ρομπότ στην πλατφόρμα ROS καθώς και η αρχιτεκτονική που ακολουθήθηκε για την προσομοίωση του στον προσομοιωτή Gazebo. Το 6 ο Κεφάλαιο περιέχει διάφορες εφαρμογές και φωτογραφίες. Περιγράφει τι δεν έχει γίνει στην Διπλωματική και γιατί, ενώ στο 7 ο Κεφάλαιο αναφέρονται συμπεράσματα και μελλοντική επέκταση της Διπλωματικής Εργασίας. Τέλος, παρατίθενται τα Παραρτήματα Α, Β τα οποία περιέχουν επιπλέον πληροφορίες για το ρομπότ PANDORA και τον κώδικα για το προσομοιωμένο όχημα αντίστοιχα.

-14- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Κεφάλαιο 2. Προγράμματα σχεδίασης και προσομοίωσης 2.1 Προγράμματα σχεδίασης τρισδιάστατων μοντέλων 2.1.1 Blender Το Blender (http://www.blender.org ) είναι ένα πρόγραμμα ανοιχτού κώδικα για τη σχεδίαση 3D γραφικών Είναι διαθέσιμο για όλα τα κύρια λειτουργικά συστήματα όπως τα Windows, τα Linux και τα Mac OS X. Επίσης υποστηρίζεται και από Solaris. Το Blender διαθέτει προχωρημένα εργαλεία για δημιουργία υλικού καθώς επίσης υποστηρίζει τη χρήση της γλώσσας προγραμματισμού Python για εσωτερικό scripting. Χρησιμοποιείται για μοντελοποίηση, rigging (διαδικασία σχηματισμού αρθρώσεων-σκελετού), προσομοιώσεις, animation, rendering, μη γραμμική επεξεργασία και δημιουργία 3D εφαρμογών όπως είναι τα βιντεοπαιχνίδια. Μερικά από τα χαρακτηριστικά του είναι: Υποστήριξη για δικτυώματα πολυγώνου, γρήγορη υποδιαίρεση επιφάνειας μοντελοποίησης, καμπύλες Bezier, επιφάνειες NURBS, metaball, ψηφιακό sculpting, και ανυσματικές γραμματοσειρές. Ευέλικτη δυνατότητα εσωτερικού rendering και ενσωμάτωση με το πρόγραμμα YafaRay 1. Μη γραμμική επεξεργασία βίντεο/ήχου. Υποστήριξη της γλώσσας Python για προγραμματισμό λογικής και επιπλέον scripting. Έλεγχος σε πραγματικό χρόνο κατά την προσομοίωση

-15- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Εικόνα 1: Το περιβάλλον του Blender 2.1.2 Ogre 3D Το Ogre 3D (http://www.ogre3d.org) είναι μια μηχανή γραφικών πραγματικού χρόνου. Το όνομα του προέρχεται από τα αρχικά των λέξεων Object-Oriented Graphics Rendering Engine, δηλαδή πρόκυται για μια αντικειμενοστραφή μηχανή αναπαράστασης γραφικών. Είναι ένα πρόγραμμα σχεδίασης σε 3D περιβάλλον, open source λογισμικό και σχεδιασμένο σε γλώσσα προγραμματισμού C++ για να διευκολύνει τους χρήστες του να δημιουργούν εφαρμογές, αξιοποιώντας τα τρισδιάστατα γραφικά του. Ενα βασικό πλεονέκτημα του είναι ότι υποστηρίζεται από τα περισσότερα λειτουργικά συστήματα (Linux, Windows, Mac OS X) σε αρκετά καλό βαθμό, καθώς επίσης υποστηρίζει Open GL και Direct3D APIs. Η βασική λειτουργία του Ogre 3D είναι το rendering, δηλαδή η απεικόνιση του 3D μοντέλου σε 2D. Αυτό αποτελεί από τα μεγαλύτερα μειονεκτήματα του, καθώς ο χρήστης πρέπει πρώτα να δημιουργήσει το μοντέλο σε ένα άλλο περιβάλλον όπως το Blender και στην συνέχεια να χρησιμοποιηθεί από το Ogre, γεγονός που το καθιστά δύσχρηστο. Εικόνα 2: Το περιβάλλον του OGRE 3D

-16- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία 2.1.3 Σύγκριση και επιλογή ανάμεσα σε Blender και Ogre3d Η πολύ καλή γνώση της γλώσσας C++ από τον χρήστη, αποτελεί βασική προϋπόθεση για τη χρήση του προγράμματος Ogre3d, καθώς διαφοροποιείται σημαντικά στο συγκεκριμένο κομμάτι σε σχέση με τα υπόλοιπα εργαλεία όπου η ικανότητα συγγραφής κώδικα περιορίζεται σε επίπεδο scripting και είναι προαιρετική. Το Ogre3d σε αντίθεση με το Blender είναι ένα πρόγραμμα με αρκετές ιδιαιτερότητες, οι οποίες το δυσκολεύουν να γίνει προσιτό από τους χρήστες. Για όλους αυτούς τους λόγους καθώς επίσης και της ανάγκης δημιουργίας του μοντέλου πρώτα σε ένα άλλο πρόγραμμα σχεδίασης, επιλέχθηκε το Blender καταλληλότερο πρόγραμμα για την υλοποίηση της εργασίας αυτής. 2.2 Προσομοιωτές διαδραστικού περιβάλλοντος Ένας προσομοιωτής ρομπότ χρησιμοποιείται για να υλοποιήσει ενσωματωμένες εφαρμογές με συγκεκριμένη λειτουργικότητα, με αποτέλεσμα την εξοικονόμηση κόστους και χρόνου. Σε ορισμένες περιπτώσεις, αυτές οι εφαρμογές μπορούν να μεταφερθούν σε πραγματικό ρομπότ χωρίς τροποποιήσεις. Η επιτυχία προσομοίωσης μιας εφαρμογής εξαρτάται από το πόσο καλά έχει σχεδιαστεί το εικονικό περιβάλλον του ρομπότ σε σχέση με το πραγματικό. Ως παράδειγμα αναφέρεται η δυσκολία προσομοίωσης αισθητήρων οι οποίοι λαμβάνουν τιμές από τον περιβάλλοντα χώρο σε πραγματικό χρόνο. Μια από τις πιο δημοφιλείς τεχνικές για τη ρομποτική προσομοίωση και του περιβάλλοντος χώρου του είναι το 3D modeling. Αυτός ο τύπος προσομοίωσης περιέχει ένα εικονικό ρομπότ, το οποίο είναι ικανό να μιμηθεί την κίνηση και τη γενικότερη λειτουργικότητα ενός πραγματικού σε ένα εικονικό περιβάλλον. Μερικοί προσομοιωτές, όπως Gazebo διαθέτουν μηχανισμούς που επιτρέπουν μια πιο φυσική και ρεαλιστική κίνηση του ρομπότ. 2.2.1 Προσομοιωτής Gazebo Το πρόγραμμα Gazebo είναι ένας multi-robot προσομοιωτής για ρεαλιστικά περιβάλλοντα. Είναι ικανό να προσομοιώσει έναν αρκετά μεγάλο αριθμό από ρομπότ, αισθητήρες και αντικείμενα, σε τρισδιάστατο κόσμο. Παράγει εξίσου καλά την ανάδραση των δεδομένων ενός αισθητήρα αλλά και τις φυσικές αλληλεπιδράσεις μεταξύ των αντικειμένων, οι οποίες συγκλίνουν αρκετά με τις πραγματικές. Επιπλέον, δίνεται η δυνατότητα χρήσης εξωτερικών βιβλιοθηκών για τον έλεγχο του ρομπότ. Οι βιβλιοθήκες αυτές θα πρέπει να διαθέτουν τις κατάλληλες διεπαφές ώστε να επιτρέπεται η επικοινωνία με πλατφόρμες hardware. Επιπλέον, το Gazebo επιτρέπει την επικοινωνία με εξωτερικά συστήματα λογισμικού και ενδιάμεσου επιπέδου (middleware) όπως για παράδειγμα με το ROS (Robot Operating System).Τέλος, αξίζει να σημειωθεί ότι το Gazebo υποστηρίζει generic interfaces μέσω plugins και TCP/IP επικοινωνίας.

-17- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία 2.2.3 Προσομοιωτής Player Εικόνα 3: Το περιβάλλον του Gazebo Το πρόγραμμα Player είναι ένας εξυπηρετητής (server) δικτύου για τον έλεγχο ρομπότ. Παρέχει ένα καθαρό και απλό interface για αισθητήρες και ενεργοποίηση του ρομπότ μέσω του δικτύου IP. Το client πρόγραμμα επικοινωνεί με το TCP socket, διαβάζοντας τα δεδομένα από τους αισθητήρες και γράφοντας εντολές στους ενεργοποιητές. Player υποστηρίζει μια ποικιλία από ρομπότ. Η αρχική πλατφόρμα Player είναι η ActivMedia Pioneer 2, η οποία αποτελεί βάση και για μετέπειτα ρομπότ που έχουν πολλούς κοινούς αισθητήρες. Ο Player έχει σχεδιαστεί για να είναι μια ανεξάρτητη πλατφόρμα. Το client πρόγραμμα μπορεί να τρέξει σε οποιοδήποτε μηχάνημα που έχει συνδεθεί δικτυακά με κάποιο ρομπότ, και μπορεί να γραφτεί σε οποιαδήποτε γλώσσα που υποστηρίζει TCP sockets. Αυτή τη στιγμή υπάρχουν client-side βοηθητικά προγράμματα διαθέσιμα σε C + +, Tcl, Java και Python. Ο χρήστης του Player μπορεί ή να χρησιμοποιήσει κάποιο από τα έτοιμα βοηθητικά προγράμματα ή να γράψει το δικό του πρόγραμμα σε κάποια από τις παραπάνω γλώσσες. Ακόμα ο Player επιτρέπει σε πολλές συσκευές να χειρίζονται ταυτόχρονα το ίδιο interface. Για παράδειγμα και οι δυο drivers των Pioneer 2 και RWI χρησιμοποιούν το position interface (interface για τη θέση του οχήματος ) για τον έλεγχο της κίνησης τους. Με αυτό τον τρόπο ο ίδιος κώδικας ελέγχου θα μπορούσε να κινήσει και τα δύο ρομπότ ανεξάρτητα το ένα από το άλλο. Η πλατφόρμα αυτή μπορεί να συνεργαστεί με διάφορους προσομοιωτές όπως το Gazebo ή το Stage. Επιπλέον είναι ελεύθερο λογισμικό και διατίθεται βάσει της άδειας GNU Public. 2.2.4 Προσομοιωτής Stage To Stage προσομοιώνει έναν πληθυσμό ρομπότ, αισθητήρων και αντικειμένων σε ένα δισδιάστατο περιβάλλον. Έχει σχεδιαστεί για να υποστηρίξει την έρευνα για multi-agent αυτόνομα συστήματα, έτσι ώστε να παρέχει αρκετά απλά, φθηνά υπολογιστικά μοντέλα.

-18- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Το Stage χρησιμοποιείται συχνά από Player plugin, παρέχοντας τους πληθυσμούς των εικονικών συσκευών αναπαραγωγής. Οι χρήστες γράφουν ελεγκτές ρομπότ και αλγόριθμους αισθητήρων, ως client (πελάτες) στο server του Player. Συνήθως, οι client δεν μπορούν να καταλάβουν τη διαφορά μεταξύ των πραγματικών συσκευών ρομπότ και την προσομοίωση τους στο Stage. Έχει διαπιστωθεί ότι οι Player clients αναπτύχθηκαν με τη χρήση του Stage. Η ασύρματη επικοινωνίας του προσομοιωτή με το ρομπότ, επιτρέπει την ταχεία τροποποίηση των ελεγκτών που προορίζονται για πραγματικά ρομπότ. Το Stage επιτρέπει επίσης πειράματα με ρεαλιστικές συσκευές ρομπότ, που πιθανόν δεν είναι δυνατή η υλοποίηση τους λόγω του υψηλού κόστους. Στις βιβλιοθήκες του Stage διατίθενται διάφοροι τύποι αισθητήρων και μοντέλων, όπως για ακτινική σάρωση (sonar, SICK και Hokuyo (λέιζερ), IR), για vision (αναγνώριση χρώματος άμορφης μάζας) και 3D βάθος χάρτη με τη βοήθεια κάμερας. Εικόνα 4: Το περιβάλλον του Stage 2.2.5 Προσομοιωτής V-REP Ο προσομοιωτής ρομπότ V-REP, διαθέτει ένα ολοκληρωμένο περιβάλλον ανάπτυξης, βασισμένο σε μια κατανεμημένη αρχιτεκτονική ελέγχου. Κάθε αντικείμενο - μοντέλο μπορεί να ελέγχεται μεμονωμένα μέσω ενός ενσωματωμένου σεναρίου, plugin, ROS node(κόμβου), ή μέσω μιας προσαρμοσμένης λύσης του εκάστοτε χρήστη. Αυτό καθιστά το V-REP πολύ ευέλικτο και ιδανικό για multi-ρομπότ εφαρμογές. Ο κώδικας των ελεγκτών μπορεί να γραφτεί σε C, C + +, Python, Java, Lua, Matlab ή Urbi. Το V-REP χρησιμοποιείται για την ταχεία ανάπτυξη αλγορίθμου, προσομοιώσεις αυτοματισμών, γρήγορη προτυποποίηση και την επαλήθευση, ρομπότ που σχετίζονται με την εκπαίδευση, την εξ αποστάσεως παρακολούθηση, την ασφάλεια διπλού ελέγχου, κ.λπ.

-19- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Χρήσιμα εργαλεία τα οποία διαθέτει για την προσομοίωση ενός ρομπότ είναι το collision detection, minimum distance calculation, dynamics/physics,vision sensor simulation, path planning κ.α. Όλα αυτά βοηθούν σε μια πιο ρεαλιστική προσέγγιση της προσομοίωσης του εικονικού ρομπότ με το πραγματικό. Ακόμα διαθέτει έτοιμα plugins για διάφορες λειτουργίες, όπως κίνηση οχήματος, χρήση αισθητήρων και περιήγηση σε εικονικό χώρο. Ένα ακόμα πολύ χρήσιμο εργαλείο που διαθέτει αυτός ο προσομοιωτής είναι η συνεργασία του με το ROS και αυτό γιατί ένας μεγάλος αριθμός προγραμματιστών ρομπότ, χρησιμοποιεί την πλατφόρμα αυτή. Εικόνα 5: Το περιβάλλον του V-REP 2.2.6 Σύγκριση και επιλογή ανάμεσα σε Gazebo, Stage και V-REP Όπως αναφέρθηκε παραπάνω αντικείμενο αυτής της διπλωματικής είναι η προσομοίωση του ρομπότ της ομάδας PANDORA του τμήματος Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Α.Π.Θ. Για την προσομοίωση του ήδη υπάρχον ρομπότ έπρεπε να επιλεγεί ένας προσομοιωτής μεταξύ των Gazebo, Stage και V-Rep. Το καλό και των τριών προσομοιωτών ήταν ότι συνεργάζονται με το ROS. Αυτός ήταν ένας πολύ σημαντικός παράγοντας διότι ο κώδικας που έχει γραφεί για το ρομπότ της ομάδας PANDORA είναι πάνω σ αυτή την πλατφόρμα και έπρεπε να υπάρχει επικοινωνία του προσομοιωτή που θα επιλεχθεί με το ROS. Στην αρχή η επιλογή έγινε ανάμεσα στο Gazebo και το Stage. Οι λόγοι που επιλέχθηκε το Gazebo ήταν αρκετοί. Ένας βασικός λόγος ήταν ότι το Stage είναι προσομοιωτής 2D (δισδιάστατος) ενώ το Gazebo 3D (τρισδιάστατος). Ένας άλλος λόγος είναι ότι τα ROS/Gazebo interfaces είναι πιο ενεργά σε σχέση με τα ROS/Stage. Πριν γίνει οποιαδήποτε επιλογή έγινε έρευνα για το κάθε πότε υπάρχει ανανέωση στα προγράμματα (προσομοιωτές) και πόσο υπάρχει ανταπόκριση από τους υπεύθυνους του προγράμματος ή άλλους γνώστες σε περίπτωση που βρεθεί μια δυσκολία (για την επίλυση ενός προβλήματος). Αυτό που παρατηρήθηκε ήταν ότι το Gazebo ανανεωνόταν πιο συχνά και υπήρχαν έτοιμα υλοποιημένα ρομπότ τα οποία θα μπορούσαν να βοηθήσουν στην διεκπεραίωση αυτής της διπλωματικής ως οδηγοί. Επιπλέον πρέπει να ληφθεί υπόψιν ότι το Stage έχει σχεδιαστεί για να

-20- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία προσομοιώσει ένα πολύ μεγάλος πλήθος ρομπότ με μικρή αν ευκρίνεια(ανάλυση) ενώ το Gazebo έχει σχεδιαστεί για να προσομοιώνει ένα μικρό αριθμό ρομπότ με υψηλή ευκρίνεια. Στη συνέχεια η επιλογή έγινε μεταξύ των Gazebo και το V-REP. Το V-REP όπως αναφέρθηκε είναι ένας προσομοιωτής αρκετά ενδιαφέρον ανοιχτού κώδικα που περιέχει αρκετά εργαλεία ανάπτυξη μιας εφαρμογής ρομπότ. Τα εργαλεία αυτά μπορούν να φανούν πολύ χρήσιμα για μια πιο ρεαλιστική απεικόνιση ενός μοντέλου σε εικονικό κόσμο. Ωστόσο ο προσομοιωτής αυτός αν και επικοινωνεί με ROS, εμφανίστηκε πρόσφατα στην αγορά με αποτέλεσμα να μην έχουν δοθεί λύσεις σε τυχόν προβλήματα που μπορούν να εμφανιστούν κατά την υλοποίηση μιας προσομοίωσης. Σε αντίθεση με το V-REP το Gazebo εμφανίστηκε νωρίτερα και έχει ήδη δώσει λύσεις σε αρκετά προβλήματα που έχουν εμφανιστεί κατά καιρούς. Αυτός ήταν και ο λόγος που η διπλωματική αυτή (προσομοίωση του ρομπότ PANDORA) έγινε με την χρήση του Gazebo. Παρόλα αυτά πιστεύω ότι το V- REP είναι ένα πολύ αξιόλογο πρόγραμμα και θα έχει μεγάλη ανάπτυξη.

-21- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Κεφάλαιο 3. Περιγραφή του ρομπότ της ομάδας PANDORA 3.1. Εισαγωγή Η ερευνητική Ομάδα Ρομποτικής PANDORA (Program for the Advancement of Non Directed Operating Robotic Agents) του Τμήματος Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης (ΑΠΘ) Ελλάδας, στοχεύει στην ανάπτυξη μιας πειραματικής ρομποτικής πλατφόρμας για την εξερεύνηση εσωτερικού χώρου και αναγνώριση θυμάτων. Γενικοί στόχοι της ομάδας είναι η εφαρμογή της υπάρχουσας τεχνογνωσίας σε ένα πραγματικό πρόβλημα, η πρόοδος της προηγμένης τεχνογνωσίας της ομάδας. Η Ομάδα Ρομποτικής PANDORA ιδρύθηκε το 2005 και έχει ήδη συμμετάσχει στους διαγωνισμούς RoboCupRescue 2008, 2009, 2011 και 2013. Το ρομπότ της ομάδας PANDORA που πήρε φέτος μέρος στο διαγωνισμός RoboCupRescue φαίνεται στην παρακάτω φωτογραφία. Εικόνα 6: Το ρομπότ της ομάδας PANDORA

-22- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία 3.2. Επικοινωνίες Ακολουθώντας τους RCR κανονισμούς, θα χρησιμοποιήσουμε W-LAN 802.11a (5 GHz) και θα περιμένουμε να ανατεθεί ένα κανάλι/ζώνη από τους διοργανωτές κατά τη διάρκεια του διαγωνισμού. 3.3. Μέθοδος Ελέγχου και Συνεργασία Ανθρώπου-Ρομπότ Το ρομπότ PANDORA λειτουργεί με δύο τρόπους: την πλήρως αυτόνομη λειτουργία, όπου μια σειρά από ταυτόχρονες διαδικασίες εκτελούνται προκειμένου να επιτευχθεί αυτόνομη εξερεύνηση και αναγνώριση θυμάτων και η τηλεχειριζόμενη λειτουργία, όπου το ρομπότ χειρίζεται πλήρως από έναν έμπειρο χρήστη. Προκειμένου να εξασφαλιστεί ένα ευέλικτο σύστημα όπου η αναδιαμόρφωση είναι δυνατή, έχει επιλεχθεί μία αρχιτεκτονική λογισμικού βασισμένη στα μέρη που αποτελείται το ρομπότ. Η επιλεγμένη αρχιτεκτονική εξασφαλίζει εύκολη δοκιμή και ολοκλήρωση, ενώ μπορεί να αποσυνδέσει το συνολικό σύστημα από την πραγματική εφαρμογή του κάθε μέρους. 3.3.1 Αρχιτεκτονική Λογισμικού PANDORA Όλα τα προηγμένα ενδιάμεσα λογισμικά παρέχουν την υποδομή για τη δημιουργία προσαρμοσμένων εφαρμογών, ενώ παρέχουν εργαλεία για την υποστήριξη της ανάπτυξης λογισμικού ρομπότ. Εκτός από τα παραπάνω, η προστιθέμενη αξία των ενδιάμεσων λογισμικών συνδέεται με σημαντικές μη λειτουργικές απαιτήσεις που διασφαλίζουν, εκτέλεση σε πραγματικό χρόνο (ή σχεδόν πραγματικό χρόνο), αξιοπιστία και ασφάλεια. Από την πληθώρα των υφιστάμενων προσεγγίσεων, όμως, δεν ικανοποιούν πολλές τα παραπάνω κριτήρια. Έχοντας λάβει υπόψη διάφορα έτοιμα ενδιάμεσα λογισμικά (συμπεριλαμβανομένων MSRS, OROCOS και ROS), χρησιμοποιήθηκε το ROS [ROS] (http://www.ros.org) ως ενδιάμεσο λογισμικό για το PANDORA. Κατά τη διαδικασία επιλογής ενδιάμεσων λογισμικών, ελήφθησαν υπόψη μια σειρά από παράγοντες. Προτιμήθηκε ένα σχήμα επικοινωνίας μηνυμάτων από ένα τυπικό ενδιάμεσο λογισμικό RPC-style, λόγω της εγγενούς δυνατότητας του να προωθήσει τη χαλαρή σύνδεση. Επιπλέον, τα μηνύματα παρέχουν ασύγχρονη επικοινωνία με τη δυνατότητα να ελέγχουν τη ροή δεδομένων, κάτι το οποίο είναι εξαιρετικά σημαντικό για σύνθετα διασυνδεδεμένα συστήματα. Μεταξύ άλλων, τα βασικά πλεονεκτήματα του ROS είναι: το ανοιχτό λογισμικό, η ευρεία χρήση, η διαλειτουργικότητα με άλλα πλαίσια ρομπότ, η ποιότητα ανάπτυξης των εργαλείων προγραμματισμού και η αναλυτική βιβλιογραφία του. Το ROS περιλαμβάνει ένα δίκτυο εξαρτημάτων (ονομάζονται κόμβοι), που επικοινωνούν μέσω μηνυμάτων(messages, msg) μέσω της αντίστοιχης υποδομής ROS. Τα κανάλια μέσω των οποίων αποστέλλονται τα μηνύματα ονομάζονται θέματα(topics). Η RPC-style επικοινωνία επιτυγχάνεται με τη χρήση των υπηρεσιών και η διατήρηση δεδομένων επιτυγχάνεται μέσω του διακομιστή παραμέτρων (Parameter Server).

-23- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Για να επιτευχθεί η μέγιστη αποσύνδεση, ακολουθήσαμε μια σπονδυλωτή προσέγγιση(modular approach), ορίζοντας έτσι διάφορα επίπεδα άντλησης. Οι διεπαφές (interfaces) που πραγματοποιούν επικοινωνία μεταξύ των εξαρτημάτων κλείνονται και αποσυνδέονται από την εφαρμογή, παρέχοντας έτσι συγκεκριμένους τομείς λειτουργικότητας μόνο σε επίπεδο στοιχείου [1]. Η λειτουργικότητα είναι λογικά ομαδοποιημένη και ικανοποιημένη από διαφορετικά πακέτα εφαρμογής κόμβων που εκτελούν διάφορες εργασίες. Ο σχεδιασμός λογισμικού αποσυνδέει τους κόμβους μεταξύ τους όσο το δυνατόν περισσότερο, ελαχιστοποιώντας έτσι την πολυπλοκότητα διασύνδεσης τους. Εικόνα 7: Αρχιτεκτονική λογισμικού του PANDORA robot Η εικόνα 7 απεικονίζει την αρχιτεκτονική λογισμικού ρομπότ, όπου μπορεί κανείς να εντοπίσει, εκτός από τους λειτουργικούς κόμβους που είναι υπεύθυνοι για την ανίχνευση και αποφυγή εμποδίων, την πλοήγηση(navigation), χαρτογράφηση(slam) και αναγνώριση θύματος, τους ειδικά σχεδιασμένους κόμβους υπεύθυνους για το σύστημα ελέγχου της συνολικής κατάστασης και διαχείρισης του οχήματος. Το γεγονός ότι το ρομπότ ενσωματώνει διάφορους ελεγκτές, αισθητήρες και ενεργοποιητές(actuators), χειριζόμενο έτσι διάφορους τύπους δεδομένων, συντέλεσαι στη δημιουργία ενός στρώματος συγχώνευσης δεδομένων. Αυτό το στρώμα συγκεντρώνει χαμηλού επιπέδου μετρήσεις του αισθητήρα για την ανίχνευση και ταυτοποίηση των θυμάτων και είναι υπεύθυνο για την εκτέλεση(λειτουργία) των αισθητήρων και το φιλτράρισμα τον μετρήσεων για την ύπαρξη υποψήφια

-24- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία θέσης θύματος ή όχι. Με αυτό τον τρόπο, έχουμε επιτύχει να μειώσουμε σημαντικά την επιβάρυνση των πληροφοριών, βασικό παράγοντα για την αποτελεσματικότητα του ρομποτικού συστήματος. Οι βασικοί κόμβοι ROS που αναπτύχθηκαν είναι: Controllers & Sensors: ελέγχει τη ροή δεδομένων από τους μικροελεγκτές, ενεργώντας ως ένα Επίπεδο Άντλησης Υλικού (Hardware) για το ρομπότ. Αυτό το πακέτο χειρίζεται τους περισσότερους από τους αισθητήρες, όπως είναι οι θερμικοί και οι φωνητικοί. Επιπλέον, ορισμένοι ενεργοποιητές είναι επίσης ελεγχόμενοι. Laser και SLAM: το SLAM είναι υπεύθυνο για την εκτέλεση του ταυτόχρονου Προσδιορισμού θέσης και Χαρτογράφησης (SLAM) του ρομπότ, καθώς και την αποθήκευση και παροχή των δεδομένων του χάρτη. Βασίζεται σε μετρήσεις που λαμβάνονται από τον κόμβο Laser. Robot Kinematic: ένα πακέτο βιβλιοθήκης που επιλύει το κινηματικό μοντέλο του οχήματος, παρέχοντας λειτουργίες χρησιμότητας για άλλα συστατικά. Main Motor Control: είναι υπεύθυνο για τον έλεγχο των κύριων κινητήρων του ρομπότ και εκτελεί το χειρισμό βασικών σφαλμάτων. Μέσω της Robot Kinematic βιβλιοθήκης, καθορίζονται οι επιθυμητές γραμμικές και περιστροφικές ταχύτητες των ρομπότ. Αυτό το πακέτο έχει σχεδιαστεί για να είναι κοινό και στους δύο τρόπους λειτουργίας του ρομπότ. Arm Control: υπεύθυνο για την επίλυση του κινηματικού μοντέλου του ρομποτικού βραχίονα, τον έλεγχο των ενεργοποιητών του βραχίονα για να επιτευχθεί ο στόχος μέσω μιας συγκεκριμένης τροχιάς. Vision: υπεύθυνο για το χειρισμό της στέρεο κάμερας που χρησιμοποιείται για την εξερεύνηση και τις πιθανές θέσεις θυμάτων, καθώς και της κάμερας που βρίσκεται στο ρομποτικό βραχίονα και χρησιμοποιείται για τη λεπτομερή ταυτοποίηση των θυμάτων. Sound: υπεύθυνο για το χειρισμό μιας κατασκευής 4 μικροφώνων που χρησιμοποιείται για την ταυτοποίηση των ήχων των θυμάτων και της θέση τους. Navigation: υπεύθυνο για το σχεδιασμό κίνησης και την πλοήγηση του ρομπότ μέσα από τις ανεξερεύνητες περιοχές του χάρτη ή προς ένα πιθανό θύμα για περαιτέρω ταυτοποίηση. Το πακέτο είναι επίσης υπεύθυνο για αποθήκευση και παροχή δεδομένων σχετικών με το θύμα, όπως είναι η θέση του θύματος. Arm Navigation: υπεύθυνο για την πλοήγηση του βραχίονα στο χώρο, ψάχνοντας για ένα θύμα στην περιοχή. Data Fusion: αποσυνδέει χαμηλού επιπέδου μετρήσεις του αισθητήρα για την αναγνώριση των θυμάτων και υψηλού επιπέδου στοιχεία πλοήγησης. Επίσης, είναι υπεύθυνο για την εκτέλεση όλων των αισθητήρων και προώθηση πιθανών θέσεων θυμάτων (ή κατευθύνσεων) στα κατάλληλα πακέτα πλοήγησης.

-25- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία GUI: παρέχει μια Γραφική Διασύνδεση του Χρήστη για τον χειρισμό του ρομπότ. Επιπλέον, παρέχει τα τηλεχειριστήρια για τον τηλεχειρισμό. 3.3.2 Γραφική Διασύνδεση Χρήστη PANDORA(GUI) Το PANDORA παρέχει μία φιλική προς το χρήστη Γραφική Διασύνδεση GUI για την οπτικοποίηση των πληροφοριών και τη λειτουργία του ρομπότ. Τρεις καρτέλες είναι διαθέσιμες, οι οποίες περιέχουν πληροφορίες σχετικές με την πλοήγηση, την ταυτοποίηση των θυμάτων και τον εντοπισμό σφαλμάτων. Σε κάθε μία από τις καρτέλες αυτές, εμφανίζονται οι παραπάνω πληροφορίες. Παρόλα αυτά, ο χειριστής μπορεί να προσθέσει ή να αφαιρέσει πληροφορίες για τους αισθητήρες και να τροποποιήσει τον τύπο και τη διάταξη των γραφικών που εμφανίζονται σε κάθε καρτέλα, δεδομένου ότι το PANDORA GUI υιοθετεί μία γραφική αρχιτεκτονική. Μία εικόνα του GUI παρέχεται στην εικόνα 8. Εικόνα 8: PANDORA GUI Όντας σε λειτουργία τηλεχειρισμού, το ρομποτικό όχημα ελέγχεται χρησιμοποιώντας ένα ενσύρματο χειριστήριο ή ένα πληκτρολόγιο, ενώ ο βραχίονας του ρομπότ ελέγχεται με ένα χειριστήριο (joystick). Όντας σε αυτόνομη λειτουργία, η GUI είναι μόνο για την οπτικοποίηση /παρακολούθηση και δεν επιτρέπεται καμία παρέμβαση, μέχρι το σημείο αναγνώρισης του θύματος.

-26- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία 3.3.3 PANDORA Hardware Αρχιτεκτονική Η πλατφόρμα είναι εξοπλισμένη με δύο σετ αισθητήρων. Το πρώτο είναι υπεύθυνο για τον εντοπισμό και τις διαδικασίες πλοήγησης, ενώ το δεύτερο για την αναγνώριση των θυμάτων. Δύο PCB έχουν κατασκευαστεί, το Main Board και το Head Board. Το Main Board επικοινωνεί με τους αισθητήρες που τοποθετούνται στο κύριο πλαίσιο, δηλαδή τους αισθητήρες απόστασης (με υπερήχους και υπέρυθρους) και τους θερμικούς αισθητήρες και ελέγχει τα servos(κινητήρες) του LRF σταθεροποιητή. Χρησιμοποιείται το I2C πρωτόκολλο επικοινωνίας. Η επιλογή αυτή μειώνει την καλωδίωση, διευκολύνει την επέκταση του υποσυστήματος του αισθητήρα και απλοποιεί την ανάπτυξη λογισμικού. Η χρήση των I2C-bus drivers / buffers επιτρέπει την απομάκρυνση του θορύβου που εισάγεται στο σύστημα bus. Έτσι, έχει αναπτυχθεί ένα δυναμικό και επεκτάσιμο σύστημα που παρέχει τη διασύνδεση μέχρι και 127 αισθητήρων. Οι αλγόριθμοι χειρισμού των σφαλμάτων επικοινωνίας έχουν αναπτυχθεί για να εξασφαλίσουν την αλάνθαστη απόκτηση δεδομένων. Το I2C bus συνδέεται σε έναν μικροελεγκτή Atmel AT90XMEGA128A1. Τα δεδομένα του αισθητήρα διαβάζονται παράλληλα μέσω μιας διαδικασίας DMA και αποστέλλονται στην υποδομή λογισμικού (software) της PANDORA μέσω της σειριακής θύρας (RS232), χρησιμοποιώντας ένα προσαρμοσμένο πρωτόκολλο επικοινωνίας. Για την εφαρμογή μιας πλεονάζουσας αρχιτεκτονικής, ένας επιπλέον AT90XMEGA128A1 μικροελεγκτής είναι τοποθετημένος στο PCB, που ενεργεί ως offline μικροελεγκτής αναμονής. Το Head Board έχει πρόσβαση στα στοιχεία που παρέχονται από τους αισθητήρες ανίχνευσης θύματος (θερμοκρασία, CO 2, μικρόφωνα και απόσταση) και ελέγχει το pan servo και το gripper (αρπάγη). Ένας μικροελεγκτής 32 bit (AT32UC3A0256) χρησιμοποιείται εκτελώντας ένα RTOS. Το Head Board συνδέεται με τον υπολογιστή μέσω USB. Για να εξασφαλιστεί η εύκολη επισκευή βλαβών των στοιχείων του υλικού(hardware) και η αλληλεπικοινωνία, μπορεί να συνδεθεί μια αποσπώμενη μονάδα με ενσωματωμένο μικροελεγκτή και μια οθόνη αφής LCD με τους μικροελεγκτές και να εξερευνήσει το σύστημα για τη σωστή λειτουργία και πιθανά σφάλματα. 3.4. Map generation/ printing (Παραγωγή χάρτη/εκτύπωση) 3.4.1 SLAM Η PANDORA εφαρμόζει το σύστημα CRSM (Critical Rays Scan Matching) SLAM για την εξερεύνηση του χώρου [2]. Χρησιμοποιεί ένα πλέγμα χάρτη πληρότητας και εκτελεί μια αντιστοίχηση scan-to-map, αντί για την παραδοσιακή αντιστοίχηση scan-to-scan. Η αντιστοίχηση σάρωσης πραγματοποιείται μέσω ενός μηχανισμού, όπως ο αλγόριθμος (Random Restart Hill Climbing) και χρησιμοποιείται μείωση ακτίνων για λόγους απόδοσης.

-27- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Ένα από τα δύο πιο σημαντικά χαρακτηριστικά της CRSM SLAM είναι η συλλογή ακτινών. Η βασική ιδέα είναι να μειωθεί η πολυπλοκότητα και ο χρόνος που απαιτείται, μέσω προεπεξεργασίας της σάρωσης και επιλέγοντας ακτίνες «ζωτικής σημασίας» για τη διαδικασία αντιστοίχησης. Ο όρος ακτίνες " ζωτικής σημασίας" χρησιμοποιείται υπό την έννοια ότι οι υπόλοιπες πληροφορίες για τις ακτίνες είναι περιττές στη διαδικασία αντιστοίχησης. Αυτό συμβαίνει δεδομένου ότι οι «ζωτικής σημασίας» σαρώσεις λειτουργούν ως χαρακτηριστικά της σάρωσης, ακόμη και αν προέρχονται από ερευνητική και όχι από οποιαδήποτε μέθοδο εξαγωγής χαρακτηριστικών. Έχει υιοθετηθεί ένας μηχανισμός Hill Climbing (ευρετικού αλγόριθμου) για την αναγνώριση της σωστής μετατροπής μεταξύ της τρέχουσας σάρωσης και του γενικού χάρτη. Ο Hill Climbing μηχανισμός αποτελεί μια πολύ δημοφιλή και αποτελεσματική μέθοδο για την εύρεση βέλτιστων λύσεων σε πολύπλοκα προβλήματα. Τέλος, εκτελείται εκ νέου δειγματοληψία, με αποτέλεσμα έναν καλύτερο πληθυσμό σωματιδίων, βασισμένο σε ένα τοπολογικό γράφημα που δημιουργήθηκε απευθείας από κάθε σωματίδιο. Όταν το ρομπότ ανιχνεύει έναν κόμβο που είναι κοντά στη θέση του αλλά έχει μεγάλη τοπολογική απόσταση από τον τελευταίο εισαχθέν κόμβο, ανιχνεύεται ένα κλειστό κύκλωμα και εκτελείται αναδειγματοληψία. 3.4.2 Navigation -Πλοήγηση Η μονάδα πλοήγησης του PANDORA αποτελείται από τρεις επιμέρους μονάδες: το Path Planner, το Navigator και το Streamer. Το Path Planner είναι ο συντονιστής της υπολογιστικής νοημοσύνης του ρομπότ. Παρακολουθεί όλους τους άλλους κόμβους του ρομπότ, παρέχοντάς τους δεδομένα και τη δυνατότητα να αναλάβουν τον έλεγχο και να εκτελέσουν ειδικά καθήκοντα. Ορίζει έναν στόχο (target) στο περιβάλλον ανάλογα με τις περιστάσεις, δημιουργεί τη διαδρομή του και τροφοδοτεί τον πλοηγό με σκοπό να το ακολουθήσει. Επίσης, ενεργοποιεί/απενεργοποιεί την κάμερα, τον ήχο και τους κόμβους πλοήγησης του βραχίονα (υποσυστήματα). Στη προεπιλεγμένη λειτουργία, το Path Planner εκτελεί απλή εξερεύνηση του διαστήματος. Οι στόχοι ορίζονται από την εφαρμογή του GDV (Generalized Voronoi Diagram) [2] στον μη κατειλημμένο χώρο. Το αποτέλεσμα της διαδικασίας είναι η κατασκευή ενός τοπολογικού γραφήματος, όπου οι κόμβοι είναι τα όρια του GDV. Η κύρια ιδέα είναι να διερευνηθούν όλοι οι GDV κόμβοι με αποτελεσματικό τρόπο. Έτσι, η γραφική εξερεύνηση συνεπάγεται σε μεγάλο βαθμό εξερεύνηση περιβάλλοντος. Ο σκαναρισμένος χώρος είναι αποθηκευμένος σε ένα πλέγμα πληρότητας που ονομάζεται κάλυψη (coverage), έχοντας το ίδιο μέγεθος με το χάρτη και κρατώντας τις πληροφορίες του καλυμμένου χώρου μέσω της κάλυψης των θυμάτων. Ο χάρτης κάλυψης ενημερώνεται σε κάθε επανάληψη SLAM με την εφαρμογή ενός patch στο χάρτη κάλυψης, ανάλογα με τη στάση του ρομπότ. Το patch είναι ένα άθροισμα της επίδρασης όλων των αισθητήρων που ανιχνεύουν θύματα στο ρομπότ. Αφού επιλεχθεί ο στόχος, το Path Planner έχει να προτείνει μια διαδρομή για να ακολουθήσει το ρομπότ. Χρησιμοποιείται αλγόριθμος για τη δημιουργία διαδρομής, δεδομένης της ταχύτητας, της αποτελεσματικότητας και της ικανότητας να αντιμετωπίσει σύνθετα προβλήματα δρομολόγησης. Ως

-28- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία αποτέλεσμα, κατασκευάζεται ένα γράφημα που περιλαμβάνει, ως κόμβους του, τα σημεία από την είδη χαρτογραφημένη περιοχή, καθώς και την θέση του ρομπότ και τον τρέχων στόχο. Η βέλτιστη διαδρομή εξάγεται από την εφαρμογή του αλγορίθμου Α* [3]. Μετά την αναγνώριση του θύματος, το Path Planner επικοινωνεί με το Arm Navigation, υπαγορεύοντας το βραχίονα προς τα πού να κινηθεί με τον αισθητήρα που απεικόνιζε τη ενδεχόμενο θύμα και τη θέση του ρομπότ. Την ίδια στιγμή, το Data Fusion ρυθμίζεται σε διαφορετική λειτουργία για να καταλήξει στην εγκυρότητα του θύματος, σύμφωνα με τις μετρήσεις των αισθητήρων. Τέλος, το Path Planner δημιουργεί το GeoTIFF που αποστέλλεται στο GUI, όταν αυτό απαιτείται με τις απαραίτητες πληροφορίες σχετικά με το χάρτη, τα θύματα, τους QR κώδικες και τα hazmats. Το Navigator ακολουθεί την πορεία που υπαγορεύεται από το Path Planner. Συγκεκριμένα, παρέχει δεδομένα (ταχύτητες) στον κύριο κόμβο Ελέγχου Μηχανής(Main Motor Control), προκειμένου να πλοηγηθεί στη συγκεκριμένη διαδρομή. Όταν το ρομπότ φτάσει στον ορισθέν στόχο (το τέλος μιας διαδρομής), ο Navigator ενημερώνει το Path Planner και περιμένει για μια νέα διαδρομή. Ακολουθεί διεπίπεδη αρχιτεκτονική: το επίπεδο path follower (διαδρομή που ακολουθείται) και το obstacle avoider (αποφυγή εμποδίων). Σε κάθε στάδιο, το path follower υπολογίζει τις κατάλληλες ταχύτητες για το ρομπότ, ενώ στο obstacle avoider ανατίθεται να διορθώσει τις ταχύτητες, έτσι ώστε το ρομπότ να αποφεύγει αποτελεσματικά τα εμπόδια, ανεξάρτητα από τη διαδρομή. Στο Navigator μπορεί επίσης να ανατεθεί και άλλη εργασία (στόχος) πριν από την ολοκλήρωση της τρέχουσας (π.χ. μια πιθανή τοποθεσία θύματος που εντοπίζεται). Στην περίπτωση αυτή, ο Navigator εξυπηρετεί το αίτημα για νέα διαδρομή αγνοώντας την προηγούμενη. Σε περίπτωση που δε λαμβάνει διαδρομή από το Path Planner, ο Navigator οδηγεί το ρομπότ ώστε να κινηθεί σύμφωνα με την αποφυγή εμποδίων. Ο Streamer στέλνει στο GUI την εικόνα του χάρτη μαζί με τα θύματα που συνάντησε ή πρόκειται να συναντήσει, έτσι ώστε η πρόοδος της εξερεύνησης να παρατηρείται πλήρως, ενώ το ρομπότ πλοηγείται στο περιβάλλον. Επιπλέον, η εικόνα περιλαμβάνει πληροφορίες σχετικά με τη διαδρομή που ακολουθείται και το χώρο που καλύπτεται ήδη από το ρομπότ. Η επεξεργασία των εικόνων γίνεται με τη χρήση της OpenCV βιβλιοθήκης. 3.5. Sensors for Navigation and Localization (Αισθητήρες για Πλοήγηση και Προσδιορισμό Θέσης) Η ρομποτική πλατφόρμα PANDORA είναι εξοπλισμένη με διάφορους αισθητήρες, ώστε να προσδιορίζει την τρέχουσα θέση και απόστασή της από διάφορα αντικείμενα. Οι αισθητήρες αυτοί αναλύονται στη παρακάτω.

-29- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία 3.5.1 Laser Range Finder (Hokuyo URG-04LX) Για τη δημιουργία χάρτη έχει εγκατασταθεί ένας αισθητήρας Hokuyo URG-04LX Laser Range Finder (εικόνα 9). Έχει γωνία θέασης 240 και εύρος ανίχνευσης 20 mm με 4m. Η γωνιακή ανάλυση είναι 0,36, η οποία δίνει 667 μετρήσεις σε μία σάρωση, ενώ η γραμμική ανάλυση του είναι 1 mm. Η ακρίβεια μέτρησης κυμαίνεται από 10mm (για αποστάσεις από 20mm έως 1m) σε 1% της μέτρησης για αποστάσεις έως 4m (Σχ. 6). Λειτουργεί σε 5V DC (πιθανό σφάλμα των + /- 5%) και έχει κατανάλωση ρεύματος 500mA. Εικόνα 9: Hokuyo laser 3.5.2 Ultrasonic Sensors (Αισθητήρες Υπερήχων) Πέντε αισθητήρες υπερήχων SRF05 είναι τοποθετημένοι γύρω από το ρομπότ. Επικοινωνούν μέσω του I2C bus με έναν μικροεπεξεργαστή, δημοσιεύοντας έναν παλμό με πλάτος αναλογικό της απόστασης του αντικειμένου. Η κατανάλωση ενέργειας τους είναι πολύ χαμηλή (περίπου 0.02W). Στο μπροστινό μέρος του οχήματος θα χρησιμοποιηθούν για να αποτρέψουν το όχημα από πρόσκρουση σε εμπόδια. Οι αισθητήρες SRF05 έχουν ένα εύρος ανίχνευσης των 3 cm 4m και θα χρησιμοποιηθούν ως συμπλήρωμα του Αισθητήρα Λέιζερ. 3.7. Άλλοι μηχανισμοί 3.7.1 Robotic Arm (Ρομποτικός Βραχίονας) Ο ρομποτικός βραχίονας έχει σχεδιαστεί ώστε να παρέχει τη δυνατότητα να φτάσει τα περισσότερα από τα σημεία ενδιαφέροντος. Η επιλεχθείσα γεωμετρία οδήγησε το ρομποτικό βραχίονα σε πέντε βαθμούς ελευθερίας, με περιστροφικές αρθρώσεις και κυλινδρικές συνδέσεις, όπως φαίνεται στην εικόνα 10.

-30- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Εικόνα 10: Βραχίονας του PANDORA robot Τα θέματα καλωδίωσης που καθορίζονται συνδέουν τη διάμετρο. Οι αρθρώσεις έχουν σχεδιαστεί για να επιτρέπουν την αναδίπλωση του βραχίονα και τη μεγιστοποίηση των ορίων γωνίας, ώστε να επιτευχθεί ο βέλτιστος χώρος εργασίας του συστήματος. Οι αρθρώσεις τροφοδοτούνται από dc κινητήρα- κωδικοποιητή- reduction gearbox που συνδέονται με κατάλληλα προγράμματα οδήγησης για την εφαρμογή του ελέγχου. Οι αρθρώσεις παρακολουθούνται από εξωτερικούς οπτικούς ή μαγνητικούς κωδικοποιητές έτσι ώστε να προσδιοριστεί η απόλυτη θέση του βραχίονα και έτσι η αποφυγή αναβαθμονόμησης κινδύνων λόγω της απώλειας ενέργειας. Στη κεφαλή του βραχίονα είναι τοποθετημένοι όλοι οι ουσιώδεις αισθητήρες για την ταυτοποίηση των θυμάτων και εν μέρει για την πλοήγηση. Ο ρομποτικός βραχίονας είναι εξοπλισμένος με ένα gripper προσαρτημένο στο τέλος του τέταρτου συνδέσμου για τη χειραγώγηση του αντικειμένου. Το gripper χρησιμοποιεί την έξυπνη κατασκευή του, για την επίτευξη της βέλτιστης χρήσης των τεσσάρων βαθμών της ελευθερίας κίνησης και προσανατολισμού. Οι λύσεις για την άμεση και αντίστροφη κινηματική έχουν ενσωματωθεί στο λογισμικό του βραχίονα. Έχουν εφαρμοστεί διαφορετικοί τύποι τροχιάς, όπως γραμμική ή κατά μήκος του πλησίον διανύσματος, καλύπτοντας το εύρος των απαιτούμενων κινήσεων. Άλλοι κινηματικοί υπολογισμοί σχετίζονται με τη δυνατότητα πρόσβασης των σημείων στόχου καθώς και τη θέση του κέντρου μάζας του βραχίονα για συγκεκριμένες παραμέτρους και κλίση του εδάφους, ώστε να αποφευχθεί το αναποδογύρισμα του οχήματος. 3.8. Team Training for Operation (Human Factors) (Εκπαίδευση Ομάδας για το Χειρισμό) Ο χειριστής θα πρέπει να είναι εξοικειωμένος με το γραφικό περιβάλλον GUI και το gamepad (τηλεχηρισμός). Αυτός θα πρέπει να είναι σε θέση να κατανοήσει τις ενδείξεις όλων των αισθητήρων

-31- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία και να ενεργήσει αναλόγως όταν επιτρέπεται. Θα πρέπει να περάσει από εκτενή κατάρτιση και να ολοκληρώσει τις αποστολές ελέγχου στην ειδικά κατασκευασμένη Arena, που μιμείται μια σκηνή καταστροφής. 3.9. Possibility for Practical Application to Real Disaster Site (Δυνατότητα για Πρακτική Εφαρμογή σε Πραγματικό Περιβάλλον Καταστροφής) Η πλήρως αναπτυχθείσα ρομποτική πλατφόρμα δεν έχει δοκιμαστεί σε πραγματικό περιβάλλον ακόμα. Παρόλα αυτά, η προηγούμενη πλατφόρμα είχε εκτεθεί στην EXPO 2008 στη Θεσσαλονίκη και έγινε ευρέως αποδεκτή. Η Ελληνική Ομάδα Διάσωσης και το Ινστιτούτο Τεχνικής Σεισμολογίας και Αντισεισμικών Κατασκευών έδειξε έντονο ενδιαφέρον για τις δυνατότητες χρήσης της πλατφόρμας και στην πραγματική ζωή. Επιπλέον, η ομάδα PANDORA σχεδιάζει να αναπτύξει μια παρόμοια πλατφόρμα με μια τοπική εταιρεία για εποπτικούς σκοπούς.

-32- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Κεφάλαιο 4. 3D Modeling (Blender, πίστες) 4.1. Σχεδίαση του τρισδιάστατου μοντέλου του οχήματος Για να προσομοιωθεί το ρομπότ στο πρόγραμμα Gazebo που επιλέχθηκε, έπρεπε πρώτα να σχεδιαστεί κάθε ένα από τα μέρη που αποτελείται το ρομπότ σε έναν σχεδιαστή, και στην συνέχεια να συντεθούν όλα μαζί σε ένα αρχείο για να ξεκινήσει η προσομοίωση του. Τα τμήματα από τα οποία αποτελείται το ρομπότ είναι εύκολο να σχεδιαστούν στο blender διότι μας δίνει την δυνατότητα επιλογής έτοιμων γεωμετρικών σχημάτων όπως κύβο, σφαίρα, κύλινδρο, τραπέζιο κ.α. Επίσης το blender δίνει την δυνατότητα τροποποίησης των σχημάτων αυτών καθώς και δήλωσης των ακριβή διαστάσεων. Με το τρόπο αυτό κατασκευάστηκαν ως βάση του οχήματος μας ένα τραπέζιο (εικόνα 11), ως βάση βραχίονα ένας δίσκος (εικόνα 12 ), ως κάτω/ πάνω μέρος του βραχίονα ένας κύλινδρος (εικόνα 13), ως βάση κεφαλής μια σφαίρα και ώς κεφαλή μια σφαίρα με ένα κύβο (εικόνες 14 και 15 αντίστοιχα). Κατά την ολοκλήρωση του οχήματος στο πρόγραμμα blender, προστέθηκαν και ερπύστριες όμοιες με αυτές που φοράει το πραγματικό ρομπότ. Εικόνα 11: Η βαση του PANDORA robot

-33- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Εικόνα 12: Η βάση και ο κάτω μέρος του βραχίονα αντίστοιχα Εικόνα 13: Η βάση της κεφαλής και η κεφαλή αντίστοιχα Η ομαλή κίνηση του ρομπότ έγινε επιτυχώς, καθώς κατά την κίνηση του οχήματος τόσο η ερπύστριες όσο και τα υπόλοιπα μέρη του ρομπότ κινήθηκαν ομοιόμορφα σαν ένα ενιαίο σώμα. Η ενοποίηση των τμημάτων του οχήματος στο blender έγινε μέσω bones. Τα bones είναι ένα εργαλείο μοντελοποίησης που είναι ιδιαίτερα σημαντικό στη δημιουργία μοντέλου κίνησης. Τα bones τοποθετούνται στο μοντέλο αφού έχει σχεδιαστεί πρώτα τα επιμέρους τμήματα του μοντέλου. Κατά την τοποθέτηση των bones δηλώνεται ποιο από τα τμήματα που γίνεται η σύνδεση θεωρείται parents και πιο child. Στις παρακάτω εικόνες φαίνεται η σταδιακή τοποθέτηση bones.

-34- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Εικόνα 14: Τοποθέτηση bones Εικόνα 15: Μοντέλο με bones Η τελική μορφή του ρομπότ φαίνεται στις εικόνες 16. Εικόνα 16: Το PANDORA robot, όρθια στάση βραχίονα και σε θέση parking αντίστοιχα

-35- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Η κίνηση του βραχίονα από ορθή θέση σε θέση parking φαίνεται στις παρακάτω εικόνες. 4.2. Πίστες Εικόνα 17: Η κίνηση του βραχίονα από ορθή θέση σε θέση parking Σκοπός κατά την έναρξη της εργασίας αυτής ήταν να γίνει έλεγχος στο ρομπότ PANDORA για το πόσο καλά ανταποκρίνεται ο κώδικας στις εκάστοτε ανάγκες. Το ρομπότ αυτό έχει πάρει μέρος στον παγκόσμιο διαγωνισμό Robocup Rescue αρκετές φορές και συνεχώς γίνονται βελτιώσεις ώστε να έχουμε καλύτερα αποτελέσματα. Στον διαγωνισμό το ρομπότ καλείται να πλοηγηθεί αυτόνομα, να χαρτογραφήσει την πίστα και να δώσει πιθανές θέσεις θύματος μέσα στον χώρο αυτό (θύματα μπορεί να είναι μια τρύπα στον χώρο ή μία κούκλα με ανθρώπινα χαρακτηριστικά). Ο χώρος αυτός είναι κατασκευασμένος από τους διοργανωτές του διαγωνισμού κάτω από κάποια συγκεκριμένα πρότυπα. Κάθε χρόνο τροποποιούνται οι πίστες ακολουθώντας όμως τα πρότυπα αυτά. Για τον λόγο αυτό δημιουργήθηκε μια πλατφόρμα κατασκευής εικονικών πιστών (arenas) για μια πιο ρεαλιστική προσέγγιση στις ανάγκες του διαγωνισμού κατά την διάρκεια της προσομοίωσης των ρομπότ.

-36- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Η πλατφόρμα αυτή ονομάζεται hector_nist_arenas και συνεργάζεται με τον προσομοιωτή Gazebo (ήταν ένας ακόμα λόγος που συντέλεσε στην επιλογή του). Το hector_nist_arenas παρέχει τα μέσα για γρήγορη και εύκολη δημιουργία σεναρίων. Αποτελείται από το hector_nist_arena_designer, hector_nist_arena_elements και hector_nist_arena_worlds. Το hector_nist_arena_elements περιέχει αρχεία χρήσιμα για την δημιουργία των πιστών, το hector_nist_arena_worlds περιέχει έτοιμα σενάρια και πίστες οι οποίες έχουν εφαρμοστεί σε διαγωνισμούς και το hector_nist_arena_designer είναι ένα εργαλείο για την δημιουργία σεναρίων ανάλογα με τις ανάγκες του κάθε χρήστη. Εικόνα 18: Hector_nist_arena_designer Το σενάριο που θα δημιουργηθεί με την βοήθεια της παραπάνω πλατφόρμας μπορεί να αποθηκευτεί σε ένα αρχείο που θα έχει την κατάληξη.raf ώστε να μπορεί να το ξανά διαχειριστεί ο χρήστης αργότερα. Ακόμα η πίστα αυτή μπορεί να τοποθετηθεί στον προσομοιωτή Gazebo είτε σε.world μορφή είτε σε.sdf (για τις μορφές αυτές θα γίνει αναφορά παρακάτω). Εικόνες από πίστες που έχουν σχεδιαστεί σύμφωνα με τα πρότυπα της κίτρινης πίστας φαίνονται παρακάτω. Αριστερά διακρίνεται η πίστα σε.raf μορφή στο hector_nist_arena_designer, ενώ δεξιά η πίστα αυτή φαίνεται στον προσομοιωτή Gazebo.

-37- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Εικόνα 19: Πίστες σχεδιασμένες στο hector_nist_arena_designer

-38- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Κεφάλαιο 5. Αρχιτεκτονική για την υλοποίηση ROS και του μοντέλου (PANDORA ROBOT) στον προσομοιωτή Gazebo 5.1 Αρχιτεκτονική για την υλοποίηση ROS Το ROS είναι ένα λειτουργικό σύστημα για ρομπότ και υλοποιείται ως ένα σύστημα που επικοινωνεί μέσω ενός συστήματος ανταλλαγής μηνυμάτων. Ένας κύριος κόμβος υλοποιείται, ο οποίο διευκολύνει τους κόμβους του συστήματος για να βρουν ο ένας τον άλλο. Οι κόμβοι στο ROS μπορούν να «μιλούν» μεταξύ τους μέσω θεμάτων (topics) και υπηρεσιών (services, srv). Οι κόμβοι μπορούν να δημοσιεύουν στοιχεία σχετικά με τα θέματα και τις υπηρεσίες. Τα topics και τα services πρέπει να καταγράφονται από τον κύριο κόμβο, κάθε topic και service πρέπει να έχει ένα μοναδικό όνομα. Για να λαμβάνονται μηνύματα που πέρασαν από και προς αυτά τα topics και services, οι κόμβοι μπορούν να εγγραφούν σε αυτά μέσω του κεντρικού κόμβου (master). Τα περιεχόμενα των μηνυμάτων ορίζονται σε αρχεία XML, και ένας κόμβος στέλνει ένα μήνυμα σε έναν άλλο χωρίς να περιμένει απάντηση. Τα topics είναι το ίδιο με τα μηνύματα, με την διαφορά όμως ότι κάθε φορά που ένα μήνυμα (ή αίτημα) στέλνεται σε ένα κόμβος περιμένει μια απάντηση. Για την προσομοίωση του ρομπότ που έχουμε επιλέξει χρησιμοποιείται το πρόγραμμα Gazebo. Χρησιμοποιώντας SDF ή URDF αρχεία (μορφή κωδικοποίησης στο Gazebo) μπορούμε να καθορίσουμε τα χαρακτηριστικά ενός ρομπότ, όπως το σχήμα και τις ιδιότητες (μάζα, τριβή, κλπ.). Ένα ρομπότ μπορεί να αποτελείται από πολλαπλά τμήματα που συνδέονται μεταξύ τους με αρθρώσεις. Το SDF/URDF αρχείο μας επιτρέπει να ορίσουμε ένα ρομπότ, όπως ένα δέντρο στοιχείων. Η θέση κάθε στοιχείου του ρομπότ σε σχέση με ένα άλλο στοιχείο είναι σχετική όπως παραδείγματος χάρη η θέση ενός παιδιού στο γενεαλογικό δέντρο. Κάποιο στοιχείο ορίζεται ώς βασικό και τα υπόλοιπα είναι υποστοιχεία αυτού (παιδιά του). Η προσομοίωση έγινε σε Linux (Ubuntu 12.10) λογισμικό με τις εκδόσεις ROS Groovy και Gazebo 1.3. 5.1.1. Εσωτερική δομή ενός πακέτου Στην ROS πλατφόρμα, κάθε πακέτο έχει τον δικό του κατάλογο στο δίσκο: όλα τα στοιχεία της δέσμης περιέχονται σε αυτό το κατάλογο. Το πακέτο ROS παίρνει το όνομα του καταλόγου. Μερικοί από τους καταλόγους έχουν εγκατασταθεί από το ROS, και υπάρχουν κάπου στο σκληρό δίσκο. Τα περιεχόμενα ενός καταλόγου στο ROS είναι τυποποιημένα. Τα περισσότερα από αυτά έχουν τροποποιηθεί από το ROS, και μπορούν να αγνοηθούν. Ωστόσο, υπάρχουν ορισμένα στοιχεία του

-39- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία καταλόγου του πακέτου που θα πρέπει να τροποποιηθούν με το χέρι. Ας υποθέσουμε ότι δημιουργήθηκε ένα νέο πακέτο ROS που ονομάζεται MyPkg. Όπως προαναφέρθηκε, όλα τα στοιχεία του πακέτου θα πρέπει να περιλαμβάνονται σε έναν κατάλογο που ονομάζεται MyPkg, και βρίσκεται κάπου στο σύστημα αρχείων του υπολογιστή σας. Τα στοιχεία της MyPkg τα οποία μπορεί να χρειαστεί να τροποποιηθούν, ενώ εργάζονται για νέο πακέτο είναι το εξής: MyPkg/ msg/, όπου ορίζονται οι τύποι των ROS μηνυμάτων. MyPkg/ srv/, όπου ορίζονται οι τύποι των ROS services. MyPkg/ manifest.xml/, η οποία προβλέπει ότι το MyPkg είναι ένας κατάλογος πακέτων ROS και το οποίο ορίζει ορισμένες ιδιότητες του πακέτου. MyPkg/ launch/, όπου περιέχει τα launchfiles αν χρησιμοποιούνται (συνήθως χρησιμοποιούνται σε πολύπλοκα συστήματα ROS). MyPkg/ src/, όπου βρίσκεται ο πηγαίος κώδικας για ROS κόμβους (σε αρχεία cpp μορφής, αν χρησιμοποιείτε C + +). (Με την ευκαιρία: τα εκτελέσιμα αρχεία που δημιουργεί rosmake είναι MyPkg / bin). MyPkg/ CMakeLists.txt, ένα αρχείο κειμένου που ενημερώνει το ROS ποια στοιχεία (εκτελέσιμα αρχεία, τύπους μηνυμάτων, ROS, υπηρεσίες κ.α) θα πρέπει να δημιουργηθούν χτίζοντας ένα νέο πακέτο MyPkg. Το CMakeLists.txt καθορίζει τον τρόπο μεταγλώττισης του rosmake (compile) για MyPkg πακέτο. 5.1.2. ROS nodes (ROS κόμβοι) Ένας κόμβος(nodes) είναι μια διαδικασία που εκτελεί υπολογισμούς. Οι κόμβοι συνδυάζονται μαζί σε ένα γράφημα και να επικοινωνούν μεταξύ τους με συνεχή ροή θεμάτων (topics), υπηρεσιών (services), και του διακομιστή παραμέτρων (parameter server). Ένα σύστημα ελέγχου ρομπότ συνήθως περιλαμβάνει πολλούς κόμβους. Για παράδειγμα: ένας κόμβος ελέγχει ένα λέιζερ φάσμα, ένας κόμβος ελέγχει κινητήρες τροχών του ρομπότ, ένας κόμβος εκτελεί εντοπισμού, ένας κόμβος εκτελεί τον προγραμματισμό διαδρομής, ένας κόμβος παρέχει μία γραφική όψη του συστήματος, και ούτω καθεξής. Η χρήση των κόμβων είναι πολύ χρήσιμη για το συνολικό σύστημα. Υπάρχει επιπλέον ανοχή σε σφάλματα, όπως λάθη σε μεμονωμένους κόμβους και πολυπλοκότητα του κώδικα. Όλοι οι κόμβοι έχουν ένα που προσδιορίζει τη μοναδικότητα τους στο υπόλοιπο σύστημα. Για παράδειγμα το hokuyo_node θα μπορούσε να είναι το όνομα ενός οδηγού σάρωσης Hokuyo εκπομπής λέιζερ.

-40- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία 5.1.3. ROS topics (ROS θέματα) Τα topics είναι το μέσο με το οποίο οι κόμβοι ανταλλάσσουν μηνύματα. Τα topics προορίζονται για ανταλλαγή μονής κατεύθυνσης. Οι κόμβοι οι οποίοι χρειάζονται αμφίδρομη επικοινωνία θα χρησιμοποιήσουν services για την ανταλλαγή πληροφοριών. Το rostopic είναι μια εντολή στη γραμμή εντολών (terminal) για την αλληλεπίδραση με ROS topic. Δηλώνοντας την εντολή rostopic list στο τερματικό, θα εμφανιστούν τα τρέχοντα topics, και δηλώνοντας rostopic echo /topic_name, όπου topic_name το όνομα του topic, θα εμφανιστούν τα μηνύματα που δημοσιεύονται στο συγκεκριμένο topic. 5.1.3. ROS bags (ROS θέματα) Τα bags είναι μια μορφή αρχείου για την αποθήκευση ros δεδομένων. Τα bags έχουν πολύ σημαντικό ρόλο διότι διαθέτουν μια σειρά από εργαλεία που επιτρέπουν την αποθήκευση, επεξεργασία, ανάλυση και απεικόνιση τους. Συνήθως δημιουργούνται με την εντολή rosbag τα οποία εγγράφονται σε ένα ή περισσότερα ros topics και αποθηκεύουν συνέχεια τα αρχεία τους μετά τη λήψη τους. Αυτά τα αρχεία μπορούν να αναπαραχθούν από τα ίδια topics. Όπως αναφέρθηκε τα bags έχουν διάφορα εργαλεία τέτοια είναι: rosbag: εντολή για την καταγραφή, αναπαραγωγή και άλλων λειτουργιών. rxbag: γραφικό εργαλείο για την οπτικοποίηση δεδομένων σε bag αρχείο rostopic: εργαλείο εμφάνισης των topics που τρέχουν αλλά και εμφάνισης των δεδομένων τους. Στη παρακάτω εικόνα φαίνεται η σχέση επικοινωνίας μεταξύ των topics σε διάφορα nodes του PANDORA robot, καθώς και ο τύπος των μηνυμάτων που στέλνουν το ένα στο άλλο. Συγκεκριμένα φαίνεται η επικοινωνία των topics για το slam (χαρτογράφηση) και το navigation, καθώς επίσης και ο τύπος των μηνυμάτων για το laser και τον sonar αισθητήρα. Τα συγκεκριμένα nodes και topics είναι αυτά που χρησιμοποιήθηκαν στην παρούσα Διπλωματική κατά την προσομοίωση του ρομπότ.

-41- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Εικόνα 20: Message Maps για το PANDORA robot

-42- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία 5.2 Αρχιτεκτονική για την υλοποίηση του ρομπότ στο Gazebo 5.2.1 Το Gazebo χωρίζεται στις πέντε παρακάτω βιβλιοθήκες Φυσικής: διατηρεί και ανανεώνει τη φυσική κατάσταση της προσομοίωσης. Rendering: οπτικοποιεί την κατάσταση προσομοίωσης. Αισθητήρες: Δημιουργία δεδομένων του αισθητήρα. Μεταφορές: Χειρίζεται την επικοινωνία μεταξύ διεργασιών. GUI: Επιτρέπει την οπτικοποίηση και τις πράξεις χειραγώγησης της προσομοίωσης. Αυτές οι βιβλιοθήκες χρησιμοποιούνται από δύο κύριες διαδικασίες: Διακομιστής (server): Τρέχει το βρόχο φυσικής και δημιουργίας δεδομένων του αισθητήρα. o Εκτελέσιμα: gzserver o Βιβλιοθήκες: Φυσική, Αισθητήρες, Rendering, Μεταφορές. Πελάτης (client): Παρέχει αλληλεπίδραση του χρήστη και την απεικόνιση μιας προσομοίωσης. o Εκτελέσιμα: gzclient o Βιβλιοθήκες: Μεταφορές, Rendering, GUI Η συσχέτιση αυτή φαίνεται στην εικόνα 24. Εικόνα 21: Συσχέτιση των gzserver και gzclient με τις βιβλιοθήκες

-43- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Βιβλιοθήκη Φυσικής Η βιβλιοθήκη φυσικής ενημερώνεται τακτικά για την φυσικής κατάσταση όλων των μοντέλων και των plugins τους, και στην συνέχεια αποθηκεύει και φορτώνει τη κατάσταση της προσομοίωσης. Βιβλιοθήκη Rendering Η βιβλιοθήκη rendering χρησιμοποιεί OGRE για την απεικόνιση του κόσμου προσομοίωσης. Αυτή η βιβλιοθήκη χρησιμοποιείται από τα γραφικά interfaces για να επιτρέψει στο χρήστη να δει τη προσομοίωση. Επίσης, χρησιμοποιείται από τη βιβλιοθήκη του αισθητήρα για την παραγωγή δεδομένων για τους αισθητήρες, όπως κάμερες. Βιβλιοθήκη Αισθητήρων Η βιβλιοθήκη αυτή φορτώνει και ενημερώνει τους επιμέρους αισθητήρες, όπως τα λέιζερ, κάμερες και imus. Βιβλιοθήκη Μεταφορών Η βιβλιοθήκη αυτή χρησιμοποιεί το boost::asio για να δημιουργήσει και να διατηρήσει την σύνδεση μεταξύ των στοιχείων του Gazebo. Βιβλιοθήκη GUI Αυτή η βιβλιοθήκη χρησιμοποιεί το Qt (http://qt-project.org) για να επιτρέψει στους χρήστες πρόσβαση σε μια λειτουργία προσομοίωσης. Το GUI παρέχει ένα μηχανισμό για προβολή, δημιουργία, τροποποίηση και αποθήκευση προσομοιώσεων. 5.2.2 Μορφές προσομοίωσης αρχείων του προσομοιωτή Gazebo Ο προσομοιωτής Gazebo έχει δύο μορφές σύνταξης για τα αρχεία του, τα URDF (Universal Robotic Description Format) αρχεία και τα SDF (Simulator Description Format) τα οποία είναι μια νέα εξελιγμένη μορφή αρχείου προσομοίωσης που επιλύει αρκετά προβλήματα που υπήρχαν. Τόσο το URDF όσο SDF αρχεία, περιέχουν κώδικα ο οποίος είναι γραμμένος σε XML μορφή, ακολουθώντας όμως κάποια συγκεκριμένα πρότυπα σύνταξης του προσομοιωτή. Το URDF αρχείο καθορίζει τις κινηματικές και δυναμικές ιδιότητες ενός ρομπότ σε απομόνωση. Παρόλα αυτά δεν μπορεί να καθορίσει την θέση του ρομπότ μέσα στον κόσμο.

-44- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Επιπλέον, δεν αποτελεί μια καθολική μορφή περιγραφής, δεδομένου ότι δεν μπορεί να καθορίσει από κοινού βρόχους, και στερείται την τριβή και άλλες ιδιότητες. Ακόμα, ο χρήστης δεν μπορεί να καθορίσει ιδιότητες για την προσομοίωση που δεν αφορούν άμεσα το ρομπότ, όπως φώτα, heightmaps, κλπ. Πρόκειται για μια δυσλειτουργική μορφή και δύσκολη στην επέκταση της, λόγω της δομής που έχει. Με την πάροδο του χρόνου τις δυσκολίες αυτές ήρθε να τις επιλύσει μια πιο εξελιγμένη μορφή προσομοίωσης. Η SDF μορφή λύνει όλα αυτά τα προβλήματα. Πρόκειται για μια πλήρη περιγραφή του εικονικού συστήματος, από τον γενικό επίπεδο προσομοίωσης μέχρι το επίπεδο του ρομπότ. Είναι αρκετά επεκτάσιμη, και καθιστά εξαιρετικά εύκολο να προσθέσετε και να τροποποιήσετε στοιχεία. 5.2.3. Simulator Description Format (SDF) Gazebo χρησιμοποιεί XML για να φορτώσετε και να αποθηκεύσετε πληροφορίες σχετικά με ένα κόσμο προσομοίωσης ή ένα μοντέλο. Η SDF ενσωματώνει όλες τις απαραίτητες πληροφορίες για ένα ρομποτικό προσομοιωτή. Αυτές οι πληροφορίες περιλαμβάνουν: Σκηνή : Ατμοσφαιρικός φωτισμός, ιδιότητες ουρανού, σκιές. Φυσική : Βαρύτητα, χρονικό βήμα, μηχανή φυσικής. Μοντέλα : Σύνδεση των συνδέσεων (links), αντικείμενα σύγκρουσης (collision), joints και αισθητήρες. Φώτα : Σημειακό φως και κατευθυντικό φως πηγές. Plugins : World, το μοντέλο, τον αισθητήρα, και τα plugins του συστήματος. Η SDF είναι εύκολα επεκτάσιμη και αυτο-περιγραφική. Υπάρχει ένα εργαλείο γραμμής εντολών (gzsdf) το οποίο μπορεί να ενημερώσει και να μετατρέψει παλιές εκδόσεις του SDF στην τελευταία έκδοση. Ακόμα και να μετατρέψει μια μορφή από URDF σε SDF. Μια προσομοίωση Gazebo αποτελείται από πολλά μέρη που εργάζονται μαζί για να παράγουν ένα ακριβή και ρεαλιστικό περιβάλλον για τα ρομπότ, τους αισθητήρες, και τα άλλα αντικείμενα που την αποτελούν. Τα τμήματα ενός περιβάλλοντος προσομοίωσης αποτελούνται από: Κόσμος : ένα σύνολο από μοντέλα, φώτα, Plugins και γενικές ιδιότητες o Μοντέλα : ένα σύνολο από συνδέσμους (links), joints, αισθητήρες, και Plugins Links : ένα σύνολο από collision (συγκρούσεις) και visual στοιχεία Collision : η γεωμετρία που καθορίζει μια συγκρουόμενη επιφάνεια Visual : η γεωμετρία που καθορίζει μια οπτική αναπαράσταση ενός αντικειμένου (στοιχείου)

-45- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία Joints : ορίζεται η σχέση μεταξύ των Links (parent-child) Αισθητήρες : αποτελούν τη συλλογή, επεξεργασία, και έξοδος δεδομένων Plugins : είναι ο κώδικας ο οποίος συνδέεται με ένα κόσμο (world), μοντέλο ή αισθητήρα Η παραπάνω ιεραρχία δείχνει την σχέση γονέα-παιδιού (parent-child) μεταξύ των στοιχείων. Ένα σύνολο στοιχείων καθορίζουν πως εκτελείται μια προσομοίωση. Η εκτέλεση μιας προσομοίωσης περιλαμβάνει πολλαπλές διεργασίες που εργάζονται μαζί: Server : Το εκτελέσιμο πρόγραμμα το οποίο τρέχει τις απαραίτητες διεργασίες για physics engine και τους αισθητήρες. Αυτό το εκτελέσιμο τρέχει τα βασικά χαρακτηριστικά του Gazebo, αλλά δεν παρέχει graphical interfaces (γραφικά διεπαφών). Ο διαχωρισμός του graphical interface δίνει Gazebo μεγαλύτερη ευελιξία. Για παράδειγμα, ο server μπορεί να τρέξει σε απομακρυσμένα μηχανήματα, και σε περιπτώσεις, που ένα γραφικό περιβάλλον δεν είναι απαραίτητο. Client : Αυτό είναι το γραφικό περιβάλλον, τα εργαλεία της γραμμής εντολών, και προσαρμοσμένα προγράμματα που διασυνδέονται με το server. Μηνύματα : Το σύνολο των μηνυμάτων που διευκολύνουν την επικοινωνία μεταξύ του server και των clients. Μεταβλητές Περιβάλλοντος : Μια σειρά από παραμέτρους που ενημερώνουν το Gazebo πού να αναζητήσει τους πόρους, και πώς να εκτελεστούν. 5.2.4. Μοντελοποίηση στο Gazebo Η προσομοίωση είναι περίπου συνώνυμη με τη μοντελοποίηση : τη συλλογή των φυσικών ιδιοτήτων ενός αντικειμένου, των διαδικασιών ή του συστήματος σε ένα σύνολο σχέσεων. Μεγάλο μέρος της προσομοίωσης είναι η κατασκευή, η αποθήκευση, η φόρτωση και η χρήση των μοντέλων. Για το Gazebo, ένα μοντέλο είναι ο προσδιορισμός των ιδιοτήτων που είναι απαραίτητες για την προσομοίωση ενός τμήματος του ρομπότ ή του περιβάλλοντος του. Μοντέλα ορίζονται χρησιμοποιώντας τη μορφή SDF και XML-based γλώσσα για την περιγραφή του περιβάλλοντος προσομοίωσης και των αντικειμένων. Τα στοιχεία (components) είναι ιδιότητες ενός μοντέλου γραμμένο με SDF και αποθηκεύονται σε αρχεία, είτε τοπικά στον υπολογιστή του χρήστη ή στην ηλεκτρονική βάση δεδομένων του μοντέλου. Η δημιουργία ενός μοντέλου είναι η διαδικασία της γραφής του στο SDF αρχείο. Τα μοντέλα μπορούν να χρησιμοποιηθούν ιεραρχικά: ένα μοντέλο μπορεί να περιλαμβάνει ένα άλλο μοντέλο ως παιδί (child), όπως όταν επισυνάπτοντας ένα προκαθορισμένο μοντέλο ενός λέιζερ ανιχνευτή περιοχής σε ένα νέο ρομπότ (το πώς γίνεται αυτό θα αναφερθεί παρακάτω). Το Gazebo δίνει την δυνατότητα στο χρήστη να καλεί περισσότερες από μια φορά το μοντέλο του, το οποίο είναι χρήσιμο σε περίπτωση που ο χρήστης θέλει παραπάνω από ένα αντίγραφα ενός ρομπότ στην προσομοίωση του.

-46- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία 5.3. Δημιουργία SDF αρχείου Βήμα 1: Συλλογή όλων των αρχείων που έχουν δημιουργηθεί από το πρόγραμμα σχεδίασης Blender. Αυτό το βήμα περιλαμβάνει όλα τα απαραίτητα 3D mesh αρχεία που απαιτούνται για την κατασκευή του μοντέλου. Το Gazebo παρέχει ένα σύνολο απλών σχημάτων, όπως τετράγωνο, σφαίρα, και κύλινδρο. Παρόλα αυτά πολλές φορές χρειάζονται πιο σύνθετα σχήματα κατά την δημιουργία ενός μοντέλου. Για τον λόγο αυτό σχεδιάζονται τα σχήματα τα οποία θα χρησιμοποιηθούν σε έναν σχεδιαστή, και στην συνέχεια αποθηκεύονται σε μια μορφή.dae ή.stl. Αυτό γίνεται προκειμένου να εισαχθούν στο sdf αρχείο προσομοίωσης στην ετικέτα (tag) mesh. Το Gazebo αναγνωρίζει και τις δύο μορφές σχεδίασης stl, Collada (dae), το Collada όμως είναι προτιμότερη μορφή. Οι Collada μορφές αρχείου επιτρέπει την σύνδεση υλικών με τα mesh. Ο χρήστης μπορεί να χρησιμοποιήσει αυτή την δυνατότητα για να βελτιώσει την οπτική εμφάνιση των mesh αρχείων. Ακόμα ο χρήστης μπορεί να χρησιμοποιήσει το 3D λογισμικό προσομοίωσης για να μετακινήσει το mesh αρχείο στον χώρο. Αυτό θα κάνει την τοποθέτηση του μοντέλου στο Gazebo πολύ ευκολότερη. Η χρήση απλών mesh αρχείων βοηθάει ιδιαίτερα τον χρήση σε περίπτωση που θέλει να χρησιμοποιήσει τα αρχεία αυτά ως collision elements (στοιχεία σύγκρουσης). Μια καλή λύση είναι η επιλογή μιας από τις ενσωματωμένες μορφές (κουτί, σφαίρα, κύλινδρος) ως collision element. Βήμα 2: Ένταξη του σχεδιασμένου αρχείου στο πρόγραμμα προσομοίωσης. Στην φάση αυτή ο χρήστης δημιουργεί ένα SDF σύμφωνα με τα πρότυπα που ορίζει ο προσομοιωτής, και προσθέτει τα παραπάνω αρχεία σχεδίασης στο πρόγραμμα του. Κατά την ένταξη του αρχείου στο πρόγραμμα ο χρήστης πρέπει να δώσει την ακριβή διεύθυνση του αρχείου μέσα στο δίσκο του υπολογιστή (ώστε να γνωρίζει το πρόγραμμα την τοποθεσία του με σκοπό να το διαβάσει). Βήμα 3: Προσθήκη επιπλέον στοιχείων και χαρακτηριστικών στο αρχείο προσομοίωσης. Μετά την δημιουργία του αρχικού αρχείου (βήμα 2), ο χρήστης μπορεί να προσθέσει επιπλέον στοιχεία και χαρακτηριστικά, όπως βαρύτητα, φως, αισθητήρες, plugins αυξάνοντας έτσι την πολυπλοκότητα του αρχείου. Για τον έλεγχο του αρχείου ο χρήστης μπορεί να κάνει εκτέλεση του αρχείου σε κάθε νέα προσθήκη. Μια καλή σειρά προσθήκης χαρακτηριστικών είναι: 1. Πρόσθεση ενός επιπλέον link 2. Ρύθμιση του collision element 3. Ρύθμιση του visual element

-47- Πεχλιβανίδης Νικόλαος Διπλωματική Εργασία 4. Ορισμός των αδρανειακών χαρακτηριστικών 5. Δημιουργία joints (σχέσεων μεταξύ των link) 6. Πρόσθεση των plugins Το διάγραμμα δραστηριοτήτων για την δημιουργία του ρομπότ στο πρόγραμμα προσομοίωσης φαίνεται στην εικόνα 22. Εικόνα 22: Διάγραμμα Δραστηριοτήτων 5.5. Περιγραφή του SDF κώδικα της ομάδας PANDORA Όπως παρατηρείται στον κώδικα του Παραρτήματος Β γίνεται χρήση της 1.3 έκδοσης sdf μορφής. Επιπλέον έχουν δημιουργηθεί 8 links και 7 joints που καθορίζουν την σχέση που έχουν τα links μεταξύ τους.