ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ...

100
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ &ΤΕΧΝΟΛΟΓΙΑΣ Η/Υ ΤΟΜΕΑΣ ΣΥΣΤΗΜΑΤΩΝ & ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ΚΑΘΟΔΗΓΗΣΗ ΚΙΝΟΥΜΕΝΟΥ ΡΟΜΠΟΤ» ΜΑΡΑΝΤΟΣ ΠΑΝΑΓΙΩΤΗΣ του ΝΙΚΟΛΑΟΥ ΦΟΙΤΗΤΗΣ ΤΟΥ ΤΜΗΜΑΤΟΣ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΕΠΙΒΛΕΠΩΝ: ΑΝΑΠΛΗΡΩΤΗΣ ΚΑΘΗΓΗΤΗΣ Α.ΤΖΕΣ ΑΡΙΘΜΟΣ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ:_____/2008 Πάτρα, Ιούνιος 2008

Upload: others

Post on 31-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

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

ΤΟΜΕΑΣ ΣΥΣΤΗΜΑΤΩΝ & ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

«ΑΣΥΡΜΑΤΗ ΚΑΘΟΔΗΓΗΣΗ ΚΙΝΟΥΜΕΝΟΥ ΡΟΜΠΟΤ»

ΜΑΡΑΝΤΟΣ ΠΑΝΑΓΙΩΤΗΣ του ΝΙΚΟΛΑΟΥ

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

ΕΠΙΒΛΕΠΩΝ: ΑΝΑΠΛΗΡΩΤΗΣ ΚΑΘΗΓΗΤΗΣ Α.ΤΖΕΣ

ΑΡΙΘΜΟΣ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ:_____/2008

Πάτρα, Ιούνιος 2008

Page 2: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

ΠΙΣΤΟΠΟΙΗΣΗ

Πιστοποιείται ότι η διπλωματική εργασία με θέμα :

« Ασύρματη καθοδήγηση κινούμενου ρομπότ. »

του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

Μαράντου Παναγιώτη του Νικολάου

( Α.Μ. 5381)

παρουσιάσθηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις __ / __ / _____

Ο Επιβλέπων

Αναπληρωτής Καθηγητής Αντώνιος Τζες

Ο Διευθυντής του Τομέα

Καθηγητής Νικόλαος Κούσουλας

2

Page 3: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Ευχαριστίες

Η διπλωματική εργασία αυτή αναπτύχθηκε στο εργαστήριο Αυτομάτου ελέγχου και Ρομποτικής στο τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών του Πανεπιστημίου Πατρών. Νιώθω την ανάγκη και την υποχρέωση να ευχαριστήσω όσους με βοήθησαν στην υλοποίηση αυτή της εργασίας όλο το χρονικό διάστημα αυτό.

Καταρχήν θέλω να ευχαριστήσω βαθύτατα των επιβλέπονταν καθηγητή μου κ. Αντώνιο Τζε, όπου εκτός από την βοήθεια του , των σαφώς επιστημονικών του συμβουλών και την καθοδήγηση του για την περάτωση της εργασίας αυτής , με στήριξε ηθικά και με βοήθησε να υλοποιήσω περισσότερα πράγματα που αφορούν την επιστημονική μου πορεία.

Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη και την βοήθεια όλων των μεταπτυχιακών φοιτητών του εργαστηρίου. Ειδικότερα θα ήθελα να ευχαριστήσω καταρχήν τον μεταπτυχιακό φοιτητή Ιωάννη Κωβαίο, που συνέβαλε τα μέγιστα στην κατασκευή του αυτοκινούμενου οχήματος που χρησιμοποιήθηκε για τα πειράματα καθώς και για τις τεχνικές και επιστημονικές συμβουλές που μου έδωσε όποτε τις χρειάστηκα. Επίσης θέλω να ευχαριστήσω την μεταπτυχιακή φοιτήτρια Αθανασία Πανουσοπούλου που χωρίς τις γνώσεις της και την έμπρακτη βοήθειά της στην ανάπτυξη του ασύρματου δικτύου αισθητηρών (υλοποίηση προγραμμάτων Contiki και LabView για τα Telos motes), δεν θα γινόταν εφικτή. Επιπροσθέτως η στήριξή της ηθικά ήταν άκρως καταλυτική. Επίσης δεν μπορώ να μην ευχαριστήσω τον μεταπτυχιακό φοιτητή Ιωάννη Στεργιόπουλο που καθόλη την διάρκεια της υλοποίησης της εργασίας στάθηκε δίπλα μου και με βοήθησε στην ανάπτυξη των προγραμμάτων LabView και μου έδωσε τις κατάλληλες υποδείξεις για να μπορέσω να ξεπεράσω οποιοδήποτε πρόβλημα παρουσιαζόταν. Εκτός αυτών, θέλω να ευχαριστήσω τους μεταπτυχιακούς φοιτητές Βασιλική Ρέππα, Μαριαλένα Βάγια και Θέμη Κολυβά που με βοήθησαν ηθικά στην διάρκεια εκπόνησης της εργασίας.

Τέλος η συμπαράσταση της οικογένειας μου και όλων των φίλων μου ήταν καθοριστική για την ολοκλήρωση της εργασίας αυτής

3

Page 4: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Αφιερωμένο

στην Μαριλένα

4

Page 5: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Κατάλογος περιεχομένων Πρόλογος..........................................................................................8

ΚΕΦΑΛΑΙΟ 1 Οδομετρία κινούμενων ρομπότ

1.1. Εισαγωγή.....................................................................................91.2. Είδη κινούμενων ρομπότ................................................................91.3. Οδομετρία .................................................................................101.4. Επίλογος....................................................................................11

ΚΕΦΑΛΑΙΟ 2 Κινηματικό μοντέλο τετράτροχων ρομπότ

2.1. Εισαγωγή...................................................................................122.2. Κινηματικό μοντέλο.....................................................................12

2.2.1. Παραδοχές του μοντέλου.....................................................12 2.2.2. Κινηματική........................................................................12 2.2.3. Παρατηρήσεις....................................................................15

2.3. Επίλογος...................................................................................15ΚΕΦΑΛΑΙΟ 3 Διατάξεις εύρεσης της θέσης κινούμενων ρομπότ

3.1. Εισαγωγή...................................................................................163.2. Εύρεση της θέσης του ρομπότ μέσω του κινηματικού μοντέλου...........16

3.2.1. Φίλτρο Kalman-Bucy...........................................................16 3.2.2. Τεχνική Markov (ML)...........................................................16 3.2.3. Monte Carlo τεχνική (MCL)...................................................17 3.2.4. Αντίστροφη Monte Carlo τεχνική (RMCL)................................17

3.3. Εύρεση της θέσης του ρομπότ χρησιμοποιώντας σόναρ......................173.4. Εύρεση της θέσης του ρομπότ χρησιμοποιώντας ασύρματα δίκτυα αισθητήρων (WSNs)...........................................................................183.5. Επίλογος....................................................................................19

ΚΕΦΑΛΑΙΟ 4 Υλοποίηση συστήματος εύρεσης της θέσης κινούμενων ρομπότ

4.1. Εισαγωγή...................................................................................204.2. Βασική ιδέα................................................................................204.3. Υλοποίηση ασύρματου δικτύου......................................................214.4. Υλοποίηση συσκευών υπερηχητικών παλμών...................................23

4.4.1. Πομπός υπερηχητικών παλμών..............................................23 4.4.2. Δέκτης υπερηχητικών παλμών...............................................25

4.5. Λειτουργίες των διατάξεων RF-Ultrasound.......................................27 4.5.1. Λειτουργίες της διάταξης RF-Ultrasound στο ρομπότ..................27 4.5.2. Λειτουργίες της διάταξης RF-Ultrasound στους κόμβους “φάρους”...................................................................................................27

4.6. Εύρεση της θέσης ρομπότ.............................................................314.7. Επίλογος....................................................................................31

ΚΕΦΑΛΑΙΟ 5 Εύρεση της θέσης ρομπότ με χρήση της διάταξης RF-Ultrasound

5.1. Εισαγωγή...................................................................................325.2. Επεξεργασία των δεδομένων που ανακτήθηκαν από την διάταξη RF-Ultrasound........................................................................................325.3. Τεχνική k-means Clustering και φιλτράρισμα των δεδομένων.............33

5

Page 6: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

5.3.1. k-means Clustering..............................................................33 5.3.2. Φιλτράρισμα αποτελεσμάτων- εύρεση της θέσης του ρομπότ (Winning Cluster)...........................................................................35

5.4. Επίλογος....................................................................................36ΚΕΦΑΛΑΙΟ 6 Έλεγχος της κίνησης κινούμενων ρομπότ

6.1. Εισαγωγή...................................................................................376.2. Σχεδίαση τροχιάς μέσω καμπυλών Bezier........................................376.3. Νόμος ελέγχου ανοιχτού βρόχου για την παρακολούθηση προκαθορισμένης τροχιάς....................................................................386.4. Νόμος ελέγχου κλειστού βρόχου (Pre-timed Controller)....................406.5. Επίλογος....................................................................................42

ΚΕΦΑΛΑΙΟ 7 Πειραματικά αποτελέσματα

7.1. Εισαγωγή...................................................................................437.2. Πειραματική διάταξη....................................................................43

7.2.1. Εισαγωγή...........................................................................43 7.2.2. Το ρομπότ που χρησιμοποιήθηκε για την εκτέλεση των πειραμάτων...................................................................................................43 7.2.3. Τοπολογία ασύρματου δικτύου αισθητήρων..............................49

7.3. Μελέτη του ελεγκτή ανοιχτού-βρόχου.............................................507.4. Μελέτη της διάταξης RF-Ultrasound και της τεχνικής clustering για την εύρεση της θέσης του ρομπότ..............................................................527.5. Μελέτη του ελεγκτή κλειστού-βρόχου.............................................577.6. Επίλογος....................................................................................58

ΚΕΦΑΛΑΙΟ 8 Σύνοψη

8.1. Εισαγωγή...................................................................................608.2. Γενικά συμπεράσματα...................................................................60

ΠΑΡΑΡΤΗΜΑ Α ΠΑΡΑΡΤΗΜΑ Β

Βιβλιογραφία....................................................................................98

6

Page 7: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Κατάλογος εικόνωνΕικόνα 1.1: Είδη κινούμενων ρομπότ......................................................9Εικόνα 1.2: Διάφορες μέθοδοι που υπάγονται στην οδομετρία ρομπότ........10Εικόνα 2.1: Κινηματική τετράτροχου ρομπότ..........................................13Εικόνα 2.2: Σχέσεις ταχυτήτων που εμφανίζονται σε τετράτροχο ρομπότ....14Εικόνα 3.1: Εύρεση της θέσης κινούμενων ρομπότ με χρήση σόναρ...........18Εικόνα 3.2: Παράδειγμα συσκευών που απαρτίζουν ένα σύστημα WSN.......19Εικόνα 4.1: Σχηματικό διάγραμμα του ασύρματου δικτύου αισθητήρων για την συγκεκριμένη εργασία...................................................................21Εικόνα 4.2: Άνω και κάτω όψη ολοκληρωμένης πλατφόρμας Telos mote.....22Εικόνα 4.3: Κυκλωματικό διάγραμμα πομπού υπερηχητικών σημάτων........24Εικόνα 4.4: Τυπωμένο κύκλωμα πομπού υπερηχητικών σημάτων..............24Εικόνα 4.5: Πομπός υπερηχητικών παλμών............................................25Εικόνα 4.6: Κυκλωματικό διάγραμμα δέκτη υπερηχητικών σημάτων...........25Εικόνα 4.7: Τυπωμένο κύκλωμα δέκτη υπερηχητικών σημάτων.................26Εικόνα 4.8: Δέκτης υπερηχητικών παλμών.............................................26Εικόνα 4.9: Παράδειγμα ψηφιοποιημένου υπερηχητικού σήματος (Στοιχεία: Φάρος 2, Απόσταση 3m).....................................................................28Εικόνα 4.10: Εστίαση στην αρχή της ψηφιοποίησης του υπερηχητικού σήματος του παραδείγματος................................................................29Εικόνα 4.11: Πειραματική σχέση που συνδέει το στοιχείο του πίνακα με την μετρούμενη απόσταση........................................................................30Εικόνα 5.1: Παράδειγμα τομής των κύκλων (L=3)...................................32Εικόνα 5.2: Παραδείγματα εφαρμογής της μεθόδου k-means clustering......33Εικόνα 5.3: Διαδικασία αλγορίθμων clustering........................................34Εικόνα 6.1: Κατασκευή μιας 4ης τάξης καμπύλης Bezier..........................38Εικόνα 6.2: Block διάγραμμα του Pre-timed ON-OFF ελεγκτή....................41Εικόνα 6.3: Κυκλικό σύστημα αναζήτησης συντεταγμένων.......................42Εικόνα 7.1: Βασικός σκελετός του UPAT οχήματος...................................43Εικόνα 7.2: Διάγραμμα των συσκευών και των συνδέσεων τους που απαρτίζουν το UPAT Rover...................................................................46Εικόνα 7.3: Το UPAT Rover..................................................................49Εικόνα 7.4: Τοπολογία ασύρματου δικτύου............................................50Εικόνα 7.5: Επιθυμητές τιμές ταχυτήτων στους αριστερούς και δεξιούς τροχούς...........................................................................................51Εικόνα 7.6: Νόμος ελέγχου ανοιχτού βρόχου για κίνηση του ρομπότ σε προκαθορισμένη τροχιά......................................................................51Εικόνα 7.7: Τεχνική Clustering για C=4.................................................53Εικόνα 7.8: Τεχνική Clustering για C=5.................................................53Εικόνα 7.9: Τεχνική Clustering για C=6.................................................54Εικόνα 7.10: Εύρεση της θέσης του ρομπότ καθώς κινείται σε μια προκαθορισμένη τροχιά......................................................................56Εικόνα 7.11: Παρακολούθηση τροχιάς χρησιμοποιώντας Pre-timed controller (Τροχιά 1)........................................................................................58Εικόνα 7.12: Παρακολούθηση τροχιάς χρησιμοποιώντας Pre-timed controller (Τροχιά 2)........................................................................................59

7

Page 8: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Πρόλογος

Βασικός σκοπός της διπλωματικής εργασίας αυτής είναι η ανάπτυξη ενός αξιόπιστου ολοκληρωμένου συστήματος εύρεσης της θέσης κινούμενων ρομπότ στο χώρο που εργάζονται. Αρχικά αναλύουμε τις παραμέτρους που διέπουν τα κινούμενα ρομπότ, στην συνέχεια αναπτύσσουμε το ολοκληρωμένο σύστημα μας και τέλος δοκιμάζουμε το σύστημα αυτό ελέγχοντας την κίνηση των ρομπότ. Ειδικότερα για το κάθε κεφάλαιο έχουμε τα εξής:

● Κεφάλαιο 1: Στο κεφάλαιο αυτό κάνουμε μια εισαγωγή στα κινούμενα ρομπότ και στα χαρακτηριστικά που διέπουν την οδομετρία αυτών.

● Κεφάλαιο 2: Στο κεφάλαιο αυτό γίνεται μελέτη του κινηματικού μοντέλου τετρά-τροχων ρομπότ που δεν μπορούν να στρέψουν τους τροχούς τους. Αναλύουμε τις παραμέτρους που διέπουν το μοντέλο καθώς και τις παραδοχές που έγιναν για την ανάπτυξη του αυτή.

● Κεφάλαιο 3: Στο κεφάλαιο αυτό γίνεται μια αναφορά σε προϋπάρχουσες τεχνικές που αφορούν την εύρεση της θέσης του ρομπότ σε εσωτερικούς χώρους. Αυτές οι τεχνικές είτε εξαρτώνται από το κινηματικό μοντέλο ή είναι αποτέλεσμα διαφόρων συστημάτων αισθητήρων που απαρτίζουν τα ρομποτικά συστήματα.

● Κεφάλαιο 4: Στο κεφάλαιο αυτό αναλύεται η ανάπτυξη του συστήματος εύρεσης της θέσης κινούμενων ρομπότ που βασίζεται στην αποστολή και λήψη υπερηχητικών και ραδιοφωνικών σημάτων. Αρχικά παρουσιάζεται η κεντρική ιδέα του συστήματος και στην συνέχεια αναφερόμαστε τόσο στο υλικό αλλά και στο λειτουργικό μέρος του συστήματος εύρεσης της θέσης που αναπτύξαμε.

● Κεφάλαιο 5: Στο κεφάλαιο αυτό παρουσιάζουμε την μέθοδο επεξεργασίας των απο-τελεσμάτων που μας δίνει η διάταξη RF-Ultrasound. Αρχικά γίνεται ανάλυση της τεχνικής k-means clustering που μας δίνει της πιθανές θέσεις του κινούμενου ρομπότ και στην συνέχεια γίνεται αναφορά στην μέθοδο επιλογής του cluster που μας δίνει την ακριβή θέση του.

● Κεφάλαιο 6: Στο κεφάλαιο αυτό γίνεται υλοποίηση βασικών ελεγκτών για την παρακολούθηση τροχιάς από το ρομπότ. Αρχικά παρουσιάζεται η μέθοδος δημιουργίας επιθυμητών τροχιών και στην συνέχεια παρουσιάζονται ο νόμος ελέγχου ανοιχτού βρόχου και ο νόμος ελέγχου κλειστού βρόχου ώστε να μπορέσει το ρομπότ να ακολουθήσει την επιθυμητή τροχιά.

● Κεφάλαιο 7: Στο κεφάλαιο αυτό παρουσιάζονται τα αποτελέσματα από πειράματα που έγιναν για τις διατάξεις που υλοποιήσαμε. Αρχικά αναλύονται οι συσκευές που χρησιμοποιήθηκαν στα πειράματα καθώς και οι παράμετροι και τα χαρακτηριστικά που διέπουν τα πειράματα αυτά και στην συνέχεια γίνεται ανάλυση των αποτελεσμάτων και εξαγωγή χρήσιμων συμπερασμάτων.

● Κεφάλαιο 8: Στο κεφάλαιο αυτό γίνεται μια σύνοψη των αποτελεσμάτων.

● ΠΑΡΑΡΤΗΜΑ Α και Β : Παρουσιάζονται οι αλγόριθμοι που υλοποιήθηκαν στα πλαίσια της διπλωματικής εργασίας.

8

Page 9: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

ΚΕΦΑΛΑΙΟ 1

Οδομετρία κινούμενων ρομπότ

1.1. Εισαγωγή

Στο παρόν κεφάλαιο γίνεται μια περιληπτική εισαγωγή στα κινούμενα ρομπότ. Παρουσιάζονται τα βασικά στοιχεία των ρομπότ αυτών για να επιτύχουμε την πραγμάτωση της οδομετρίας τους.

1.2. Είδη κινούμενων ρομπότ

Μέχρι τώρα έχουν αναπτυχθεί πολλές διατάξεις ρομποτικών συστημάτων. Ανάλογα με την εργασία που εκτελούν και στο περιβάλλον που την υλοποιούν έχουν παρουσιασθεί στην βιβλιογραφία πολλές διατάξεις κίνησης. Οι περισσότερες από αυτές έχουν εμπνευστεί από την ανθρώπινη ζωή, όπως είναι φυσικό. Υπάρχουν, λοιπόν ρομπότ που παραμένουν σταθερά σε ένα σημείο (πχ. ρομποτικοί βραχίονες) και εκτελούν εργασίες σε ένα σταθερό περιβάλλον. Υπάρχουν ρομπότ που κινούνται στον αέρα και τέλος υπάρχουν ρομπότ που εκτελούν εργασίες στο έδαφος και κινούνται με την βοήθεια τροχών ή ποδιών. Η πρώτη κατηγορία ορίζει τα μη κινούμενα ρομπότ και οι άλλες δύο τα κινούμενα. Επίσης κάθε μια από αυτές τις κατηγορίες απαρτίζεται από διαφορετικά ρομπότ ανάλογα με το πλήθος των μεθόδων κίνησης που χρησιμοποιούν. Έχουμε λοιπόν ρομπότ που χρησιμοποιούν, ένα ή περισσότερους βραχίονες, έλικες, τροχούς ή πόδια, ανάλογα με τους βαθμούς ελευθερίας που θέλουμε να έχουν , ώστε να εκτελούνται σωστά οι εργασίες που θέλουμε τα ρομπότ να υλοποιούν κάθε φορά. Λόγω της διαφορετικότητας των ρομπότ, σε κάθε περίπτωση, υπάρχει διαφορετική αντιμετώπιση του προβλήματος και ανάλυση των κινηματικών δυνάμεων που διέπουν το κάθε ρομπότ, ώστε να μπορέσουμε να αναλύσουμε και να ελέγξουμε τελικώς την κίνηση τους.

9

Εικόνα 1.1: Είδη κινούμενων ρομπότ

Page 10: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

1.3. Οδομετρία

Ο όρος “οδομετρία” περικλείει τα βασικά χαρακτηριστικά που πρέπει να αναλύσει κανείς ώστε να επιτύχει τον έλεγχο κινούμενων ρομπότ (Εικόνα 1.2). Για να γίνει αυτό, θα πρέπει λοιπόν αρχικά να βρεθεί αναλυτικά το κινηματικό ή και το δυναμικό μοντέλο του ρομπότ, στη συνέχεια με βάση αυτό ή με άλλες διατάξεις να βρεθεί μια μέθοδος μέτρησης της κίνησης του ρομπότ, ουσιαστικά να βρεθεί η θέση του ρομπότ στο χώρο που κινείται και τέλος έχοντας αναλύσει τα παραπάνω να βρεθεί ένας νόμος ελέγχου της κίνησης των ρομπότ, ώστε να μπορεί το τελευταίο να εκτελέσει την εργασία που θέλουμε.

Ειδικότερα, το κινηματικό μοντέλο είναι πολύπλοκο και έχει τα εξής χαρακτηριστικά:

Δυναμικό: Αναφέρεται στο ότι χρειαζόμαστε προηγούμενες τιμές της θέσης του ρομπότ ώστε να υπολογίσουμε την ταχύτητα και τελικώς την καινούργια θέση του.

Μη γραμμικό: Αναφέρεται στο ότι χρησιμοποιούμε μη γραμμικά στοιχεία για να αναλύσουμε την κίνηση του ρομπότ.

Μη ολονομικό: Αναφέρεται στο ότι το ρομπότ δεν μπορεί να κινηθεί κατά την κάθετη διεύθυνση των τροχών του.

Συζευγμένο: Αναφέρεται στο ότι οι έξοδοι του συστήματος εξαρτώνται από περισσότερες από μία εισόδους.

Υποενεργοποιούμενο: Αναφέρεται στο ότι στο σύστημα μας έχουμε περισσότερες εξόδους από ότι εισόδους.

Για το λόγο ότι το αναλυτικό κινηματικό μοντέλο είναι δύσκολο να βρεθεί, συχνά γίνονται κάποιες παραδοχές που το απλοποιούν. Επίσης, οι μέθοδοι που έχουν αναπτυχθεί για την εύρεση της θέσης του ρομπότ χωρίζονται σε δύο γενικές κατηγορίες:

Στην εύρεση της θέσης του ρομπότ σε εξωτερικούς χώρους

Στην εύρεση της θέσης του ρομπότ σε εσωτερικούς χώρους

10

Εικόνα 1.2: Διάφορες μέθοδοι που υπάγονται στην οδομετρία ρομπότ

Page 11: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Τέλος, όπως συμβαίνει σε όλα τα συστήματα μπορεί να υπάρχουν δύο βασικοί νόμοι ελέγχου:

Ανοιχτού βρόχου: Κάνοντας χρήση του αντίστροφου κινηματικού μοντέλου και ξέροντας την τροχιά που θα ακολουθήσει το ρομπότ, υπολογίζουμε εξαρχής τις ταχύτητες που θα αναπτύξει το ρομπότ σε κάθε χρονική στιγμή.

Κλειστού βρόχου: Ξέροντας την θέση του ρομπότ κάνουμε ανατροφοδότηση στο σύστημα ελέγχου ώστε να οδηγηθεί στην θέση που θέλουμε.

1.4. Επίλογος

Στο κεφάλαιο αυτό παρουσιάσθηκαν τα είδη των ρομπότ και οι βασικές αρχές που διέπουν την οδομετρία τους. Στην διπλωματική εργασία αυτή θα ασχοληθούμε με την ανάλυση κινούμενων ρομπότ που ενεργούν στο έδαφος και κινούνται με τροχούς. Επίσης θα εφαρμοσθεί μια διάταξη εύρεσης της θέσης τους σε εσωτερικούς χώρους και με βάση αυτών θα αναπτυχθούν νόμοι ελέγχου της κίνησης των.

11

Page 12: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

ΚΕΦΑΛΑΙΟ 2

Κινηματικό μοντέλο τετράτροχων ρομπότ

2.1. Εισαγωγή

