Πανεπιστημιο Πατρων Τμημα Ηλεκτρολογων Μηχανικων και Τεχνολογιας Υπολογιστων Τομέας Τηλεπικοινωνιών και Τεχνολογίας Πληροφορίας Εργαστήριο Θεωρητικής Ηλεκτροτεχνίας Διπλωματικη Εργασια του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών Αναστάσιου Πετρόπουλου Θέμα Εντοπισμός σχετικής θέσης στον χώρο με χρήση αισθητήρων και τεχνολογία Bluetooth Smart Επιβλέπων Θεόδωρος Αντωνακόπουλος Πάτρα, Ιούλιος 2016
1
ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η Διπλωματική Εργασία με θέμα «Εντοπισμός σχετικής θέσης στον χώρο με χρήση αισθητήρων και τεχνολογία Bluetooth Smart» Του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Πετρόπουλου Αναστάσιου Αριθμός Μητρώου: 7677 Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις 31/05/2016 Ο Επιβλέπων Θεόδωρος Αντωνακόπουλος, Καθηγητής Ο Διευθυντής Τομέα Νικόλαος Φακωτάκης, Καθηγητής 2
3
Αριθμός Διπλωματικής Εργασίας: Θέμα: «Εντοπισμός σχετικής θέσης στον χώρο με χρήση αισθητήρων και τεχνολογία Bluetooth Smart» Φοιτητής: Πετρόπουλος Αναστάσιος Επιβλέπων: Θεόδωρος Αντωνακόπουλος 4
Περίληψη Η εκτίμηση της θέσης ενός ατόμου σε εσωτερικό χώρο είναι αναγκαία για τη δημιουργία έξυπνων χώρων, όπως τελευταίας τεχνολογίας θέατρα, κτίρια, αίθουσες εξετάσεων κλπ. Για τον σκοπό αυτό χρησιμοποιούνται συνήθως αυτόνομα ηλεκτρονικά συστήματα που δεν στηρίζονται στη χρήση δεδομένων πλοήγησης GPS, τα οποία δεν είναι διαθέσιμα σε εσωτερικούς χώρους. Συνήθως χρησιμοποιούνται αδρανειακοί αισθητήρες (inertial sensors) τεχνολογίας MEMS που περιέχουν επιταχυνσιομέτρα, γυροσκόπια κλπ... Στη παρούσα διπλωματική χρησιμοποιώντας τέτοιου τύπου αισθητήρες σε συνδυασμό με Bluetooth Smart υπολογίζεται η θέση του χρήστη και μεταδίδεται σε ένα κεντρικό πληροφοριακό σύστημα. Οι αισθητήρες τεχνολογίας MEMS είναι επιρρεπείς σε θόρυβο, με αποτέλεσμα να υπάρχει μεγάλο σφάλμα στην εύρεση της θέσης, αν δεν χρησιμοποιηθούν κατάλληλοι αλγόριθμοι αφαίρεσης του θορύβου και διόρθωσης των υπολογιστικών αποκλίσεων. Η εκτίμηση της θέσης επιτυγχάνεται προσαρτώντας τους αισθητήρες στο πόδι του χρήστη (πχ. στο παπούτσι του). Ενας αισθητήρας προσαρτάται στο κάθε πόδι του χρήστη, οι οποίοι στέλνουν δεδομένα επιταχυνσιόμετρου και γυροσκοπίου σε έναν κεντρικό υπολογιστή. Για την εκτίμηση της θέσης του χρήστη, ο αλγόριθμος εύρεσης της θέσης βασίζεται στην ψευδο-περιοδικότητα των σημάτων των αισθητήρων που προκύπτει από το βηματισμό του χρήστη. Ο αλγόριθμος αρχικά χρησιμοποιεί μια φάση εκπαίδευσης και κατά την κανονική λειτουργία μια μέθοδο διόρθωσης του σφάλματος ολίσθησης στην κατεύθυνση. Η τελική εκτίμηση της θέσης είναι ο μέσος όρος των δύο θέσεων, που προκύπτουν από τις εκτιμήσεις των θέσεων του κάθε ποδιού. Για την υλοποίηση των παραπάνω διαδικασιών αναπτύχθηκε ένα σύστημα ασύρματης αποστολής των μετρήσεων των αισθητήρων με χρήση της τεχνολογίας Bluetooth Smart. Το εν λόγω σύστημα μεταδίδει τα δεδομένα των αισθητήρων μέσω ασύρματης σύνδεσης Bluetooth σε ένα γραφικό περιβάλλον εφαρμογής Windows 10. Για την εξέταση των επιδόσεων του αλγορίθμου εύρεσης θέσης χρησιμοποιήθηκαν εκτός του υλοποιημένου συστήματος αποστολής δεδομένων από αισθητήρες και αισθητήρες εμπορίου τύπου S HIMMER T M. Αυτοί τοποθετήθηκαν και στα δύο πόδια του χρήστη για την τελική εκτίμηση της θέσης του. Ως μέτρο απόδοσης χρησιμοποιήθηκε η ευκλείδεια απόσταση μεταξύ της εκτιμώμενης τελικής θέσης και της πραγματικής. Τα πειραματικά αποτελέσματα επιβεβαιώνουν την αποδοτικότητα του αλγορίθμου όσον αφορά την εύρεση της θέσης με την απαιτούμενη ακρίβεια και την αναγκαιότητα των μεθόδων διόρθωσης. Τα σφάλματα θέσης είναι μικρότερα του 2.5% σε σχέση με την συνολική απόσταση που καλύφθηκε. Λέξεις κλειδιά:, Bluetooth Smart, Bluetooth Low Energy, Αδρανειακοί αισθητήρες, Επιταχυνσιόμετρο, Γυροσκόπιο, Προσανατολισμός, Συστήματα αναφοράς, Τετραδόνια, Συμπληρωματικό φίλτρο, Ανάλυση βηματισμού, Ανίχνευση φάσεων βηματισμού, Ενημερώσεις μηδενικής 5
Περίληψη ταχύτητας, Εκτίμηση θέσης, Διόρθωση σφάλματος κατεύθυνσης 6
Abstract The estimation of a person s position in a room is essential to further the development of smart buildings such as art theaters, classrooms, examination centres. In this diploma thesis MEMS sensors were used in combination with Bluetooth Smart connectivity to calculate the position of a user. The MEMS technology sensors used (accelerometers and gyroscopes) are prone to noise, resulting in a large position error unless appropriate noise removal algorithms and correction of computational discrepancies are used. The estimation of the position is accomplished by attaching the sensors to the feet of the user (i.e. attached to the shoes). A sensor is attached to each foot of the user. These sensors transmit accelerometer and gyroscope data to a central computer. To estimate the user position, the position tracking algorithm is based on the pseudo-frequency signals that the sensor gives as outputs and depend on the gait of the user. The algorithm uses an initial training phase and a method of correcting the heading drift during the normal operation. The final assessment of the position is the average of the two positions that result from the estimates of each foot. To support the above processes a wireless system of sensors was developed using Bluetooth Smart technology. This system transmits the IMU data over a wireless Bluetooth connection to a Windows 10 Graphical User-interface Application. To evaluate the performance of the algorithm, apart from the aforementioned BLE system, a pair of off-the-self SHIMMER sensors was deployed. The SHIMMER sensors were replaced in both feet of the user and the final assessment of the position was based on the average of the two estimates. The Euclidean distance between the estimated final position and the actual position was used as performance metrics. The experimental results validate the reliability of the algorithm in finding the position with extreme accuracy. The position errors are less than 2.5% relative to the total distance covered. Keywords: Bluetooth Smart, Bluetooth Low Energy, MEMS, IMU, Accelerometer, Gyroscope, Wearable, Orientation, Frames of reference, Quaternion, Explicit Complementary Filter, Gait analysis, Gait-phase detection, Zero-Velocity Update, ZUPT, Position estimation, Heading drift correction 1
Ευχαριστίες Θα ήθελα να ευχαριστήσω όλους όσους συνέβαλαν με οποιονδήποτε τρόπο στην εκπόνηση αυτής της διπλωματικής εργασίας. Ευχαριστώ θερμά τον επιβλέποντα καθηγητή μου κ. Θεόδωρο Αντωνακόπουλο για τη συνεχή υποστήριξη και βοήθεια, για τις υποδείξεις του καθώς και την άριστη συνεργασία μας. Στη συνέχεια ευχαριστώ το φίλο και συνάδελφο Δ. Σικερίδη με τον οποίο συνεργαστήκαμε στενά καθόλη τη πορεία των διπλωματικών μας. Επίσης, θα ήθελα να ευχαριστήσω τους συναδέλφους και φίλους μου για την υποστήριξη και τη χαρά της συνεργασίας μας στα χρόνια των σπουδών μας. Τέλος, η εργασία αυτή αφιερώνεται στους γονείς μου και στην αδερφή μου τους οποίους ευχαριστώ διότι υπήρξαν πάντα στήριγμα για μένα και στους οποίους οφείλω όλη την διαδρομή των σπουδών μου μέχρι σήμερα. Πάτρα, Ιούλιος 2016 Αναστάσιος Πετρόπουλος 3
4 Ευχαριστίες
Περιεχόμενα Περίληψη 5 Abstract 1 Ευχαριστίες 3 1 Εισαγωγή 10 1.1 Αντικείμενο της διπλωματικής.......................... 11 1.2 Δομή του Συγγράμματος.............................. 12 2 Τεχνολογία Bluetooth Low Energy 14 2.1 Το φυσικό επίπεδο (Physical Layer)........................ 15 2.2 Το επίπεδο ζεύξης(link Layer).......................... 17 2.3 Host Controller interface (HCI)........................... 18 2.4 Logical Link Control and Adaptation Protocol (L2CAP)............. 19 2.5 (Security Manager Protocol (SMP))........................ 19 2.6 Attribute Protocol (ATT).............................. 19 2.7 Generic Attribute Profile (GATT).......................... 20 2.8 Generic Access Profile (GAP)........................... 21 3 Εργαλεία ανάπτυξης συστήματος 23 3.1 DA14583 Development Board........................... 23 3.1.1 Επεξεργαστής............................... 23 3.1.2 Μνήμες................................... 24 3.1.3 Διεπαφές.................................. 25 3.1.4 Power Modes................................ 26 3.2 IMU BMX055................................... 26 3.3 SHIMMER..................................... 27 3.4 Χαρακτηριστικά αισθητήρων........................... 29 4 Σύστημα μετάδοσης δεδομένων 30 4.1 Hardware Setup................................... 31 4.2 Inter-Integrated Circuits (I2C)........................... 32 4.3 IMU Sensor Profile................................. 33 4.4 Εφαρμογή διαχείρισης προφίλ.......................... 35 5
ΠΕΡΙΕΧΟΜΕΝΑ 5 Σύστημα λήψης δεδομένων 37 5.1 Βασικά χαρακτηριστικά εφαρμογής Windows 10................ 37 5.2 Γραφικό περιβάλλον εφαρμογής......................... 37 5.3 Δομή εφαρμογής.................................. 39 6 Επεξεργασία μετρήσεων & εκτίμηση προσανατολισμού 45 6.1 Μοντέλο θορύβου αισθητήρων.......................... 45 6.1.1 Επιταχυνσιόμετρο............................. 46 6.1.2 Γυροσκόπιο................................ 47 6.2 Διαδικασία βαθμονόμησης (Calibration)..................... 48 6.3 Συστήματα αναφοράς (Frames of reference)................... 49 6.4 Τετραδόνια (Quaternions)............................. 49 6.5 Γενική μορφή συμπληρωματικού φίλτρου.................... 51 6.6 Explicit Complementary filter........................... 52 7 Εκτίμηση θέσης και ταχύτητας ποδιού 55 7.1 Ανάλυση βηματισμού............................... 55 7.2 Ενημερώσεις μηδενικής ταχύτητας (ZUPT)................... 56 7.3 Αλγόριθμος ανίχνευσης φάσεων βηματισμού (Gait-phase Detection algorithm) 56 7.4 Εκτίμηση θέσης και ταχύτητας.......................... 59 7.5 Τελικό διάγραμμα αλγορίθμου εύρεσης θέσης.................. 64 8 Μέθοδος διόρθωσης του σφάλματος κατεύθυνσης 65 8.1 Εκπαίδευση συστήματος.............................. 66 8.2 Διόρθωση σφάλματος ολίσθησης στην κατεύθυνση............... 67 8.2.1 Τύπος κίνησης ενός ατόμου........................ 67 8.2.2 Κυρίαρχες κατευθύνσεις και εκτίμηση γωνίας διόρθωσης....... 68 8.2.3 Διόρθωση τροχιάς............................. 69 9 Πειραματική διαδικασία και αποτελέσματα 70 9.1 Τύποι σφαλμάτων................................. 70 9.2 Πειραματικά αποτελέσματα αισθητήρων Shimmer............... 71 9.2.1 Κίνηση σε ευθεία............................. 71 9.2.2 Κίνηση σε καμπύλη τροχιά........................ 73 9.3 Πειραματικά αποτελέσματα αισθητήρων BMX055............... 77 9.3.1 Κίνηση σε ευθεία............................. 77 10 Επίλογος 78 10.1 Συμπεράσματα................................... 78 10.2 Μελλοντικές επεκτάσεις.............................. 79 Βιβλιογραφία 82 6
Κατάλογος Σχημάτων 1.1 Κίνηση χρήστη σε αίθουσα............................ 11 2.1 Bluetooth Smart protocol stack.......................... 15 2.2 Κανάλια συχνοτήτων BLE............................. 16 2.3 Μηχανή καταστάσεων του επιπέδου ζεύξης................... 17 2.4 Δομή πακέτου επιπέδου ζεύξης.......................... 18 2.5 Δομή πακέτου L2CAP............................... 19 2.6 Ιεραρχία του GATT................................. 21 3.1 DA14583 Development Board........................... 24 3.2 DA14583 Block Diagram............................. 25 3.3 BMX055 Shuttle Board.............................. 26 3.4 BMX055 Block Diagram............................. 27 3.5 Shimmer Platform................................. 28 3.6 Shimmer System Diagram............................. 28 4.1 Σύστημα μετάδοσης δεδομένων.......................... 30 4.2 Διασύνδεση BMX055 με DA14583........................ 31 4.3 Αισθητήρες BMX055 & DA14583 και σύνδεση τους στο παπούτσι....... 31 4.4 I2C.......................................... 32 4.5 Πακέτο δεδομένων................................. 34 4.6 BMX service overview............................... 34 4.7 Διάγραμμα ροής μηνυμάτων του BMX Profile.................. 35 5.1 Windows Bluetooth pairing............................. 38 5.2 Γραφικό περιβάλλον εφαρμογής......................... 39 6.1 Περιστροφή του συστήματος αναφοράς b ως προς το σύστημα αναφοράς a με χρήση τετραδονίων............................... 51 6.2 Block διάγραμμα συμπληρωματικού φίλτρου.................. 52 6.3 Block διάγραμμα του φίλτρου εκτίμησης προσανατολισμού.......... 52 7.1 Οι φάσεις βηματισμού του ανθρώπου....................... 56 7.2 Block διάγραμμα του αλγόριθμου των φάσεων ανίχνευσης βηματισμού.... 56 7.3 Επιταχύνσεις του ποδιού.............................. 57 7.4 Διακύμανση της επιτάχυνσης και αποτελέσματα του αλγορίθμου ανίχνευσης των φάσεων βηματισμού.............................. 59 7
ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ 7.5 Αλγόριθμος εκτίμησης ταχύτητας και θέσης του ποδιού............ 59 7.6 Γραφική αναπαράσταση ταχύτητας και ταχύτητας με ZUPT.......... 61 7.7 Γραφική αναπαράσταση ταχύτητας με ZUPT και ταχύτητας με ZUPT και χρήση ανωπερατού φίλτρου............................ 62 7.8 Γραφική αναπαράσταση διορθωμένης θέσης και μη.............. 63 7.9 Block διάγραμμα αλγόριθμου εύρεσης θέσης.................. 64 8.1 Οι γωνίες του πέλματος των ποδιών σε σχέση με τον διαμήκη άξονα του ποδιού. 66 8.2 Θέσεις των 6 προηγούμενων βημάτων και του τωρινού............. 67 8.3 Διάγραμμα ροής της μεθόδου διόρθωσης του σφάλματος κατεύθυνσης.... 69 9.1 Σφάλματα θέσης κίνησης σε ευθεία....................... 72 9.2 Καμπύλη τροχιά απόστασης D = 53 [m].................... 74 9.3 Καμπύλη τροχιά απόστασης D = 39 [m].................... 75 9.4 Καμπύλη τροχιά απόστασης D = 25 [m].................... 76 8
Κατάλογος Πινάκων 3.1 Χαρακτηριστικά αισθητήρων.......................... 29 9.1 Εκτιμώμενα σφάλματα κίνησης σε ευθεία................... 71 9.2 Εκτιμώμενα σφάλματα κίνησης σε καμπύλη τροχιά.............. 73 9.3 Εκτιμώμενα σφάλματα κίνησης σε ευθεία................... 77 9
Κεφάλαιο 1 Εισαγωγή Η πρόοδος στις τεχνολογίες αισθητήρων και ασύρματων επικοινωνιών έχει επιτρέψει την ανάπτυξη και ταχεία εξέλιξη συστημάτων που προσαρτώνται σε διάφορα σημεία του ανθρώπινου σώματος (wearable) με σκοπό να καταγράψουν και να επεξεργαστούν τις ανθρώπινες κινήσεις. Μια συνήθης τακτική είναι η χρήση αδρανειακών αισθητήρων (inertial sensors), οι οποίοι είναι γνωστοί ως Inertial Measurement Unit (IMU) και έχουν το πλεονέκτημα ότι δεν βασίζονται σε εξωτερικές υποδομές. Οι αισθητήρες αυτοί συνήθως εμπεριέχουν τρία επιταχυνσιόμετρα και τρία γυροσκόπια και είναι μικροί σε μέγεθος, έχουν χαμηλή κατανάλωση και χαμηλό κόστος λόγω των πλεονεκτημάτων της τεχνολογίας MEMS (Micro-Electro-Mechanical Sensors). Οι εν λόγω αισθητήρες μπορούν να χρησιμοποιηθούν σε μεγάλο πλήθος εφαρμογών. Στη παρούσα διπλωματική σκοπός είναι η εκτίμηση της θέσης ενός χρήστη (π.χ ενός φοιτητή) σε ένα μεγάλο εσωτερικό χώρο (π.χ αίθουσα εξετάσεων) μέσα σε κάποιες προκαθορισμένες μικρές περιοχές, όπως φαίνεται στο σχήμα 1.1. Σε ένα σενάριο όπου ο χρήστης έχει δύο μονάδες αδρανειακών αισθητήρων (Inertial Measurements Units - IMUs) προσαρτημένους στα πόδια του (παπούτσια), ο στόχος είναι κάθε χρήστης να τοποθετηθεί σε μια προκαθορισμένη τοποθεσία (π.χ γραφείο εξετάσεων). Ετσι, η διπλωματική αυτή προτείνει έναν αλγόριθμο εύρεσης της θέσης ενός χρήστη, που βασίζεται στην κίνηση του ποδιού. 10
1.1 Αντικείμενο της διπλωματικής Σχήμα 1.1: Κίνηση χρήστη σε αίθουσα. 1.1 Αντικείμενο της διπλωματικής Οι αδρανειακοί αισθητήρες μπορούν να χρησιμοποιηθούν για την εύρεση της θέσης ενός χρήστη, αλλά η απόδοση τους είναι σχετικά χαμηλή. Για παράδειγμα, μέσα σε 1 λεπτό κανονικής λειτουργίας, το σφάλμα στη θέση για ένα σύστημα αισθητήρων υψηλού κόστους είναι μόνο 3 μέτρα, αλλά για ένα σύστημα χαμηλού κόστους υπάρχει σφάλμα 102 μέτρα [1]. Ετσι, για την χρήση τους σε εφαρμογές εύρεσης θέσης είναι αναγκαία η συχνή ενημέρωση της εφαρμογής με μετρήσεις που αποσκοπούν στη διόρθωση του σφάλματος των αδρανειακών αισθητήρων χαμηλού κόστους. Μια ιδέα, η οποία αποσκοπεί στη χρήση αισθητήρων MEMS τεχνολογίας για την εύρεση της θέσης ενός χρήστη είναι η προσάρτηση των αισθητήρων στο πόδι του χρήστη (π.χ στο παπούτσι του). Τέτοια αυτόνομα συστήματα (infrastructure free) που έχουν υλοποιηθεί με διάφορες παραλλαγές για την εκτίμηση της θέσης παρουσιάζουν ενθαρρυντικά αποτελέσματα [2], [3], [4], [5], [6], [7]. Η προσάρτηση των αισθητήρων στα πόδια του χρήστη έχει ως αποτέλεσμα ο αλγόριθμος εύρεσης της θέσης να βασίζεται στην ψευδό-περιοδικότητα των σημάτων των αισθητήρων που προκύπτει από το βηματισμό του χρήστη. Η σχεδόν περιοδική φύση του βηματισμού του ανθρώπου εμπεριέχει μικρές χρονικές περιόδους στις οποίες το πόδι έχει μηδενική ταχύτητα. Αυτό συμβαίνει όταν βρίσκεται σε επαφή με το έδαφος. Συνεπώς, εάν η μετρούμενη ταχύτητα από τους αισθητήρες είναι μη-μηδενική εκείνη τη περίοδο, αυτή θεωρείται ως σφάλμα και μπορεί να διορθωθεί. Οι περιοδικές αυτές διορθώσεις στη ταχύτητα μπορούν να ελαχιστοποιήσουν το σφάλμα στην εύρεση της θέσης [8], [9]. Για την εφαρμογή της διόρθωσης του σφάλματος ολίσθησης της ταχύτητας - δηλαδή τις ενημερώσεις μηδενικής ταχύτητας - στις σωστές περιόδους είναι αναγκαία και η υλοποίηση ενός αλγόριθμου εύρεσης των φάσεων του βηματισμού. Ωστόσο δύο ακόμα προβλήματα παραμένουν με τη χρήση αδρανειακών αισθητήρων για 11
1.2 Δομή του Συγγράμματος την εύρεση της θέσης ενός χρήστη. Πρώτον, πρέπει να οριστούν η αρχική θέση καθώς και ο προσανατολισμός του ποδιού του χρήστη. Η αρχική θέση ενός χρήστη μπορεί να είναι το σημείο αναφοράς, καθώς διέρχεται σε μια εσωτερική αίθουσα ή κτίριο. Επίσης για τον προσανατολισμό του ποδιού του χρήστη, στη παρούσα διπλωματική, υλοποιείται ένα συμπληρωματικό φίλτρο (Explicit Complementary filter) με προσαρμοστικό κέρδος. Ετσι, έχοντας εκτιμήσει τον προσανατολισμό του ποδιού, η θέση μπορεί να εκτιμηθεί ολοκληρώνοντας σε πρώτη φάση την επιτάχυνση και στη συνέχεια ολοκληρώνοντας την ταχύτητα, που έχει διορθωθεί στη φάση στάσης του ποδιού χρησιμοποιώντας ενημερώσεις μηδενικής ταχύτητας (Zero Velocity updates - ZUPT). Στη βιβλιογραφία έχουν προταθεί διάφορες μεθόδοι για την εκτίμηση του προσανατολισμού αξιοποιώντας IMU αισθητήρες [10], [11], [12] Δεύτερον, ένα ακόμα σημαντικό πρόβλημα είναι το σφάλμα ολίσθησης (drift) που παρουσιάζεται στην εκτίμηση της κατεύθυνσης, το οποίο μπορεί να προκαλέσει μεγάλο σφάλμα στην εύρεση της θέσης. Το σφάλμα κατεύθυνσης συνεχίζει να υπάρχει ακόμα και μετά τη χρήση των περιοδικών ενημερώσεων μηδενικής ταχύτητας (ZUPT), επειδή το σφάλμα στην κατεύθυνση είναι μη παρατηρήσιμο. Για το σκοπό αυτό, συνήθως χρησιμοποιούνται μαγνητόμετρα. Ωστόσο, οι μετρήσεις αυτών είναι μη αξιόπιστες σε εσωτερικούς χώρους λόγω μαγνητικών διαταραχών. Ετσι, υλοποιείται και μια επιπλέον μέθοδος διόρθωσης της κατε- ύθυνσης του ποδιού που αφαιρεί το σφάλμα που παρουσιάζεται στην κατεύθυνση. Τέλος, για την διόρθωση των αποκλίσεων που παρουσιάζονται λόγω της στάσης των πελμάτων του ποδιού (toe-out angles) εφαρμόστηκε μια φάση εκπαίδευσης του συστήματος, που υπολογίζει τις αποκλίσεις αυτές και τις αφαιρεί. Για την υλοποίηση των παραπάνω διαδικασιών αναπτύχθηκε ένα σύστημα ασύρματης αποστολής των μετρήσεων των αισθητήρων με χρήση της τεχνολογίας Bluetooth Smart [13]. Για την αποστολή των δεδομένων των αισθητήρων μέσω του πρωτοκόλλου Bluetooth Smart αναπτύχθηκε εφαρμογή που εκτελείται σε ενσωματωμένο σύστημα. Η εφαρμογή αυτή ε- πικοινωνεί με τους αισθητήρες με I2C επικοινωνία διαβάζοντας τα δεδομένα αυτών και αποστέλλοντας τα με χρήση του πρωτοκόλλου Bluetooth Smart. Για την λήψη και καταγραφή των δεδομένων υλοποιήθηκε εφαρμογή σε υπολογιστή με γραφικό περιβάλλον Windows 10, η οποία αξιοποιεί το Bluetooth chip του υπολογιστή και επικοινωνεί με το ενσωματωμένο σύστημα. Για την εξέταση των επιδόσεων του αλγορίθμου εύρεσης θέσης χρησιμοποιήθηκαν εκτός του υλοποιημένου συστήματος αποστολής δεδομένων από αισθητήρες και αισθητήρες εμπορίου τύπου SHIMMER T M. 1.2 Δομή του Συγγράμματος Η εργασία αυτή είναι οργανωμένη σε δέκα κεφάλαια: Στο κεφάλαιο 2 περιγράφονται τα βασικά στοιχεία της τεχνολογίας BLE που χρησιμοποι- ήθηκε για την αποστολή των δεδομένων. Στο κεφάλαιο 3 παρουσιάζεται το υλικό (hardware) που χρησιμοποιήθηκε για την υλοπο- ίηση του συστήματος. Στο κεφάλαιο 4 αναλύεται η δομή και η λειτουργία της εφαρμογής αποστολής των δεδο- 12
1.2 Δομή του Συγγράμματος μένων από τους αισθητήρες που εκτελείται στο ενσωματωμένο σύστημα BLE. Στο κεφάλαιο 5 αναλύεται η δομή και η λειτουργία της εφαρμογής λήψης των δεδομένων που εκτελείται σε περιβάλλον Windows 10. Στο κεφάλαιο 6 περιγράφεται η επεξεργασία των δεδομένων πριν αξιοποιηθούν στα επόμενα στάδια του αλγορίθμου. Επίσης παρουσιάζεται το υπόβαθρο της εκτίμησης προσανατολισμού με αισθητήρες IMU και περιγράφεται η μέθοδος που χρησιμοποιήθηκε στο παρόν σύστημα. Στο κεφάλαιο 7 περιγράφεται η διαδικασία για την εκτίμηση της θέσης και της ταχύτητας μαζί με την μέθοδο μείωσης του σφάλματος στην ταχύτητα. Στο κεφάλαιο 8 παρουσιάζεται η φάση εκπαίδευσης που χρησιμοποιεί το σύστημα κατά την εκκίνηση του και η μέθοδος διόρθωσης του σφάλματος ολίσθησης στην κατεύθυνση. Στο κεφάλαιο 9 περιγράφεται η πειραματική μέθοδος αξιολόγησης του συστήματος και παρατίθενται τα αποτελέσματα της εν λόγω αξιολόγησης. Τέλος, στο κεφάλαιο 10 παρουσιάζονται τα συμπεράσματα αυτής της διπλωματικής εργασίας καθώς και οι μελλοντικές επεκτάσεις που μπορούν να βελτιώσουν την απόδοση του συστήματος εύρεσης της θέσης ενός χρήστη σε εσωτερικό περιβάλλον. Τα κεφάλαια 3 και 4 υλοποιήθηκαν σε συνεργασία με τον φοιτητή Δ. Σικερίδη ως μέρος και της δικής του διπλωματικής με τίτλο «Αναγνώριση και Παρακολούθηση Κίνησης Ανω Ακρου με Αξιοποίηση Τεχνολογίας Bluetooth Low Energy». Μέρος της παρούσας διπλωματικής έγινε δεκτό και θα παρουσιαστεί στο IEICE Information and Communication Technology Forum 2016 που θα πραγματοποιηθεί στη Πάτρα. Η δημοσίευση φέρει τον τίτλο Indoor Location Estimation using a Pair of Wearable Devices. 13
Κεφάλαιο 2 Τεχνολογία Bluetooth Low Energy Η ασύρματη τεχνολογία Bluetooth είναι η πιο διαδεδομένη ασύρματη τεχνολογία για επικοινωνία μικρής εμβέλειας ανάμεσα σε συσκευές [13], [14], [15], [16]. Η τεχνολογία Bluetooth Low Energy (BLE) είναι μια μετεξέλιξη της ασύρματης τεχνολογίας Bluetooth υλοποιημένη από το Bluetooth Special Interest Group (SIG). Μολονότι δανείζεται το brand name της τεχνολογίας Bluetooth και πολλά τεχνολογικά στοιχεία από αυτήν, η τεχνολογία BLE αποτελεί μια διαφορετική τεχνολογία με διαφορετικούς στόχους και εφαρμογές. Η τεχνολογία BLE σχεδιάστηκε με σκοπό τη μετάδοση δεδομένων μικρού μεγέθους και τη πολύ χαμηλή κατανάλωση ενέργειας. Η κύρια ιδέα που ενστερνίζεται είναι η σύνδεση με άλλες συσκευές για μικρό χρονικό διάστημα και η αποστολή δεδομένων όταν χρειάζεται, με αποτέλεσμα να επιτρέπει στις συσκευές να είναι ενεργές μόνο όταν τους ζητείται να στείλουν δεδομένα. Με αυτό τον τρόπο οι συσκευές μπορούν να βρίσκονται σε κατάσταση ύπνου (sleep mode), ώστε να υπάρχει χαμηλή κατανάλωση ενέργειας. Η αρχιτεκτονική πρωτοκόλλου του BLE μπορεί να διαχωριστεί σε τρία κύρια μέρη: Controller, Host, και εφαρμογή (Application). Το σχήμα 2.1 παρουσιάζει την αρχιτεκτονική αυτή και τα επίπεδα της. Controller Physical Layer (PHY) Link Layer (LL) Host Controller interface (HCI) Host Logical Link Control and Adaptation Protocol (L2CAP) Security Manager Protocol (SMP) Attribute Protocol (ATT) Generic Attribute Profile (GATT) Generic Access Profile (GAP) Application 14
2.1 Το φυσικό επίπεδο (Physical Layer) Application App Generic Access Profile Generic Attribute Profile Attribute Protocol Security Manager Host Logical Link Control and Adaptation Protocol Host Controller Interface Link Layer Controller Physical Layer Σχήμα 2.1: Bluetooth Smart protocol stack 2.1 Το φυσικό επίπεδο (Physical Layer) Το φυσικό επίπεδο, είναι το επίπεδο που αναλαμβάνει τη μετάδοση και λήψη των bits δεδομένων, χρησιμοποιώντας ηλεκτρομαγνητικά κύματα. Το εύρος συχνοτήτων που χρησιμοποιεί, εκτείνεται από τα 2.4 GHz μέχρι τα 2.4835 GHz και είναι το επονομαζόμενο ISM (industrial, scientific and medical) εύρος συχνοτήτων, το οποίο είναι ελεύθερο και δεν χρειάζεται ειδική άδεια για την χρήση του. Το εύρος συχνοτήτων αυτό διαχωρίζεται σε 40 ξεχωριστά κανάλια, με 2 MHz να είναι το εύρος του καθενός. Η κεντρική συχνότητα f c για κάθε κανάλι k υπολογίζεται ως: f c = 2402MHz + 2k όπου: k = 0, 1,...39 15
2.1 Το φυσικό επίπεδο (Physical Layer) Από τα 40 κανάλια, τα 3 κανάλια χρησιμοποιούνται για advertising και τα υπόλοιπα 37 για την μετάδοση δεδομένων. Το advertising είναι η διαδικασία με την οποία οι συσκευές ενημερώνουν άλλες συσκευές για την παρουσία τους, την ταυτότητα τους και την ετοιμότητα τους για σύνδεση. Τα κανάλια που χρησιμοποιούνται για advertising είναι καθορισμένα ως τα κανάλια 37, 38, 39, όπως φαίνεται και στο σχήμα 2.2, και είναι τοποθετημένα έτσι ώστε να αποφεύγονται παρεμβολές από τα κανάλια του Wi-Fi που αντιστοιχούν σε διαφορετικές συχνότητες. Σε κατάσταση σύνδεσης η BLE τεχνολογία χρησιμοποιεί την τεχνική Frequency Hopping προκειμένου να αποφεύγονται παρεμβολές από το δίκτυο του Wi-Fi. Σχήμα 2.2: Κανάλια συχνοτήτων BLE. Το BLE χρησιμοποιεί την ψηφιακή διαμόρφωση GFSK (Gaussian Frequency Shift Keying). Στην ψηφιακή διαμόρφωση αυτή, η κωδικοποιήση των συμβόλων παραμένει ίδια όπως στην ψηφιακή διαμόρφωση FSK (Frequency Shift Keying), στην οποία χρησιμοποιούνται δύο συχνότητες για την κωδικοποίηση των δυαδικών δεδομένων. Στην περίπτωση του BLE, χρησιμοποιείται ως κεντρική συχνότητα, η κεντρική συχνότητα του εκάστοτε καναλιού και ως απόκλιση από αυτήν συχνότητα τουλάχιστον 185KHz. f = f c + 1 f = f c 0 Ενα γκαουσιανό φίλτρο χρησιμοποιείται για την ομαλοποιήση των μεταβάσεων από ένα σύμβολο σε κάποιο άλλο αποφεύγοντας την πιθανότητα ύπαρξης διασυμβολικής παρεμβολής στον δέκτη εξαιτίας της απότομης αλλαγής των συμβόλων. Το πρότυπο του BLE ορίζει τη μέγιστη ισχύ εκπομπής στα 10 dbm και την ελάχιστη στα -20 dbm. Από την μεριά του ο δέκτης έχει επίπεδο ευαισθησίας λήψης μικρότερο ή ίσο από -70 dbm με λόγο λαθών (BER) ίσο με 0.1 %. 16
2.2 Το επίπεδο ζεύξης(link Layer) 2.2 Το επίπεδο ζεύξης(link Layer) Το επίπεδο ζεύξης δεδομένων ορίζει τον τρόπο με τον οποίο δύο συσκευές μπορούν να χρησιμοποιήσουν το φυσικό επίπεδο, ώστε να επικοινωνήσουν μεταξύ τους. Ο καλύτερος τρόπος κατανόησης του επιπέδου ζεύξης είναι η περιγραφή του ως μια μηχανή καταστάσεων, όπως φαίνεται στο σχήμα 2.3. Αυτή η μηχανή καταστάσεων περιέχει πέντε διαφορετικές Scanning Advertising Standby Initiating Connecting Σχήμα 2.3: Μηχανή καταστάσεων του επιπέδου ζεύξης. καταστάσεις: Standby state: Στην κατάσταση αυτή βρίσκονται οι συσκευές μόλις ενεργοποιηθούν. Είναι πιθανό η συσκευή να μεταφερθεί από αυτή τη κατάσταση στις καταστάσεις scanning, advertising, initiating. Advertising state: Η κατάσταση αυτή επιτρέπει στο επίπεδο ζεύξης δεδομένων την αποστολή advertising πακέτων. Επίσης, μπορεί να απαντήσει σε αιτήματα scan από συσκεύες που έστειλαν advertising πακέτα. Η κατάσταση αυτή είναι αναγκαία, εάν μια συσκευή θέλει να συνδεθεί με μια άλλη. Μια συσκευή σε αυτή τη κατάσταση ονομάζεται advertiser. Scanning state: Στην κατάσταση αυτή, το επίπεδο ζεύξης ελέγχει για τη λήψη advertising πακέτων από συσκευές που βρίσκονται στην κατάσταση advertising. Μια συσκευή που βρίσκεται στην κατάσταση αυτή ονομάζεται scanner. Initiating State: Στην κατάσταση αυτή, το επίπεδο ζεύξης ελέγχει για advertising πακέτα από συγκεκριμένη συσκευή, με σκοπό να απαντήσει, στέλνοντας αίτημα σύνδεσης στον 17
2.3 Host Controller interface (HCI) advertiser. Συνεπώς, μπορεί να εκκινηθεί σύνδεση με την συσκευή αυτή. Μια συσκευή που βρίσκεται στην κατάσταση αυτή ονομάζεται initiator. Connection State: Στην κατάσταση αυτή, η συσκευή βρίσκεται σε σύνδεση. Η σύνδεση μπορεί να επιτευχθεί είτε μέσω της κατάστασης advertising είτε μέσω της κατάστασης initiating. Εάν έχει επιτευχθεί μέσω της πρώτης, τότε η συσκευή έχει το ρόλο του slave. Ενώ, μέσω της δεύτερης, η συσκευή έχει το ρόλο του master. Η κατάσταση αυτή είναι η μόνη που χρησιμοποιεί τα κάναλια δεδομένων. Οι υπόλοιπες χρησιμοποιούν τα κανάλια advertising. Για την αποστολή δεδομένων στα κανάλια μέσω των προηγούμενων καταστάσεων, χρησιμοποιείται μια δομή πακέτου. Η δομή του πακέτου, παραμένει ίδια είτε για advertising πακέτα είτε για πακέτα δεδομένων. Κάθε byte δεδομένων μεταδίδεται με πρώτο το λιγότερο σημαντικό bit (Least Significant bit - LSB). Η δομή του φαίνεται στην εικόνα 2.4 και αναλύεται στη συνέχεια: 8 32 8 8 0-296 24 Bits Preamble Access Address Header Length Data CRC Σχήμα 2.4: Δομή πακέτου επιπέδου ζεύξης. Preamble: Τα πρώτα 8 bit είναι είτε 01010101 είτε 10101010. Access Address: Μπορεί να είναι δύο τύπων: advertising access address και data access address. Η πρώτη χρησιμοποιείται για την μετάδοση δεδομένων, για την διαδικάσια scanning και για την διαδικασία initiating. Ενώ, η δεύτερη χρησιμοποιείται στην κατάσταση σύνδεσης, αφού έχει γίνει σύνδεση μεταξύ δύο συσκευών. Header: Το περιεχόμενο του εξαρτάται ανάλογα με το αν είναι πακέτο advertising ή πακέτο δεδομένων. Length: Ο αριθμός των bits αυτού εξαρτάται από τον τύπο του πακέτου. Data: Είναι τα πραγματικά δεδομένα που μεταδίδονται. CRC: Είναι 3 byte κυκλικός έλεγχος πλεονασμού (CRC). Υπολογίζεται σε όλο το μήκος του πακέτου, εκτός των preamble και Access Address. 2.3 Host Controller interface (HCI) Το HCI αποτελεί διεπαφή επικοινωνίας μεταξύ του host και του controller. Η επικοινωνία του HCI μπορεί να πραγματοποιηθεί από διάφορες φυσικές διεπαφές: UART, 3-Wire UART και USB. 18
2.4 Logical Link Control and Adaptation Protocol (L2CAP) 2.4 Logical Link Control and Adaptation Protocol (L2CAP) Το επίπεδο L2CAP αναλαμβάνει την πολύπλεξη των δεδομένων των πρωτοκόλλων των ανώτερων επιπέδων. Η λειτουργία αυτού βασίζεται στην έννοια του L2CAP καναλιού και στις signaling εντολές. Στην περίπτωση του BLE χρησιμοποιούνται προκαθορισμένα κανάλια, ένα για την αποστολή εντολών που ορίζονται από το L2CAP, ένα για τα δεδομένα του Security Manager Protocol και ένα για τα δεδομένα του Attribute Protocol. Κάθε κανάλι έχει ένα αναγνωριστικό (Channel ID) για την διακρίση των διαφορετικών καναλιών. Η δομή του πακέτου (L2CAP) είναι η ακόλουθη και φαίνεται στο σχήμα 2.5: Τα τέσσερα πρώτα bytes αποτελούν το L2CAP header. Για κάθε L2CAP κανάλι, το ωφέλιμο φορτίο (information payload) έχει μέγιστο μέγεθος 23 bytes. Αυτό σημαίνει πως κάθε συσκευή μπορεί να στείλει 27-bytes πακέτα, δηλαδή 4 bytes L2CAP header και 23 bytes information payload. 2 2 0-65535 Bytes Length Channel ID Information Payload Σχήμα 2.5: Δομή πακέτου L2CAP. Οι εντολές signaling του L2CAP χρησιμοποιούνται για την ενημέρωση των παραμέτρων σύνδεσης και της απόρριψης αυτών. Οι παράμετροι σύνδεσης συνήθως τροποποιούνται από τον slave, όπου αυτός καθορίζει, πόσο συχνά θέλει ο master να μεταδίδει. Επίσης, μπορεί και ο master να τροποποιήσει τις παραμέτρους σύνδεσης, ενώ και οι δύο μπορούν να τις απορρίψουν. 2.5 (Security Manager Protocol (SMP)) Το πρωτόκολλο αυτό χρησιμοποιείται για τη διαδικασία pairing μεταξύ των συσκευών και της διανομής κλειδιών κρυπτογράφησης. Κατά τη διαδικασία αυτή, δύο συσκευές ανταλλάσουν κλειδιά, ώστε να μπορούν να επικοινωνούν πάνω από ένα κρυπτογραφημένο κανάλι. Η αποθήκευση των κλειδιών αυτών προσφέρει γρηγορότερες επανασυνδέσεις μεταξύ των συσκευών (bonding). 2.6 Attribute Protocol (ATT) Το πρωτόκολλο αυτό βασίζεται στην αρχιτεκτονική client-server. Ο server διαθέτει δεδομένα τα οποία είναι αποθηκευμένα σε attributes, όπου ο client μπορεί να τα διαβάσει ή/και να γράψει σε αυτά. Ενα attribute μπορεί να θεωρηθεί ως ένα πλαίσιο δεδομένων, το οποίο αποτελείται από τα εξής πεδία: Handle: Αποτελεί τη διεύθυνση του κάθε attribute. Κάθε handle ουσιαστικά αποτελεί μια διεύθυνση μνήμης για την τιμή του attribute. 19
2.7 Generic Attribute Profile (GATT) Type: Το πεδίο αυτό καθορίζεται μέσω ενός UUID (Universally Unique Identifier). Αυτός είναι ένας αριθμός 128-bit σε μέγεθος. Λόγω του μεγάλου μεγέθους του UUID, το πρότυπο Bluetooth SIG ορίζει 16-bit UUIDs για τα profiles και τα attributes που έχουν γίνει αποδεκτά από αυτό. Value: Αποτελεί την τιμή ενός attribute, η οποία έχει μέγεθος από 0 bytes εώς 512 bytes. Permissions: Αποτελούν τις επιτρεπτές ενέργειες που μπορούν να γίνουν στα attributes. Καθορίζουν εάν ένα attribute είναι διαθέσιμο για διάβασμα (read) ή επεξεργασία (write), αλλά και χαρακτηριστικά όπως η μετάδοση αυτών σε κρυπτογραφημένα κανάλια ή όχι. Επίσης, το ATT ορίζει έξι τύπους μηνυμάτων για τις λειτουργίες του, μέσω της ανταλλαγής πακέτων μεταξύ των client και server: Request: Οταν ο client ζητάει το οτιδήποτε από τον server. Response: Ο server στέλνει response στον client ως απάντηση στο request. Command: Ο client στέλνει ένα αίτημα (command) στον server, χώρις να περιμένει απάντηση (response). Notification: Ο server ειδοποιεί, στέλνοντας notifications στον client, για μια νέα τιμή ενός attribute. Ο client δεν στέλνει επιβεβαίωση confirmation ως απάντηση στο μήνυμα αυτό. Indication: Στέλνονται από τον server στον client. Συνήθως περιμένεται μήνυμα επιβεβαίωσης (confirmation) από τον client. Confirmation: Ο client στέλνει μήνυμα επιβεβαίωσης (confirmation) ως απάντηση σε ένα indication του server. 2.7 Generic Attribute Profile (GATT) Στην προηγούμενη ενότητα περιγράφηκε το πρωτόκολλο ATT που περιέχει δεδομένα που βρίσκονται σε κάποια διεύθυνση μνήμης. Για την ομαδοποίηση των δεδομένων αυτών, δημιουργήθηκαν τα προφίλ (profiles). Τα προφίλ αποτελούνται από υπηρεσίες (services) και χαρκτηριστικά (characteristics). Το GATT ορίζει τις υπηρεσίες και τα χαρακτηριστικά. Μια υπηρεσία μπορεί να περιέχει ένα ή και παραπάνω χαρακτηριστικά. Τα χαρακτηριστικά είναι ένα σύνολο από δεδομένα attributes, όπου επίσης μπορούν να περιέχουν και μεταδεδομένα σχετικά με την τιμή τους, με τη μορφή περιγραφέων (descriptors). Επιπλέον, στα χαρακτηριστικά ορίζονται και οι ενέργειες, τις οποίες επιτρέπεται να εκτελέσει ο client σε αυτά. Οι ενέργειες αυτές είναι οι εξής: broadcast, read, write, notify, indicate, authenticate signed write. Ο διαχωρισμός των συσκευών γίνεται και στο συγκεκριμένο επίπεδο σε GATT client και GATT server. Ο ρόλος τους αναλύεται παρακάτω: GATT client: Είναι η συσκευή που ζητά πληροφορίες - δεδομένα από τον GATT server που το πετυχαίνει με αποστολή μηνυμάτων (requests). 20
2.8 Generic Access Profile (GAP) GATT server: Είναι η συσκευή που δέχεται αιτήματα από τον GATT client και στέλνει απαντήσεις σε αυτόν για πληροφορίες που έχουν ζητηθεί σχετικά με τα attributes. Σχήμα 2.6: Ιεραρχία του GATT. 2.8 Generic Access Profile (GAP) Το επίπεδο αυτό είναι υπεύθυνο για τις παραμέτρους του advertising και της σύνδεσης και επίσης προσδιορίζει το ρόλο των συσκευών. Στο GAP ορίζονται τέσσερις ρόλοι για τις BLE συσκευές: Broadcaster: Απευθύνεται σε συσκευές που αποστέλλουν πακέτα δεδομένων advertising. Ο ρόλος αυτός αφορά συσκευές, οι οποίες μεταδίδουν δεδομένα περιοδικά (beacons) και δεν διαθέτουν την δυνατότητα λήψης δεδομένων. Observer: Απευθύνεται σε συσκευές, οι οποίες ελέγχουν για πιθανά πακέτα advertising από broadcasters, με δεδομένα που μπορεί να ενδιαφέρονται. Τέτοιου τύπου συσκευές δεν αποστέλλουν, αλλά μόνο λαμβάνουν δεδομένα. Central: Απευθύνεται σε συσκευές που έχουν το ρόλο του master σε μια σύνδεση με έναν ή περισσότερους slaves. Ο central λαμβάνει πακέτα advertising από μια ή περισσότερες συσκευές και επιλέγει με ποιον ή ποιους θα συνδεθεί. Peripheral: Απευθύνεται σε συσκευές που έχουν το ρόλο του slave σε μια σύνδεση. Ο peripheral αποστέλλει πακέτα advertising με σκοπό την σύνδεση με κάποιον central. 21
2.8 Generic Access Profile (GAP) Στο GAP επίπεδο εκτός από τους ρόλους μιας συσκευής ορίζονται οι τρόποι (modes), με τους οποίους μπορεί να βρίσκεται μια συσκευή, και οι διαδικασίες (procedures) που μπορούν να εκτελούνται σε κάθε mode. Οι τρόποι λειτουργίας είναι οι εξής: Broadcast: Οταν ο τρόπος λειτουργίας μίας συσκευής είναι broadcast, τότε αυτή στέλνει δεδομένα κάνοντας advertising προς πάσα κατεύθυνση. Non-discoverable: Οταν η συσκευή μας είναι σε non discoverable mode τότε αυτή δεν μπορεί να εντοπιστεί από συσκευές Limited discoverable: Μια συσκευή σε limited discoverable mode μπορεί να ανακαλυφθεί από άλλες συσκευές, για κάποιο σύντομο χρονικό διάστημα( κάποια λίγα δευτερόλεπτα). General discoverable: Εδώ η συσκευή που έχει αυτόν τον τρόπο λειτουργίας είναι διαθέσιμη για εντοπισμό και για σύνδεση. Non-connectable: Μια συσκευή σε non-connectable mode δεν επιτρέπει συνδέσεις με άλλες συσκευές Any connectable: Σε αυτή τη περίπτωση η συσκευή μας είναι έτοιμη να συνδεθεί με τον οποιανδήποτε της ζητηθεί. Οι διαδικασίες είναι οι εξής: Observation procedure: Η διαδικασία αυτή εκτελείται σε μία συσκευή όταν αυτή ψάχνει για τα advertising πακέτα του broadcaster. Limited discovery procedure: Εδώ η συσκευή που εκτελεί αυτή τη διαδικασία, προσπαθεί να «ανακαλύψει» συσκευές, οι οποίες όμως βρίσκονται σε limited discoverable mode. Αυτό πραγματοποιείται με τη βοήθεια κάποιων σημαιών που ελέγχει ο developer. General discovery procedure: Η συσκευή προσπαθεί να «δει» συσκευές που βρίσκονται είτε σε limited είτε σε general discoverable mode. Αποτελεί δηλαδή, μια πιο γενική περίπτωση. Name discovery procedure: Στη συγκεκριμένη διαδικασία μία συσκευή προσπαθεί να ανακτήσει το GAP name service μίας συσκευής που βρίσκεται στην εμβέλεια της. Connection parameter update procedure: Μια συσκευή εκτελεί τη διαδικασία αυτή προκειμένου να αλλάξει τις παραμέτρους της σύνδεσής της με μια απομακρυσμένη συσκευή. Οι παράμετροι είναι αυτές που είδαμε παραπάνω, κατά την περιγραφή του επιπέδου ζεύξης. Terminate Connection procedure: Αυτή η διαδικασία εκτελείται από μια περιφερειακή ή κεντρική, όταν αυτή θέλει να διακόψει τη υπάρχουσα σύνδεση με μία άλλη συσκευή με την οποία είχαν συνάψει δεσμό. 22
Κεφάλαιο 3 Εργαλεία ανάπτυξης συστήματος Για την ανάπτυξη του συστήματος χρησιμοποιήθηκαν δύο διαφορετικά ζεύγη αισθητήρων κίνησης. Το πρώτο ζεύγος αναπτύχθηκε στο εργαστήριο και αποτελείται από δύο DA14583 Bluetooth Low Energy development boards [17], [18] στα οποία προσαρτήθηκαν αισθητήρες BMX055. Το δεύτερο ζεύγος αποτελείται από δύο αισθητήρες [19], [20]. Στο κεφάλαιο αυτό γίνεται μια σύντομη περιγραφή των χαρακτηριστικών των δύο αυτών ολοκληρωμένων. 3.1 DA14583 Development Board Το DA14583 είναι ένα Bluetooth Low Energy System on Chip το οποίο παράγεται από την εταιρία Dialog Semiconductor (σχήμα 3.1). Το σύστημα αυτό διαθέτει ένα πλήρως ενσωματωμένο πομποδέκτη και επεξεργαστή για το Bluetooth Smart. Υποστηρίζει την αποθήκευση κώδικα εφαρμογών μέσω μια αρχιτεκτονικής μνήμης που έχει τη δυνατότητα ανανέωσης του κώδικα εφαρμογής over the air (OTA). Το Bluetooth Smart firmware περιλαμβάνει τα πρωτόκολλα L2CAP, Security Manager (SM), Attribute Protocol (ATT), Generic Attribute Profile (GATT) και το Generic Access Profile (GAP). Επίσης υποστηρίζει όλα τα profiles του Bluetooth SIG, καθώς και τα custom profiles που αναπτύσσονται από τον εκάστοτε προγραμματιστή. Στο σχήμα 3.2 φαίνεται το block διάγραμμα του εν λόγω ολοκληρωμένου. 3.1.1 Επεξεργαστής Το DA14583 Development Board εμπεριέχει έναν επεξεργαστή ARM Cortex-M0, ο οποίος είναι 32-bit RISC Von Neumann αρχιτεκτονικής (single bus διεπαφή). Χρησιμοποιεί το Thumb instruction set και περιλαμβάνει επίσης νεότερες εντολές από την αρχιτεκτονική ARMv6 και την τεχνολογία Thumb-2. Το Thumb instruction set είναι μια παραλλαγή του 32-bit instruction set των ARM επεξεργαστών, το οποίο περιλαμβάνει απλοποιημένες εντολές των 16-bit. Αυτό είναι αρκετά σημαντικό για τα ενσωματωμένα συστήματα, αφού η πυκνότητα του κώδικα είναι μεγαλύτερη και, έτσι, απαιτείται λιγότερη μνήμη για την αποθήκευση και εκτέλεση των προγραμμάτων. Παρότι περιλαμβάνει μόνο 56 εντολές, αυτές είναι βελτιστοποιημένες, ώστε να μπορούν να εκτελούν τις συνηθισμένες λειτουργίες των προγραμμάτων. 23
3.1 DA14583 Development Board Σχήμα 3.1: DA14583 Development Board Ο Cortex-M0 περιλαμβάνει sleep mode, στο οποίο παρουσιάζει ελάχιστη κατανάλωση. Υποστηρίζει δυνατότητες debugging χρησιμοποιώντας το πρωτόκολλο Serial Wire Debug (SWD), το οποίο είναι παρόμοιο με το JTAG, με το πλεονέκτημα ότι απαιτεί μόνο δύο καλώδια. Παρέχει επίσης δυνατότητες για προγραμματιζόμενες διακοπές (interrupts) με επίπεδα προτεραιότητας μέσω του Nested Vectored Interrupt Controller (NVIC), 24-bit System Tick timer και SuperVisor Call (SVC) για την υποστήριξη λειτουργικών συστημάτων, καθώς και Wake-Up Interrupt Controller (WIC), ο οποίος δίνει τη δυνατότητα απενεργοποίησης του επεξεργαστή όταν είναι σε sleep mode επιτρέποντας όμως εξωτερικές διακοπές να τον ενεργοποιήσουν. Ενα άλλο χαρακτηριστικό των ARM επεξεργαστών, που είναι σημαντικό για ενσωματωμένα και real-time συστήματα, είναι η ικανότητα τους να έχουν αναμενόμενο και σταθερό latency στην εκτέλεση των interrupt handlers. 3.1.2 Μνήμες Το DA14583 περιλαμβάνει τις εξής μνήμες: ROM: Πρόκειται για μια ROM των 84 ΚΒ που περιέχει τη στοίβα του Bluetooth Smart πρωτοκόλλου καθώς και τον κώδικα εκκίνησης. OTP: Πρόκειται για μια 32 ΚΒ μνήμη που μπορεί να προγραμματιστεί μόνο μια φορά και χρησιμοποιείται για την αποθήκευση του κώδικα της εφαρμογής καθώς και των πληροφοριών και παραμέτρων της συσκευής. 24
3.1 DA14583 Development Board Σχήμα 3.2: DA14583 Block Diagram System SRAM: Πρόκειται για μια μνήμη των 42 ΚΒ όπου χρησιμοποιείται κυρίως για τη τοποθέτηση του κώδικα που περιέχεται στην OTP όταν το σύστημα εκκινεί ή επανέρχεται από κατάσταση αδράνειας. Επίσης χρησιμοποιείται σαν μνήμη RAM δεδομένων για ενδιάμεσες μεταβλητές. Προαιρετικά χρησιμοποιείται σαν πρόσθετη μνήμη για δεδομένα αποστολής/λήψης του BLE. Retention RAMs: Υπάρχουν 4 μνήμες χωρητικότητας 2-2-3-1 ΚΒ. Οι συγκεκριμένες μνήμες έχουν πολύ μικρή κατανάλωση ενέργειας και χρησιμοποιούνται για τη αποθήκευση διαφόρων δεδομένων του BLE πρωτοκόλλου, global μεταβλητών, καθώς και της στοίβας του επεξεργαστή κατά τη διάρκεια του Extended Sleep Mode. Οι μνήμες αυτές μέσω της αποθήκευσης των δεδομένων προσφέρουν την ασφαλή και γρήγορη ρύθμιση του BLE πυρήνα, αφού το σύστημα επανέρχεται από την αδράνεια. Flash: Πρόκειται για 1Mbit Flash memory που χρησιμοποιείται για την εναλλακτική αποθήκευση του κώδικα εφαρμογής και του κώδικα για όλα τα υποστηριζόμενα BLE προφίλ. 3.1.3 Διεπαφές Το DA14583 περιλαμβάνει μια σειρά από διεπαφές που επιτρέπουν τη σύνδεση με εξωτερικά στοιχεία όπως επιπλέον μνήμες, αισθητήρες, κτλ. Για τη χρήση των διεπαφών αυτών του συστήματος παρέχεται μια σειρά από General Purpose Input/Output (GPIO) pins τα οποία καθορίζονται από τον προγραμματιστή ως είσοδοι ή εξοδοι. Τα GPIO pins έχουν τη δυνατότητα να διατηρούν την κατάστασή τους και κατά τη διάρκεια του sleep mode. Επιγραμματικά οι διεπαφές που περιλαμβάνονται είναι: 25
3.2 IMU BMX055 UART x2 SPI (Serial Peripheral Interface) I2C ADC (Analog to Digital Converter) Quadrature decoder Keyboard controller 3.1.4 Power Modes Το DA14583 τρείς διαφορετικές λειτουργίες: Active mode: Το σύστημα είναι ενεργό και λειτουργεί σε πλήρη ταχύτητα, Sleep mode: Το σύστημα βρίσκεται σε κατάσταση αναμονής και ο επεξεργαστής βρίσκεται σε κατάσταση αδράνειας αναμένοντας κάποιο interrupt. Η κατάσταση των διεπαφών παραμένει αμετάβλητη, όπως είναι αποθηκευμένη στους καταχωρητές του συστήματος. Extended Sleep mode: Το σύστημα απενεργοποιεί το BLE controller, το radio transceiver καθώς και όλες τις διεπαφές. Η μνήμη System SRAM διατηρεί τα δεδομένα του συστήματος που είναι απαραίτητα για την επαναφορά του συστήματος από την αδράνεια. 3.2 IMU BMX055 Σχήμα 3.3: BMX055 Shuttle Board Το BMX055 (σχήμα 3.3) είναι ένας αισθητήρας 9 βαθμών ελευθερίας της Bosch Sensortec που περιέχει τρία επιταχυνσιόμετρα τοποθετημένα κάθετα μεταξύ τους, καθώς και τρία γυροσκόπια και τρία μαγνητόμετρα σε ίδια διάταξη. Το μέγεθος κάθε μέτρησης για κάθε επιταχυνσιόμετρο, γυροσκόπιο και μαγνητόμετρο είναι 12, 16 και 16 bits αντίστοιχα. 26
3.3 SHIMMER Οι αισθητήρες είναι τεχνολογίας MEMS (Micro-Electro-Mechanical-Systems), λειτουργούν με τάσεις από 1.2V έως 3.6V και μπορούν να προγραμματιστούν για τη βελτιστοποίηση λειτουργικότητας, απόδοσης και κατανάλωσης ώστε να εξυπηρετούν ανάγκες διαφόρων τύπων εφαρμογών. Υποστηρίζει επικοινωνία μέσω SPI αλλά και I2C διεπαφών και είναι ιδανικός για εφαρμογές χαμηλής κατανάλωσης, όπως άλλωστε απαιτεί η φύση του BLE πρωτοκόλλου. Στο τέλος του κεφαλαίου γίνεται λεπτομερής παρουσίαση όλων των τεχνικών χαρακτηριστικών του BMX055. Στο σχήμα 3.4 φαίνεται το block διάγραμμα του εν λόγω αισθητήρα. Σχήμα 3.4: BMX055 Block Diagram 3.3 SHIMMER Το δεύτερο είδος αισθητήρων που χρησιμοποιήθηκε είναι η τελευταία έκδοση της πλατφόρμας Shimmer (Sensing Health with Intelligence Modularity, Mobility and Experimental Reusability). Το Shimmer (σχήμα 3.5) είναι ένας μικρός ασύρματος αισθητήρας που ενσωματώνει αισθητήρες επιτάχυνσης, γυροσκόπιο, μαγνητόμετρο,ecg (Electrocardiogrem), EMG(Electromyogram) 27
3.3 SHIMMER και είναι ικανός να καταγράψει και να μεταδώσει δεδομένα φυσιολογίας και κίνησης σε πραγματικό χρόνο. Στη περίπτωσή μας χρησιμοποιήθηκαν οι αισθητήρες επιταχυνσιομέτρου και γυροσκοπίου τριών αξόνων για τη καταγραφή των δεδομένων κίνησης. Σχήμα 3.5: Shimmer Platform Η πλατφόρμα ενσωματώνει έναν επεξεργαστή 16-bit MSP430F5437A της Texas Instruments σχεδιασμένο για εφαρμογές φορητών μετρήσεων. Διαθέτει 11 κανάλια 12-bit ADC, DAC εξόδους καθώς και μνήμες RAM 16 Kbyte και Flash 256 Kbyte. Για την αποστολή των δεδομένων η πλατφόρμα χρησιμοποιεί πρωτόκολλο Bluetooth 2.0, ώστε να επιτύχει υψηλούς ρυθμούς μετάδοσης δεδομένων. Για την λήψη των δεδομένων κίνησης από τον αισθητήρα απαιτείται η διαδικασία pairing Bluetooth I/O External Expansions I/O CPU I/O Flash Memory I/O Accelerometer Gyroscope Σχήμα 3.6: Shimmer System Diagram 28
3.4 Χαρακτηριστικά αισθητήρων με το Bluetooth του υπολογιστή, το οποίο θα συλλέξει τα δεδομένα. Για την ταυτόχρονη συλλογή δεδομένων από δύο αισθητήρες Shimmer χρησιμοποιείται το διατιθέμενο από την εταιρία λογισμικό Multi Shimmer Sync for Windows v2.11 [21], ενώ πριν τη λήψη μετρήσεων χρησιμοποιείται το λογισμικό Shimmer 9DoF Calibration v2.8 [22] για το (calibration) των αισθητήρων. 3.4 Χαρακτηριστικά αισθητήρων Ακολουθεί ο πίνακας 3.1 με τα αναλυτικά χαρακτηριστικά των αισθητήρων. Τα χαρακτηριστικά που επιλέχθηκαν για τη συγκεκριμένη εφαρμογή αναγράφονται με έντονους χαρακτήρες. Το sampling rate που χρησιμοποιούμε και για τους δύο αισθητήρες είναι 100 Hz. Πίνακας 3.1: Χαρακτηριστικά αισθητήρων Dynamic Range RMS Noise Density Accelerometer Gyroscope ΒΜΧ055 SHIMMER ΒΜΧ055 SHIMMER ±125 dps ±2 g ±2 g ±250 dps ±250 dps ±4 g ±4 g ±500 dps ±500 dps ±8 g ±8 g ±1000 dps ±1000 dps ±16 g ±16 g ±2000 dps ±2000 dps 0.116 m/s 2 0.027 m/s 2 0.100 dps 0.048 dps 29
Κεφάλαιο 4 Σύστημα μετάδοσης δεδομένων Για την υλοποίηση του τμήματος εκείνου του συστήματος το οποίο πραγματοποιεί τις μετρήσεις των δεδομένων κίνησης χρησιμοποιήσαμε, όπως έχουμε ήδη αναφέρει, το Bluetooth Low Energy System on Chip DA14583, της εταιρίας Dialog Semiconductor. Η εφαρμογή που εκτελείται στο DA14583 διαβάζει τα δεδομένα από τον αισθητήρα επιτάχυνσης και το γυροσκόπιο και τα στέλνει στο δεύτερο τμήμα, το οποίο αποτελεί ένα user interface και έχει το ρόλο του remote client. Το δεύτερο τμήμα του συστήματος εκτελείται στον υπολογιστή σε Windows 10 εφαρμογή και θα περιγραφεί στο επόμενο κεφάλαιο. Η επικοινωνία μεταξύ των δύο τμημάτων επιτυγχάνεται μέσω του πρωτοκόλλου BLE και εκτελείται με βάση το IMU Sensor Profile, το οποίο θα παρουσιαστεί στο παρόν κεφάλαιο. Επίσης θα περιγράψουμε τη δομή και τον τρόπο λειτουργίας της εφαρμογής, η οποία εκτελείται στο DA14583 SoC. DA14583 SoC Remote Client BMX055 Accelerometer Gyroscope Bluetooth Low Energy Σχήμα 4.1: Σύστημα μετάδοσης δεδομένων. 30
4.1 Hardware Setup 4.1 Hardware Setup Ο αισθητήρας BMX055 διασυνδέθηκε με το DA14583 Development Board όπως φαίνεται στα σχήματα 4.2 και 4.3. Η επικοινωνία τους επιτυγχάνεται με τη χρήση του πρωτοκόλλου I2C. Για την λειτουργία του αισθητήρα με το DA14583 board είναι απαραίτητο να καθοριστο- ύν οι καταστάσεις των pin του μικροεπεξεργαστή. Η σύνδεση του αισθητήρα γίνεται με I2C επικοινωνία έτσι τα pin P1-1 και P1-3 καθορίζονται ως SCL και SDA pin αντίστοιχα. Το CS pin παίρνει τη τιμή λογικό 1 για τη δυνατότητα λειτουργίας του αισθητήρα με I2C επικοινωνία. DA14583 Development Board - Basic BMX055 Shuttle Board Σχήμα 4.2: Διασύνδεση BMX055 με DA14583. Σχήμα 4.3: Αισθητήρες BMX055 & DA14583 και σύνδεση τους στο παπούτσι. 31
4.2 Inter-Integrated Circuits (I2C) 4.2 Inter-Integrated Circuits (I2C) Το I2C είναι ένα πρότυπο επικοινωνίας, πάνω από ένα δίαυλο που αποτελείται από δύο σήματα, ένα για σήματα δεδομένων (SDA) και ένα για σήματα ρολογιού (SCL). Το πρότυπο αυτό ορίζει τον τρόπο με τον οποίο πολλαπλές συσκευές μπορούν να συνδέονται στον δίαυλο. Χρησιμοποιώντας κατάλληλους συνδυασμούς των δύο παραπάνω σημάτων μπορούν και ανταλλάσσουν bytes δεδομένων. Οι συσκευές συνδέονται πάνω στον δίαυλο με ένα κύκλωμα εξόδου τύπου ανοιχτού συλλέκτη (open collector) ή ανοιχτής υποδοχής (open drain), που δημιουργεί ένα κύκλωμα wired-and. Ο δίαυλος είναι συνδεμένος με την τάση εισόδου χρησιμοποιώντας αντιστάσεις pull-up. Αυτό σημαίνει ότι ο δίαυλος είναι συνεχώς σε λογικό 1, εκτός αν σε κάποια συσκευή συνδέθει η έξοδος της με τη γη, οπότε περνάει σε λογικό 0. Ο I2C δίαυλος προσφέρει πολύ χαμηλή κατανάλωση ενέργειας όταν δε χρησιμοποιείται, διότι τα κυκλώματα τύπου open collector ή open drain δεν τραβάνε ρεύμα από τον δίαυλο, όταν τα αντίστοιχα transistors είναι κλειστά. Υπό λειτουργία υπάρχει κατανάλωση μόνο όταν ο δίαυλος τίθεται σε λογικό 0, η οποία εξαρτάται από τις τιμές των αντιστάσεων pull-up που χρησιμοποιούνται. Σχήμα 4.4: I2C. Ο έλεγχος του διαύλου πραγματοποιείται από την συσκευή master, η οποία μπορεί να στέλνει ή να λαμβάνει δεδομένα από τις συσκευές του διαύλου (slaves). Το πρότυπο δίνει τη δυνατότητα ύπαρξης πολλαπλών master σε έναν δίαυλο, όμως μόνο ένας μπορεί κάθε χρονική στιγμή να τον ελέγχει. Το πρότυπο καθορίζει τον τρόπο, με τον οποίο επιλύονται τυχόν συγκρούσεις μεταξύ masters, που προσπαθούν να χρησιμοποιήσουν τον διαύλο ταυτόχρονα. Οι συσκευές slave δεν μπορούν να επικοινωνήσουν μεταξύ τους, παρά μόνο να ακολουθούν οδηγίες από τον master, διαβάζοντας ή γράφοντας δεδομένα στον διαύλο. Η συσκευή master ξεκινά την επικοινωνία αποστέλλοντας μια συνθήκη εκκίνησης (start 32