ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ ΕΡΓΑΣΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Post on 03-Jan-2016

30 views 0 download

description

ΠΑΠΑΔΗΜΗΤΡΙΟΥ ΒΑΣΙΛΗΣ. SIMSPARK SOCCER SIMULATION LEAGUE ( LOCALIZATION ). ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ ΕΡΓΑΣΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Περιβάλλον SimsPark. Το περιβάλλον όπου γίνετε η προσομοίωση του αγώνα είναι: Μερικώς παρατηρήσιμο Στοχαστικό Ακολουθιακό Δυναμικό Συνεχές Πολυπρακτορικό. - PowerPoint PPT Presentation

Transcript of ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ ΕΡΓΑΣΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ

ΕΡΓΑΣΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Υ

ΠΑΠΑΔΗΜΗΤΡΙΟΥ ΒΑΣΙΛΗΣ

SIMSPARK SOCCER SIMULATION LEAGUE ( LOCALIZATION )

Περιβάλλον SimsPark

Το περιβάλλον όπου γίνετε η προσομοίωση του αγώνα είναι: Μερικώς παρατηρήσιμο Στοχαστικό Ακολουθιακό Δυναμικό Συνεχές Πολυπρακτορικό

Περιβάλλον SimsParkTo γήπεδο έχει την παρακάτω μορφή:

Περιβάλλον SimsParkTo γήπεδο έχει την παρακάτω μορφή:

• Διαστάσεις γηπέδου 21m x 12m άξονας χ [-10.5 ,10.5] άξονας y[-6,6]

• Κύκλος σέντρας με ακτίνα 1.5m

• Εστίες πλάτους 2.1m και ύψους 0.8m