Στο κεφάλαιο αυτό θα αναλύσουμε την κινηματική συμπεριφορά τετράτροχων ρομπότ (2 ζευγάρια τροχών για κάθε πλευρά) που δεν έχουν την δυνατότητα στρέψης. Θα βρεθούν οι ταχύτητες που ενεργούν πάνω σε αυτό με τελικό σκοπό την ανάπτυξη ενός ικανοποιητικού κινηματικού μοντέλου.

2.2. Κινηματικό μοντέλο

Όπως αναφέρθηκε στην εισαγωγή αυτού του κεφαλαίου θα αναπτύξουμε το κινηματικό μοντέλο τετράτροχων ρομπότ χωρίς τιμόνι.[1] Αυτού του είδους τα ρομπότ μοιάζουν με τα ερπιστριοφόρα οχήματα τα οποία πραγματοποιούν την περιστροφική κίνηση λόγω της ύπαρξης τριβής και την ολίσθηση των τροχών. Στην ουσία το μοντέλο των ρομπότ αυτών αποτελεί μια πιο γενική μορφή του μοντέλου δίτροχων ρομπότ στο οποίο η ολίσθηση των τροχών συνήθως δεν λαμβάνεται υπόψη.

2.2.1. Παραδοχές του μοντέλου

Για να μπορέσουμε να απλοποιήσουμε το κινηματικό μοντέλο θεωρούμε ορισμένες παραδοχές:

Μόνο η κίνηση στο επίπεδο λαμβάνεται υπόψη.

Οι ταχύτητες στην ευθύγραμμη και περιστροφική κίνηση παραμένουν χαμηλές.

Η επαφή μεταξύ των τροχών και της επιφάνειας γίνεται μόνο σε ένα σημείο.

Η οριζόντια ολίσθηση των τροχών θεωρείται μηδενική.

2.2.2. Κινηματική

Αρχικά, θεωρούμε ένα κινούμενο όχημα σε ένα πεδίο δύο διαστάσεων με κύριο σύστημα συντεταγμένων Χ ,Υ . Για να ορίσουμε την κίνηση του ρομπότ θεωρούμε ένα

τοπικό σύστημα συντεταγμένων στο κέντρο μάζας του ρομπότ (COM). Αν u≡[ux u y ]T∈ℜ2

είναι το διάνυσμα ταχυτήτων του κέντρου μάζας ως προς το τοπικό σύστημα

συντεταγμένων με u x ,uy την οριζόντια και κάθετη ταχύτητα του οχήματος αντιστοίχως, τότε

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

q≡[xyθ ]=[

cos θ −sin θ 0sin θ cosθ 0

0 0 1 ] [ux

u y

ω ] , (2.1)

όπου q∈ℜ3

, ορίζεται ως το γενικευμένο διάνυσμα ταχυτήτων και ω η γωνιακή ταχύτητα.

12

Page 13: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Για να βρούμε το ολοκληρωμένο κινηματικό μοντέλο του τετράτροχου οχήματος θα πρέπει να λάβουμε υπόψη τις ταχύτητες που σχετίζονται με το κύριο σύστημα συντεταγμένων. Όπως εύκολα αποδεικνύεται από την Εικόνα 2.2 έχουμε τις παρακάτω εξισώσεις:

u L≡u1x =u2x , uR≡u3x =u4x ,u F≡u1y=u3y , uB≡u2y =u4y , (2.2)

όπου u L , uR η οριζόντια συνιστώσα της ταχύτητας των αριστερών και δεξιών τροχών

αντίστοιχα και uF , uB η κάθετη συνιστώσα της ταχύτητας των μπροστινών και πίσω

τροχών αντίστοιχα.

Εύκολα διαπιστώνει κανείς πως στο κινηματικό μας μοντέλο μπορούμε να

χρησιμοποιήσουμε σαν στοιχεία ελέγχου τις ταχύτητες u L , uR και να ελέγξουμε την

οριζόντια ταχύτητα και την γωνιακή ταχύτητα του οχήματος, χρησιμοποιώντας τις παρακάτω εξισώσεις.

u x=u R+uL

2, ω=

uR−uL

L, (2.3)

όπου L η απόσταση μεταξύ των αριστερών και δεξιών τροχών, όπως φαίνεται στην Εικόνα2.2.

Στο σημείο αυτό θα πρέπει να σημειώσουμε πως οι εξισώσεις (2.3) ισχύουν αν δεν υπάρχει οριζόντια ολίσθηση, αλλιώς θεωρούνται απλώς εκτιμήσεις. Επίσης η σταθερά L

είναι δύσκολο να υπολογισθεί ή να μετρηθεί και μόνο μέσω πειραμάτων μπορεί να γίνει μια ικανοποιητική προσέγγιση της.

13

Εικόνα 2.1: Κινηματική τετράτροχου ρομπότ

Page 14: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Όσο αναφορά την ταχύτητα u y ,όπου ουσιαστικά υποδηλώνει την ολίσθηση των τροχών

ως προς τον κάθετο άξονα του οχήματος, είναι δύσκολο να ελεγχθεί. Για να ξεπεραστεί το πρόβλημα αυτό, η ταχύτητα αυτή μπορεί να βρεθεί από την σχέση :

u yx ICR=0 , (2.4)

όπου η x ICR ορίζεται σαν την οριζόντια συνιστώσα του στιγμιαίου κέντρου περιστροφής του

ρομπότ (ICR) στο τοπικό σύστημα συντεταγμένων. Αυτή η εξίσωση υποδηλώνει μια μη ολονομική σταθερά οπότε μπορεί να γραφεί σε μορφή Pfaffian (2.5).

[−sin θ cosθ xICR][ x y θ ]=Α q q=0 , (2.5)

όπου χρησιμοποιήθηκε η σχέση (2.1).

Ισχύει πως το γενικευμένο διάνυσμα ταχυτήτων q βρίσκεται στο κενό διάστημα του A , οπότε μπορεί να γραφεί πως:

q=S qη , (2.6)

όπου η∈ℜ2 είναι το στοιχείο ελέγχου στο κινηματικό επίπεδο και προσδιορίζεται από την

παρακάτω σχέση:

η≡[ux ω]Τ ,

(2.7)και S∈ℜ

3x2 είναι η μήτρα

S q=[cosθ xICRsin θsin θ −x ICRcosθ

0 1 ] (2.8)

14

Εικόνα 2.2: Σχέσεις ταχυτήτων που εμφανίζονται σε τετράτροχο ρομπότ

L

Page 15: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

για την οποία ισχύει

S qTAq T=0 (2.9)

Η συνιστώσα x ICR του στιγμιαίου κέντρου περιστροφής δεν μπορεί να υπολογισθεί

αναλυτικά ή να μετρηθεί όποτε βάζουμε μια πειραματική εκτίμηση της. Έτσι το τελικό κινηματικό μοντέλο θα έχει την παρακάτω μορφή.

q≡[xyθ ]=[

cos θ x ICR sin θsin θ −xICR cosθ

0 1 ][ux

ω ] (2.10)

2.2.3. Παρατηρήσεις

Η σχέση (2.10) μας δίνει το κινηματικό μοντέλο ενός τετρακίνητου οχήματος το οποίο δεν έχει κάποια διάταξη στρέψης. Το μοντέλο αυτό μπορεί να χρησιμοποιηθεί για να υλοποιηθεί κάποιος νόμος ελέγχου. Για το λόγο ότι ισχύει dim ηdim q , το σύστημα του τετράτροχου ρομπότ είναι υποενεργοποιούμενο. Επιπροσθέτως, λόγω τις σταθεράς (2.5) το σύστημα αυτό είναι μη-ολονομικό.

2.3. Επίλογος

Σε αυτό το κεφάλαιο βρέθηκε αναλυτικά το κινηματικό μοντέλο ενός τετράτροχου ρομπότ με βάση κάποιων παραδοχών. Αυτό το μοντέλο μπορεί να φανεί χρήσιμο στην δημιουργία ενός αξιόπιστου νόμου ελέγχου για την κίνηση του ρομπότ σύμφωνα με μια επιθυμητή τροχιά.

15

Page 16: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

ΚΕΦΑΛΑΙΟ 3

Διατάξεις εύρεσης της θέσης κινούμενων ρομπότ

3.1. Εισαγωγή

Σκοπός του κεφαλαίου είναι μια γενική αναφορά στις ήδη εφαρμοσμένες διατάξεις εύρεσης της θέσης κινούμενων ρομπότ σε εσωτερικούς χώρους. Αυτές οι διατάξεις βασίζονται είτε στο κινηματικό μοντέλο, είτε στην υλοποίηση συστημάτων αισθητήρων ενσύρματων ή ασύρματων. Η εύρεση της θέσης ενός ρομπότ είναι ένα κρίσιμο θέμα για την περαιτέρω ανάπτυξη καλύτερων νόμων ελέγχου και για την πλήρη αυτονομία των ρομποτικών συστημάτων. Παρόλα αυτά είναι δύσκολο να βρεθεί η θέση του ρομπότ λόγω αρχικά της αβεβαιότητας του κινηματικού μοντέλου. Είδαμε στο προηγούμενο κεφάλαιο πως κάποιες σταθερές του συστήματος είναι απλώς προσεγγίσεις και υπάρχει ένα σφάλμα σε αυτές που διαδίδεται προσθετικά. Επίσης χρησιμοποιώντας αισθητήρες για τον υπολογισμό της ταχύτητας του ρομπότ (encoders), μια λάθος μέτρηση λόγω θορύβου, διαδίδεται στο σύστημα και έχει αυξητική συμπεριφορά. Γι αυτό το λόγο γίνονται προσπάθειες για την εύρεση της απόλυτης θέσης του ρομπότ μέσω ασύρματων δικτύων που υλοποιούνται μέσα στο χώρο που κινείται το ρομπότ.

3.2. Εύρεση της θέσης του ρομπότ μέσω του κινηματικού μοντέλου

Στην βιβλιογραφία έχουν αναφερθεί πολλές αξιόπιστες τεχνικές εύρεσης της θέσης του ρομπότ χρησιμοποιώντας το κινηματικό μοντέλο. [4] Είναι οι πρώτες μέθοδοι που χρησιμοποιήθηκαν και είναι σκόπιμο να αναφέρουμε κάποιες ευρέως χρησιμοποιούμενες τεχνικές.

3.2.1. Φίλτρο Kalman-Bucy

Η πιο απλή μέθοδος που υιοθετήθηκε αρχικά για τον εντοπισμό της θέσης του ρομπότ είναι το φίλτρο Kalman (Kalman-Bucy filter). Το φίλτρο αυτό λαμβάνει υπόψη την αβεβαι-ότητα στις μετρήσεις κάνοντας χρήση κατανομών Gauss και δίνει όλες τις πιθανές πυκνότητες χρησιμοποιώντας την τωρινή θέση του ρομπότ, την οδομετρία (κινηματικό μοντέλο) και της απαραίτητες μετρήσεις των αισθητήρων που υπολογίζουν τις χρήσιμες ταχύτητες του ρομπότ που χρειάζονται. Λόγω φυσικά της αβεβαιότητας του κινηματικού μοντέλου της και την πολυπλοκότητα της κίνησης των ρομπότ η τεχνική αυτή δεν δίνει τα αναμενόμενα αποτελέσματα. Παρόλα αυτά μας δίνει μια πρώτη εκτίμηση της θέσης του ρομπότ.

3.2.2. Τεχνική Markov (ML)

Μια παρόμοια τεχνική με τα φίλτρα Kalman είναι η τεχνική Markov Localization. [12] Κάνει χρήση της αβεβαιότητας και δίνει καλύτερα αποτελέσματα από πριν γιατί χρησιμοποιεί όλα τα είδη κατανομών. Παρόλο όμως που η τεχνική αυτή μας δίνει μια ευελιξία ως προς την καλύτερη εκτίμηση της θέσης του ρομπότ επιβαρύνει πολύ τους υπολογισμούς.

16

Page 17: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

3.2.3. Monte Carlo τεχνική (MCL)

Μια έκδοση της τεχνικής Markov είναι η τεχνική Monte Carlo Localization. [13] Βασίζεται στην απεικόνιση μέσω δειγμάτων και σε επαναδειγματοληπτικούς αλγόριθμους που αφορούν αρχές belief propagation. Τα δεδομένα των αισθητήρων και της οδομετρίας ανανεώνονται όπως και στην τεχνική Markov αλλά το βασικό μειονέκτημα της τεχνικής αυτής είναι ότι αποτυγχάνει στην εύρεση της θέσης όταν δεν μπορεί να παρατηρηθεί μια εκτιμώμενη θέση και να αναλυθεί περαιτέρω.

3.2.4. Αντίστροφη Monte Carlo τεχνική (RMCL)

Η αντίστροφη Monte Carlo τεχνική είναι μια υβριδική μέθοδος που συνδυάζει την Monte Carlo τεχνική και την Markov τεχνική ώστε να μπορέσει να μειώσει τα μειονεκτήματα και να κάνει χρήση των προτερημάτων των δύο τεχνικών αυτών .[9]

Όλες οι παραπάνω τεχνικές όπως προείπαμε προσπαθούν να εκτιμήσουν την θέση του ρομπότ μέσα σε ένα χώρο κάνοντας χρήση του κινηματικού μοντέλου. Βασίζονται στην δυνατότητα πρόβλεψης της θέσης χρησιμοποιώντας μεθόδους πιθανοθεωρίας και να παραβλέψουν την αβεβαιότητα του κινηματικού μοντέλου, αλλά δεν μπορούν να βρουν την απόλυτη θέση του ρομπότ. Αυτό συμβαίνει γιατί χρησιμοποιούν αισθητήρες που υπολογίζουν αλλαγές που συμβαίνουν πάνω στο ρομπότ και όχι σε σύγκριση με το χώρο. Για τον λόγω αυτό μπορούν να χρησιμοποιηθούν αξιόπιστα για την εκτίμηση της θέσης ενός ρομπότ και όχι για την εύρεση της απόλυτης θέσης του ρομπότ.

3.3. Εύρεση της θέσης του ρομπότ χρησιμοποιώντας σόναρ

Η ανάγκη για την εύρεση της απόλυτης θέσης του ρομπότ στο χώρο, ώθησε στην δημιουργία συστημάτων αισθητήρων που θα μπορέσουν να αντιμετωπίσουν τα προβλήματα της αβεβαιότητας του κινηματικού μοντέλου και θα στηριχθούν στην αλληλεπίδραση του ρομπότ και του χώρου που κινείται.

Στην βιβλιογραφία αναφέρονται συχνά τεχνικές που βασίζονται σε σόναρ. [5] ,[11] Η κεντρική ιδέα είναι να μετρηθούν οι χρόνοι διάδοσης υπερηχητικών σημάτων που ταξιδεύουν από το ρομπότ μέχρι κάποιο εμπόδιο στο χώρο και αντίστροφα. Ο όρος που συχνά εμφανίζεται για να δηλώσει αυτήν την διαδικασία είναι “Time of flight” (TOF) και προσδιορίζει ακριβώς αυτές τις τεχνικές.

Αυτό που ουσιαστικά γίνεται είναι η τοποθέτηση σόναρ (πομπούς και δέκτες υπερηχητικών σημάτων) περιμετρικά στο ρομπότ όπως φαίνεται στην Εικόνα 3.1 και συνεχή διάδοση των κυμάτων αυτών στο χώρο. Με αυτό το τρόπο χρησιμοποιώντας διάφορες τεχνικές, μετριέται η απόσταση του ρομπότ από αντικείμενα που βρίσκονται στο χώρο. Στην συνέχεια με βάση αυτών των αποστάσεων βρίσκεται η απόλυτη θέση του ρομπότ.

Η βασική προϋπόθεση για να λειτουργήσει μια τέτοια μέθοδος, που είναι και το σημαντικότερο μειονέκτημα, είναι η γνώση του χώρου και η ύπαρξη αντικειμένων (εμποδίων) μέσα σε αυτό. Θα πρέπει λοιπόν να είναι από πριν γνωστό σε ποια θέση βρίσκονται τα αντικείμενα και ποιο είναι το σχήμα τους. Με λίγα λόγια οι μέθοδοι αυτές χρησιμοποιούνται σε ένα στατικό περιβάλλον. Συνήθως όμως τα ρομπότ κινούνται σε ένα

17

Page 18: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

δυναμικό περιβάλλον που ο χώρος καθώς και η ύπαρξη ή μη αντικειμένων παραμένουν άγνωστα. Για το λόγο αυτό θα πρέπει να χρησιμοποιηθούν άλλες τεχνικές.

3.4. Εύρεση της θέσης του ρομπότ χρησιμοποιώντας ασύρματα δίκτυα αισθητήρων (WSNs)

Για να ξεπεραστούν τα μειονεκτήματα των τεχνικών που χρησιμοποιούν σόναρ πάνω στο ρομπότ, σε πρόσφατες έρευνες χρησιμοποιήθηκαν τεχνικές που υλοποιούν ασύρματα δίκτυα αισθητήρων (WSNs) (Εικόνα 3.2). [10],[14] ,[16],[17]Με την χρήση αυτών των δικτύων γίνεται μια αλληλεπίδραση του ρομπότ με τον χώρο που εργάζεται. Τοποθετούνται αισθητήρες, όχι μόνο στο ρομπότ αλλά και στο χώρο, οι οποίοι επικοινωνούν μέσω της δημιουργίας ενός ασύρματου δικτύου. Επιπροσθέτως, η ανάπτυξη της τεχνολογίας επέτρεψε την δημιουργία πολύ μικρών συσκευών που φέρουν μια ικανοποιητική υπολογιστική ισχύ και δυνατότητες ασύρματης δικτύωσης. Αυτό έδωσε το έναυσμα για την υλοποίηση όλο και πιο λειτουργικών και αξιόπιστων ασύρματων δικτύων αισθητήρων. [15] Παρακάτω βλέπουμε τα βασικά πλεονεκτήματα των δικτύων αυτών:

● Συνδυάζουν σε μια ενιαία πλατφόρμα:

1. Αισθητήρες

2. Επεξεργασία δεδομένων

3. Δυνατότητες επικοινωνίας

● Οι κόμβοι του δικτύου είναι:

1. Αυτόνομοι

2. Αυτοελεγχόμενοι

3. Αυτορυθμιζόμενοι

4. Ανεξάρτητοι από το δίκτυο

18

Εικόνα 3.1: Εύρεση της θέσης κινούμενων ρομπότ με χρήση σόναρ

Page 19: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

● Τα δίκτυα αυτά αυξάνουν την αξιοπιστία των συσκευών επόπτευσης του χώρου με σκοπό την μείωση της ανθρώπινης παρουσίας στο χώρο που εργάζονται τα ρομπότ.

● Η εγκατάσταση των δικτύων αυτών και η εύκολη συντήρησή τους μειώνει το κόστος που είναι βασικός παράγοντας σε όλες τις εφαρμογές.

Η βασική ιδέα των τεχνικών που χρησιμοποιούν τα WSNs είναι η τοποθέτηση τέτοιων συσκευών (κόμβων) στο χώρο που κινείται το ρομπότ και άλλη μία πάνω σε αυτό (κεντρικός κόμβος). Με αυτό τον τρόπο δημιουργείται ένα ασύρματο δίκτυο που μέσα σε αυτό ανταλλάσσονται πληροφορίες και δεδομένα με την χρήση σημάτων ραδιοσυχνοτήτων (RF).

Η πιο διαδεδομένη τεχνική είναι η Received Signal Strength Indicator (RSSI) μέθοδος εύρεσης της απόλυτης θέσης του ρομπότ. [6] [28][29]Σύμφωνα με την τεχνική αυτή το ρομπότ χρησιμοποιεί ένα πομπό RF σημάτων και οι υπόλοιποι κόμβοι του δικτύου που βρίσκονται σε γνωστά σημεία του χώρου μετρούν την ισχύ του σήματος αυτού. Έτσι μετρούν την απόσταση τους από το ρομπότ. Στην συνέχεια γίνεται μια ανάλυση των δεδομένων αυτών ώστε να γίνει γνωστή η θέση του ρομπότ.

Στο σημείο αυτό να τονίσουμε ότι έρευνες έχουν παρουσιασθεί για την χρησιμοποίηση τέτοιων ασύρματων δικτύων αισθητήρων στα οποία δεν είναι γνωστή η θέση των κόμβων Παρόλα αυτά με διάφορες τεχνικές κάνουν μια υποτυπώδης “χαρτογράφηση” του χώρου και γίνεται δυνατή η εύρεση των κόμβων. [10], [11] Αυτό δίνει την δυνατότητα για μια πλήρης εφαρμογή των τεχνικών σε ένα δυναμικό περιβάλλον. [19],[20]

3.5. Επίλογος

Στο κεφάλαιο αυτό παρουσιάσθηκαν κάποιες μέθοδοι για την εύρεση της θέσης ρομπότ σε ένα εσωτερικό χώρο οι οποίες είτε χρησιμοποιούν την οδομετρία, είτε άλλους αισθητήρες. Είδαμε τα μειονεκτήματα και τα πλεονεκτήματα αυτών και έγινε αντιληπτή η δυσκολία αλλά και συνάμα η καθοριστική σημασία του προβλήματος της εύρεσης της απόλυτης θέσης των ρομπότ.

19

Εικόνα 3.2: Παράδειγμα συσκευών που απαρτίζουν ένα σύστημα WSN

Page 20: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

ΚΕΦΑΛΑΙΟ 4

Υλοποίηση συστήματος εύρεσης της θέσης κινούμενων ρομπότ

4.1. Εισαγωγή

Σε αυτό το κεφάλαιο θα αναλυθεί η υλοποίηση μιας αξιόπιστης διάταξης για την εύρεση της απόλυτης θέσης ενός κινούμενου ρομπότ σε ένα εσωτερικό χώρο. Αρχικά θα δοθεί η βασική ιδέα για την ανάπτυξη του συστήματος και στην συνέχεια θα δειχθεί το υλικό και του λειτουργικό μέρος για την υλοποίηση της συγκεκριμένης διάταξής.

4.2. Βασική ιδέα

Η βασική ιδέα είναι η εύρεση ενός τρόπου σύμπραξης ραδιοφωνικών σημάτων (RF) και υπερηχητικών παλμών (Ultrasound), ώστε να γίνει συνδυασμός των προηγούμενων τεχνικών που αναφέρθηκαν στο κεφάλαιο 3. Όπως είναι γνωστό τα δύο σήματα ταξιδεύουν στο χώρο με διαφορετικές ταχύτητες. Τα ραδιοφωνικά σήματα διαδίδονται με την ταχύτητα του φωτός, περίπου 300km/sec, ενώ τα υπερηχητικά με την ταχύτητα του ήχου, περίπου 343m/sec. Κάνοντας χρήση του φαινομένου αυτού, μπορεί κάνεις να υπολογίσει την απόσταση μεταξύ δύο αντικειμένων. Για να γίνει αυτό θα πρέπει να εφοδιαστούν τα αντικείμενα με πομπό και δέκτη τέτοιων σημάτων και να γίνουν οι απαραίτητες ρυθμίσεις και λειτουργίες.

Σύμφωνα λοιπόν με τις ανάγκες της εφαρμογής θα πρέπει να κατασκευαστεί ένα ασύρματο δίκτυο αισθητήρων (Εικόνα 4.1), [4] [7] [8] όπου την αποστολή και λήψη των ραδιοφωνικών σημάτων θα τις εκτελεί το ίδιο το δίκτυο, ενώ την αποστολή και λήψη των υπερηχητικών παλμών θα τις εκτελούν κατάλληλοι αισθητήρες συνδεδεμένοι στο δίκτυο αυτό. Για την χρήση της εφαρμογής στην εύρεση της θέσης του ρομπότ θα πρέπει να τοποθετηθεί ένας κόμβος πάνω στο ρομπότ που θα συνδέεται με τον πομπό υπερηχητικών σημάτων. Επίσης θα πρέπει να τοποθετηθούν στο χώρο σε σταθερά σημεία άλλοι κόμβοι που θα φέρουν δέκτες υπερηχητικών σημάτων. Το ρομπότ θα αποστέλλει κάθε μια χρονική στιγμή ένα ραδιοφωνικό σήμα κι ένα υπερηχητικό παλμό ταυτόχρονα και στην συνέχεια με βάση την διαφορά άφιξης των δύο σημάτων, ο κάθε κόμβος στο χώρο (“φάρος”) θα υπολογίζει την απόσταση του από το ρομπότ. Τελικά οι υπολογισμένες αποστάσεις θα αποστέλλονται πίσω στον κεντρικό κόμβο (ρομπότ) για επεξεργασία αυτών και υπολογισμό της απόλυτης θέσης του στο χώρο.

Όπως γίνεται φανερό η ανάπτυξη του υλικού που χρειάζεται για την συγκεκριμένη εφαρμογή καθώς και το λειτουργικό μέρος, για την επεξεργασία των σημάτων και για την επεξεργασία των δεδομένων στον κεντρικό κόμβο, αποτελούν κρίσιμα σημεία για την σωστή λειτουργία της τεχνικής. Παρακάτω λοιπόν θα δούμε την ανάπτυξη του υλικού αναλυτικά και τα χαρακτηριστικά που το διέπουν, καθώς και τις λειτουργίες που υλοποιεί το ασύρματο δίκτυο αισθητήρων.

