Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Vasilis Remmas

116 views

Published on

Generated data volumes are constantly increasing, dictating the need for more sophisticated algorithms and mathematical models to achieve faster and more accurate processing of this data volume. The execution requirements of these algorithms/models often require increased computational resources which entails increased energy and costs. It is evident that, as data continue to grow, performing such processing algorithms on robotic vehicles that do not have the computational power and the energy autonomy will be impossible.
This diploma thesis focuses on the implementation of a system that aims to offload some robotic vehicle operations into a computer cluster. This way, robots can execute algorithms that, due to computational resource and energy requirements, would be impossible. The proposed system allows developers that do not have robotic programming skills, to treat robotic systems under a software as a service prism.

Published in: Education
  • Be the first to comment

  • Be the first to like this

Vasilis Remmas

  1. 1. ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ Αυτοματοποιημένη δημιουργία εκτελέσιμων και εκτέλεση ρομποτικών υπηρεσιών στο Νέφος Υπό την επίβλεψη του Επίκουρου Καθηγητή κ. Συμεωνίδη Ανδρέα και του Δρ. Εμμανουήλ Τσαρδούλια Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  2. 2. Το πρόβλημα  Μπορούν τα ρομπότ να εκτελούν αλγορίθμους που απαιτούν μεγάλη υπολογιστική ισχύ;  Τι κόστος έχει αυτό;  Θα μπορούν να εκτελέσουν παρόμοιους αλγορίθμους στο μέλλον, όσο τα δεδομένα θα συνεχίζουν να αυξάνονται; Κατηγορίες ρομπότ:  Φθηνά ρομπότ  Περιορισμένη υπολογιστική ισχύς και προκαθορισμένες λειτουργίες  Απευθύνονται στο ευρύτερο κοινό  Ακριβά ρομπότ  Μεγαλύτερη υπολογιστική ισχύ από τα φθηνά  Απευθύνονται κυρίως σε βιομηχανίες Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  3. 3. Το πρόβλημα – Αλγόριθμοι Κάποια είδη αλγορίθμων:  Αναγνώριση προσώπου, φωνής και αντικειμένων  Αναγνώριση τοποθεσίας και χαρτογράφηση  Σχεδιασμού μονοπατιού Προβλήματα εκτέλεσης τους στα ρομπότ:  Μεγάλη ανάγκη σε υπολογιστική ισχύ  Κατανάλωση ενέργειας Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  4. 4. Το πρόβλημα – Αλγόριθμοι Κάποια είδη αλγορίθμων:  Αναγνώριση προσώπου, φωνής και αντικειμένων  Αναγνώριση τοποθεσίας και χαρτογράφηση  Σχεδιασμού μονοπατιού Προβλήματα εκτέλεσης τους στα ρομπότ:  Μεγάλη ανάγκη σε υπολογιστική ισχύ  Κατανάλωση ενέργειας Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 Πιθανή λύση
  5. 5. Το πρόβλημα – Αλγόριθμοι Κάποια είδη αλγορίθμων:  Αναγνώριση προσώπου, φωνής και αντικειμένων  Αναγνώριση τοποθεσίας και χαρτογράφηση  Σχεδιασμού μονοπατιού Προβλήματα εκτέλεσης τους στα ρομπότ:  Μεγάλη ανάγκη σε υπολογιστική ισχύ  Κατανάλωση ενέργειας Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 Πιθανή λύση
  6. 6. Το πρόβλημα – Αλγόριθμοι Κάποια είδη αλγορίθμων:  Αναγνώριση προσώπου, φωνής και αντικειμένων  Αναγνώριση τοποθεσίας και χαρτογράφηση  Σχεδιασμού μονοπατιού Προβλήματα εκτέλεσης τους στα ρομπότ:  Μεγάλη ανάγκη σε υπολογιστική ισχύ  Κατανάλωση ενέργειας Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 Πιθανή λύση  «άφθονη» υπολογιστική ισχύ  γρήγορες ταχύτητες  είναι σχετικά φθηνό  ο καθένας μπορεί να έχει πρόσβαση σε αυτό
  7. 7. Στόχος της διπλωματικής Στόχος της διπλωματικής εργασίας είναι η δημιουργία ενός συστήματος στο οποίο ο καθένας θα μπορεί να καταθέσει και να εκτελέσει απομακρυσμένες ρομποτικές υπηρεσίες, υλοποιώντας αλγορίθμους οι οποίοι αυτή την στιγμή εκτελούνται σε ρομπότ, παρέχοντας μεγαλύτερη ταχύτητα και άρση περιορισμών σε υπολογιστική ισχύ και ενέργεια. Περαιτέρω στόχοι:  Εξοικονόμηση ενέργειας του ρομπότ  Επίτευξη μεγαλύτερης ταχύτητας εκτέλεσης αλγορίθμων (υπό συνθήκη)  Εύκολος διαμοιρασμός ρομποτικών υπηρεσιών στους κατόχους ρομποτικών συσκευών  Χρήση ρομποτικών υπηρεσιών από ανθρώπους που δεν έχουν τεχνικές γνώσεις  Δυνατότητα δημιουργίας ρομποτικών εφαρμογών από προγραμματιστές χρησιμοποιώντας υπηρεσίες οι οποίες εκτελούνται στο Νέφος Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  8. 8. Προτεινόμενο σύστημα SRCA – Scalable Robotic Cloud Agents Το SRCA χρησιμοποιεί:  Το Νέφος για να εκτελεί τις ρομποτικές υπηρεσίες των χρηστών  Εργαλεία τα οποία δίνουν την δυνατότητα:  Πλήρης διαχείρισης του συστήματος  Εμφάνισης προβλημάτων κατά την δημιουργία εκτελέσιμων (build) ή την εκτέλεση ενός πακέτου στον χρήστη (deploy)  Απομόνωσης του κάθε πακέτου υπηρεσιών από τα άλλα πακέτα  Κλιμάκωσης (scaling) ενός πακέτου υπηρεσιών με εύκολο τρόπο  Καταγραφής όλων των ενεργειών που έγιναν στο σύστημα Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  9. 9. SRCA – Κύρια εργαλεία Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  10. 10. SRCA – Αρχιτεκτονική Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  11. 11. SRCA – Διαδικασία (1/4) Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  12. 12. SRCA – Διαδικασία (2/4) Η μορφή του requirements.yaml είναι η παρακάτω: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 name: test version: v1 environment: ROS files: - file_name: client.py functions: - name: add_two_ints arguments: params: a: integer b: integer http-method: post returns: string - file_name: testfiles.py functions: - name: sendmyfile arguments: files: fa: params: a: integer http-method: post returns: file packages: apt-get: net-tools vim pip: numpy npm: underscore command: roslaunch test launch.launch
  13. 13. SRCA – Διαδικασία (2/4) Η μορφή του requirements.yaml είναι η παρακάτω: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 name: test version: v1 environment: ROS files: - file_name: client.py functions: - name: add_two_ints arguments: params: a: integer b: integer http-method: post returns: string - file_name: testfiles.py functions: - name: sendmyfile arguments: files: fa: params: a: integer http-method: post returns: file packages: apt-get: net-tools vim pip: numpy npm: underscore command: roslaunch test launch.launch
  14. 14. SRCA – Διαδικασία (2/4) Η μορφή του requirements.yaml είναι η παρακάτω: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 name: test version: v1 environment: ROS files: - file_name: client.py functions: - name: add_two_ints arguments: params: a: integer b: integer http-method: post returns: string - file_name: testfiles.py functions: - name: sendmyfile arguments: files: fa: params: a: integer http-method: post returns: file packages: apt-get: net-tools vim pip: numpy npm: underscore command: roslaunch test launch.launch
  15. 15. SRCA – Διαδικασία (2/4) Η μορφή του requirements.yaml είναι η παρακάτω: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 name: test version: v1 environment: ROS files: - file_name: client.py functions: - name: add_two_ints arguments: params: a: integer b: integer http-method: post returns: string - file_name: testfiles.py functions: - name: sendmyfile arguments: files: fa: params: a: integer http-method: post returns: file packages: apt-get: net-tools vim pip: numpy npm: underscore command: roslaunch test launch.launch
  16. 16. SRCA – Διαδικασία (2/4) Η μορφή του requirements.yaml είναι η παρακάτω: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 name: test version: v1 environment: ROS files: - file_name: client.py functions: - name: add_two_ints arguments: params: a: integer b: integer http-method: post returns: string - file_name: testfiles.py functions: - name: sendmyfile arguments: files: fa: params: a: integer http-method: post returns: file packages: apt-get: net-tools vim pip: numpy npm: underscore command: roslaunch test launch.launch
  17. 17. SRCA – Διαδικασία (2/4) Η μορφή του requirements.yaml είναι η παρακάτω: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 name: test version: v1 environment: ROS files: - file_name: client.py functions: - name: add_two_ints arguments: params: a: integer b: integer http-method: post returns: string - file_name: testfiles.py functions: - name: sendmyfile arguments: files: fa: params: a: integer http-method: post returns: file packages: apt-get: net-tools vim pip: numpy npm: underscore command: roslaunch test launch.launch
  18. 18. SRCA – Διαδικασία (2/4) Η μορφή του requirements.yaml είναι η παρακάτω: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 name: test version: v1 environment: ROS files: - file_name: client.py functions: - name: add_two_ints arguments: params: a: integer b: integer http-method: post returns: string - file_name: testfiles.py functions: - name: sendmyfile arguments: files: fa: params: a: integer http-method: post returns: file packages: apt-get: net-tools vim pip: numpy npm: underscore command: roslaunch test launch.launch
  19. 19. SRCA – Διαδικασία (2/4) Η μορφή του requirements.yaml είναι η παρακάτω: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 name: test version: v1 environment: ROS files: - file_name: client.py functions: - name: add_two_ints arguments: params: a: integer b: integer http-method: post returns: string - file_name: testfiles.py functions: - name: sendmyfile arguments: files: fa: params: a: integer http-method: post returns: file packages: apt-get: net-tools vim pip: numpy npm: underscore command: roslaunch test launch.launch
  20. 20. SRCA – Διαδικασία (2/4) Η μορφή του requirements.yaml είναι η παρακάτω: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 name: test version: v1 environment: ROS files: - file_name: client.py functions: - name: add_two_ints arguments: params: a: integer b: integer http-method: post returns: string - file_name: testfiles.py functions: - name: sendmyfile arguments: files: fa: params: a: integer http-method: post returns: file packages: apt-get: net-tools vim pip: numpy npm: underscore command: roslaunch test launch.launch
  21. 21. SRCA – Διαδικασία (2/4) Η μορφή του requirements.yaml είναι η παρακάτω: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 name: test version: v1 environment: ROS files: - file_name: client.py functions: - name: add_two_ints arguments: params: a: integer b: integer http-method: post returns: string - file_name: testfiles.py functions: - name: sendmyfile arguments: files: fa: params: a: integer http-method: post returns: file packages: apt-get: net-tools vim pip: numpy npm: underscore command: roslaunch test launch.launch
  22. 22. SRCA – Διαδικασία (2/4) Η μορφή του requirements.yaml είναι η παρακάτω: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 name: test version: v1 environment: ROS files: - file_name: client.py functions: - name: add_two_ints arguments: params: a: integer b: integer http-method: post returns: string - file_name: testfiles.py functions: - name: sendmyfile arguments: files: fa: params: a: integer http-method: post returns: file packages: apt-get: net-tools vim pip: numpy npm: underscore command: roslaunch test launch.launch
  23. 23. SRCA – Διαδικασία (3/4) Η μορφή των αρχείων Python είναι η παρακάτω: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 #!/usr/bin/env python import sys import rospy from test.srv import * def add_two_ints(x, y): rospy.wait_for_service('add_two_ints_srv') try: add_two_ints_srv = rospy.ServiceProxy('add_two_ints_srv', AddTwoInts) resp1 = add_two_ints_srv(x, y) return resp1.sum except rospy.ServiceException, e: print "Service call failed: %s"%e
  24. 24. SRCA – Διαδικασία (3/4) Η μορφή των αρχείων Python είναι η παρακάτω: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 #!/usr/bin/env python import sys import rospy from test.srv import * def add_two_ints(x, y): rospy.wait_for_service('add_two_ints_srv') try: add_two_ints_srv = rospy.ServiceProxy('add_two_ints_srv', AddTwoInts) resp1 = add_two_ints_srv(x, y) return resp1.sum except rospy.ServiceException, e: print "Service call failed: %s"%e
  25. 25. SRCA – Διαδικασία (4/4) Αφού ο χρήστης αποστείλει το συμπιεσμένο αρχείο, ακολουθείται η παρακάτω διαδικασία: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  26. 26. SRCA – Διαδικασία (4/4) Αφού ο χρήστης αποστείλει το συμπιεσμένο αρχείο, ακολουθείται η παρακάτω διαδικασία: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017  OpenAPI specifications  Δημιουργία ειδικής συνάρτησης εξαίρεσης (Exception)
  27. 27. SRCA – Διαδικασία (4/4) Αφού ο χρήστης αποστείλει το συμπιεσμένο αρχείο, ακολουθείται η παρακάτω διαδικασία: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017  OpenAPI specifications  Χτίσιμο των πακέτων σε Kubernetes Pods  Δημιουργία ειδικής συνάρτησης εξαίρεσης (Exception)
  28. 28. SRCA – Διαδικασία (4/4) Αφού ο χρήστης αποστείλει το συμπιεσμένο αρχείο, ακολουθείται η παρακάτω διαδικασία: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017  OpenAPI specifications  Χτίσιμο των πακέτων σε Kubernetes Pods  Δημιουργία ειδικής συνάρτησης εξαίρεσης (Exception)  Δημιουργία συστήματος επαναφοράς των υπηρεσιών σε περίπτωση βλάβης του SRCA
  29. 29. SRCA – Γραφικό περιβάλλον (1/5) Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  30. 30. SRCA – Γραφικό περιβάλλον (2/5) Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  31. 31. SRCA – Γραφικό περιβάλλον (3/5) Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  32. 32. SRCA – Γραφικό περιβάλλον (3/5) Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  33. 33. SRCA – Γραφικό περιβάλλον (3/5) Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  34. 34. SRCA – Γραφικό περιβάλλον (3/5) Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  35. 35. SRCA – Γραφικό περιβάλλον (3/5) Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  36. 36. SRCA – Γραφικό περιβάλλον (4/5) Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  37. 37. SRCA – Γραφικό περιβάλλον (4/5) Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  38. 38. SRCA – Γραφικό περιβάλλον (5/5) Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  39. 39. Πειραματικά αποτελέσματα (1/2)  Χρησιμοποιήθηκαν 3 εικονικοί υπολογιστές με τις παρακάτω προδιαγραφές:  4GB RAM  40GB HDD  1 CPU Core  Για 500 παράλληλα αιτήματα προς το SRCA προκύπτουν οι παρακάτω χρόνοι σε δευτερόλεπτα: Βασίλης Ρέμμας 8330 - Οκτώβριος 2017 2.88665 2.65352 2.02840 1.72741 2.59609 1.95146 1.43738 1.58541 0.80597
  40. 40. Πειραματικά αποτελέσματα (2/2) Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  41. 41. Συμπέρασμα  Το σύστημα δημιουργήθηκε και είναι σε θέση να λύσει το πρόβλημα που περιγράφηκε  Το σύστημα εξυπηρετεί σε σχετικά μικρό χρόνο πολλαπλά αιτήματα  Η χρήση των Container διευκολύνει την κλιμάκωση κάθε πακέτου  Το Kubernetes:  αποτελεί ένα πολύ δυνατό εργαλείο για την διαχείριση των Container,  καθιστά εύκολη την επέκταση της συστοιχίας υπολογιστών,  μπορεί να κλιμακώσει σε πολύ μικρό χρόνο ένα πακέτο Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  42. 42. Επέκταση  Δυνατότητα χρήσης ροής δεδομένων (Streaming)  Αξιοποίηση των υπαρχόντων Docker εικόνων  Αποσύνδεση του γραφικού περιβάλλοντος από το κύριο πρόγραμμα  Δημιουργία ενός εργαλείου διαχείρισης της βάσης δεδομένων  Δημιουργία δικτύων από Kubernetes Pods που θα διέπουν τις υπηρεσίες ενός ρομποτικού πακέτου Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  43. 43. Ευχαριστίες Θα ήθελα να ευχαριστήσω τον κ. Συμεωνίδη Ανδρέα καθώς και τους Εμμανουήλ Τσαρδούλια και Κωνσταντίνο Παναγιώτου για την καθοδήγηση, τις διορθώσεις και τις ιδέες τους. Ευχαριστώ για την προσοχή σας… Βασίλης Ρέμμας 8330 - Οκτώβριος 2017
  44. 44. Ερωτήσεις; Βασίλης Ρέμμας 8330 - Οκτώβριος 2017

×