Programming and testing support for drone based applications
Authors: Κουτσουμπέλιας Εμμανουήλ 
Published: September 2021

Οι πρόσφατες εξελίξεις στους τομείς των ενσωματωμένων συστημάτων, των ασύρματων επικοινωνιών και των συστημάτων αυτομάτου ελέγχου έχουν οδηγήσει στην ραγδαία ανάπτυξη των αυτόνομων μη επανδρωμένων οχημάτων (UVs). Σήμερα τα UVs είναι ευρέως διαθέσιμα στην αγορά σε διάφορες εκδόσεις και τύπους ενώ διαθέτουν δυνατότητες αυτόνομης πλοήγησης στο έδαφος, στον αέρα αλλά και στη θάλασσα. Επίσης, αυτά τα οχήματα μπορεί να εξοπλιστούν με εξειδικευμένους αισθητήρες, ενεργοποιητές και μηχανισμούς αλληλεπίδρασης με το περιβάλλον, ανάλογα με τον σκοπό της εκάστοτε αποστολής/εφαρμογής.Παρά τον μεγάλο αριθμό και την τεχνολογική ποικιλία σε διαθέσιμα UVs οι εφαρμογές που ωφελούνται από αυτά, όπως για παράδειγμα εφαρμογές από τον τομέα της γεωργίας ακριβείας και της επιτήρησης δασικών περιοχών, κάνουν χρήση συνήθως μεμονωμένων οχημάτων ενός συγκεκριμένου τύπου. Οι περισσότερες από αυτές τις εφαρμογές θα ωφελούνταν πολλαπλάσια αν μπορούσαν να χρησιμοποιηθούν πολλά και ετερογενή UVs. Για παράδειγμα, αυτό θα επέτρεπε να καλυφθούν μεγαλύτερες εκτάσεις και περισσότερα σημεία ενδιαφέροντος σε μικρότερο χρονικό διάστημα. Επίσης η συνδυασμένη χρήση αυτόνομων οχημάτων με συμπληρωματικές δυνατότητες κίνησης, αίσθησης και αλληλεπίδρασης με το περιβάλλον θα δημιουργούσε νέες δυνατότητες στην επιτήρηση αλλά και τον έλεγχο φυσικών διαδικασιών.Όμως, η χρήση πολλών UVs ταυτόχρονα θέτει νέες προκλήσεις. Ένα καίριο ζήτημα είναι το πώς μπορεί να υποστηριχθεί με όσο γίνεται πιο απλό και ευέλικτο τρόπο ο συντονισμένος έλεγχος μιας ολόκληρης ομάδας από διαφορετικά UVs, μέσα από ένα πρόγραμμα-αποστολή. Ο προγραμματισμός UVs, ιδίως για εφαρμογές που θέλουν να εκμεταλλευτούν πολλά UVs ταυτόχρονα, βρίσκεται ακόμα στα πρώτα στάδια της εξέλιξης.Η παρούσα διδακτορική διατριβή εστιάζει στην παροχή προγραμματιστικής υποστήριξης για την ανάπτυξη εφαρμογών-αποστολών με πολλαπλά και ετερογενή UVs απαλλάσσοντας τον προγραμματιστή από την διαχείριση της επικοινωνίας, της ετερογένειας, της δυναμικής αλλά και της διαχείρισης βλαβών.Συγκεκριμένα εισάγουμε ένα προγραμματιστικό μοντέλο που παρέχει κατάλληλες προγραμματιστικές αφαιρέσεις αλλά και μηχανισμούς συντονισμού που αφορούν την ετερογένεια και τη δυναμική των οχημάτων, επιτρέποντας στα προγράμματα των αποστολών να χρησιμοποιούν πολλαπλά UVs με ευέλικτο τρόπο. Υιοθετούμε μια κεντρικοποιημένη υπηρεσιοστρεφή προσέγγιση όπου μια διακεκριμένη οντότητα που ονομάζεται ελεγκτής αποστολής εκτελεί τη λογική του προγράμματος αποστολής, ανακτώντας πληροφορίες από τα UVs και εκτελώντας εντολές ελέγχου υψηλού επιπέδου σε αυτά. Επίσης, το μοντέλο μας παρέχει ενοποιημένες προγραμματιστικές αφαιρέσεις για τον έλεγχο μεμονωμένων UV καθώς και ομάδες από αυτά με ενιαίο τρόπο. Το μοντέλο μαζί με το υποστηρικτικό περιβάλλον εκτέλεσης διαθέτει επίσης ενσωματωμένο μηχανισμό ανοχής βλαβών, ο οποίος συνδυάζει τεχνικές καταγραφής κατάστασης στον ελεγκτή και καταγραφής εντολών στα UVs έτσι ώστε να επιτρέπεται η απρόσκοπτη αποκατάσταση του προγράμματος αποστολής μετά από βλάβες στον ελεγκτή αποστολής.Για την υποστήριξη του παραπάνω προγραμματιστικού μοντέλου σχεδιάστηκε και αναπτύχθηκε ένα αξιόπιστο πρωτόκολλο επικοινωνίας που υλοποιεί αποτελεσματικά το μοντέλο επικοινωνίας αίτησης-απάντησης με συντονιστή (coordinated request-reply) για μια ομάδα κόμβων. Το πρωτόκολλο είναι σχεδιασμένο να εκμεταλλεύεται τις ιδιότητες του ασύρματου μέσου αποφεύγοντας τις συγκρούσεις στα εκπεμπόμενα πακέτα καθώς επίσης έχει ενσωματωμένη λογική για τη διαχείριση βλαβών αλλά και της ομάδας των κόμβων. Το πρωτόκολλο χρησιμοποιείται σαν πρωτόκολλο μεταφοράς των εντολών που προέρχονται από τον ελεγκτή προς τους κόμβους και των δεδομένων από τους κόμβους προς τον ελεγκτή μέσω διαδοχικών αιτήσεων ανάκτησης δεδομένων (polling) με συγκεκριμένο ρυθμό αποστολής. Επιπρόσθετα, έχουμε διερευνήσει την δυναμική προσαρμογή αποστολής των αιτήσεων ανάκτησης δεδομένων με βάση την αυτοματοποιημένη εκτίμηση του ρυθμού αποστολής στους κόμβους. Τέλος, σχεδιάστηκε και αναπτύχθηκε ένα περιβάλλον προσομοίωσης (simulator) για την διεξαγωγή εικονικών αποστολών με UVs που προσομοιώνονται σε λογισμικό. Βασικό πλεονέκτημα σε σχέση με δοκιμές με πραγματικά οχήματα, είναι η δυνατότητα διεξαγωγής ενός μεγάλου εύρους απόλυτα ελεγχόμενων αποστολών και σεναρίων δυσλειτουργίας με πρακτικά μηδενικό κόστος και χωρίς κανένα θέμα ασφάλειας. Το περιβάλλον προσομοίωσης συνδυάζει υπάρχουσες πλατφόρμες προσομοίωσης. Τα εικονικά UVs είναι υλοποιημένα σε εικονικές μηχανές (Virtual Machines) που εκτελούν την πλήρη στοίβα λογισμικού ενός UV συμπεριλαμβανομένου του λογισμικού αυτόματου πιλότου το οποίο είναι διασυνδεδεμένο με το λογισμικό εξομοίωσης της κίνησης του UV. Αυτή τη στιγμή το σύστημα υποστηρίζει αποστολές με σμήνη/ομάδες από πολλά εικονικά πολυκόπτερα που είναι εξοπλισμένα με μία εικονική κάμερα. Τα εικονικά πολυκόπτερα μπορούν να επικοινωνούν μεταξύ τους μέσω ενός εξομοιωμένου ασύρματου δικτύου WiFi