20

Page 21: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

4.3. Υλοποίηση ασύρματου δικτύου

Σύμφωνα με τις ανάγκες τις εφαρμογής για την επικοινωνία του ρομπότ με το στατικό ασύρματο δίκτυο αισθητήρων θα πρέπει να χρησιμοποιηθούν μικρής κλίμακας ολοκλη-ρωμένες πλατφόρμες οι οποίες θα παρέχουν πρωτόκολλο επικοινωνίας σύμφωνο με το IEEE 802.15.14 για μικρής κλίμακας δικτύων τοπικών περιοχών (Low Rate Personal Area Networks, LR-PAN) [21]και θα παρέχουν ένα λειτουργικό (Contiki, TinyOS), ικανό όχι μόνο για την αποτελεσματική διαχείριση των πόρων της πλατφόρμας αλλά και για την εφαρμογή ενός ολοκληρωμένου micro-IP πρωτοκόλλου επικοινωνίας.

Όλες τις παραπάνω δυνατότητες μας τις παρέχουν οι ολοκληρωμένες πλατφόρμες Telos motes (Εικόνα 4.2). [23,[24]]Οι πλατφόρμες Telos motes αναπτύχθηκαν στο πανεπιστήμιο Berkeley της Καλιφόρνιας και αποτελούν μια αξιόπιστη λύση στην ανάπτυξη ασύρματων δικτύων αισθητήρων έχοντας χαμηλή κατανάλωση ενέργειας και υψηλό ρυθμό μετάδοσης δεδομένων. Τα βασικά τεχνικά χαρακτηριστικά των συσκευών αυτών φαίνονται στον πίνακα 1. Τα motes καθώς και οι συσκευές που μπορούν να συνδεθούν στην επέκταση σύνδεσης τροφοδοτούνται είτε με ένα ζευγάρι ΑΑ μπαταριών που τοποθετούνται σε μια προκατασκευασμένη θήκη, είτε μέσω της θύρας USB. Επίσης ο προγραμματισμός ή η ανάκτηση των δεδομένων γίνεται μέσω της θύρας USB που λειτουργεί ως σειριακή θύρα.

Το βασικό πλεονέκτημα των συσκευών αυτών είναι ο microcontroller MSP430 της Texas Instruments, στον οποίο οφείλεται η χαμηλή κατανάλωση ενέργειας. Επίσης δίνει την δυνατότητα μετατροπής αναλογικών σημάτων σε ψηφιακά μέσω των 8-pin ADC και 2-pin DAC που παρέχει. Στο σημείο αυτό να αναφέρουμε πως οι αισθητήρες (δέκτης ή λήπτης υπερηχητικών παλμών) συνδέεται πάνω στα Telos motes χάρη στην 10-pin επέκταση σύνδεσης.

21

Εικόνα 4.1: Σχηματικό διάγραμμα του ασύρματου δικτύου αισθητήρων για την συγκεκριμένη εργασία

Page 22: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Τέλος, ο προγραμματισμός της λειτουργίας των motes επιτυγχάνεται μέσω του λειτουργικού συστήματος Contiki. [22]Το Contiki είναι μια πλατφόρμα ανάπτυξης λογισμικού. Όπως και οι περισσότεροι μέθοδοι σχεδιασμού ασυρμάτων δικτύων

αισθητήρων έτσι και το Contiki είναι κομβοκεντρικό. Ο χαρακτηρισμός αυτός σημαίνει ότι ο εκάστοτε σχεδιαστής του δικτύου πρέπει να έχει υπόψιν πως ο κάθε κόμβος πρέπει να συμπεριφέρεται ως τμήμα του δικτύου. Οι δυνατές λειτουργίες που μπορεί συνήθως να επιτελεί ένας κόμβος είναι αποθήκευση δεδομένων στη μνήμη του, ο προγραμματισμός εργασιών, η διαχείριση περιφερειακών συσκευών και η επικοινωνία με το υπόλοιπο δίκτυο. Επειδή όμως κάθε κόμβος προορίζεται να κάνει μια συγκεκριμένη εργασία και επειδή υπάρχουν περιορισμένοι πόροι ενέργειας και επεξεργαστικής ισχύος, το λειτουργικό σύστημα αναλαμβάνει να δώσει προτεραιότητα σε συγκεκριμένες εργασίες εις βάρος άλλων. Συγκεκριμένα, το Contiki δεν εμπεριέχει κάποιο συγκεκριμένο σύστημα αρχείων, δεν υποστηρίζει την δυναμική διευθυνσιοδότηση μνήμης και υποστηρίζει την δημιουργία μοντέλου το οποίο εκτελεί μια μόνο εργασία. Η δημιουργία προγράμματος αποτελείται από δυο βασικά στάδια: την παραγωγή του κώδικα ο οποίος καθορίζει τις παραμέτρους λειτουργίας του mote και του κώδικα ο οποίος καθορίζει την λειτουργία του mote.

Σύμφωνα λοιπόν με την εφαρμογή μας, το ρομπότ εφοδιάζεται με ένα Telos mote και ορίζεται σαν κεντρικός κόμβος. Επίσης στο χώρο τοποθετούνται Telos motes (“φάροι”) τα οποία ολοκληρώνουν το ασύρματο δίκτυο.

22

Εικόνα 4.2: Άνω και κάτω όψη ολοκληρωμένης πλατφόρμας Telos mote

CC2420 Radio

10-pin επέκταση σύνδεσης

ST Code Flash (1MB)

Εσωτερική κεραία

MSP430 F1611microcontroller

Σύνδεση USB

Page 23: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

4.4. Υλοποίηση συσκευών υπερηχητικών παλμών

Όπως αναφέραμε στην αρχή του κεφαλαίου θέλουμε να αξιοποιήσουμε τον συνδυασμό των WSNs με διατάξεις αποστολής και λήψης υπερηχητικών σημάτων. Σε αυτήν την ενότητα θα δείξουμε το υλικό που χρησιμοποιήθηκε για την χρήση τέτοιων σημάτων. [7]

4.4.1. Πομπός υπερηχητικών παλμών

Ο πομπός υπερηχητικών παλμών τοποθετείται στο ψηλότερο μέρος του ρομπότ και η βασική του λειτουργία είναι να επικοινωνεί με την πλατφόρμα του ασύρματου δικτύου, να συγχρονίζεται με αυτή ,να ενισχύει το παραγόμενο υπερηχητικό σήμα και να το διαδίδει στο χώρο σε ένα φάσμα 360ο.

Το κυκλωματικό διάγραμμα της συσκευής που περιέχει τα παραπάνω χαρακτηριστικά αναπτύχθηκε στο πανεπιστήμιο Lund της Σουηδίας (Εικόνα 4.3). Στο κύκλωμα αυτό βλέπουμε τις διατάξεις ενίσχυσης του σήματος και τελικώς τον πομπό των υπερηχητικών σημάτων. Σύμφωνα με το διάγραμμα αυτό στο πανεπιστήμιο Πατρών αναπτύχθηκε το τυπωμένο κύκλωμα (Εικόνα 4.4) και με βάση αυτό η τελική υλοποίηση ,που τοποθετήθηκε στο ρομπότ ,όπου φαίνεται στην Εικόνα 4.5.

23

Πίνακας 1: Τεχνικά χαρακτηριστικά Telos motes

Κεντρική Μονάδα ΕπεξεργασίαςΤαχύτητα διαύλου: 8 MHz

Μνήμη RAM: 10 kB

Χώρος αποθήκευσης λογισμικού: 48 kB

Εξωτερική μνήμη Flash: 1024 kB

Σεριακές θύρες επικοινωνίας: DIO, SPI, I2C, UART

Κατανάλωση ρεύματος (ενεργή λειτουργία): 19 mA

Κατανάλωση ρεύματος (λειτουργία αναμονής): 5.1 μA

Χρόνος εκκίνησης: 6 μsec

Τάση λειτουργίας: 1.8-3.6 V

Ασύρματη ΜετάδοσηΣυχνότητα: 2400-2483 MHz

Ρυθμός μετάδοσης δεδομένων: 250 kbps

Ισχύς εξόδου: -25 έως 0 dBm

Χρόνος εκκίνησης: 580 μsec

Τύπος κεραίας : Inverted-F ή SMA Coax

Ακρίβεια μέτρησης υγρασίας 3.5% RH

Ρυθμός δειγματοληψίας 90 Hz

Αισθητήρας Υγρασίας (δεν χρησιμοποιείται σε αυτή τη διπλωματική)

Page 24: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Ο πομπός υπερηχητικών σημάτων συνδέεται με το mote στο κεντρικό 2-pin (Γείωση και παλμός) ώστε να λάβει τον ανάλογο παλμό για αποστολή του υπερηχητικού PWM παλμού. Επίσης για την λειτουργία του τροφοδοτείται με μια μπαταρία 12V. Τέλος παρατηρούμε στην Εικόνα 4.5 (β) και (γ) τον λευκό κώνο που καθιστά δυνατή την διάδοση του σήματος σε ένα φάσμα 360ο, ώστε να μπορέσουν οι κόμβοι “φάροι” να το λάβουν από οποιαδήποτε θέση και να βρίσκονται.

24

Εικόνα 4.4: Τυπωμένο κύκλωμα πομπού υπερηχητικών σημάτων

Εικόνα 4.3: Κυκλωματικό διάγραμμα πομπού υπερηχητικών σημάτων

Page 25: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

4.4.2. Δέκτης υπερηχητικών παλμών

Ο δέκτης υπερηχητικών σημάτων τοποθετείται πάνω σε κάθε κόμβο “φάρο” που βρίσκεται σταθερά σε κάποιο σημείο του χώρου. Η βασική του λειτουργία είναι να επικοινωνεί με την πλατφόρμα του ασύρματου δικτύου (mote) ,να ενισχύει το υπερηχητικό σήμα που έλαβε ,από οποιαδήποτε κατεύθυνση κι αν έρθει, και να το στέλνει στο mote για περαιτέρω ανάλυση.

Το κυκλωματικό διάγραμμα της συσκευής που περιέχει τα παραπάνω χαρακτηριστικά αναπτύχθηκε επίσης στο πανεπιστήμιο Lund της Σουηδίας (Εικόνα 4.6). Στο κύκλωμα αυτό παρατηρούμε την 10-pin σύνδεση που ταιριάζει με αυτή του Telos mote. Ακόμα βλέπουμε τις διατάξεις ενίσχυσης του σήματος και τελικώς τον δέκτη των υπερηχητικών σημάτων.

25

Εικόνα 4.6: Κυκλωματικό διάγραμμα δέκτη υπερηχητικών σημάτων

Εικόνα 4.5: Πομπός υπερηχητικών παλμών

(α) Κάτω όψη

(γ) Πλάγια όψη

(β) Άνω όψη

Page 26: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Σύμφωνα με το διάγραμμα στο πανεπιστήμιο Πατρών αναπτύχθηκε το τυπωμένο κύκλωμα (Εικόνα 4.7) και με βάση αυτό η τελική υλοποίηση του δέκτη ,όπου φαίνεται στην Εικόνα 4.8.

Η διάταξη δέκτη υπερηχητικών σημάτων συνδέεται όπως αναφέραμε πάνω στο mote, (Εικόνα 4.8 (γ)), ώστε να μπορεί το mote να λάβει το αναλογικό σήμα (υπερηχητικό παλμό) και να υπολογίσει την απόσταση του από το ρομπότ. Επίσης για την λειτουργία του τροφοδοτείται από το mote (3V). Τέλος παρατηρούμε στην Εικόνα 4.8(β) και (γ) τον λευκό κώνο που καθιστά δυνατή την λήψη του σήματος από οποιαδήποτε κατεύθυνση κι αν έρχεται.

Στην ενότητα αυτή είδαμε το υλικό μέρος των διατάξεων RF-Ultrasound που χρησιμοποιούνται και στο ρομπότ αλλά και στους κόμβους “φάρους”. Στην συνέχεια θα δούμε τις λειτουργίες που υλοποιούνται στις διατάξεις αυτές, ώστε τελικά να υπολογισθεί η απόσταση μεταξύ ρομπότ και κόμβων “φάρων”.

26

Εικόνα 4.8: Δέκτης υπερηχητικών παλμών

Εικόνα 4.7: Τυπωμένο κύκλωμα δέκτη υπερηχητικών σημάτων

(α) Κάτω όψη (β) Άνω όψη

(γ) Πλάγια όψη - ολοκληρωμένη διάταξη δέκτη RF-Ultrasound

Page 27: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

4.5. Λειτουργίες των διατάξεων RF-Ultrasound

Σημαντικό πλεονέκτημα των ασύρματων δικτύων αισθητήρων είναι όπως αναφέραμε η δυνατότητα προγραμματισμού των κόμβων για επεξεργασία των δεδομένων που λαμβάνουν. Εκτός αυτού μας δίνεται η δυνατότητα αποστολής των δεδομένων αυτών σε οποιοδήποτε κόμβο θέλουμε. Αυτά λοιπόν τα πλεονεκτήματα προσπαθήσαμε να τα αξιοποιήσουμε προγραμματίζοντας κατάλληλα τους κόμβους του δικτύου (motes).

4.5.1. Λειτουργίες της διάταξης RF-Ultrasound στο ρομπότ

Η διάταξη ραδιοφωνικών και υπερηχητικών σημάτων στο ρομπότ έχει προγραμματισθεί για να εκτελεί δύο βασικές λειτουργίες. Αρχικά στέλνει ταυτόχρονα ένα ραδιοφωνικό μήνυμα κι έναν υπερηχητικό παλμό σε όλους τους κόμβους “φάρους”. Στην συνέχεια λαμβάνει από αυτούς ραδιοφωνικά μηνύματα που περιέχουν το ID, την θέση και την απόσταση του κάθε κόμβου από το ρομπότ.

Για να μπορέσει να γίνει σωστή λειτουργία του ολοκληρωμένου συστήματος που υλοποιήθηκε θα πρέπει να ορισθούν κάποιες βασικές παράμετροι που διέπουν τις λειτουργίες του πομπού RF-Ultrasound που βρίσκεται στο ρομπότ. Η σημαντικότερη από αυτές είναι ο χρόνος δειγματοληψίας, δηλαδή το κάθε πότε το ρομπότ θα εντοπίζει την θέση που βρίσκεται. Αυτό συνδέεται με το κάθε πότε θα στέλνονται τα δύο σήματα από το ρομπότ στους κόμβους. Ο χρόνος αυτός ορίσθηκε στα 300msec T s=300msec . Η διάρκεια αυτή είναι αρκετά μεγάλη ώστε να μπορέσουν να εκτελεσθούν όλες οι απαραίτητες λειτουργίες για την εύρεση της απόστασης των κόμβων από το ρομπότ και εν συνεχεία η θέση του ρομπότ, και είναι αρκετά μικρή ώστε να αποφευχθούν φαινόμενα ανάκλασης του υπερηχητικού σήματος ώστε να προκληθεί σφάλμα στις μετρήσεις των κόμβων “φάρων”. Άλλες παράμετροι που πρέπει να ορισθούν έχουν να κάνουν με την φύση του υπερηχητικού παλμού. Σύμφωνα με τις απαιτήσεις του υλικού, δεν αποστέλλεται ένας παλμός αλλά μια παλμοσειρά PWM, συχνότητας f u=40KHz και διάρκειας

T u=16msec . Τέλος θα πρέπει να ορισθεί και ο χρόνος παραλαβής των ραδιοφωνικών μηνυμάτων που λαμβάνονται από τους κόμβους “φάρους”. Για να μην προκληθεί το φαινόμενο συνωστισμού πακέτων στον κεντρικό κόμβο, με αποτέλεσμα απώλεια δεδομένων, τα ραδιοφωνικά μηνύματα παραλαμβάνονται ασύγχρονα, σε ένα λογικό διάστημα στο χρόνο δειγματοληψίας των 300msec.

4.5.2. Λειτουργίες της διάταξης RF-Ultrasound στους κόμβους “φάρους”

Η διάταξη ραδιοφωνικών και υπερηχητικών σημάτων στους κόμβους “φάρους” έχει προγραμματισθεί για να εκτελεί τέσσερις βασικές λειτουργίες. Αρχικά λαμβάνεται το ραδιοφωνικό σήμα που στέλνει το ρομπότ, ώστε να ξεκινήσουν οι υπόλοιπες λειτουργίες. Ουσιαστικά το ραδιοφωνικό σήμα που στέλνει το ρομπότ λειτουργεί ως διακόπτης για τον συγχρονισμό των κόμβων και έναρξη των λειτουργιών τους. Όταν γίνει λήψη του ραδιοφωνικού μηνύματος, την ίδια στιγμή, το mote του κάθε κόμβου μετατρέπει το σήμα που λαμβάνει από τον προσαρμοσμένο πάνω του δέκτη υπερηχητικών παλμών από αναλογικό σε ψηφιακό, ώστε να μπορέσει να το επεξεργαστεί. Στην συνέχεια μέσω του ψηφιοποιημένου σήματος, γίνεται η εύρεση της απόστασης του ρομπότ από τον συγκεκριμένο κόμβο “φάρο”. Τέλος, η πληροφορία της απόστασης, μαζί με άλλες πληροφορίες (ID, θέση) στέλνονται στο κεντρικό κόμβο για περαιτέρω επεξεργασία.

27

Page 28: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Η πιο δύσκολη λειτουργία είναι να υπολογισθεί η καθυστέρηση έλευσης του υπερηχητικού σήματος, ώστε να μπορέσουμε να υπολογίσουμε τελικά την απόσταση μεταξύ ρομπότ και κόμβου “φάρου”. Όπως αναφέραμε προηγουμένως η λειτουργία αυτή βασίζεται στο ψηφιοποιημένο σήμα του υπερηχητικού σήματος που έλαβε ο “φάρος” από τον δέκτη αυτών των σημάτων.

Για να καταλάβουμε καλύτερα τις παραμέτρους και τα χαρακτηριστικά της λειτουργίας αυτής παραθέτουμε ένα παράδειγμα ψηφιοποιημένου σήματος που πήραμε από έναν κόμβο που βρισκόταν σε μια απόσταση 3 μέτρων από το ρομπότ. Στην εικόνα 9 βλέπουμε τον πίνακα που αποθηκεύτηκε στην πλατφόρμα Telos mote και περιέχει το σήμα αυτό. Στο σημείο αυτό να αναφέρουμε ότι η περίοδος δειγματοληψίας του αναλογικού σήματος ορίζεται στα f s=72KHz λόγω των τεχνικών προδιαγραφών του Telos mote. Επίσης η

ψηφιοποίηση του σήματος διαρκεί T sp=30msec . Αυτός ο χρόνος είναι ικανός για να μπορέσει το σήμα να φτάσει σε μια απόσταση 10 μέτρων και να αποφευχθούν φαινόμενα ανάκλασης του σήματος με αποτέλεσμα ύπαρξη θορύβων σε αυτό.

Στην Εικόνα 4.9 παρατηρούμε την παλμοσειρά PWM διάρκειας 16ms. Το μέγιστο του παλμού ορίζεται στα 1695. Η τιμή αυτή ισούται με μια τιμή της τάξης 1.5V. Αυτό όμως που μας ενδιαφέρει είναι το πότε θα έχουμε την άφιξη της παλμοσειράς για να μετρήσουμε την απόσταση που διένυσε.

Αν δούμε πιο προσεχτικά στην αρχή της εικόνας 4.9 και εστιάσουμε, μπορούμε να διακρίνουμε καλύτερα την άφιξη της παλμοσειράς. (Εικόνα 4.10). Αυτό που βασικά περιμέναμε ήταν ένα μηδενικό σήμα στην αρχή της ψηφιοποίησης λόγω της καθυστέρησης της παλμοσειράς. Όμως λόγω της ύπαρξης θορύβου-αποτέλεσμα των διατάξεων της

28

Εικόνα 4.9: Παράδειγμα ψηφιοποιημένου υπερηχητικού σήματος (Στοιχεία: Φάρος 2, Απόσταση 3m)

0 200 400 600 800 1000 1200 1400 1600­2500

­2000

­1500

­1000

­500

0

500

1000

1500

2000

Page 29: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

συσκευής δέκτη υπερηχητικών σημάτων- έχουμε την ύπαρξη μικρών “τάσεων” πριν την άφιξη της παλμοσειράς. Για να γίνει λοιπόν η μέτρηση του χρόνου έλευσης του σήματος- ουσιαστικά το στοιχείο του πίνακα οποίου η τιμή παίρνει για πρώτη φορά την μέγιστη δυνατή- κοιτάμε πότε το σήμα θα ξεπεράσει κάποιο όριο. Το όριο αυτό επιλέχθηκε πειραματικά στην τιμή 1500. Αυτή η επιλογή δίνει την δυνατότητα να υπολογίσουμε αποστάσεις μεγαλύτερες των 3 μέτρων, όπου το σήμα καθώς ταξιδεύει στο χώρο εξασθενεί και υπάρχει μια πτώση τάσης. Επίσης το όριο είναι αρκετά μεγάλο για να ξεπεραστούν προβλήματα υπολογισμού λανθασμένου στοιχείου (“χρόνου άφιξης”) λόγω ύπαρξης θορύβου.

Σύμφωνα με το όριο αυτό πειραματικά αποδείχθηκε ότι μπορούμε να έχουμε αξιοπιστία στις τιμές σε αποστάσεις μικρότερες των 6 μέτρων. Τέλος στο παράδειγμά μας (Εικόνα4.10) παρατηρούμε την ύπαρξη της μέγιστης τιμής του σήματος (θόρυβος) στο στοιχείο 90 του πίνακα,που ισοδυναμεί σε χρόνο 7ms, και οφείλεται στο υλικό και τις μεθόδους μετατροπής του αναλογικού σήματος σε ψηφιακό. Αυτός ο θόρυβος δεν μας επιτρέπει να υπολογίσουμε αποστάσεις μικρότερες των 2.4 μέτρων.

Έχοντας λοιπόν υπολογίσει το στοιχείο του πίνακα για το οποίο το ψηφιακό σήμα ξεπερνάει το όριο το οποίο θέσαμε, μένει να βρούμε πειραματικά την σχέση που συνδέει το στοιχείο αυτό με την μετρούμενη απόσταση. Για να γίνει αυτό εκτελέσαμε τους αλγόριθμους σε έναν κόμβο “φάρο” για 15 διαφορετικές αποστάσεις και υπολογίσαμε τα αντίστοιχα στοιχεία του πίνακα. Τα αποτελέσματα αυτά και η αντίστοιχη σχέση παρουσιάζεται στην παρακάτω γραφική παράσταση (Εικόνα 4.11).

29

Εικόνα 4.10: Εστίαση στην αρχή της ψηφιοποίησης του υπερηχητικού σήματος του παραδείγματος

0 50 100 150 200 250­2500

­2000

­1500

­1000

­500

0

500

1000

1500

2000

Page 30: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Χρήσιμα συμπεράσματα μπορούν να εξαχθούν από την σχέση αυτή. Η κλίση της ευθείας (0,4811cm) που ουσιαστικά μας δείχνει πόση απόσταση έχει διανύσει το υπερηχητικό σήμα ανά περίοδο δειγματοληψίας, αν κάνουμε την αναγωγή θα βρούμε την συχνότητα δειγματοληψίας ίση με την πραγματική τιμή που αναφέραμε προηγουμένως (~72KHz). Επίσης παρόλο που το ραδιοφωνικό σήμα στέλνεται απευθείας στον κόμβο “φάρο” για να ξεκινήσει η διαδικασία ψηφιοποίησης, η τελευταία, όπως φαίνεται στην σχέση, ξεκινάει με μια καθυστέρηση της τάξης των 5,6ms ,χρόνος που απαιτείται για να διανύσει το υπερηχητικό σήμα την απόσταση των 192.25cm. Αυτή η καθυστέρηση οφείλεται πιθανώς στο χρόνο ενεργοποίησης του ADC μετατροπέα του Telos mote. Ο περιορισμός όμως αυτός δεν μας επηρεάζει για το λόγω ότι, όπως προαναφέραμε, δεν μπορούμε να μετρήσουμε σε αποστάσεις μικρότερες των 2.4 μέτρων.

Για να συνοψίσουμε τις λειτουργίες που εκτελεί ο κόμβος “φάρος” είναι:

1. Λήψη του ραδιοφωνικού μηνύματος του ρομπότ και ταυτόχρονη έναρξη των επόμενων λειτουργιών.

2. Ψηφιοποίηση του υπερηχητικού σήματος που λαμβάνεται από τον δέκτη του κάθε κόμβου με συχνότητα δειγματοληψίας 72KHz και διάρκεια 30ms (1700 δείγματα) και αποθήκευση του σε έναν πίνακα Α.