• 8 σημεία αναφοράς (landmarks) με γνώστες συντεταγμένες. ( 4 δοκάρια και 4 σημαίες στις γωνίες του γηπέδου

LocalizationΣτόχοι:

LocalizationΣτόχοι:

1. Εντοπισμός της θέσης του πράκτορα (υπό την μορφή συντεταγμένων πάνω στο γήπεδο)

LocalizationΣτόχοι:

1. Εντοπισμός της θέσης του πράκτορα (υπό την μορφή συντεταγμένων πάνω στο γήπεδο)

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

LocalizationΣτόχοι:

1. Εντοπισμός της θέσης του πράκτορα (υπό την μορφή συντεταγμένων πάνω στο γήπεδο)

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

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

LocalizationΣτόχοι:

1. Εντοπισμός της θέσης του πράκτορα (υπό την μορφή συντεταγμένων πάνω στο γήπεδο)

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

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

4. Εντοπισμός της θέσης της μπάλας (υπό την μορφή συντεταγμένων πάνω στο γήπεδο)

LocalizationΣτόχοι:

1. Εντοπισμός της θέσης του πράκτορα (υπό την μορφή συντεταγμένων πάνω στο γήπεδο)

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

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

4. Εντοπισμός της θέσης της μπάλας (υπό την μορφή συντεταγμένων πάνω στο γήπεδο)

5. Υπολογισμός γωνίας σώματος-μπάλας.

LocalizationΣτόχοι:

1. Εντοπισμός της θέσης του πράκτορα (υπό την μορφή συντεταγμένων πάνω στο γήπεδο)

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

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

4. Εντοπισμός της θέσης της μπάλας (υπό την μορφή συντεταγμένων πάνω στο γήπεδο)

5. Υπολογισμός γωνίας σώματος-μπάλας.

6. Υπολογισμός απόστασης από την μπάλα.

LocalizationΣτόχοι:

1. Εντοπισμός της θέσης του πράκτορα (υπό την μορφή συντεταγμένων πάνω στο γήπεδο)

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

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

4. Εντοπισμός της θέσης της μπάλας (υπό την μορφή συντεταγμένων πάνω στο γήπεδο)

5. Υπολογισμός γωνίας σώματος-μπάλας.

6. Υπολογισμός απόστασης από την μπάλα.

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

LocalizationΣτόχοι:

1. Εντοπισμός της θέσης του πράκτορα (υπό την μορφή συντεταγμένων πάνω στο γήπεδο)

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

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

4. Εντοπισμός της θέσης της μπάλας (υπό την μορφή συντεταγμένων πάνω στο γήπεδο)

5. Υπολογισμός γωνίας σώματος-μπάλας.

6. Υπολογισμός απόστασης από την μπάλα.

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

LocalizationΣτόχοι:

1. Εντοπισμός της θέσης του πράκτορα (υπό την μορφή συντεταγμένων πάνω στο γήπεδο)

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

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

4. Εντοπισμός της θέσης της μπάλας (υπό την μορφή συντεταγμένων πάνω στο γήπεδο)

5. Υπολογισμός γωνίας σώματος-μπάλας.

6. Υπολογισμός απόστασης από την μπάλα.

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

Πως αντιλαμβάνεται ο πράκτορας το περιβάλλον του στο Simspark;

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

Γενική μορφή μηνύματος (time (now 93.60))

(GS (t 0.00) (pm BeforeKickOff))(hear 0.00 self 1000-501)(GYR (n torso) (rt -0.35 -0.36 -0.01))(HJ (n hj1) (ax 0.33))(HJ (n hj2) (ax -3.31))(See (G2R (pol 17.55 -3.33 4.31)) (G1R (pol 17.52 3.27 4.07)) (F1R (pol 18.52 18.94 1.54)) (F2R (pol 18.52 -18.91 1.52)) (B (pol 8.51 -0.21 -0.17)) (P (team teamRed) (id 1) (head (pol 16.98 -0.21 3.19)) (rlowerarm (pol 16.83 -0.06 2.80)) (llowerarm (pol 16.86 -0.36 3.10)) (rfoot (pol 17.00 0.29 1.68)) (lfoot (pol 16.95 -0.51 1.32))) (P (team teamBlue) (id 1) (rlowerarm (pol 0.18 -33.55 -20.16)) (llowerarm (pol 0.18 34.29 -19.80))))(HJ (n raj1) (ax 31.72))(HJ (n raj2) (ax -20.12))(HJ (n raj3) (ax -0.01))(HJ (n raj4) (ax 40.04))(HJ (n laj1) (ax 64.37))(HJ (n laj2) (ax 19.96))(HJ (n laj3) (ax 0.09))(HJ (n laj4) (ax -40.11))(HJ (n rlj1) (ax -0.06))(HJ (n rlj2) (ax 20.31))(HJ (n rlj3) (ax -39.24))(HJ (n rlj4) (ax 20.02))(HJ (n rlj5) (ax 0.04))(FRP (n rf) (c 0.01 -0.01 -0.02) (f -0.21 0.21 19.77))

Δεδομένα Μηνύματος

GyroRate PerceptorΑισθητήρας γυροσκοπίου.

Δεδομένα Μηνύματος

GyroRate PerceptorΑισθητήρας γυροσκοπίου.

HingeJoint PerceptorΑισθητήρες αρθρώσεων.

Δεδομένα Μηνύματος

GyroRate PerceptorΑισθητήρας γυροσκοπίου.

HingeJoint PerceptorΑισθητήρες αρθρώσεων.

ForceResistance Perceptor

Δεδομένα Μηνύματος

GyroRate PerceptorΑισθητήρας γυροσκοπίου.

HingeJoint PerceptorΑισθητήρες αρθρώσεων.

ForceResistance Perceptor GameState Perceptor

Δεδομένα Μηνύματος

GyroRate PerceptorΑισθητήρας γυροσκοπίου.

HingeJoint PerceptorΑισθητήρες αρθρώσεων.

ForceResistance Perceptor GameState Perceptor Hear Perceptor

Δεδομένα Μηνύματος

GyroRate PerceptorΑισθητήρας γυροσκοπίου.

HingeJoint PerceptorΑισθητήρες αρθρώσεων.

ForceResistance Perceptor GameState Perceptor Hear Perceptor Vision Perceptor

Vision Perceptor

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

Vision Perceptor (1)

Για κάθε αντικείμενο μέσα στο οπτικό του πεδίο μας δίνει τρεις τιμές. Οριζόντια γωνία και κάθετη γωνία, αντικείμενου-κέντρου οπτικού πεδίου καθώς και την απόσταση από το αντικείμενο.

Υλοποίηση Localization

Η επίτευξη των στόχων που προαναφέρθηκαν γίνονται ουσιαστικά με τρεις συναρτήσεις. (x,y) Trilateration (Landmarks [] ) angle Find_angle( (x,y) , Landmarks []) (x,y) Find_object_position((x,y) , object )

Trilateration

Δέχεται σαν είσοδο δυο αποστάσεις από δυο σταθερά σημεία με γνώστες συντεταγμένες (landmarks)

Landmarks είναι τα 4 δοκάρια και οι 4 σημαίες στις γωνίες του γηπέδου

Trilateration

Trilateration

Trilateration

TrilaterationΚαλούμε την συνάρτηση trilateration για όλους τους πιθανούς συνδυασμούς των landmarks που βλέπουμε κάθε φορά. Έτσι αν βλέπουμε κάποια στιγμή 5 σημεία αναφοράς θα μας επιστραφούν 10 ζευγάρια συντεταγμένων. Από αυτά βγάζουμε τον μέσο ορό και κρατάμε την τελική πεποίθηση για την θέση μας.

Find_angleΓνωρίζοντας πλέον την θέση μας καθώς και την οριζόντια γωνία ενός landmark σε σχέση με το κέντρο της όρασης μας μπορούμε να υπολογίσουμε την γωνία προς την όποια είναι στραμμένο το κεφάλι του πράκτορα.

Find_angle Καλούμε την συνάρτηση Find_angle για

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

Find_object_position

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

Find_object_position

Localization - Αποτελεσματα Όλοι οι παραπάνω υπολογισμοί γίνονται ανά 3

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

Παρόλο που υλοποίηση φαίνεται απλή συνολικά για το πρόβλημα του Localization και την επεξεργασία του μηνύματος που δεχόμαστε από τον server χρειάστηκαν 1310 γραμμές κώδικα.

Localization - Αποτελεσματα Πραγματικη θεση πρακτορα:

( -2 , 0 , 0)

Localization - Αποτελεσματα Πραγματικη θεση πρακτορα:

(-3, 2, 15)

Localization - Αποτελεσματα Πραγματικη θεση πρακτορα:

(-7, 3.5, -60)

Localization - Αποτελεσματα Πραγματικη θεση πρακτορα:

(-1, 5.5, 110)

Localization - Αποτελεσματα Πραγματικη θεση πρακτορα:

(-4.5, 0 , 350)

Βελτιώσεις??