3. Εύρεση του πρώτου στοιχείου i του πίνακα Α για το οποίο ισχύει Ai≥1500 ∧ i90 .

4. Υπολογισμός της απόστασης με βάση την γραμμική σχέση που φαίνεται στην εικόνα 4.11.

5. Μετά από κάποιο δεδομένο χρόνο, ξεχωριστό για κάθε κόμβο, γίνεται αποστολή ενός ραδιοφωνικού μηνύματος στον κεντρικό κόμβο (ρομπότ) που περιέχει το ID του κάθε κόμβου, τις συντεταγμένες της θέσης του, και την απόσταση την οποία υπολόγισε.

30

Εικόνα 4.11: Πειραματική σχέση που συνδέει το στοιχείο του πίνακα με την μετρούμενη απόσταση

Page 31: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

4.6. Εύρεση της θέσης ρομπότ

Μέχρι τώρα αυτό που έχουμε καταφέρει, με την διάταξη που υλοποιήσαμε, είναι να υπολογίσουμε τις αποστάσεις των κόμβων “φάρων” σε σχέση με το ρομπότ. Επίσης επειδή χρησιμοποιούμε ένα στατικό ασύρματο δίκτυο αισθητήρων, οι θέσεις των κόμβων “φάρων” είναι γνωστές και παραμένουν αμετάβλητες. Αυτές οι δύο πληροφορίες που έχουμε για κάθε κόμβο “φάρο” είναι ικανές για να υπολογίσουμε την απόλυτη θέση του ρομπότ. Αυτό γίνεται εφικτό με την απλή θεωρία της τομής των κύκλων. Ουσιαστικά αυτό που γίνεται είναι η σχεδίαση κύκλων με κέντρα τις θέσεις των κόμβων και ακτίνες τις υπολογισμένες αποστάσεις και μετέπειτα εύρεση της κοινής τομής των κύκλων. Επειδή η διαδικασία εύρεσης της θέσης του ρομπότ μέσω της σχεδίασης κύκλων αποτελεί σημαντικό τμήμα, θα αναφερθούμε αναλυτικά στο επόμενο κεφάλαιο.

4.7. Επίλογος

Στο κεφάλαιο αυτό έγινε αναφορά στο υλικό και λειτουργικό μέρος που αφορούν τις διατάξεις πομπού και δέκτη ραδιοφωνικών και υπερηχητικών σημάτων (RF-Ultrasound) με σκοπό την εύρεση της απόστασης μεταξύ ρομπότ και κόμβων “φάρων”, ώστε να γίνει στην συνέχεια δυνατή η εύρεση της απόλυτης θέσης του ρομπότ στο χώρο.

31

Page 32: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

ΚΕΦΑΛΑΙΟ 5

Εύρεση της θέσης ρομπότ με χρήση της διάταξης RF-Ultrasound

5.1. Εισαγωγή

Στο προηγούμενο κεφάλαιο δείξαμε το πως μπορούμε να υπολογίσουμε την απόσταση μεταξύ του ρομπότ και ενός κόμβου “φάρου” χρησιμοποιώντας τις διατάξεις RF-Ultrasound. Αυτό όμως που μας ενδιαφέρει είναι να βρούμε την απόλυτη θέση του ρομπότ συνδυάζοντας τις μετρήσεις που πήραμε από το στατικό ασύρματο δίκτυο αισθητήρων. Σκοπός του κεφαλαίου αυτού είναι να κατανοήσουμε τον τρόπο εύρεσης της κοινής τομής των κύκλων από τις μετρήσεις-ουσιαστικά την θέση του ρομπότ, κάνοντας χρήση της τεχνικής k-means clustering και άλλων φίλτρων.

5.2. Επεξεργασία των δεδομένων που ανακτήθηκαν από την διάταξη RF-Ultrasound

Όπως αναφέραμε και στο προηγούμενο κεφάλαιο, στο ρομπότ έχουμε παραληφθεί μηνύματα που μας δίνουν την θέση και την απόσταση των κόμβων “φάρων” από το ρομπότ. Σύμφωνα με τις πληροφορίες αυτές μπορούμε να χρησιμοποιήσουμε την κλασσική μέθοδο τομής των κύκλων. Ξέροντας της θέσεις των “φάρων”

x il , yi

l , i=1,2... L και τις μετρούμενες αποστάσεις αυτών d i από το ρομπότ, οι τομές

xkc , yk

c , k≤L L−1 , ορίζονται ως οι πραγματικοί αριθμοί που ικανοποιούν τις

παρακάτω σχέσεις:

x il−xk

c 2 y il− yk

c =d i2, i=1,... , L

x jl− xk

c

2 y j

l− yk

c=d j

2, j=i1,... , L(5.1)

32

Εικόνα 5.1: Παράδειγμα τομής των κύκλων (L=3)

x1l , y1

l

x2l , y2

l

x3l , y3

l

d 2

d 1

d 3

x2c , y2

c

x3c , y3

c

x6c , y6

c

x ic , y i

c , i=1,4,5

Page 33: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Έχοντας υπολογίσει τις τομές αυτές σκοπός μας είναι να βρούμε τις κοινές τομές που θα μας δώσουν την θέση του ρομπότ. Ένα γραφικό παράδειγμα της κεντρικής ιδέας που θέλουμε να υλοποιήσουμε φαίνεται στην Εικόνα 5.1.

Στο παράδειγμα βλέπουμε πως η κοινή τομή x ic , y i

c , i=1,4,5 μας δίνει και την

απόλυτη θέση του ρομπότ. Στην πραγματικότητα η εύρεση της κοινής τομής δεν είναι εύκολο πρόβλημα. Η ύπαρξη θορύβου στις μετρήσεις, η απώλεια πακέτων στον κεντρικό κόμβο λόγω συνωστισμού, η εξασθένηση του υπερηχητικού σήματος λόγω εμποδίων ή ανακλάσεων, προκαλούν την δημιουργία λανθασμένων τιμών. Για να διαλέξουμε λοιπόν τις τομές που μας δίνουν την θέση του ρομπότ χρησιμοποιούμε την θεωρία clustering (ομαδοποίηση). [31]

5.3. Τεχνική k-means Clustering και φιλτράρισμα των δεδομένων

Κάνοντας χρήση της θεωρίας clustering, σκοπός μας είναι να ομαδοποιήσουμε τις τομές για να μπορέσουμε αρχικά να μειώσουμε την επίδραση των λανθασμένων τιμών και στην συνέχεια να μειώσουμε των αριθμό επιλογών για πιθανή θέση του ρομπότ. Σε αυτήν την ενότητα αρχικά παρουσιάζουμε την τεχνική k-means clustering για την συγκεκριμένη εφαρμογή και έπειτα το φιλτράρισμα των αποτελεσμάτων με σκοπό της εύρεσης του νικητή cluster (της νικήτριας ομάδας), ο οποίος θα μας δώσει και την θέση του ρομπότ.

5.3.1. k-means Clustering

● Εισαγωγή

Στην βιβλιογραφία μέχρι τώρα έχουν αναφερθεί πολλές τεχνικές clustering. Ειδικότερα σε εφαρμογές που έχουν σχέση με ρομποτικά συστήματα και έχουν να κάνουν με ανάλυση εικόνων για χαρτογράφηση χώρων. Σύμφωνα με τις ανάγκες της εφαρμογής χρησιμο-ποιήσαμε την μέθοδο k-means clustering. Η μέθοδος αυτή ανήκει στις hard partitioning. Αυτό σημαίνει ότι ο αριθμός των ομάδων επιλέγεται εξ αρχής και με επαναληπτικούς μεθόδους προσπαθούν τα δεδομένα να κατηγοριοποιηθούν σε αυτές τις ομάδες. (Εικόνα5.2) Για να μελετήσουμε την τεχνική k-means θα πρέπει να ορίσουμε κάποια βασικά χαρακτηριστικά της θεωρίας clustering.

33

Εικόνα 5.2: Παραδείγματα εφαρμογής της μεθόδου k-means clustering

Page 34: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

● Βασικές παράμετροι των τεχνικών clustering

Καταρχήν οι τεχνικές clustering είναι μια αλγοριθμική διαδικασία η οποία δημιουργεί φυσικές ομάδες από αντικείμενα τα οποία παρουσιάζουν ομοιότητες. Διαγραμματικά μπορούμε να δούμε αυτήν την διαδικασία στην Εικόνα 5.3. Για να ομαδοποιήσουμε αντικείμενα σε σύνολα έτσι ώστε όλα τα αντικείμενα στο σύνολο να παρουσιάζουν ομοιότητα θα πρέπει να ορίσουμε κάποιο μέτρο σύγκρισης μεταξύ των αντικειμένων. Ένα τέτοιο μέτρο θα καθορίζει πόσο όμοια είναι δύο αντικείμενα μεταξύ τους. Αντί για τον όρο ομοιότητα χρησιμοποιούμε τον όρο απόσταση (distance). Στην βιβλιογραφία παρατηρούμε ότι το πιο συχνό μέτρο απόστασης που χρησιμοποιείται στις τεχνικές clustering είναι η Ευκλείδεια απόσταση (ή 2-norm):

∑i=1

k

x i− y i2 (5.2)

Τέλος, κάθε cluster που δημιουργείται με την μέθοδο clustering έχει ένα centroid. Ένα centroid είναι ένα φανταστικό αντικείμενο που ανήκει στο cluster και οι τιμές των συντεταγμένων του είναι ο μέσος όρος των τιμών των συντεταγμένων όλων των αντικειμένων που ανήκουν στο cluster. Η σύγκριση της απόστασης ενός νέου αντικειμένου για να αποφασιστεί αν ανήκει σε κάποιο cluster γίνεται με το centroid του κάθε cluster.

● Ο k-means αλγόριθμος

Από τις Lν τομές κύκλων που έχουμε υπολογίσει, C ανεξάρτητα cluster C≪Lν

δημιουργούνται από τον k-means αλγόριθμο. Κάθε cluster περιέχει M i μέλη (τομές),

όπου i=1,... , C , και ∑i=1

C

M i=Lν .Επίσης το κάθε cluster T i , i=1,... ,C ορίζεται ως ένα

σύνολο που έχει τα εξής χαρακτηριστικά:

1. Τ i∩T j ,i≠ j∈{1,... ,C }

2. T i={x jC , y j

C , j=1,... ,M i}

Αν το centroid του κάθε cluster ορίζεται από την σχέση:

x i , c , y i , cT=

1M i

Τ ∑j=1

M i

x jC ,∑

j=1

M i

y jC

T

(5.3)

σκοπός του αλγόριθμου k-means είναι η επιλογή του κατάλληλου αριθμού μελών σε κάθε cluster έτσι ώστε να μειωθεί το παρακάτω αθροιστικό τετραγωνικό σφάλμα:

∑i=1

C

∑x j

C , y jC ∈T i

[x jC−x i ,C

2 y j

C− y i ,C

2 ] . (5.4)

34

Εικόνα 5.3: Διαδικασία αλγορίθμων clustering

Page 35: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Έχοντας υπολογίσει το σύνολο τον τομών των κύκλων Lν , επιλέγουμε τον αριθμόC των cluster και συνοπτικά ο αλγόριθμος k-means εκτελεί τις παρακάτω εργασίες για

την εφαρμογή μας.

1. Αρχικοποιεί τα centroids του κάθε cluster επιλέγοντας τυχαία κάποιες τομές.

2. Υπολογίζει τις αποστάσεις σύμφωνα με την σχέση (5.4).

3. Επιλέγει τα μέλη των cluster με τις μικρότερες αποστάσεις.

4. Υπολογίζει τα centroids σύμφωνα με την σχέση (5.3).

5. Αν τα centroids δεν αλλάξουν προχωράει στο βήμα 6 αλλιώς στο βήμα 2.

6. Δίνονται ως έξοδος τα cluster που το καθένα περιέχει τα μέλη, τον αριθμό των μελών (cardinality) και το centroid.

5.3.2. Φιλτράρισμα αποτελεσμάτων- εύρεση της θέσης του ρομπότ (Winning Cluster)

Σκοπός μας ήταν να ελαχιστοποιήσουμε τις πιθανές θέσεις που μπορεί να βρίσκεται το ρομπότ, μέσω της ομαδοποίησης (clustering). Αυτό που έχουμε λοιπόν καταφέρει με τον αλγόριθμο k-means είναι να ομαδοποιήσουμε τις τομές των κύκλων σε cluster και να υπολογίσουμε τις αντίστοιχες συντεταγμένες των centroid. Αυτά τα αποτελέσματα είναι και οι πιθανές θέσεις του ρομπότ. Θα πρέπει τώρα με ένα φιλτράρισμα των αποτελεσμάτων αυτών να βρούμε το centroid εκείνο που μας δίνει την θέση του ρομπότ. (Winning cluster).

Ένα πρώτο φιλτράρισμα που υλοποιείται βασίζεται στην ιδέα της εύρεσης της κοινής τομής. Είναι προφανές πως το cluster με τα περισσότερα μέλη (με το μέγιστο cardinality), έχει τις περισσότερες πιθανότητες να είναι η θέση του ρομπότ. Αυτό συμβαίνει γιατί παρόλο που υπάρχουν πιθανά σφάλματα στις μετρήσεις των κόμβων “φάρων” και κατά συνέπεια στις συντεταγμένες των τομών, οι περισσότερες τομές τείνουν να βρίσκονται κοντά στο ρομπότ.

Μερικές φορές όμως είναι πιθανό να υπάρχουν cluster με τον ίδιο μέγιστο αριθμό cluster. Επίσης υπάρχει περίπτωση η θέση του ρομπότ να βρίσκεται σε cluster με λιγότερο αριθμό μελών κατά ένα επίπεδο από τον μέγιστο αριθμό. Σε αυτήν την περίπτωση υπολογίζεται αρχικά η απόσταση των centroids των cluster με το μέγιστο cardinality και ένα επίπεδο παρακάτω, με την προηγούμενη τιμή της θέσης του ρομπότ που βρέθηκε

μέσω τις διάταξης RF-Ultrasound. Αν λοιπόν κάθε μια χρονική στιγμή rT s , r∈Z¿ ,

υπολογίζονται τα cluster μέσω του αλγορίθμου k-means, τα cluster με το μέγιστο

cardinality x i ,C rT s , yi ,C rT s T ,συγκρίνονται με την προηγούμενη θέση στου ρομπότ,

ουσιαστικά το προηγούμενο winning centroid x w ,C r−1T s , yw ,C r−1T s T μέσω της

παρακάτω σχέσης:

d rT s=x i ,C rT s−xw ,C r−1T s2 yi ,C rT s− yw , C r−1T s

2 (5.5)

Η απόσταση αυτή για κάθε cluster συγκρίνεται με την απόσταση που διένυσε το ρομπότ με βάση την μέγιστη οριζόντια και κάθετη ταχύτητα του ρομπότ και χρησιμοποιείται σαν ένα ακόμα στοιχείο για την επιλογή του winning cluster:

d rT s≤ u xmax

2u y

max 2

(5.6)

35

Page 36: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Για την ορθότητα του παραπάνω φιλτραρίσματος γίνεται εκτίμηση της θέσης του ρομπότ με βάση on-board αισθητήρων (encoders για τον υπολογισμό των ταχυτήτων, ηλεκτρονική πυξίδα για τον υπολογισμό του προσανατολισμού του ρομπότ) σύμφωνα με την παρακάτω σχέση.

[ x1,e rT s

y1, e rT s]=[xw , C r−1T s

yw ,C r−1T s]T s

2 [cos θ r−1T s xICR sin θ r−1T s

sinθ r−1T s − x ICRcos θ r−1T s] [uRuL

uR−uL] , (5.7)

όπου οι encoders υπολογίζουν τις ταχύτητες uR και u L ,ενώ η πυξίδα υπολογίζει την μεταβλητή θ . Σε σπάνιες περιπτώσεις όπου είτε δεν έχουμε μετρήσεις από το RF-Ultrasound σύστημα, λόγω έλλειψη αρκετών κόμβων ή άλλων λαθών του συστήματος, είτε η διαφορά μεταξύ της απόλυτης θέσης του ρομπότ (winning cluster) και της εκτίμησης της

θέσης του ρομπότ (Σχέση (5.7)) ξεπερνά μια προκαθορισμένη τιμή d ra (Σχέση (5.8)) , η

υπολογισμένη θέση του ρομπότ μέσω του συστήματος RF-Ultrasound απορρίπτεται και σαν απόλυτη θέση του ρομπότ ορίζεται η εκτιμώμενη θέση.

xw ,C rT s−x1,e rT s2 yw ,C rT s− y1,e rT s

2≥d ra (5.8)

Τέλος για την αποτροπή ακραίων τιμών χρησιμοποιούμε ένα συντελεστή βάρους ως προς το κεντροειδή. Έχοντας λοιπόν τον νικητή cluster και την εκτίμηση της θέσης από την σχέση (5.7) , η θέση του ρομπότ θα υπολογίζονται από την σχέση:

[ x rT s

y rT s]=a [ xw , c rT s

yw ,c rT s]1−a [ x1,e rT s

y1, e rT s] (5.9)

Έχοντας υπολογίσει τα cluster των τομών των κύκλων μέσω του αλγορίθμου k-means, τότε συνοπτικά ο αλγόριθμος για την επιλογή του winning cluster, δηλαδή της θέσης του ρομπότ έχει ως εξής:

1. Ταξινομούνται τα cluster σε φθίνουσα σειρά σύμφωνα με τον αριθμό των μελών τους.

2. Επιλέγονται τα centroid των cluster με το μέγιστο cardinality και ένα επίπεδο παρακάτω από την παραπάνω στοίβα, ως πιθανές τιμές για την θέση του ρομπότ.

3. Γίνεται ο έλεγχος της γειτονίας (Σχέση (5.6))

4. Γίνεται μια εκτίμηση της θέσης του ρομπότ χρησιμοποιώντας on-board αισθητήρες (Σχέση (5.7))

5. Ελέγχεται η ύπαρξη ή μη νικητή cluster σύμφωνα με την σχέση (5.8) και επιλέ-γεται η θέση του ρομπότ σύμφωνα με την σχέση (5.9).

5.4. Επίλογος

Στο κεφάλαιο αυτό ολοκληρώσαμε την ανάλυση της λειτουργίας του συστήματος που βασίζεται σε ένα στατικό ασύρματο δίκτυο αισθητήρων με σκοπό την εύρεση της θέσης του ρομπότ σε εσωτερικούς χώρους. Γενικά έγινε μια ανάλυση για την λειτουργία του αλγορίθμου k-means για την εφαρμογή αυτή και των φίλτρων που χρησιμοποιούνται.

36

Page 37: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

ΚΕΦΑΛΑΙΟ 6

Έλεγχος της κίνησης κινούμενων ρομπότ

6.1. Εισαγωγή

Σκοπός του κεφαλαίου είναι η παρουσίαση ενός νόμου ανοιχτού ελέγχου για την παρακολούθηση προκαθορισμένης τροχιάς και ενός νόμου ελέγχου κλειστού βρόχου για την παρακολούθηση κίνηση του ρομπότ πάνω σε ένα προσχεδιασμένο μονοπάτι. Αυτοί οι δύο νόμοι ελέγχου βασίζονται στο κινηματικό μοντέλο και στην γνώση της θέσης του ρομπότ αντίστοιχα. Στο κεφάλαιο αυτό θα παραμείνουμε μόνο στην υλοποίηση τους ενώ η εφαρμογή τους θα δειχθεί σε επόμενο κεφάλαιο.

6.2. Σχεδίαση τροχιάς μέσω καμπυλών Bezier

Πριν ξεκινήσουμε με την ανάπτυξη ενός νόμου ελέγχου θα πρέπει να αναλύσουμε τους τρόπους σχεδίασης τροχιών που θα μπορέσει το ρομπότ να ακολουθήσει. Η διαδικασία αυτή ονομάζεται trajectory-planning. Αν και γενικά με τον όρο αυτό εννοούμε συνολικά την εύρεση και την σχεδίαση τροχιών που πρέπει να ακολουθήσει το ρομπότ, εμείς σε αυτή την ενότητα θα μείνουμε στον τρόπο σχεδίασης τέτοιων τροχιών.

Τα τελευταία χρόνια, έχουν γίνει πολλές συζητήσεις στην επιστημονική κοινότητα για το πρόβλημα της σχεδίασης τροχιών που θα πρέπει να ακολουθήσει το ρομπότ ώστε να αποφύγει εμπόδια σε ένα δυναμικό περιβάλλον. [2] Η πιο πρόσφατη αναφορά πρότεινε την χρήση καμπυλών Bezier.[3],[]27] Η καμπύλη Bezier είναι μια παραμετρική καμπύλη και συναντιέται πολύ συχνά σε προβλήματα που έχουν να κάνουν με την δημιουργία κινούμενων εικόνων (animation) και γραφικά υπολογιστών.

Η βασική λειτουργία των καμπυλών αυτών είναι να σχεδιαστεί μια ομαλή και συνεχή καμπύλη δίνοντας κάποιος ορισμένα σημεία ελέγχου (control points). Η καμπύλη αυτή ξεκινάει από το πρώτο σημείο ελέγχου και καταλήγει στο τελευταίο διαγράφοντας μια τροχιά σύμφωνα με τα υπόλοιπα σημεία ελέγχου. Η βασική διαφορά με άλλες μεθόδους ανάπτυξης καμπυλών είναι πως δεν χρειάζεται η γνώση την εξίσωση της καμπύλης. Τα σημεία ελέγχου (εκτός του πρώτου και του τελευταίου) μπορούν να θεωρηθούν σαν μάζες οι οποίες έλκουν την καμπύλη προς αυτά. Τα πλεονεκτήματα των καμπυλών Bezier είναι:

1. Χρειάζεται μόνο ο ορισμός των σημείων ελέγχου για το σχεδιασμό των καμπυλών. Αυτό μειώνει την πολυπλοκότητα των υπολογισμών για τον λόγο ότι δεν χρησιμοποιούνται οι εξισώσεις της καμπύλης.

2. Με τον ορισμό των σημείων ελέγχου γίνεται και σχεδίαση ,εκτός της τροχιάς, των χαρακτηριστικών της καμπύλης (παράγωγος-ταχύτητα, καμπυλότητα).

3. Η αλλαγή ενός μόνο σημείο ελέγχου δίνει την δυνατότητα αλλαγής των χαρακτηριστικών της καμπύλης και του σχήματος αυτής.

4. Για την αύξηση των βαθμών ελευθερίας της καμπύλης μπορούν να τοπο-θετηθούν περισσότερα σημεία ελέγχου χωρίς να αλλάξει το σχήμα της καμπύλης.

5. Μπορούν εύκολα να χωριστούν και να ενωθούν διαφορετικές καμπύλες Bezier

37

Page 38: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Τα πλεονεκτήματα αυτά είναι η βασική αιτία για την επικράτηση τους σε θέματα δημιουργίας τροχιών που δίνουν την δυνατότητα ευελιξίας στο ρομπότ. Μπορεί κανείς ορίζοντας τα σημεία ελέγχου να ορίσει, εκτός της τροχιάς, τις ταχύτητες του κινούμενου ρομπότ. Η εύκολη αλλαγή του σχήματος της καμπύλης μέσω τον σημείων ελέγχου δίνει την δυνατότητα της τροποποίησης της κίνησης του ρομπότ για την αποφυγή εμποδίων, γρήγορα και χωρίς υπολογιστικό κόστος σε πραγματικό χρόνο.

Όπως αναφέραμε προηγουμένως, για την κατασκευή καμπυλών Bezier (Εικόνα6.1)χρειάζονται να ορισθούν κάποια σημεία ελέγχου. Ο αριθμός των σημείων αυτών ορίζει και τον βαθμό ελευθερίας της καμπύλης. Μια καμπύλη Bezier n τάξης κατασκευάζεται από n+1 σημεία ελέγχου ( P0 , P1 , ... , Pn . ) σύμφωνα με την παρακάτω σχέση:

Β t=∑i=0

n

ni Pi 1−t n−i t i , (6.1)

όπου η παράμετρος t∈[0,1] μπορεί να θεωρηθεί ως χρονική μεταβλητή.

6.3. Νόμος ελέγχου ανοιχτού βρόχου για την παρακολούθηση προκαθορισμένης τροχιάς

Σημαντική περιοχή για έρευνα στα θέματα κινούμενων ρομπότ αποτελεί η εύρεση ενός ικανού νόμου ελέγχου ώστε να μπορεί το ρομπότ να κινείται αυτόνομα σε μια περιοχή εργασίας. Όπως σε όλα τα ρομποτικά συστήματα που κινούνται με βοήθεια κινητήρων αυτό που θα πρέπει να ελεγχθεί τελικώς είναι η τάση στους κινητήρες αυτούς ώστε να κινηθεί το ρομπότ σύμφωνα με μια προσχεδιασμένη τροχιά. Για να γίνει αυτό θα πρέπει όμως αρχικά να ορισθεί ένας τρόπος μετατροπής της τροχιάς στις ταχύτητες που θα πρέπει να εφαρμοσθούν στο ρομπότ.

38

Εικόνα 6.1: Κατασκευή μιας 4ης τάξης καμπύλης Bezier

Page 39: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Ο πιο απλός νόμος ελέγχου που μπορεί να υλοποιηθεί για την κίνηση των ρομπότ είναι του ανοιχτού βρόχου. Ο νόμος αυτός λαμβάνει υπόψη την προκαθορισμένη τροχιά που πρέπει να ακολουθήσει το ρομπότ και σύμφωνα με το αντίστροφο κινηματικό μοντέλο μπορεί να ορίσει εξ αρχής τις ταχύτητες που θα εφαρμοσθούν στο ρομπότ για κάθε χρονική στιγμή.

Για την εργασία αυτή χρησιμοποιήσαμε το κινηματικό μοντέλου τετράτροχου ρομπότ που αναπτύχθηκε στο κεφάλαιο 2. Σύμφωνα λοιπόν με την σχέση (2.10) μπορούμε να έχουμε το αντίστροφο κινηματικό μοντέλο. Το σύστημα μας όμως είναι υποενεργο-ποιούμενο, οπότε δεν μπορεί να γίνει αντιστροφή της μήτρας S q (Σχέση (2.9) και θα πρέπει να βρεθούν αναλυτικά οι σχέσεις που συνδέουν το διάνυσμα ταχυτήτων q με τις ταχύτητες που αναπτύσσονται στο ρομπότ. Όμως σε αυτό το σημείο είναι αναγκαίο να σημειώσουμε πως η μεταβλητή θ από το διάνυσμα ταχυτήτων q εξαρτάται μόνο από την γωνιακή ταχύτητα και είναι δυνατό να χωρίσουμε το κινηματικό μοντέλο. Η σχέση (2.10) θα πάρει την μορφή:

[ xy ]=[cosθ x ICR sin θ

sin θ −xICR cos θ ] [ux

ω ]και

θ=ω

(6.2)

Η μήτρα της πρώτης εξίσωσης τώρα είναι τετραγωνική και μπορεί να αντιστραφεί. Έτσι το αντίστροφο κινηματικό μοντέλο θα πάρει την μορφή:

[ux

ω ]=[cosθ sin θsin θxICR

−cosθx ICR

][ xy ] και ω=θ (6.3)

Έχοντας λοιπόν σχεδιάσει μια προκαθορισμένη τροχιά μπορούμε να υπολογίσουμε το διάνυσμα ταχυτήτων και σύμφωνα με το αντίστροφο κινηματικό μοντέλο (Σχέση (6.3)) θα έχουμε την οριζόντια και γωνιακή ταχύτητα που πρέπει να αναπτυχθούν στο ρομπότ ώστε να κινηθεί σύμφωνα με την τροχιά αυτήν. Αυτό που θα ελέγξουμε είναι η ταχύτητα στους αριστερούς και δεξιούς τροχούς οπότε σύμφωνα με τις σχέσεις (2.3) θα έχουμε:

uR=uxL2

ω , uL=u x−L2

ω (6.4)

Οι ταχύτητες αυτές θα αναπτυχθούν στο ρομπότ διανέμοντας τάση στους αντίστοιχους κινητήρες μέσω ενός απλού PID ελεγκτή που λειτουργεί ξεχωριστά πάνω στο ρομπότ.

Συνοπτικά ο ελεγκτής ανοιχτού βρόχου για την παρακολούθηση μιας προκαθορισμένης τροχιάς απαρτίζεται από τα εξής βήματα:

1. Υπολογισμός του διανύσματος ταχυτήτων από την προκαθορισμένη τροχιά για κάθε χρονική στιγμή.

2. Υπολογισμός των ταχυτήτων που πρέπει να εφαρμοσθούν στο ρομπότ για κάθε χρονική στιγμή μέσω του αντίστροφου κινηματικού μοντέλου (Σχέση (6.3))

3. Υπολογισμός των ταχυτήτων στους δεξιούς και αριστερούς τροχούς αντίστοιχα (Σχέση (6.4))

4. Υπολογισμός των τάσεων που θα εφαρμοσθούν στους κινητήρες των αντίστοιχων τροχών με την βοήθεια ενός απλού PID ελεγκτή

39

Page 40: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

6.4. Νόμος ελέγχου κλειστού βρόχου (Pre-timed Controller)

Γνωρίζοντας την θέση ενός κινούμενου ρομπότ στο χώρο που κινείται, το πρόβλημα ανάπτυξης ενός νόμου ελέγχου με ανατροφοδότηση (κλειστού βρόχου) απλοποιείται. Παρόλα αυτά λόγω της πολυπλοκότητας του συστήματος των ρομπότ είναι δύσκολο να εφαρμοσθούν κλασσικές τεχνικές ελέγχων. Όπως αναφέραμε στο κεφάλαιο 2 το κινηματικό μοντέλο του τετράτροχου ρομπότ (Σχέση 2.10) , όπως και κάθε είδους ρομπότ, είναι μη γραμμικό, δυναμικό, μη- ολονομικό και υποενεργοποιούμενο. Τα στοιχεία αυτά κάνουν αδύνατη την εφαρμογή τυπικών ελεγκτών κλειστού βρόχου (PID και ΟΝ-OFF). Όπως φαίνεται και σε πολλά άρθρα που έχουν δημοσιευθεί κατά καιρούς, το πρόβλημα ανάπτυξης ενός νόμου ελέγχου ικανού ώστε το ρομπότ να μπορέσει να παρακολουθήσει επακριβώς μια προκαθορισμένη τροχιά είναι αρκετά δύσκολο να αντιμετωπιστεί.

Γενικώς η ανάπτυξη ενός μη-γραμμικού ελεγκτή αποτελεί την πιο ενδεδειγμένη λύση ώστε να μπορέσει το ρομπότ να κινηθεί σύμφωνα με μια ορισμένη τροχιά. [33]Παρόλα αυτά σε αυτήν την εργασία η λύση που προτείνεται αφορά την “αποσύνθεση” της σχέσης μεταξύ της ευθύγραμμης και περιστροφικής κίνησης του ρομπότ. Με την λέξη “αποσύνθεση” αναφερόμαστε στο ότι αυτές οι δύο κινήσεις δεν θα γίνονται ταυτόχρονα. Αυτό σημαίνει ότι το ρομπότ κάθε μια χρονική στιγμή θα μπορεί ναι κινείται είτε γύρω από τον εαυτό του, είτε ευθεία κρατώντας τον προσανατολισμό του σταθερό.

Στην ουσία σύμφωνα με αυτήν την μέθοδο γίνεται δυνατή η απλοποίηση του κινηματικού μοντέλου. Η αποσύνθεση της περιστροφικής και της ευθύγραμμης κίνησης τις χωρίζει σε δύο αποσυζευγμένες και ανεξάρτητες διαδικασίας. Λαμβάνοντας λοιπόν υπόψη την περιστροφική κίνηση του ρομπότ, η θέση του x , y μεταβάλλεται λόγω τις ολίσθησης των τροχών στην κάθετη συνιστώσα. Παρόλα αυτά εμάς μας ενδιαφέρει να προσανατολίσουμε το ρομπότ σε μία προκαθορισμένη κατεύθυνση και για το λόγο αυτό δεν λαμβάνουμε υπόψη την δυναμική της θέσης του ρομπότ. Με τον τρόπο αυτό το κινηματικό μοντέλο του ρομπότ (Σχέση 2.10) κατά την περιστροφική κίνηση απλοποιείται στην τρίτη εξίσωση, οδηγώντας σε μια αναλογική σχέση της εισόδου ω με την παράγωγο του προσανατολισμού του ρομπότ ως προς τον χρόνο, θ .

Αντίστοιχα, λαμβάνοντας υπόψη μόνο την ευθύγραμμη κίνηση του ρομπότ, είναι προφανές πως θεωρούμε ότι ω=0 . Με αυτόν το τρόπο το μη γραμμικό μοντέλο (Σχέση 2.10) μετατρέπεται σε δύο ανεξάρτητες ολοκληρωτικές εξισώσεις όπως φαίνονται παρακάτω:

[ xy]=[cosθsin θ ]ux , (6.5)

,όπου η μεταβλητή θ παραμένει σταθερή και ίση με τον προσανατολισμό του ρομπότ κατά το ξεκίνημα της ευθύγραμμης κίνηση. Με αυτόν τον τρόπο, η παράγωγος της απόστασης που διένυσε το ρομπότ ως προς το χρόνο είναι ανάλογη με την ταχύτητα u x .

Σύμφωνα με την ανάλυση που έγινε προηγουμένως, γίνεται ξεκάθαρο πως μπορούν να σχεδιαστούν κλασσικοί ελεγκτές γραμμικών και χρονικά αμετάβλητων συστημάτων (LTI) ξεχωριστά για κάθε μια από τις δύο ανεξάρτητες κινήσεις του ρομπότ. Στην εργασία αυτή χρησιμοποιήθηκαν δύο Pre-timed ON-OFF ελεγκτές για τον έλεγχο του προσανατολισμού και της απόστασης που διανύει το ρομπότ όπου το Block διάγραμμα φαίνεται στην Εικόνα6.2.

40

Page 41: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Αν θεωρήσουμε ένα σημείο που θέλουμε το ρομπότ να φτάσει (setpoint) με

συντεταγμένες xd , yd τότε ο επιθυμητός προσανατολισμός θd και η επιθυμητή

απόσταση Ld ορίζονται από τις παρακάτω σχέσεις:

θd=arctan yd− y

xd−x (6.6)

Ld=∥ xy −xd

yd ∥ (6.7)

Με την βοήθεια των Pre-timed ON-OFF ελεγκτών μπορεί το ρομπότ να λάβει τις παραπάνω επιθυμητές τιμές. Θα πρέπει να τονίσουμε ότι ο κάθε ελεγκτής λειτουργεί ξεχωριστά. Αυτό σημαίνει ότι πρώτα το ρομπότ προσπαθεί να φτάσει την τιμή του επιθυμητού προσανατολισμού, ύστερα ταξιδεύει ένα επιθυμητό μήκος απόστασης και ούτω καθεξής.

Μέχρι στιγμής την λειτουργία που αναφέραμε παραπάνω μπορεί να την εκτελέσει και ένας κλασσικός ON-OFF ελεγκτής. Η επιλογή του Pre-timed ελεγκτή έγινε για να αποφευχθούν φαινόμενα “κλειδώματος” του ρομπότ σε μια θέση προσπαθώντας να εκτελέσει μια από τις αναφερόμενες κινήσεις (περιστροφική ή ευθύγραμμη). Η λειτουργία του Pre-timed αναφέρεται και ως κυκλική αναζήτηση συντεταγμένων (Εικόνα 6.3),και σκοπός της είναι είναι να χωρίσει τις επιθυμητές τιμές-στην ουσία τις κινήσεις του ρομπότ-σε μικρότερα μέρη και να εκτελεί διαδοχικά τις δύο κινήσεις. Σύμφωνα με την μέθοδο αυτή οι επιθυμητές καταστάσεις θd και Ld χωρίζονται σε μικρότερα μέρη:

θd *= λθd , Ld *

=Lθ d , (6.8)όπου λ είναι ένας σταθερός συντελεστής βαρύτητας όπου ισχύει 0λ1 . Έτσι με αυτόν τον τρόπο το ρομπότ εκτελεί μικρότερες κινήσεις που το βοηθούν να μην κολλήσει σε μια συγκεκριμένη θέση. Παρόλο που με τον συντελεστή βαρύτητας ορίζουμε την τιμή της κάθε κίνησης ο όρος “Pre-timed” αναφέρεται στον χρόνο γιατί στην πραγματικότητα προσπαθούμε να ελέγξουμε ουσιαστικά την διάρκεια της κάθε κίνησης.

41

Εικόνα 6.2: Block διάγραμμα του Pre-timed ON-OFF ελεγκτή

Page 42: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Μέχρι τώρα χρησιμοποιώντας τους Pre-timed ON-OFF ελεγκτές μπορούμε να μετακινήσουμε το ρομπότ σε μία επιθυμητή θέση (setpoint). Για να μπορέσει να ακολουθήσει μια προκαθορισμένη τροχιά θα πρέπει να χωριστεί η τελευταία σε μικρότερα ευθύγραμμα τμήματα. Η κορυφή του κάθε τμήματος ορίζεται ως ενδιάμεσο setpoint όταν το ρομπότ φτάσει στην προηγούμενη επιθυμητή θέση.

Συνοπτικά ο αλγόριθμος ο οποίος υλοποιεί τον συνολικό ελεγκτή κλειστού βρόχου που αναλύθηκε σε αυτήν την ενότητα εκτελεί τα παρακάτω βήματα:

1. Ορίζονται Ν ενδιάμεσα σημεία xid , y i

d από την προκαθορισμένη τροχιά.

2. Υπολογίζεται ο επιθυμητός προσανατολισμός θd * από τις σχέσεις (6.6), (6.8)3. Οι τάσεις στους κινητήρες του ρομπότ παίρνουν τις τιμές:

V R=−V L=K r signθ−θ d *

4. Αν ∣θd *−θ∣θ threshold τότε επιστρέφει στο βήμα 3

5. Υπολογίζεται ο επιθυμητός προσανατολισμός Ld * από τις σχέσεις (6.7), (6.8)

6. Οι τάσεις στους κινητήρες του ρομπότ παίρνουν τις τιμές:

V R=V L=K t

7. Αν Ld *Lthreshold τότε επιστρέφει στο βήμα 6 αλλιώς i=i1

8. Αν i≤N τότε επιστρέφει στο βήμα 2

6.5. Επίλογος

Στο κεφάλαιο αυτό έγινε μια ανάλυση στους τρόπους ανάπτυξης προκαθορισμένων τροχιών και νόμων ελέγχου στην κίνηση του ρομπότ ώστε να μπορεί να ακολουθηθεί η τροχιά αυτή. Μπορούμε να παρατηρήσουμε στο σημείο αυτό πως ενώ ο νόμος ελέγχου ανοιχτού βρόχου προσπαθεί να εκτελέσει μια προκαθορισμένη τροχιά, ο νόμος ελέγχου κλειστού βρόχου βοηθάει το ρομπότ να ακολουθήσει ένα προκαθορισμένο μονοπάτι. Η διαφορά έγκειται στο ότι η τροχιά περιέχει και την μεταβλητή του χρόνου. Ο Pre-timed ON-OFF ελεγκτής μπορεί να μετακινήσει το ρομπότ σε ένα προκαθορισμένο σημείο χωρίς να είναι γνωστό πόσο θα διαρκέσει η κίνηση αυτή.

42

Εικόνα 6.3: Κυκλικό σύστημα αναζήτησης συντεταγμένων

Page 43: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

ΚΕΦΑΛΑΙΟ 7

Πειραματικά αποτελέσματα

7.1. Εισαγωγή

Στο κεφάλαιο αυτό θα αναφερθούμε για τις πειραματικές διατάξεις που υλοποιήσαμε για την εκτέλεση και την εφαρμογή των αλγορίθμων που αναλύθηκαν στα παραπάνω κεφάλαια. Αρχικά θα δείξουμε το ρομπότ που χρησιμοποιήθηκε για την υλοποίηση των πειραμάτων καθώς και τις συσκευές που το απαρτίζουν. Στην συνέχεια θα δείξουμε το στήσιμο του ολοκληρωμένου συστήματος αισθητήρων και τέλος θα αναφερθούμε στα πειράματα που έγιναν καθώς και τα χρήσιμα συμπεράσματα που ανέκυψαν από αυτά.

7.2. Πειραματική διάταξη

7.2.1. Εισαγωγή

Πριν γίνει η ανάλυση των πειραμάτων και των αποτελεσμάτων που απαρτίζουν την εργασία αυτή θα πρέπει να αναφερθούμε στο υλικό και στην διάταξη των πειραμάτων. Είναι αναγκαίο να αναλυθούν οι παράμετροι και οι συνθήκες που γίνονται τα πειράματα ώστε να γίνει σωστή επεξεργασία των αποτελεσμάτων και να εξαχθούν σημαντικά συμπεράσματα. Θα αναλύσουμε τα χαρακτηριστικά και τις συσκευές που απαρτίζουν το ρομπότ που χρησιμοποιήθηκε για την εκτέλεση των πειραμάτων και στην συνέχεια θα αναλύσουμε τις παραμέτρους και την τοπολογία του ασύρματου δικτύου αισθητήρων.

7.2.2. Το ρομπότ που χρησιμοποιήθηκε για την εκτέλεση των πειραμάτων

Το ρομποτικό σύστημα που χρησιμοποιήθηκε σε αυτήν την διπλωματική εργασία αναπτύχθηκε στο Πανεπιστήμιο Πατρών στο εργαστήριο Αυτομάτου Ελέγχου και Ρομποτικής και είναι ένα αυτοκινούμενο όχημα (UPAT Rover) το οποίο κινείται με τέσσερις τροχούς (2 ζευγάρια ανά πλευρά) οι οποίοι δεν έχουν δυνατότητα στρέψης. [32] Ο σκελετός του οχήματος καθώς και οι βασικές συσκευές που βοηθούν στην κίνηση του(κινητήρες, τροχοί και ένας microcontroller) κατασκευάστηκαν από την εταιρία Lynxmotion (4WD2 Robot) (Εικόνα 7.1). Το συγκεκριμένο όχημα χρησιμοποιεί διαφορικό

43

Εικόνα 7.1: Βασικός σκελετός του UPAT οχήματος

Page 44: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

σύστημα οδήγησης και ελαστικά τύπου ομοίου με αυτά που χρησιμοποιούνται στα φορτηγά οχήματα ώστε να παρουσιάζει την καλύτερη δυνατή πρόσφυση και ευστάθεια σε ανώμαλα εδάφη. Το πλαίσιό του είναι κατασκευασμένο από αλουμίνιο και πλαστικό ώστε να παρουσιάζει μεγάλη μηχανική αντοχή σε συνδυασμό με χαμηλό βάρος. Τα βασικά μηχανικά χαρακτηριστικά του οχήματος παρουσιάζονται στον πίνακα 2.

Οι κινητήρες που χρησιμοποιεί το παραπάνω όχημα είναι τέσσερις με χαρακτηριστικά που φαίνονται στον πίνακα 3 και συνδέονται παράλληλα ανά δύο, δηλαδή τροφοδοτούνται με την ίδια τάση που βρίσκονται στην ίδια πλευρά του ρομπότ. Η συνδεσμολογία αυτή δίνει στο UPAT Rover να κινείται σαν τα ερπιστριοφόρα οχήματα ιδιαίτερα κατά την περιστροφική κίνηση. Επίσης οι κινητήρες αυτοί δίνουν την δυνατότητα στο ρομπότ να κινηθεί με μια μέγιστη ευθύγραμμη (περιστροφική) ταχύτητα 0.5m/sec (360ο /sec).

Όλα αυτά τα στοιχεία αποτελούν τα βασικά χαρακτηριστικά του οχήματος. Για να γίνει ο έλεγχος των κινητήρων καθώς και η αυτονομία του οχήματος αυτού τοποθετήθηκαν διάφορες συσκευές ικανές να εκτελέσουν τους αλγόριθμους που αναφέραμε στα προηγούμενα κεφάλαια και να δώσουν την δυνατότητα στο ρομπότ της πλήρης αυτονομίας. Όλες οι συσκευές αυτές καθώς και οι συνδέσεις μεταξύ τους φαίνονται στην Εικόνα 7.2. Παρακάτω θα δούμε διεξοδικά τις συσκευές αυτές.

(1) Κινητήρες συνεχούς ρεύματος

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

44

Πίνακας 2: Μηχανικά χαρακτηριστικά του UPAT Rover

Μηχανικά ΧαρακτηριστικάΜήκος 29.2 cmΠλάτος 29.2 cmΒάρος 1.81 kgΑπόσταση πλαισίου από το έδαφος 3.2cmΚίνηση Σε 4 τροχούςΟδήγηση ΔιαφορικήΠλαίσιο Διαφορική

Πίνακας 3: Τεχνικά χαρακτηριστικά των κινητήρων

Χαρακτηριστικά ΚινητήρωνΤάση τροφοδοσίας 7.2 V DCΤαχύτητα περιστροφής 175rpmΣχέση μετάδοσης 50:1Ροπή 7.1 kg-cmΕξωτερική διάμετρος 37mm

Page 45: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(2) Scorpion Motor Controller

Για τον έλεγχο των κινητήρων γίνεται χρήση ενός motor controller ο οποίος περιέχει έναν μικροεπεξεργαστή AVR ATmega8. Ο Scorpion controller παρέχει τον χαμηλού επιπέδου έλεγχο στο ρομπότ και περιέχει θύρες για την σύνδεση των τάσεων των κινητήρων καθώς και τροφοδοσίας. Επίσης δίνει την δυνατότητα τοποθέτησης σειριακά απλών αισθητήρων. Ειδικότερα επιτρέπει την τροφοδοσία των κινητήρων με τάση της οποίας το πλάτος μπορεί να κυμαίνεται από 4.8 V μέχρι 25 V DC. Κάνοντας χρήση μιας πλήρους γέφυρας MOSFET έχει τη δυνατότητα εκτός από την αναστροφή της παρεχόμενης τάσης και την ρύθμιση της τιμής της τάσης. Το ρεύμα που μπορεί να παρέχει σε κάθε κανάλι (δεξί και αριστερό) είναι 2.5 Α DC ή 5 A DC. Επίσης, προστατεύει από τυχόν υπερθέρμανση και παρουσία υψηλότερου από το επιτρεπόμενο επίπεδο τιμής ρεύματος. Στους πίσω κινητήρες του οχήματος έχουν τοποθετηθεί αισθητήρες που μετρούν την κίνηση του κάθε τροχού (encoders). Αυτοί οι αισθητήρες συνδέονται στον Scorpion controller. Παρόλο που ο μικροεπεξεργαστής του Scorpion έχει ρυθμιστεί να λαμβάνει εντολές μέσω τηλεχειριστηρίου, κάνοντας κάποιες μετατροπές στον κώδικα που εκτελεί καταφέραμε να δώσουμε την δυνατότητα επικοινωνίας σειριακά και εκτός της ρύθμισης της τάσης να μπορούμε να λαμβάνουμε και τις τιμές των αισθητήρων κίνησης. Οι συνδέσεις μεταξύ των κινητήρων (κόκκινο και μαύρο καλώδιο) και των encoders (μπλε καλώδιο) με τον Scorpion controller φαίνονται στην Εικόνα 7.2.

(3) Τυπωμένο κύκλωμα (πλακέτα) μετατροπής I2C σε σειριακό

Η πλακέτα αυτή αναπτύχθηκε στο εργαστήριο και επέτρεψε την επικοινωνία του χαμηλού επιπέδου ελέγχου με την βασική μονάδα επεξεργασίας και ελέγχου. Εκτός της μετατροπής της διάδοσης των σημάτων από Ι2C σε σειριακό έχει την δυνατότητα σύνδεσης διαφόρων αισθητήρων. Αυτή η δυνατότητα παρέχεται από την ύπαρξη κατάλληλων θηρών και ενός AVR ATmega8 μικροεπεξεργαστή που περιέχει κώδικα για την χαμηλού επιπέδου επικοινωνία μεταξύ των αισθητήρων αυτών. Ειδικότερα λοιπόν εκτός της σύνδεσης του Scorpion controller τοποθετήθηκαν στην πλακέτα αυτή οι συνδέσεις I2C της ηλεκτρονικής πυξίδας και σειριακά τα τρία αποστασιόμετρα. Να τονίσουμε πως η τροφοδοσία των συσκευών αυτών καθώς και των κινητήρων παρέχεται από μία μπαταρία συνεχούς ρεύματος 7.2V που συνδέεται στην πλακέτα αυτή και διαμοιράζεται σε όλες τις συσκευές.

(4) Ηλεκτρονική πυξίδα

Στην πλακέτα μετατροπής Ι2C σε σειριακό συνδέεται μέσω Ι2C η ηλεκτρονική πυξίδα CMPS03 η οποία χρησιμοποιεί τον αισθητήρα μαγνητικού πεδίου KMZ51 της εταιρίας Philips. Ο αισθητήρας αυτός είναι αρκετά ευαίσθητος ώστε να ανιχνεύει το μαγνητικό πεδίο της γης. Με τη χρήση δύο τέτοιων όμοιων αισθητήρων, τοποθετημένων σε κατάλληλη μεταξύ τους γωνία, είναι δυνατό να υπολογισθεί η κατεύθυνση της οριζόντιας συνιστώσας του μαγνητικού πεδίου της γης. Σύμφωνα με τα παραπάνω και με την χρήση κατάλληλων μετατροπών μπορούμε να γνωρίζουμε τον προσανατολισμό του ρομπότ θ μέσω της ηλεκτρονικής πυξίδας αυτής. Τέλος λόγω ότι οι τιμές που μας δίνονται από την ηλεκτρονική πυξίδα επηρεάζονται από μεταλλικά υλικά τοποθετήθηκε στο ψηλότερο μέρος του οχήματος μαζί με το (9).

45

Page 46: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

46

Εικόνα 7.2: Διάγραμμα των συσκευών και των συνδέσεων τους που απαρτίζουν το UPAT Rover

Page 47: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(5) Αποστασιόμετρο υπέρυθρων (Ιnfrared Range Finder)

Στο UPAT Rover τοποθετήθηκαν περιμετρικά τρία GP2D12 αποστασιόμετρα της εταιρίας Sharp . Το κάθε αποστασιόμετρο χρησιμοποιεί έναν αισθητήρα ο οποίος λαμβάνει συνεχώς μετρήσεις της απόστασης και τις μεταδίδει στην έξοδο με τη μορφή αναλογικής τάσης για αποστάσεις που κυμαίνονται από περίπου 10cm ως περίπου 80cm. Για απόσταση 10cm παράγει τάση τιμής 2.5V περίπου ενώ για απόσταση 80cm παράγει τάση 0.4V περίπου. Η φυσική διεπαφή του αποστασιόμετρου είναι τρία καλώδια, ένα για τροφοδοσία (+5 V DC), ένα για γείωση και ένα για το σήμα εξόδου που όπως αναφέραμε και πριν είναι μια αναλογική τάση που κυμαίνεται από 0.4 V έως 2.5 V. Τα αποστασιόμετρα αυτά συνδέονται στην πλακέτα μετατροπής Ι2C σε σειριακό σειριακά. Η αναλογική τάση εξόδου μετατρέπεται από τον μικροεπεξεργαστή της πλακέτας σε ψηφιακή μορφή, ώστε να μας είναι χρήσιμη, με τη βοήθειά ενός αναλογικού/ψηφιακού μετατροπέα. Να τονίσουμε πως σε αυτήν την διπλωματική εργασία δεν χρησιμοποιήθηκαν τα αποστασιόμετρα αυτά αλλά τοποθετήθηκαν στο ρομπότ και υλοποιήθηκαν οι αλγόριθμοι εύρεσης των αποστάσεων που μετρούν ώστε να μπορεί να γίνει εφικτή αργότερα η χρήση τους για την αποφυγή εμποδίων.

(6) Βασική μονάδα επεξεργασίας: Μικροϋπολογιστής Advantech

Στο αυτοκινούμενο όχημα τοποθετήθηκε ο μικροϋπολογιστής PCM-9375 της εταιρίας Advantech. Τα χαρακτηριστικά του φαίνονται στον πίνακα 4. Ο υπολογιστής αυτός παρέχει την ισχύ ενός κανονικού υπολογιστή με χαμηλή κατανάλωση ενέργειας που το κάνει χρήσιμο σε τέτοιες εφαρμογές. Στον υπολογιστή αυτό έχουν συνδεθεί εκτός της πλακέτας μετατροπής Ι2C σε σειριακό -που συνδέει ουσιαστικά την χαμηλού επιπέδου επεξεργασία-άλλες περιφερειακές συσκευές που ολοκληρώνουν την αυτονομία του UPAT Rover. Στον υπολογιστή αυτό έχουν εγκατασταθεί το λειτουργικό σύστημα MS Windows XP καθώς και η πλατφόρμα NI LabView 7.1 με την οποία έχουν αναπτυχθεί και τρέχουν όλοι οι αλγόριθμοι που παρουσιάσθηκαν στα προηγούμενα κεφάλαια.

47

Πίνακας 4: Χαρακτηριστικά του μικροϋπολογιστή PCM-9375

Τεχνικά χαρακτηριστικάCPU AMD Geode LX800 500MHz

AMD Geode LX800BIOS Award 4Mbit Flash BIOSΜνήμη DDR SDRAM 512MBΚάρτα γραφικών AMD Geode LX80064ΜΒΛειτουργικό MS Windows XP ProΘύρες:USB USB2.0 x 4Σειριακές COM x 4

Άλλες

Ethernet Realtek RTL8100 10/100MbpsΜηχανικά ΧαρακτηριστικάΔιαστάσεις 146x102mmΒάρος 0.85KgΘερμοκρασία λειτουργίαςΤροφοδοσία

System Chipset

1xEIDE (slave channel), 1x K/B, 1 x Mouse, 1 Xrs232/422/485

0-60oCAT/ATX +5V +5% , +12V +5%

Page 48: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(7) Συσκευή ασύρματης δικτύωσης Netgear

H συσκευή αυτή συνδέεται μέσω θύρας USB και ουσιαστικά συνδέει τον υπολογιστή του οχήματος δικτυακά με άλλους υπολογιστές καθαρά για να γίνει εποπτικός έλεγχος του ρομπότ. Η ταχύτητα του ανέρχεται στα 56Kbps.

(8) Telos Mote

Στον υπολογιστή συνδέεται σειριακά μέσω θύρας USB η πλατφόρμα Telos Mote που αναφέρθηκε στο κεφάλαιο 4. Με αυτόν τον τρόπο μεταφέρονται τα πακέτα που παρέχουν τις πληροφορίες από τους κόμβους φάρους σειριακά στον υπολογιστή για να επεξεργαστούν σύμφωνα με τους αλγόριθμους που αναπτύξαμε.

(9) Πομπός υπερηχητικών παλμών

Ο πομπός υπερηχητικών παλμών που αναλύθηκε στο κεφάλαιο 4 τοποθετείται στο υψηλότερο σημείο του οχήματος μαζί με την ηλεκτρονική πυξίδα για να μην υπάρχει πρόβλημα στην αποστολή του παλμού περιμετρικά από το ρομπότ. Συνδέεται με την πλατφόρμα Telos Mote σειριακά για να μπορέσει να συγχρονιστεί και να αποστείλει τον παλμό ταυτόχρονα με το RF μήνυμα της τελευταίας.

(10) Κάμερα AXIS 213

Εκτός των άλλων συσκευών τοποθετήθηκε στο ρομπότ μια δικτυακή κάμερα AXIS 213 PTZ η οποία συνδέεται μέσω LAN στον κεντρικό υπολογιστή του UPAT Rover. Η κάμερα αυτή έχει ανάλυση 704x576 @ 25fps και είναι ιδανική για την υλοποίηση τεχνικών image-processing. Σε αυτήν την διπλωματική εργασία δεν χρησιμοποιήθηκε η κάμερα αυτή απλά τοποθετήθηκε για μετέπειτα χρήση της κάμερας αυτής για την χαρτογράφηση του χώρου που κινείται στο ρομπότ για την ανάπτυξη ολοκληρωμένων αλγορίθμων αποφυγής εμποδίων.

(11) Πλατφόρμα ΝΙ LabView 7.1

Στον υπολογιστή έχει εγκατασταθεί το πρόγραμμα LabView 7.1 της National Instruments. [34] Στο πρόγραμμα αυτό αναπτύχθηκαν όλοι οι αλγόριθμοι που εκτελούνται πάνω στο UPAT Rover. ο πρόγραμμα αυτό είναι μια γραφική γλώσσα προγραμματισμού , βασισμένη στην γλώσσα G που μας δίνει τη δυνατότητα να πάρουμε δεδομένα από κάρτες DAQ ή σειριακές θύρες και παράλληλα να τα επεξεργαστούμε. Λόγω του γραφικού περιβάλλοντος μπορούν να αναπτυχθούν προγράμματα τα οποία δημιουργούν εικονικές συσκευές ελέγχου. Αυτή η δυνατότητα κάνει την εφαρμογή LabView κατάλληλη για τους αλγόριθμους που θέλουμε να αναπτύξουμε καθώς και τον έλεγχο της εκτέλεσης των αλγορίθμων αυτών μέσω εποπτικών συσκευών.

Με τις συσκευές και τα χαρακτηριστικά που αναφέρθηκαν παραπάνω ολοκληρώνεται η κατασκευή του οχήματος UPAT που χρησιμοποιήθηκε για τα πειράματα της συγκεκριμένης διπλωματικής εργασίας. Στις εικόνες 7.3 (α),(β),(γ) και (δ) μπορούμε να δούμε το ολοκληρωμένο ρομπότ UPAT Rover.

48

Page 49: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

7.2.3. Τοπολογία ασύρματου δικτύου αισθητήρων

Για την πραγματοποίηση των πειραμάτων πρέπει να τοποθετήσουμε τους κόμβους φάρους σε σταθερά σημεία στο χώρο όπου θα κινηθεί το ρομπότ. Η επιλογή της θέσης βασίζεται στις παραμέτρους που λειτουργεί το RF-Ultrasound σύστημα. Παράλληλα αποτελεί μια συμμετρική τοποθέτηση για την αποφυγή συμπτώσεων ή ιδανικών συνθηκών λειτουργίας της ολοκληρωμένης διάταξης που υλοποιήσαμε για τον λόγω αυτό τοποθετήθηκαν έξι κόμβοι στις κορυφές ενός κανονικού εξάπλευρου πλευράς 3 μέτρων όπως φαίνεται και στην. Σύμφωνα με αυτήν την διάταξη δημιουργείται μια επιφάνεια εργασίας που λειτουργεί ικανοποιητικά η διάταξη RF-Ultrasound λόγω τις ύπαρξης των ορίων υπολογισμού της απόστασης μεταξύ ρομπότ και φάρων. Επίσης ο αλγόριθμος για τον υπολογισμό της θέσης του ρομπότ απαιτεί την γνώση τουλάχιστον τριών αποστάσεων

49

Εικόνα 7.3: Το UPAT Rover

(α) Μπροστά όψη (β) Πίσω όψη

(γ) Πλάγια αριστερή όψη (δ) Πλάγια δεξιά όψη

Page 50: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

από αντίστοιχους κόμβους. Για τους λόγους αυτούς η επιφάνεια που μπορεί να κινηθεί το ρομπότ και να έχουμε ικανοποιητική γνώση της θέσης του με βάση την τοπολογία αυτή φαίνεται στην εικόνα Εικόνα 7.4.

7.3. Μελέτη του ελεγκτή ανοιχτού-βρόχου

● Εισαγωγή

Αφού μελετήσαμε τα στοιχεία που διέπουν τις πειραματικές διατάξεις μπορούμε να αναλύσουμε τα αποτελέσματα από διάφορα πειράματα που πραγματοποιήσαμε. Αρχικά θα αναλύσουμε την λειτουργία του ελεγκτή ανοιχτού-βρόχου που περιγράψαμε στην ενότητα 6.3.

Για την ανάπτυξη μιας επιθυμητής τροχιάς που θα ακολουθήσει το ρομπότ

χρησιμοποιήσαμε μιας 10ης καμπύλη Bezier με αρχικό σημείο την θέση −2,0T μέτρα και

τελική την θέση 2,0T μέτρα. Η τροχιά αυτή ορίσθηκε να διαρκέσει 15sec ώστε οι ταχύτητες που θα αναπτυχθούν στους κινητήρες να μην ξεπερνούν τις μέγιστες τιμές. Επίσης να τονίσουμε στο σημείο αυτό πως ο ρυθμός δειγματοληψίας του ελεγκτή ορίσθηκε στα 150msec, χρόνος ικανός ώστε ο ελεγκτής PID να δώσει τις ανάλογες τάσεις στους κινητήρες.

Σύμφωνα λοιπόν με τα παραπάνω χαρακτηριστικά, εξήχθησαν από την τροχιά 101 σημεία και ο ελεγκτής ανοιχτού-βρόχου χρησιμοποιώντας το αντίστροφο κινηματικό μοντέλο (Σχέση 6.3 6.4) υπολόγισε τις επιθυμητές ταχύτητες στους αριστερούς και δεξιούς τροχούς (Εικόνα 7.5). Στην συνέχεια με την βοήθεια του PID ελεγκτή, το ρομπότ προσπάθησε να αναπτύξει τις ταχύτητες αυτές και τελικώς να ακολουθήσει την προκαθορισμένη τροχιά. Να σημειώσουμε στο σημείο αυτό πως μετά από αρκετά πειράματα καταλήξαμε στην τιμή L=243mm για την απόσταση μεταξύ των αριστερών και δεξιών τροχών που χρησιμοποιείται στην εξίσωση 6.4. Επίσης οι τιμές του PID ελεγκτή ορίσθηκαν στις τιμές:

Κ P=0.4, K I=0.02, K D=0.01 .

50

Εικόνα 7.4: Τοπολογία ασύρματου δικτύου

3m

Page 51: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

● Αποτελέσματα

Το πείραμα εκτελέστηκε αρκετές φορές ώστε να καταλήξουμε σε συμπεράσματα και για την λειτουργία του PID ελεγκτή καθώς και του νόμου ανοιχτού-βρόχου για την παρακολούθηση τροχιάς από το ρομπότ. Τα αποτελέσματα φαίνονται στην Εικόνα 7.6

51

Εικόνα 7.6: Νόμος ελέγχου ανοιχτού βρόχου για κίνηση του ρομπότ σε προκαθορισμένη τροχιά

-2000 -1500 -1000 -500 0 500 1000 1500 2000-1500

-1000

-500

0

500

1000

1500

X position (mm)

Y po

sitio

n (m

m)

Bezier CurveRobot Path 1Robot Path 2Robot Path 3Robot Path 4Robot Path 5Robot Path 6Robot Path 7

Εικόνα 7.5: Επιθυμητές τιμές ταχυτήτων στους αριστερούς και δεξιούς τροχούς

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000 13000 14000 15000

50

100

150

200

250

300

350

400

450

500

Time (ms)

De

sire

d V

elo

citi

es 

(mm

/s)

uRd

uLd

Page 52: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

● Παρατηρήσεις - Συμπεράσματα

Από τα αποτελέσματα που βλέπουμε στην Εικόνα 7.6 μπορούμε να εξάγουμε σημαντικά συμπεράσματα. Καταρχήν όσο αναφορά την λειτουργία του PID ελεγκτή μπορούμε να συμπεράνουμε πως λειτουργεί ικανοποιητικά. Αυτό φαίνεται από την επαναληψιμότητα των αποτελεσμάτων. Βλέπουμε πως οι τροχιές που εκτέλεσε το ρομπότ έχουν μια απόκλιση μεταξύ τους της τάξης 5-10%. Δηλαδή το ρομπότ ακολούθησε τις επιθυμητές ταχύτητες και στα εφτά πειράματα με τον ίδιο σχεδόν τρόπο.

Όσο αναφορά τώρα την λειτουργία του ανοιχτού-βρόχου ελέγχου αυτό που μπορούμε να παρατηρήσουμε είναι πως ενώ αρχικά το ρομπότ ακολουθούσε την τροχιά, στην συνέχεια προκαλείται μια απόκλιση στις περιοχές μεγάλης καμπυλότητας της τροχιάς. Αυτό συμβαίνει λόγω τις παρουσίας μεγάλης ολίσθησης. Ο συνδυασμός μεγάλων ταχυτήτων στην μια πλευρά του ρομπότ έναντι πολύ μικρών στην άλλη, προκαλεί μεγάλη ολίσθηση των τροχών ως προς τον οριζόντιο άξονα. Το σημαντικό μειονέκτημα του νόμου ελέγχου ανοιχτού βρόχου είναι πως δεν μπορεί να διορθώσει την απόκλιση από την επιθυμητή τροχιά. Οι επιθυμητές ταχύτητες έχουν οριστεί εξ αρχής και δεν μπορούν να αλλάξουν κατά την διάρκεια εκτέλεσης του πειράματος. Όπως φαίνεται και στην Εικόνα 7.6 η πρώτη απόκλιση του ρομπότ από την επιθυμητή τροχιά που συνέβη στο μεγάλης καμπυλότητας σημείο, παρέμεινε στο σύστημα και προσθέτεται στις υπόλοιπες αποκλίσεις που ακολούθησαν. Αυτά τα σφάλματα μπορούν να λυθούν μόνο με την χρήση νόμων ελέγχου κλειστού βρόχου.

7.4. Μελέτη της διάταξης RF-Ultrasound και της τεχνικής clustering για την εύρεση της θέσης του ρομπότ.

● Εισαγωγή

Σκοπός μας ήταν να αναπτύξουμε ένα αξιόπιστο σύστημα για να βρούμε την ακριβή θέση του ρομπότ που κινείται σε ένα εσωτερικό χώρο εργασίας. Αυτό θα μας βοηθούσε για να αναπτύξουμε τελικώς έναν ελεγκτή κλειστού βρόχου με το οποίο θα μπορούσαμε να ελέγξουμε την κίνηση του ρομπότ.

Πριν λοιπόν πειραματιστούμε με τον Pre-timed ελεγκτή που αναπτύξαμε στην ενότητα 6.4 θα πρέπει πρώτα να ελέγξουμε την λειτουργία της διάταξης RF-Ultrasound και της τεχνικής clustering για την εύρεση της θέσης του ρομπότ. Για το λόγο αυτό τοποθετήσαμε το ρομπότ στην θέση 0,0 σύμφωνα με την τοπολογία του ασύρματου δικτύου που παρουσιάσαμε προηγουμένως και πραγματοποιήσαμε διάφορες μετρήσεις.

Η βασική μεταβλητή στην τεχνική clustering που επηρεάζει το σφάλμα μεταξύ της πραγματικής και της μετρούμενης θέσης του ρομπότ είναι ο αριθμός των cluster C . Αλλάζοντας λοιπόν την μεταβλητή αυτή προσπαθήσαμε να λάβουμε την πραγματική τιμή της θέσης του ρομπότ. Να σημειώσουμε πως στις εξισώσεις που εκτελούν την αναγνώριση για την εύρεση του νικητή cluster τοποθετήθηκαν οι παρακάτω τιμές:

d rT s=0.15m , d ra=0.15m καθώς και η εκτιμώμενη θέση 0,0Τ .

● Αποτελέσματα

Χρησιμοποιώντας σταθερά τις τιμές που πήραμε από την διάταξη RF-Ultrasound με τις αποστάσεις των κόμβων “φάρων” από το ρομπότ και βρίσκοντας τις τομές των κύκλων

52

Page 53: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

εκτελέσαμε μόνο τον αλγόριθμο k-means clustering καθώς και τον αλγόριθμο που μας δίνει τον νικητή cluster, αρκετές φορές. Οι παρακάτω γραφικές (Εικόνες 7.7,7.8,7.9) μας δείχνουν ένα παράδειγμα εύρεσης της θέσης του ρομπότ αλλάζοντας την μεταβλητή C .

53

Εικόνα 7.8: Τεχνική Clustering για C=5

-8000 -6000 -4000 -2000 0 2000 4000 6000 8000-6000

-4000

-2000

0

2000

4000

6000

X position (mm)

Y po

sitio

n (m

m) Main Cluster

(Estimated Position)

Εικόνα 7.7: Τεχνική Clustering για C=4

-8000 -6000 -4000 -2000 0 2000 4000 6000 8000-6000

-4000

-2000

0

2000

4000

6000

X position (mm)

Y po

sitio

n (m

m)

Main Group(Estimated Position)

Page 54: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Να σημειώσουμε πως στις εικόνες 7.7,7.8,7.9, βλέπουμε την τοπολογία του δικτύου, δηλαδή τη θέση των κόμβων φάρων σημειωμένες με το σύμβολο ❑ και την πραγματική θέση του ρομπότ με το σύμβολο ⟠. Επίσης οι συντεταγμένες των τομών των κύκλων που δημιουργήθηκαν σημειώνονται με σταυρούς καθώς και η ομάδες (cluster) με διαφορετικό χρώμα. Τέλος τα κεντροειδή των ομάδων σημειώνονται στις εικόνες με κύκλο.

Στον πίνακα 5 καθώς και στο γράφημα 1 μπορούμε να παρατηρήσουμε το πόσο επηρεάζει την ακρίβεια της τεχνικής clustering ο αριθμός των cluster ανάλογα με τον αριθμό των μετρούμενων τομών ύστερα από πειράματα που έγιναν.

Καθώς εκτελέσαμε και τα πειράματα του ελεγκτή ανοιχτού βρόχου καταγράψαμε την κίνηση του ρομπότ με χρήση της διάταξης RF-Ultrasound. Ο αριθμός των cluster στην καταγραφή αυτή παρέμεινε σταθερός στην τιμή C=5 . Οι υπόλοιπες τιμές για την λειτουργία της εύρεσης της θέσης του ρομπότ (winning cluster) παρέμειναν όπως και πριν ενώ η τιμή του βάρους a είχε την τιμή 1, ώστε να δούμε καθαρά μόνο την λειτουργία της μεθόδου. Τα αποτελέσματα φαίνονται στην Εικόνα 7.10.

54

Εικόνα 7.9: Τεχνική Clustering για C=6

-8000 -6000 -4000 -2000 0 2000 4000 6000 8000-6000

-4000

-2000

0

2000

4000

6000

X position (mm)

Y po

sitio

n (m

m)

Main Group(Estimated Position)

Page 55: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

● Παρατηρήσεις – Συμπεράσματα

Είναι εμφανής από τα γενικά αποτελέσματα η σημαντικότητα της μεταβλητής C που έχει να κάνει με τον αριθμό των cluster. Στο παράδειγμα μας, έχοντας υπολογίσει, με την βοήθεια της διάταξης RF-Ultrasound και της θεωρίας τομής των κύκλων, 26 τομές στην Εικόνα 7.7 που βλέπουμε την θέση του ρομπότ χρησιμοποιώντας C=4 έχουμε μια απόκλιση 501mm από την πραγματική θέση. Η απόκλιση αυτή οφείλεται στο ότι η τεχνική clustering προσπάθησε να ομαδοποιήσει ένα μεγάλο εύρος (26 τομές) τιμών σε ένα μικρό

55

Γράφημα 1: Επιτυχία τεχνικής clustering ανάλογα του αριθμού cluster και των τομών

8 10 11 19 20 22

0,00%

10,00%

20,00%

30,00%

40,00%

50,00%

60,00%

70,00%

80,00%

90,00%

100,00%

C=3C=4C=5C=6C=7C=8C=9

Πίνακας 5: Επιτυχία τεχνικής clustering ανάλογα με τον αριθμό των cluster και των τομών

C=3 C=4 C=5 C=6 C=7 C=8 C=9

6 68,87% 75,10% 82,93% ----- ----- ----- -----

8 50,00% 35,70% 28,60% 33,50% 50,00% ----- -----

10 50,78% 58,97% 48,78% 47,47% 45,25% 39,88% 47,00%

11 50,00% 50,00% 50,00% 100,00% 100,00% 75,00% 75,00%

12 13,56% 50,50% 70,66% 68,97% 66,38% 62,06% 59,56%

14 18,75% 37,50% 12,50% 0,00% 12,50% 25,00% 37,50%

16 28,00% 19,64% 35,71% 60,71% 63,64% 46,43% 47,57%

18 25,06% 51,88% 64,75% 67,59% 68,75% 61,19% 65,81%

19 25,00% 50,00% 50,00% 50,00% 75,00% 75,00% 75,00%

20 24,46% 37,50% 28,73% 40,65% 65,23% 60,08% 44,69%

22 0,00% 15,63% 34,38% 37,50% 28,13% 37,50% 40,63%

24 0,00% 22,86% 61,43% 62,50% 92,86% 91,07% 88,21%

26 4,00% 20,31% 67,19% 79,69% 79,78% 73,84% 65,16%

27 0,00% 3,50% 25,00% 50,00% 35,60% 42,20% 50,00%

28 1,43% 34,46% 63,36% 67,64% 59,46% 64,32% 67,50%

29 25,00% 50,00% 58,25% 58,25% 66,75% 50,00% 58,25%

30 0,00% 45,23% 56,95% 52,09% 50,86% 58,50% 67,95%

cluster Τομές

Page 56: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

αριθμό cluster. Για τον λόγο αυτό ομαδοποιήθηκαν τομές που έχουν μεγάλη απόσταση μεταξύ τους. Έτσι το centroid του νικητή cluster για παράδειγμα, που μας ενδιαφέρει επηρεάστηκε από τις ακραίες τιμές με αποτέλεσμα να απέχει αρκετά από την πραγματική θέση. Αλλάζοντας των αριθμό των cluster σε C=5 (Εικόνα 7.8) η απόκλιση αυτή μειώνεται στα 231mm και πηγαίνοντας σε C=6 (Εικόνα 7.9) έχουμε μια απόκλιση της τάξης των 20mm. Η απόκλιση αυτή είναι σχεδόν μηδενική αν αναλογιστούμε και το σφάλμα που υπεισέρχεται από τις μετρήσεις της διάταξης RF-Ultrasound.

Επίσης στην Εικόνα 7.10 που βλέπουμε συνολικά την λειτουργία εύρεσης της θέσης του ρομπότ μέσω της διάταξης που υλοποιήσαμε παρατηρούμε την εξαγωγή 47 τιμών από τις 50 που ήταν αναμενόμενες – ο χρόνος δειγματοληψίας είναι 300ms και ο χρόνος εκτέλεσης του πειράματος 15sec. Αυτό συμβαίνει είτε λόγω της απώλειας πακέτων στον κεντρικό κόμβο λόγω συνωστισμού, είτε λόγω στο ότι δεν μπορούσε η τεχνική clustering να αποφανθεί για τον νικητή cluster. Παρόλα αυτά παρατηρούμε πως η τεχνική που εφαρμόσαμε για την εύρεση της θέσης του ρομπότ, έχει μια επιτυχία 70%. Το σφάλμα αρκετών τιμών, ειδικότερα στην περιοχή κοντά στο 0,0 όπου παίρνουμε μετρήσεις και από τους έξι κόμβους “φάρους” είναι μεγάλο και οφείλεται σε σημαντικό μέρος από την τεχνική clustering και ειδικότερα τον αριθμό των cluster.

Αναλύοντας επιφανειακά και τα αποτελέσματα του πίνακα και του αντίστοιχου γραφήματος 1, βλέπουμε τις μεταβολές της επιτυχίας της τεχνικής clustering. Μπορούμε να συμπεράνουμε γενικώς πως η χρήση ενός μεταβλητού αριθμού cluster ανάλογα με τον αριθμό των τομών θα βοηθήσει στην ανάπτυξη της αξιοπιστίας της διάταξης που υλοποιήσαμε. Βέβαια αυτό αποτελεί ένα σημαντικό κομμάτι για περαιτέρω έρευνα και στην συγκεκριμένη διπλωματική εργασία δεν αναλύεται περαιτέρω.

56

Εικόνα 7.10: Εύρεση της θέσης του ρομπότ καθώς κινείται σε μια προκαθορισμένη τροχιά

-4000 -3000 -2000 -1000 0 1000 2000 3000 4000

-2500

-2000

-1500

-1000

-500

0

500

1000

1500

2000

2500

X position (mm)

Y po

sitio

n (m

m)

MotesBezier CurveRover TrajectoryLocalization Points

Page 57: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

7.5. Μελέτη του ελεγκτή κλειστού-βρόχου

● Εισαγωγή

Μετά την ανάλυση της διάταξης RF-Ultrasound και της τεχνικής clustering που μας δίνουν την δυνατότητα να υπολογίσουμε την απόλυτη θέση του ρομπότ, μπορούμε να πειραματιστούμε με τον νόμο ελέγχου κλειστού-βρόχου “Pre-timed controller” όπου αναλύσαμε στην ενότητα 6.4. Για την σωστή υλοποίηση του νόμου αυτού πρέπει να λάβουμε υπόψη κάποιες σημαντικούς παραμέτρους. Αρχικά πρέπει να τονίσουμε την σημασία του χρόνου δειγματοληψίας του ελεγκτή.

Ουσιαστικά αυτό που μας ενδιαφέρει είναι κάθε πότε θα κλείνει ο βρόχος. Θα πρέπει ο χρόνος αυτός να είναι αρκετά μικρός ώστε να μπορεί γρήγορα ο ελεγκτής να διορθώνει την απόκλιση της θέσης του ρομπότ και της προκαθορισμένης τροχιάς. Παρόλα αυτά το βασικό πρόβλημα είναι πως η διάταξη εύρεσης θέσης του ρομπότ μας δίνει αποτελέσματα κάθε 300msec, χρόνος αρκετά μεγάλος για να μπορέσει ο ελεγκτής να λειτουργήσει σωστά. Για να ξεπεράσουμε το πρόβλημα αυτό χρησιμοποιούμε το κινηματικό μοντέλο του ρομπότ. Στην ουσία υπολογίζουμε την θέση του ρομπότ χρησιμοποιώντας τους on-board αισθητήρες (encoders, πυξίδα) στην σχέση (2.10), κλείνουμε τον βρόγχο κάθε 50msec και κάθε 300msec κάνουμε reset στην θέση του ρομπότ υπολογίζοντας την θέση του από το RF-Ultrasound σύστημα. Με αυτόν τον τρόπο εξαλείφουμε το πρόβλημα του αθροιστικού σφάλματος των encoders και μπορούμε κάθε 300msec να έχουμε την απόλυτη θέση του ρομπότ. Τέλος στην περιστροφική κίνηση θεωρούμε πως δεν αλλάζει η θέση του ρομπότ και κλείνουμε το βρόγχο υπολογίζοντας τον προσανατολισμό του ρομπότ από την πυξίδα.

● Αποτελέσματα

Μετά από διάφορα πειράματα που εκτελέσαμε η οριζόντια συνιστώσα του στιγμιαίου κέντρου περιστροφής υπολογίσθηκε στην τιμή x ICR=0.45mm όπου χρειάζεται στον υπολογισμό της θέσης του ρομπότ σύμφωνα με το κινηματικό μοντέλο. Για την εφαρμογή της τεχνικής clustering θέσαμε αριθμό cluster C=5 . Επίσης οι τιμές στις εξισώσεις που εκτελούν την αναγνώριση για την εύρεση του νικητή cluster τοποθετήθηκαν οι τιμές:

d rT s=0.15m , d ra=0.15m καθώς και ο συντελεστής βάρους τέθηκε στην τιμή a=0.5

για να αποφευχθούν μη έγκυρες τιμές από την τεχνική clustering. Για τους δύο Pre-timed controllers ο συντελεστής βαρύτητας υπολογίσθηκε μετά από πειράματα ίσος με την τιμή

λ=0.75 . Επιπρόσθετα για να αποφευχθεί το “κλείδωμα” του ρομπότ σε μια θέση τα όρια τέθηκαν στις τιμές Lthreshold

=0.1m , θ threshold=6o . Τέλος τα κέρδη στην ευθύγραμμη και

περιστροφική κίνηση τέθηκαν ίσα με τις αντίστοιχες ελάχιστες τιμές των τάσεων K t=90, Κ r=100 έτσι ώστε το ρομπότ να μην ξεπεράσει τα επιθυμητά σημεία που θέλει

να μετακινηθεί.

Σημείωση : Οι τιμές αυτές δεν είναι τάσεις απλά εντολές που δίνονται στον Scorpion controller και

αναλογούν σε ορισμένες τιμές τάσεων.

Σύμφωνα με τα παραπάνω εκτελέσαμε πειράματα χρησιμοποιώντας δύο τροχιές με διαφορετικές τιμές καμπυλότητας. Για την δημιουργία της πρώτης προκαθορισμένης τροχιάς χρησιμοποιήσαμε μια 10ης τάξης καμπύλη Bezier με αρχικό σημείο την θέση

0,0T μέτρα και τελική την θέση 3,0T μέτρα. Τα αποτελέσματα φαίνονται στην Εικόνα7.11 .Να τονίσουμε πως ο ελεγκτής κλειστού βρόχου θα βοηθήσει το ρομπότ να

57

Page 58: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

ακολουθήσει μια συγκεκριμένη καμπύλη αλλά όχι σε συγκεκριμένο χρόνο. Για την δημιουργία της δεύτερης προκαθορισμένης τροχιάς χρησιμοποιήσαμε επίσης μια 10ης

τάξης καμπύλη Bezier με αρχικό σημείο την θέση 0,0T μέτρα και τελική την θέση

2,2T μέτρα. Τα αποτελέσματα φαίνονται στην Εικόνα 7.12.

● Παρατηρήσεις – Συμπεράσματα

Και στα δύο πειράματα παρατηρείται η επιτυχία του ελεγκτή κλειστού-βρόχου που υλοποιήσαμε ώστε να ελέγξει το ρομπότ και να το καθοδηγήσει σύμφωνα με μια προκαθορισμένη τροχιά, χωρίς να μας ενδιαφέρει η διάρκεια. Παρόλο που παρατηρείται ένας θόρυβος στις μετρήσεις για την εύρεση της θέσης του ρομπότ, ο ελεγκτής κατορθώνει να ελέγξει σωστά το ρομπότ. Τέλος, το βασικό που έχουμε να πούμε είναι πως για το λόγο ότι έχουμε ξεχωρίσει τις δύο κινήσεις (περιστροφική / ευθύγραμμη) ώστε να τις ελέγξουμε με την χρήση κλασσικών ελεγκτών το ρομπότ δεν ακολουθεί πιστά την τροχιά αλλά δημιουργεί μικρά ευθύγραμμα τμήματα πάνω στην καμπύλη.

7.6. Επίλογος

Στο κεφάλαιο αυτό περιγράψαμε της συσκευές που ολοκληρώνουν τις πειραματικές διατάξεις και ακολούθως δείξαμε τα αποτελέσματα των πειραμάτων που αφορούσαν την ανάλυση της λειτουργίας της μεθόδου εύρεσης της θέσης του ρομπότ και τελικώς την ανάλυση της λειτουργίας των δύο ελεγκτών ανοιχτού και κλειστού βρόχου αντίστοιχα.

58

Εικόνα 7.11: Παρακολούθηση τροχιάς χρησιμοποιώντας Pre-timed controller (Τροχιά 1)

0 500 1000 1500 2000 2500 3000

­1000

­800

­600

­400

­200

0

200

400

600

800

1000

X position (mm)

Y p

ositi

on (m

m)

Bezier CurveRobot Position

Page 59: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

59

Εικόνα 7.12: Παρακολούθηση τροχιάς χρησιμοποιώντας Pre-timed controller (Τροχιά 2)

­500 0 500 1000 1500 2000 2500

0

500

1000

1500

2000

X position (mm)

Y p

ositi

on (m

m)

Bezier CurveRobot Position

Page 60: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

ΚΕΦΑΛΑΙΟ 8

Σύνοψη

8.1. Εισαγωγή

Σκοπός του κεφαλαίου αυτού είναι η σύνοψη των συμπερασμάτων που ανέκυψαν από τα αποτελέσματα των πειραμάτων καθώς και ένας επίλογος της συνολικής εργασίας.

8.2. Γενικά συμπεράσματα

Βασικός στόχος της διπλωματικής εργασίας ήταν η ανάπτυξη και η μελέτη μιας μεθόδου εύρεσης της θέσης κινούμενων ρομπότ στο χώρο εργασίας τους σε εσωτερικούς χώρους. Αποτελεί ίσως την βασικότερη περιοχή έρευνας που αφορούν τα ρομποτικά συστήματα. Η μέθοδος αυτή βασίζεται στην αποστολή και λήψη υπερηχητικών σημάτων ταυτόχρονα με την ανάπτυξη των ευρέως διαδεδομένων ασύρματων δικτύων αισθητήρων (WSNs).

Στα κεφάλαια που ακολούθησαν για να καταφέρουμε να υλοποιήσουμε την μέθοδο αυτή χρειάστηκε να αναπτύξουμε το υλικό καθώς και τις λειτουργίες που εφαρμόζονται σε αυτό. Εκτός αυτού, χρειάστηκε να αναπτύξουμε το ρομποτικό όχημα (UPAT Rover) που χρησιμοποιήσαμε στα πειράματα, τις συσκευές που το πλαισιώνουν καθώς και την ανάπτυξη του κινηματικού μοντέλου που μας βοήθησε στην κατανόηση της κίνησης του ρομπότ για την περαιτέρω ανάπτυξη βασικών ελεγκτών για τον έλεγχο της κίνησης αυτής.

Από τα πειράματα και ειδικότερα τα αποτελέσματά τους που παρουσιάσθηκαν στο κεφάλαιο 7 μπορούμε να συμπεράνουμε καταρχήν την αξιόπιστη λειτουργία της μεθόδου εύρεσης της θέσης του ρομπότ. Σαφώς υπάρχουν όρια βελτίωσης της τεχνικής και ειδικότερα όσο αναφορά την τεχνική k-means clustering. Ο αριθμός των cluster ανάλογα με τον αριθμό των τομών αποτελεί σημαντικό κομμάτι για περαιτέρω επιστημονική έρευνα που θα αυξήσει περισσότερο την αξιοπιστία του συστήματος που αναπτύξαμε.

Παρόλα αυτά αισιόδοξα συμπεράσματα ανακύπτουν από την χρήση της τεχνικής RF-Ultrasound για το κλείσιμο του βρόχου σε ελεγκτές που βοηθούν το ρομπότ να παρακολουθήσει μια τροχιά. Αν και ο ελεγκτής ανοιχτού βρόχου λειτούργησε ικανο-ποιητικά δεν παραμένει να περιέχει το πρόβλημα της μη διόρθωσης αποκλίσεων από την τροχιά. Στις περισσότερες περιπτώσεις τα ρομπότ κινούνται σε ένα δυναμικό περιβάλλον και η απαίτηση για την γνώση της απόλυτης θέσης του ρομπότ στο χώρο καθώς και της γρήγορης αναπροσαρμογής των επιθυμητών τροχιών για την αποφυγή άγνωστων εμποδίων είναι επιτακτική.

Η αξιόπιστη διάταξη RF-Ultrasound μαζί με την τεχνική clustering για την εύρεση της απόλυτης θέσης του ρομπότ καθώς και οι ελεγκτές Pre-timed έδωσαν αποτελέσματα που μπορούν να δώσουν ώθηση για νέες βελτιωμένες τεχνικές που θα δώσουν αυτονομία στα ρομποτικά συστήματα και όσο το δυνατόν την ελάττωση της ανθρώπινης παρουσίας στο χώρο εργασίας των.

60

Page 61: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

ΠΑΡΑΡΤΗΜΑ ΑΣτο παράρτημα αυτό παρατίθενται οι αλγόριθμοι που υλοποιήθηκαν στην πλατφόρμα NI

LabView 7.1 και εκτελούνται στον κεντρικό υπολογιστή του ρομπότ.

(1) Rover_Move.vi - Κεντρικό Πρόγραμμα

● Front Panel (Tab 1 – Construct Bezier Curve)

61

Page 62: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

● Front Panel (Tab 2 – Robot Motion (Open Loop)

● Front Panel (Tab 2 - Close Loop)

62

Page 63: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

● Front Panel (Tab 3 - Graph)

● Front Panel (Tab 4 - Debug)

63

Page 64: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

● Block Diagram (Controller:Close Loop)

64

Page 65: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

● Block diagram (only Open-Loop)

65

Page 66: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(2) bezier.vi – SubVi του κεντρικού προγράμματος και υλοποιεί τον αλγόριθμο ανάπτυξης των καμπυλών Bezier

● Icon

● Front Panel

● Block diagram

66

Page 67: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(3) Rover_CL.vi – SubVi του κεντρικού προγράμματος για την ανάπτυξη του ελεγκτή κλειστού βρόχου

● Icon

● Block Diagram (Translational Motion)

67

Page 68: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(4) Localization_motes_measurements.vi – SubVi του κεντρικού προγράμματος για την ανάγνωση των δεδομένων της πλατφόρμας Telos Mote

● Icon

● Block Diagram

68

Page 69: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(5) Loc_points.vi – SubVi του κεντρικού προγράμματος που υλοποιεί την μέθοδο εύρεσης της θέσης του ρομπότ (RF-Ultrasound και clustering)

● Icon

● Front Panel

69

Page 70: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

● Block Diagram

70

Page 71: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(6) circle_intersection.vi – SubVi του προγράμματος Loc_points και υλοποιεί την θεωρία τομής των κύκλων.

● Icon

● Front panel

● Block diagram

71

Page 72: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(7) kmeans.vi -SubVi του προγράμματος Loc_points και εκτελεί τον αλγόριθμο k-means clustering

● Icon

● Front Panel

72

Page 73: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

● Block diagram

73

Page 74: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(8) randomperm.vi – SubVi του προγράμματος kmeans

● Icon

● Block diagram

(9) distmatrix.vi – SubVi του προγράμματος kmeans

● Icon

● Block diagram

74

Page 75: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(10)Localization_cluster.vi – SubVi του προγράμματος Loc_points και υλοποιιεί τον αλγόριθμο για την εύρεση του νικητή cluster.

● Icon

● Block diagram

75

Page 76: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(11) inverse_kinematics.vi – SubVi του κεντρικού προγράμματος και υλοποιεί το αντίστροφο κινηματικό μοντέλο για τον ελεγκτή ανοιχτού βρόχου

● Icon

● Front Panel

● Block diagram

76

Page 77: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(12) Speed_PID_controller.vi – SubVi του κεντρικού προγράμματος και υλοποιεί τον PID ελεγκτή χαμηλού επιπέδου στους κινητήρες

● Icon

● Front Panel

● Block diagram

77

Page 78: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(13) Encoders_Orient_Localization.vi – SubVi του κεντρικού προγράμματος και υλοποιεί τον εκτιμητή της θέσης του ρομπότ.

● Icon

● Front Panel

● Block diagram

78

Page 79: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(14) rover_mov_sub.vi – SubVi του κεντρικού προγράμματος και υλοποιεί τον αλγόριθμο ανάθεσης τιμών τάσεων στους κινητήρες

● Icon

● Front Panel

● Block diagram

79

Page 80: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(15)Encoders_sub.vi – SubVi του κεντρικού προγράμματος και υλοποιεί τον αλγόριθμο ελέγχου των αισθητήρων encoders

● Icon

● Front Panel

● Block diagram

80

Page 81: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(16) Compass_sub.vi – SubVi του κεντρικού προγράμματος και υλοποιεί τον αλγόριθμο ελέγχου της ηλεκτρονικής πυξίδας

● Icon

● Front Panel

● Block diagram

81

Page 82: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

(17) IR_sub.vi – SubVi του κεντρικού προγράμματος και υλοποιεί τον αλγόριθμο ελέγχου για τα αποστασιόμετρα

● Icon

● Front Panel

● Block diagram

*Εκτός των παραπάνω προγραμμάτων έχουν υλοποιηθεί και άλλα μικρότερα subvi τα οποία εκτελούν κυρίως κάποια φιλτραρίσματα στα δεδομένα που υπησέρχονται στα παραπάνω προγράμματα

**Επίσης έχουν υλοποιηθεί προγράμματα τα οποία εκτελούνται μόνο για λόγους ελέγχου των συσκευών του ρομπότ

82

Page 83: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

ΠΑΡΑΡΤΗΜΑ ΒΟ κώδικας σε γλώσσα C που εφαρμόζεται στο λειτουργικό Contiki στο Telos mote του

ρομπότ (κεντρικός κόμβος)

//The localization bot_main with patras processess.//date last modified 6-1-2008

#include <stdlib.h>#include <string.h>#include <math.h>#include <limits.h>

#include <stdio.h>#include <io.h>#include <dev/spi.h>

#include "contiki.h"

#include "net/uip-fw-service.h"#include "net/uip-udp-packet.h"#include "net/uaodv.h"#include "dev/slip.h"#include "dev/cc2420.h"#include "sifnodeloc.h"#include "protocol.h"//#include "dev/lpm.h"#include "dev/ds2411.h"#include "dev/leds.h"#include "dev/light.h"#include "dev/xmem.h"

#include "dev/button.h"

#define ip2quad(p) uip_ipaddr1(p),uip_ipaddr2(p),uip_ipaddr3(p),uip_ipaddr4(p)

#define MY_ID 1#define LPORT 4321#define RPORT 4321#define BOT_ID 1//-------------------//timers values (in seconds)//A range request will be transmitted every Ts seconds//TsUS is for the ultrasound signal#define Ts 0.3#define TsUS 0.016//-------------------

#include "net/psock.h"void *force_psock_inclusion = &psock_init;void *force_button_inclusion = &button_init;

void uip_log(char *msg) { puts(msg); }

/* We have two IP interfaces. */

struct uip_fw_netif cc2420if ={UIP_FW_NETIF(172,16,0,0, 255,255,0,0, cc2420_send_ip)};

/* Radio stuff in network byte order. */

83

Page 84: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

PROCESS(sif_noderx_process, "SIF Node Radio RX process");PROCESS(sif_nodetx_process, "SIF Node Radio TX process");PROCESS(uart_process, "UART process");

static u16_t panId = HTONS(0x2024);

#define RF_CHANNEL 14

static u8_t tx_flag;static unsigned char *serial_rxdata;static unsigned int serial_datalen;static char *data2send;static unsigned int data2send_len;//static char *rx_buffer;/********For localization**********/static uint8_t block_range_request;//for blocking a requeststatic struct etimer timer_block;//for blocking a request

void send_ultrasound(void){ P6SEL &= ~BV(3); P6DIR |= BV(3); P6OUT |= BV(3); } void stop_ultrasound(void){ P6SEL |= BV(3); P6DIR &= ~BV(3); P6OUT &= ~BV(3); }

int main(int argc, char **argv){ /* * Initalize hardware. */ msp430_cpu_init(); clock_init(); leds_init(); slip_arch_init(BAUD2UBR(115200)); /* Must come before first printf */ printf("Starting kernel '%s' "

"($Id: generic.c,v 1.10 2006/05/03 10:17:03 bg Exp $)\n", __FILE__); ds2411_init(); sensors_light_init(); cc2420_init(); xmem_init(); /* * Hardware initialization done! */ printf("MAC %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n",

ds2411_id[0], ds2411_id[1], ds2411_id[2], ds2411_id[3], ds2411_id[4], ds2411_id[5], ds2411_id[6], ds2411_id[7]);

/* IP address is 172.16.0.(128 | BOT_ID) */ uip_ipaddr(&uip_hostaddr, 172,16,0,128 | BOT_ID); uip_ipaddr(&uip_netmask, 255,255,0,0); printf("IP %d.%d.%d.%d netmask %d.%d.%d.%d default router %d.%d.%d.%d\n",

ip2quad(&uip_hostaddr), ip2quad(&uip_netmask), ip2quad(&uip_draddr)); cc2420_set_chan_pan_addr(RF_CHANNEL, panId, uip_hostaddr.u16[1], ds2411_id);

84

Page 85: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

// change_rf_channel(RF_CHANNEL);

process_init(); process_start(&etimer_process, NULL);

uip_ipaddr_t gw_addr; uip_ipaddr(&gw_addr, 172,16,0,20);

/* Configure IP stack. */ uip_init(); uip_fw_default(&cc2420if); uip_setdraddr(&gw_addr); tcpip_set_forwarding(1); printf("Init start sequence completed\n");

/* Start IP stack. */ process_start(&tcpip_process, NULL); process_start(&uip_fw_process, NULL); /* Start IP output */ process_start(&slip_process, NULL); process_start(&cc2420_process, NULL); cc2420_on(); process_start(&uaodv_process, NULL); tx_flag=1; process_start(&sif_noderx_process, NULL); process_start(&sif_nodetx_process, NULL);

printf("process_run()...\n"); while (1) { do { /* Reset watchdog. */ } while(process_run() > 0);

/* * Idle processing. */ int s = splhigh(); /* Disable interrupts. */ if(process_nevents() != 0) { splx(s); /* Re-enable interrupts. */ } else { /* Re-enable interrupts and go to sleep atomically. */ _BIS_SR(GIE | SCG0 | CPUOFF); /* LPM1 sleep. */ } }

return 0;}/**************************************************************/

PROCESS_THREAD(sif_noderx_process, ev, data){static struct etimer etimer;

static struct uip_udp_conn *my_conn;

PROCESS_EXITHANDLER(goto exit); /**Process Implementation**/ PROCESS_BEGIN();

85

Page 86: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

/**turn off all leds**/ leds_off(LEDS_ALL);

{ static uip_ipaddr_t remote_addr; uip_ipaddr(&remote_addr, 0,0,0,0); /*it does not matter whether the value or a pointer to the value is inserted as the 1st argument.. //the result is the same...*/ /**Create the port **/ my_conn=udp_new(&remote_addr, HTONS(0), NULL); uip_udp_bind(my_conn, HTONS(LPORT)); } while(1) { //Radio Receive etimer_set(&etimer, CLOCK_SECOND); PROCESS_YIELD_UNTIL((ev==tcpip_event && uip_newdata()) || etimer_expired(&etimer)); if (ev==tcpip_event && uip_newdata()){ leds_toggle(LEDS_RED); handle_msg(); }

} exit: printf("sif_node RX process exiting\n");

PROCESS_END();}

/****************************************************************/PROCESS_THREAD(uart_process, ev,data){

static struct etimer etimer;PROCESS_EXITHANDLER(goto exit);

PROCESS_BEGIN();

while(1){//serial_rxdata=get_serial_data();

serial_rxdata='a';//serial_datalen=serial_data_length();serial_datalen=0;etimer_set(&etimer, 0.01*CLOCK_SECOND);PROCESS_YIELD_UNTIL(serial_datalen!=0 || etimer_expired(&etimer));

if (serial_datalen!=0){ data2send=serial_rxdata; data2send_len=serial_datalen; etimer_stop(&etimer);

tx_flag=1; process_post(&sif_nodetx_process, PROCESS_EVENT_MSG, NULL); }

}exit:

printf("sif_node TX process exiting\n");

PROCESS_END();}

86

Page 87: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

/****************************************************************/PROCESS_THREAD(sif_nodetx_process, ev, data){static struct uip_udp_conn *my_conn;static struct etimer etimer, etimer1;static uint8_t buff[2];//this is the buffer for range request message PROCESS_EXITHANDLER(goto exit); /**Process Implementation*/ PROCESS_BEGIN(); { /**Create the port */ my_conn=udp_broadcast_new(HTONS(RPORT), NULL); }

while(1){ etimer_set(&etimer, (Ts-TsUS)*CLOCK_SECOND); PROCESS_YIELD_UNTIL(etimer_expired(&etimer)|| tx_flag==1); if (tx_flag==0){ //when the timer expires, transmit the Range Request Message //printf("range request..\n"); buff[0]=MY_ID; buff[1]=RANGE_REQUEST; tcpip_poll_udp(my_conn);

PROCESS_WAIT_EVENT_UNTIL(ev==tcpip_event); uip_send(buff,2);

send_ultrasound(); etimer_set(&etimer1, TsUS*CLOCK_SECOND); PROCESS_YIELD_UNTIL(etimer_expired(&etimer1)); stop_ultrasound(); }

else{ etimer_stop(&etimer); tcpip_poll_udp(my_conn);

PROCESS_WAIT_EVENT_UNTIL(ev==tcpip_event); uip_send(data2send,data2send_len);

tx_flag=0; } leds_toggle(LEDS_GREEN); }

exit: printf("sif_node TX process exiting\n"); PROCESS_END();

}/*---------------------------------------------------------*///UART Transmit..void serial_tx_data(char *rx_buffer, int datalen){ u8_t *data_ptr; unsigned int i=0; data_ptr=(u8_t *)rx_buffer; while (i<datalen){

slip_arch_writeb((char)*data_ptr);data_ptr++;i++;}

87

Page 88: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

return;} /*-----------------------------------------------------------*/void handle_msg(void) { static struct BOT_MSG_HEADER hdr; static u8_t *data; static float range; static float x; static float y; static u8_t *src;

src = ((u8_t *)&((struct uip_udpip_hdr *)uip_buf)->srcipaddr); data = (u8_t *) uip_appdata;

if (uip_datalen() < 2) {// printf("Invalid message..."); return; } hdr = *((struct BOT_MSG_HEADER *) uip_appdata);

switch (hdr.type) { case PONG: //printf("parse_msg: PONG from %d\n", hdr.id);

case RANGE_RESPONSE: //printf("parse_msg: RANGE_RESPONSE from %d with id=0x%02x: \n",src[3],hdr.id);

//if (hdr.id != last_range_id) { // printf("parse_msg:RANGE_RESPONSE with bad id, should be 0x%02x\n", last_range_id); // break; //} if (uip_datalen() == sizeof(struct RANGE_RESPONSE_MSG)) { static struct RANGE_RESPONSE_MSG *msg; msg = (struct RANGE_RESPONSE_MSG *) uip_appdata; // printf("parse_msg: detect index=%u\n", msg->range); /* convert from 9-bit fixed-point */

x = ((float) msg->x) / 512.0f;/* convert from 9-bit fixed-point */y = ((float) msg->y) / 512.0f;if (msg->range > 92) {range = ((float) msg->range);}else{range = (float)(-1.0f);}

printf("#%d!%d!%d!%d$\n",src[3],(int)(100.0f*msg->x),(int)(100.0f*msg->y),(int)(msg->range));

} break; case POSITION_RESPONSE: //printf("parse_msg: POSITION_RESPONSE from %d\n", hdr.id); break; case RANGE_REQUEST: /* Another bot is sending a range request */ //printf("parse_msg: RANGE_REQUST with id=0x%02x received\n", hdr.id); /* block range requests for 310 ms ~ 80/256 s */ etimer_set(&timer_block, 80); block_range_request = 1;

88

Page 89: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

break; case BOT_POSITION_BCAST: case 48: //48 <=> ascii for 0 //printf("channel is now 15, aodv ON\n"); change_rf_channel(15); break; case 49: //49 <=> ascii for 1 //printf("channel is now 26, aodv OFF\n"); change_rf_channel(RF_CHANNEL); break; case BOT_SET_WAYPOINT: if (uip_datalen() == sizeof(struct WAYPOINT_MSG)) { static struct WAYPOINT_MSG *msg; //printf("waypoint msg: x=%f y=%f\n",msg->x,msg->y); } break; default: printf("parse_msg: unknown message type %d from %d\n", hdr.type, hdr.id); break; } return;}

/****************************************************************************/void change_rf_channel(int channel){

cc2420_off();cc2420_set_chan_pan_addr(channel, panId, uip_hostaddr.u16[1], ds2411_id);

return;}/****************************************************************************/

Ο κώδικας σε γλώσσα C που εφαρμόζεται στο λειτουργικό Contiki στο Telos mote του κάθε κόμβου (Παράδειγμα “φάρος 6”)

//static localization node //date last modified: 6-1-2008

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <io.h>#include "contiki.h"

/* Also IP output. */#include "net/uip-fw-service.h"#include "net/uaodv.h" #include "dev/slip.h"#include "dev/cc2420.h"

#include "dev/ds2411.h"#include "dev/leds.h"#include "dev/light.h"#include "dev/xmem.h"

#include "dev/button.h"

89

Page 90: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

#include "codeprop/codeprop.h"

#include "sifnodeloc.h"#include "protocol.h"

#define RF_CHANNEL 14

#define ip2quad(p) uip_ipaddr1(p),uip_ipaddr2(p),uip_ipaddr3(p),uip_ipaddr4(p)

//Changable compoments ID=No, X(m), Y(m)/#define NODE_ID 6#define NODE_X 2.5#define NODE_Y 0#define BOT_ID 1//--------------------------------------/

//-Only for Debug--///#define DBG(x) x//#define DBG_R(x)//-----------------/

#define ADC_DATA_LEN 1700 //maximum distance: (<1700>+408)*0,4711 ~ 10 m#define THRESHHOLD 1200 //The recomended value is 1695...But for far distances maybe could be <1600 #define OFFSET 2400 //mean value of converted waveform

/* This is how we force inclusion of the psock library. */#include "net/psock.h"void *force_psock_inclusion = &psock_init;void *force_udp_inclusion = &uip_udp_packet_send;

struct uip_fw_netif cc2420if ={UIP_FW_NETIF(172,16,0,NODE_ID, 255,255,0,0, cc2420_send_uaodv)};

/* Radio stuff in network byte order. */static u16_t panId = HTONS(0x2024);

/* File local vairables */static volatile uint16_t range;static volatile float x = NODE_X;static volatile float y = NODE_Y;

/* Set up the ADC. */static void adc_initiate(void){ /* P6.1 alt. function A1 */ P6SEL |= 0x02; /* P6.1 as input */ P6DIR &= 0xfd; P6OUT = 0x00; /* Clear registers */ ADC12CTL0 = 0x0; ADC12CTL1 = 0x0;

/* Sampling freq. ~72.28 kHz */

/* Sample time, 4 clk cycles */ ADC12CTL0 = (SHT0_0 | SHT1_0

/* Continuous sampling */

90

Page 91: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

| MSC /* Use internal 2.5V reference */ | REF2_5V);

/* Store first value in ADCMEM0 */ ADC12CTL1 = (CSTARTADD_0

/* Sample-and-hold pulse mode select */ | SHP /* clock division/2 */ | ADC12DIV_1 /* Clock source SMCLK ~2.5 Mhz */ | ADC12SSEL_2 /* Repeat single channel */ | CONSEQ_2);

/* Set channel 0 to A1 and Vref+ */ ADC12MCTL0 = INCH_1 | SREF_1;

/* Disable interrupts */ ADC12IE = 0x0000;

/* Activate ADC12, takes 17 ms before reference has stabilized */ ADC12CTL0 |= ADC12ON | REFON | ENC;

}

void change_rf_channel(int channel){cc2420_off();cc2420_set_chan_pan_addr(channel, panId, uip_hostaddr.u16[1], ds2411_id);cc2420_on();

}

static unsigned int* adc_sample(unsigned int *data, unsigned int length) { //DBG(printf("ADC sample: %p, %u\n",data, length));

/* Start conversion */ ADC12CTL0 |= ADC12SC;

static unsigned int conversion; static unsigned int *dataout; //DBG(static unsigned int waits); conversion = 0; //DBG(waits = 0);

while (conversion < length) { /* Wait for converted value */ if (ADC12IFG & 0x1) { data[conversion++] = ADC12MEM0; } //DBG( else { waits++; } ); }

/* Now stop the conversion */ ADC12CTL0 &= ~(ENC | ADC12SC); /* Re-enable conversion */ ADC12CTL0 |= ENC;dataout=data; //DBG(printf("adc_sample was forced to wait %u times\n", waits));

91

Page 92: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

return dataout;}

/* Try to detect the pulse using the median of the last 3 values */static unsigned int detect_pulse(unsigned int *data, unsigned int length) {

unsigned int detect = 0; int val;

while (detect < length) { val = data[detect]; val -= OFFSET; if ((val > THRESHHOLD) & (detect>90)) break; else detect++; } //DBG(printf("detect_pulse: %u\n", detect)); return detect;}

int do_range_measurement(void) { static unsigned int adc_data[ADC_DATA_LEN]; static unsigned int *y; int i; static const unsigned int adc_data_size = ADC_DATA_LEN; static int pulse_start;

y=adc_sample(adc_data, adc_data_size); for (i=0;i<ADC_DATA_LEN;i++) { adc_data[i]=*y; y++; } //For Debug: You can see the converted Waveform *A2D //for (i=0;i<ADC_DATA_LEN;i++) { // printf("pinakas:%dpanos\n", adc_data[i]); // } pulse_start = detect_pulse(adc_data, adc_data_size); if (pulse_start >= adc_data_size) { /* no pulse detected */ //DBG(printf("do_range_measurement: no pulse detected\n")); return -1; }

range = pulse_start; //printf("range=%dr2\n", range); return 0;}

PROCESS(sensor_process, "Process for measuring distance via ultrasound");

PROCESS_THREAD(sensor_process, ev, data){ static struct uip_udp_conn *c_listen; static struct uip_udp_conn *c_udp;

92

Page 93: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

static uip_ipaddr_t addr; static struct etimer etimer; static struct etimer etimer_wait;

static uint8_t *src;

static struct BOT_MSG_HEADER hdr; static uint8_t *send_buff; static int length; static int a; PROCESS_EXITHANDLER(goto exit); PROCESS_BEGIN();

{ static uip_ipaddr_t any; uip_ipaddr(&any, 0,0,0,0); c_listen = udp_new(&any, HTONS(0), NULL); uip_udp_bind(c_listen, HTONS(4321)); }

leds_on(LEDS_YELLOW); adc_initiate(); printf("sensor_process starting...\n");

while (1) {

etimer_set(&etimer, CLOCK_SECOND); PROCESS_YIELD_UNTIL((ev==tcpip_event && uip_newdata()) || etimer_expired(&etimer)); if (tcpip_event && uip_newdata()) { /* We got new data, parse and handle it */ leds_toggle(LEDS_RED); hdr = *((struct BOT_MSG_HEADER *) uip_appdata);

src = (uint8_t *)((struct uip_udpip_hdr *)uip_buf)->srcipaddr.u8;

switch (hdr.type) { case PING:

//DBG(printf("handle_msg: PING\n"));hdr.type = PONG;hdr.id = NODE_ID;break;

case RANGE_REQUEST: range=0; a=do_range_measurement();

//DBG(printf("handle_msg: RANGE_REQUEST with id=0x%02x\n", hdr.id));hdr.type = RANGE_RESPONSE;

/* hdr.id is the same as before */break;

case GET_POSITION://DBG(printf("handle_msg: GET_POSITION\n"));hdr.type = POSITION_RESPONSE;hdr.id = NODE_ID;break;

case SET_POSITION:

93

Page 94: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

//DBG(printf("handle_msg: SET_POSITION\n"));hdr.type = POSITION_RESPONSE;hdr.id = NODE_ID;if (uip_datalen() == sizeof(struct SET_POSITION_MSG)) {

static struct SET_POSITION_MSG *msg; msg = ((struct SET_POSITION_MSG *) uip_appdata); x = msg->x; y = msg->y; //DBG(printf("set_position msg: x=%d y=%d\n",(int)(100*x),(int)(100*y)));

}break;

case 49: //49 <=> ascii for 1if (uip_datalen() == sizeof(struct CH_CHANNEL_MSG)) {

static struct CH_CHANNEL_MSG *msg;msg = (struct CH_CHANNEL_MSG *) uip_appdata;//DBG(printf("channel is now %d\n",msg->channel));change_rf_channel(msg->channel);

}break;

default:length = 0;break;

}

if (hdr.type == RANGE_RESPONSE) { /* 256 == CLOCK_SECOND => max delay ~ 32/256 ~ 125 ms */ etimer_set(&etimer_wait, ((NODE_ID)%6)*4); //deterministic version PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&etimer_wait));

}

switch (hdr.type) { case PONG:

//DBG(printf("send_msg: PONG\n"));{ static struct PONG_MSG msg; msg.hdr.id = hdr.id; msg.hdr.type = hdr.type; send_buff = (char *) &msg; length = sizeof(msg);}break;

case RANGE_RESPONSE://DBG(printf("send_msg: RANGE_RESPONSE\n"));{ static struct RANGE_RESPONSE_MSG msg; msg.hdr.id = hdr.id; msg.hdr.type = hdr.type; msg.range = range; msg.x = x; msg.y = y; send_buff = (char *) &msg; length = sizeof(msg);} break;

case POSITION_RESPONSE://DBG(printf("send_msg: POSITION_RESPONSE\n"));{ static struct POSITION_RESPONSE_MSG msg; msg.hdr.id = hdr.id; msg.hdr.type = hdr.type; msg.x = x; msg.y = y;

94

Page 95: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

send_buff = (char *) &msg; length = sizeof(msg);}break;

default://DBG(printf("Unknown response type\n"));send_buff = 0;length = 0;break;

} if (length > 0 && send_buff != 0) {

//DBG(printf("Sending data of length %d\n", length));

switch (hdr.type) {case RANGE_RESPONSE: /* Use broadcast address for range responses */ uip_ipaddr(&addr, 172,16,0,128 | BOT_ID); break;default: //DBG(printf("Sending to ip: %d.%d.%d.%d\n",src[0],src[1],src[2],src[3])); uip_ipaddr(&addr, src[0],src[1],src[2],src[3]); break;}if (hdr.type == POSITION_RESPONSE){ //don't ask :x c_udp = udp_new(&addr, HTONS(4321), NULL); tcpip_poll_udp(c_udp); PROCESS_WAIT_EVENT_UNTIL(ev == tcpip_event); uip_send(send_buff,length); tcpip_poll_udp(c_udp); PROCESS_WAIT_EVENT_UNTIL(ev == tcpip_event); uip_send(send_buff,length); tcpip_poll_udp(c_udp); PROCESS_WAIT_EVENT_UNTIL(ev == tcpip_event); uip_send(send_buff,length); tcpip_poll_udp(c_udp); PROCESS_WAIT_EVENT_UNTIL(ev == tcpip_event); uip_send(send_buff,length);}

else{ c_udp = udp_new(&addr, HTONS(4321), NULL); c_udp->ttl = 1; uip_udp_packet_send(c_udp,send_buff,length); leds_toggle(LEDS_GREEN);

}

//DBG(printf("data sent\n"));

uip_udp_remove(c_udp);

length = 0;send_buff = 0;

} } } exit:

printf("Node process exiting\n");

95

Page 96: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

PROCESS_END();}

intmain(int argc, char **argv){ /* * Initalize hardware. */ msp430_cpu_init(); clock_init(); leds_init(); leds_toggle(LEDS_ALL); slip_arch_init(BAUD2UBR(115200)); /* Must come before first printf */ printf("Starting %s\n", __FILE__); ds2411_init(); sensors_light_init(); cc2420_init(); xmem_init(); leds_toggle(LEDS_ALL); /* * Hardware initialization done! */ printf("MAC %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x CHANNEL %d\n",

ds2411_id[0], ds2411_id[1], ds2411_id[2], ds2411_id[3], ds2411_id[4], ds2411_id[5], ds2411_id[6], ds2411_id[7], RF_CHANNEL);

uip_ipaddr_copy(&uip_hostaddr, &cc2420if.ipaddr); uip_ipaddr_copy(&uip_netmask, &cc2420if.netmask); uip_ipaddr(&uip_draddr, 172,16,0,NODE_ID); printf("IP %d.%d.%d.%d netmask %d.%d.%d.%d default router %d.%d.%d.%d\n",

ip2quad(&uip_hostaddr), ip2quad(&uip_netmask), ip2quad(&uip_draddr)); cc2420_set_chan_pan_addr(RF_CHANNEL, panId, uip_hostaddr.u16[1], ds2411_id);

/* * Initialize Contiki and our processes. */ process_init(); process_start(&etimer_process, NULL);

/* Configure IP stack. */ uip_init(); uip_fw_default(&cc2420if); tcpip_set_forwarding(1); /* Start IP stack. */ process_start(&tcpip_process, NULL); process_start(&uip_fw_process, NULL); /* Start IP output */ process_start(&cc2420_process, NULL); cc2420_on(); process_start(&uaodv_process, NULL);

process_start(&sensor_process, NULL); process_start(&tcp_loader_process, NULL);

/* * This is the scheduler loop. */ printf("process_run()...\n");

96

Page 97: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

while (1) { do { /* Reset watchdog. */ } while(process_run() > 0);

/* * Idle processing. */ int s = splhigh(); /* Disable interrupts. */ if(process_nevents() != 0) { splx(s); /* Re-enable interrupts. */ } else { /* Re-enable interrupts and go to sleep atomically. */ _BIS_SR(GIE | SCG0 | CPUOFF); /* LPM1 sleep. */ } }

return 0;}

97

Page 98: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

Βιβλιογραφία

[1] K. Kozowski, D. Pazderski, I.Rudas, J.Tar, "Modeling and control of a 4-wheel skid-steering mobile robot: From theory to practice", International Journal of Applied Mathematics and Computer Science, czerwiec 2004r.

[2] H. Eren, C. C. Fung and J. Evans, “Implementation of the Spline Method for Mobile Robot Path Control,” Instrumentation and Measurement Technology Conference, pp. 739-744, 1999.

[3] Jung-Hoon Hwang1, Ronald C. Arkin, Dong-Soo Kwon, "Mobile robots at your fingertip: Bezier curve on-line trajectory generation for supervisory control», Intelligent Robots and Systems, 2003. (IROS2003), Proceedings. 2003 IEEE/RSJ International Conference ,Volume: 2, page(s): 1444- 1449 vol.2., Oct. 2003

[4] Nissanka B. Priyantha, Anit Chakraborty, and Hari Balakrishnan, "The Cricket Location-Support System",6th ACM International Conference on Mobile Computing and Networking (ACM MOBICOM), Boston, MA, August 2000

[5] George A Kantor and Sanjiv Singh, "Preliminary results in range-only localization and mapping," in Proceedings of the IEEE Conference on Robotics and Automation (ICRA '02), May 2002.

[6] D. Kurth, G.A. Kantor, and S. Singh,"Experimental results in range-only localization with radio", 2003 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '03), Vol. 1, October, 2003, pp. 974 - 979.

[7] J. Edhner, “Obstacle Avoidance for Mobile Robots”, M.Sc. Thesis, Lund University, September 2007

[8] K-E. Arzen, A. Bicchi, G. Dini, S. Hailes, K-H. Johansson, J. Lygeros, and A. Tzes, `A component-based approach to the design of networked control systems’, In European Journal of Control, vol. 13, no 2-3, pp. 261-279, 2007

[9] H. Kose, and H.L. Akin “The Reverse Monte Carlo localization algorithm,” in Robotics and Autonomous Systems, 55, pp. 480-489, 2007.

[10] N. Patwari, J.N. Ash, S. Kyperountas, A.O. Hero III, R.L. Moses, and N.S. Correal, “Locating the nodes: Cooperative localization in wireless sensor networks,” in IEEE Signal Processing Magazine, pp. 54-69, July 2005.

[11] R. Carelli, and E.O. Freire, “Corridor navigation and wall-following stable control for sonar based mobile robots,” in Robotics and Autonomous systems, 45, pp. 235-247, 2003.

[12] D. Fox, W. Burgard, S. Thurn, “Markov localization for mobile robots in dynamic environments,” Journal of Artificial Intelligence Research, 11, pp. 391–427, 1999.

[13] S. Turn, D. Fox,W. Burgard, F. Dellaert, “Robust Monte Carlo localization for mobile robots,” Artificial Intelligence, 128, pp. 99–141, 2001

[14] I. F. Akyildiz, X. Wang, W. Wang, “Wireless Mesh Networks: a survey”, Computer Networks, 47, pp. 445-487, 2005.

[15] F. Zhao, L.Guibas, “Wireless Sensor Networks”, Elsevier, 2004.

98

Page 99: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

[16] I. F. Akyildiz, W. Su, Y. Sankarasubramamian, E. Cayirci, “Wireless Sensor Networks: A survey”, Computer Networks, 38 (4), pp. 393—422, 2002.

[17] S. S. Iyengar, R.R. Brooks, “Distributed Sensor Networks”, CRC Computer and Information Science, Chapman and Hall, 2005.

[18] J. Scholtz, J. Young, J. L. Drury, H. A. Yanco, “Evaluation of Human--Robot Interaction Awareness in Search and Rescue”, in Proceedings of the International Conference on Robotics and Automation (ICRA), New Orleans, LA, USA, 2004

[19] I. Vasilescu, K. Kotay, D. Rus, M. Dunbabin, P. Corke, “Data Collection, Storage and Retrieval with an Underwater Sensor Network”, in Proceedings of ACM Sensys, San Diego CA, USA,2005.

[20] M. Dunbabin, P. Corke, I. Vasilescu, D. Rus, “Data Muling over Underwater Wireless Sensor Networks using an Autonomous Underwater Vehicle”, Proceedings of the IEEE International Conference on Robotics and Automation, Orlando, FL, USA, pp. 2091-2098, May, 2006.

[21] IEEE Std 802.15.4, “Part 1 5.4: Wireless LAN Medium Access Control (MAC) and Physical

Layer (PHY) Specifications for Low Rate Wireless Personal Area Networks (LR-WPANs)”,2003.

[22] The Contiki Operating System, http://www.sics.se/contiki/.

[23] J. Polastre, R. Szewczyk and D. Culler , “TELOS: ENABLING ULTRA-LOW POWER WIRELESS RESEARCH”

[24] TELOS Revision B Datasheet, available at http://www.moteiv.com/

[25] J. Borenstein and L. Feng, “Measurement and Correction of Systematic Odometry Errors in Mobile Robots”, In IEEE Transactions on Robotics and Automation, vol. 12, no. 6, pp. 869-880, December 1996

[26] J. Borenstein, H.R. Everett, L. Feng, and D. Wehe, “Mobile Robot Positioning – Sensors and Techniques”, In Journal of Robotic Systems, vol. 14, no. 4, pp.2341-249

[27] J.J. Leonard, H.F. Durrant-Whyte, “Mobile robot localization by tracking geometric beacons”, In IEEE Transactions on Robotics and Automation, vol. 7, no. 3, pp.376-382, June 1991.

K. Petrinec and Z. Kovacic, “Application of Spline Functions and Bezier Curves to AGV Path Planning”, In Proceedings of the IEEE ISIE Conference, June 2005, Dubrovnik, Croatia

[28] A. Awad, T. Frunzke, and F. Dressler, “Adaptive Distance Estmation and Localization in WSN using RSSI Measures”, In IEEE’s 2007 Euromicro Confernce on Digital system Design Architecture, Methods and Tools.

[29] M. Sichitiu and V. Ramadurai, “Localization of Wireless Sensor Networks with a Mobile Beacon”, In 2004 IEEE Int’l Conference on Mobile Ad-hoc and Sensor Systems, pp. 174-183

[30] R. Peng and M. Sichitiu, “Angle of Arrival Localization for Wireless Sensor Networks”, In 3rd

IEEE Conference on Sensor and Ad Hoc Communications and Networks, pp. 374-382, September 2006

[31] L. Kuncheva and D. Pertov, “Evaluation of stability of k-means cluster ensembles with respect to random initialization”, in IEEE Transactions on Pattern Analysis and Machine Intelligence”, vol. 28, no. 11, pp1 1798-1808, November 2006

99

Page 100: ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΑΣΥΡΜΑΤΗ ...users.ntua.gr/marantos/docs/PM_diploma.pdf · Επιπλέον, δεν μπορώ να ξεχάσω την στήριξη

[32] Y. Koveos, A. Panousopoulou, E. Kolyvas, V. Reppa, K. Koutroumpas, A. Tsoukalas and A. Tzes,“An Integrated Power Aware System for Robotic-based Lunar Exploration”, In Proceedings of the 2007 IEEE/RSJ International Conference on Intelligent Robots and Systems, Paper TuC6.2, pp. 827-832, Oct. 29-Nov. 2, San Diego, CA, U.S.A

[33] G.Klancar, D.Matko, S.Plazic “Mobile Robot Control on a Reference Path” In Proceedings of the 13th Mediterranean Conference on Control and Automation,pp.1343-1348, Lymassol, Cyprus, June 2005

[34] National Instruments, http://www.ni.com/

100