Nao becomes a painter

Σχετικά έγγραφα
x = r cos φ y = r sin φ

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

Αυτόνομοι Πράκτορες. Xειμερινό Εξάμηνο

Αυτόνομοι Πράκτορες. ΝΑΟ Μουσικός

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΔΙΑΡΘΡΩΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ

ΕΡΓΑΣΤΗΡΙΑΚΗ ΕΦΑΡΜΟΓΗ 1 ΤO ΡΟΜΠΟΤ INTELLITEK ER-2u

Prost S: Οδοποιΐα Σιδηροδρομική Υδραυλικά έργα

Εμφανίζονται 3 επιλογές με 3 εικονίδια, η «ζωγραφική», η «εισαγωγή» και η «κάμερα».

Οδηγίες σχεδίασης στο περιβάλλον Blender

Αυτόματο Κλείσιμο Ισολογισμού

Αυτόματο Κλείσιμο Ισολογισμού

6-Aνίχνευση. Ακμών - Περιγράμματος

Παράρτημα Έκδοση 2017

ΤΕΙ ΚΑΒΑΛΑΣ Εισαγωγή Αντικείμενο πτυχιακής εργασίας.σελ Περιεχόμενα εγχειριδίου Αναφοράς Προγραμμάτων.. σελ. 3

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

Σχεδιασμός εκτυπώσεων ERG

Συστήματα συντεταγμένων

Σενάριο 16: Ο κόσμος του Robby

Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ

Κατάτµηση Εικόνων: Ανίχνευση Ακµών και Κατάτµηση µε Κατωφλίωση

Μάθημα 8 ο. Ανίχνευση Ακμών ΤΜΗΥΠ / ΕΕΣΤ 1

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

Μάθημα 8 ο. Ανίχνευση Ακμών ΤΜΗΥΠ / ΕΕΣΤ 1

ΑΝΙΧΝΕΥΣΗ ΦΩΤΙΑΣ. Χαοτικό φαινόμενο, με ακανόνιστο σχήμα Βασικό χαρακτηριστικό της φωτιάς είναι το χρώμα

Αυτόνοµοι Πράκτορες. Ακολουθία κινήσεων για τον ΝΑΟ Στόχος είναι ο ΝΑΟ να ρίχνει την µπάλα σε ένα καλάθι του basket και να βάζει «καλαθιά»

RobotArmy Περίληψη έργου

Εισαγωγή στο 3DS Max 2009

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

Χαρακτηριστι σ κ τι ά κ αι Π λεονεκτήµατα το υ A r A c r hica C D A 1 5 Ε πλ π ουτισ τι µ σ ένες Α ρ Α χιτεκτονικές Μ ο Μ ρφές

ΠΛΗ513 - Αυτόνομοι Πράκτορες Αναφορά Εργασίας

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ GRS-1

SECURE AUTONOMOUS CLOUD BRAINED HUMANOID ROBOT FOR SEARCH AND RESCUE MISSIONS IN HAZARDOUS ENVIRONMENTS

Αναφορά Τελικής Εργασίας Αυτόνομοι Πράκτορες

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

Εκκίνηση προγράμματος

Διατμηματικό Πρόγραμμα Μεταπτυχιακών Σπουδών. «Προηγμένα Συστήματα Παραγωγής, Αυτοματισμού και. Ρομποτικής» Assignment 2

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

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

ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΠΡΟΓΡΑΜΜΑΤΩΝ GGCAD

ΔΙΑΣΤΑΣΕΙΣ. Διαστάσεις σε κύκλους, τόξα, γωνίες κώνους Μέθοδοι τοποθέτησης διαστάσεων

Μαθηματικά και Φυσική με Υπολογιστές

Σενάριο 18: Ραβδογράμματα Πληθυσμού

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

Ενδεικτική πολυ-εργασία 1 - εφαρμογή στην υπολογιστική όραση

Piet Mondrian. Η ζωή και το έργο του Piet Mondrian! Ο πίνακάς του.

Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της διαδικασίας Office Management (Ημερολόγιο Λογιστή). Παρακάτω προτείνεται

Μάθημα: Μηχανική Όραση

Υπολογισμός και Αυτόματη Αποστολής ΑΠΔ

Επίπεδο 3: καταχώρηση κάδων ανακύκλωσης με πλήρη ποσοτικά και ποιοτικά στοιχείων και οργανικοί κάδοι

Εκτύπωση Γενικού Ημερολογίου

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

Η προσεγγιση της. Αρχιτεκτονικης Συνθεσης. ΜΑΡΓΑΡΙΤΑ ΓΡΑΦΑΚΟΥ Καθηγητρια της Σχολης Αρχιτεκτονων Ε.Μ.Π.

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

Γ-ΓΥΜΝΑΣΙΟΥ (1) ΣΕΛ 1 / 6

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI

Διαδικασία Εξαγωγής Συγκεντρωτικών Καταστάσεων & Αυτόματης Υποβολής μέσω Internet

Advances in Digital Imaging and Computer Vision

Η Περιοχή Εργασίας του Flash

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

Αναλυτική Περιοδική Δήλωση

Κεφάλαιο 6: Ζωγραφική

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Διαδικασία Συγκεντρωτικές Καταστάσεις ΚΕΠΥΟ

Οικονομικές Καταστάσεις βάσει Ε.Λ.Π.

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

Περιεχόμενα ΠΡΟΛΟΓΟΣ... 9 ΕΙΣΑΓΩΓΗ... 11

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή

Μαλούτα Θεανώ Σελίδα 1

Οικονομικές Καταστάσεις βάσει Ε.Λ.Π.

Οπτική Μοντελοποίηση Ανθρώπινου Προσώπου με Εφαρμογές σε Αναγνώριση

Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος

αντίστοιχο γεγονός. Όταν όντως το κουμπί

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

ΠΛΗΡΟΦΟΡΙΚH ΓΙΑ ΤΗΝ ΤEΧΝΗ Η ΕΞAΜΗΝΟ

ΚΕΣ 03: Αναγνώριση Προτύπων και Ανάλυση Εικόνας. KEΣ 03 Αναγνώριση Προτύπων και Ανάλυση Εικόνας. Κατάτµηση Εικόνων:

Σχεδιαστικά Προγράμματα Επίπλου

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Πληροφορική 2. Τεχνητή νοημοσύνη

Εισαγωγή στην Ρομποτική

Βασίλειος Κοντογιάννης ΠΕ19

Αξιολόγηση Προσωπικού

Εφαρμογές Πληροφορικής στην Τοπογραφία 8η Ενότητα - Scripting στο AutoCAD Παραδείγματα

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή

Ενσωμάτωση εικόνας BMP σε σχέδιο

Μια Υποσημείωση.

Ευ ομή. Εγχειρίδιο χρήσης του περιβάλλοντος LT125-dp

Ποια αντικείμενα υπάρχουν στην αίθουσά μας; Τα καταγράφουμε εδώ:

Με τη σύμβαση της «κινηματικής αλυσίδας», ο μηχανισμός αποτυπώνεται σε πίνακα παραμέτρων ως εξής:

Προσομοιωτικό μοντέλο κοπής οδοντώσεων με πλάνιση με κύλιση

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Epsilon Net PYLON Platform

Εργαστηριακή άσκηση 01. Τα επτά συστήματα κρυστάλλωσης και κρυσταλλικές μορφές

1. ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΛΥΣΗ ΦΥΛΛΩΝ ΕΡΓΑΣΙΑΣ (Ή ΚΑΙ ΑΛΛΟΥ ΔΙΔΑΚΤΙΚΟΥ ΥΛΙΚΟΥ) ΑΞΙΟΛΟΓΗΣΗ ΤΩΝ ΜΑΘΗΤΩΝ

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

Τεχνολογία Παιγνίων. Τεχνολογία Παιγνίων. Τεχνολογία Παιγνίων. Εισαγωγή στο Easy Java Simulations (EJS)

1 ο Εργαστήριο Συντεταγμένες, Χρώματα, Σχήματα

Σχολ.έτος Κεφάλαιο 5 ο Γνωριμία με το Λογισμικό του Υπολογιστή.

Εισαγωγή στην Αρχιτεκτονική Η/Υ

Transcript:

Αυτόνομοι Πράκτορες Nao becomes a painter Ομάδα εργασίας: ΚΑΤΣΑΝΙ ΜΕΡΙΕΜΕ 2011030035 Περιγραφή Στόχος της εργασίας εξαμήνου ήταν ο προγραμματισμός της συμπεριφοράς στο Aldebaran NAO ανθρωποειδές ρομπότ, ώστε να επιδεικνύει συμπεριφορά... ζωγράφου! Είναι γνωστός ο θαυμασμός του ρομποτικού, αυτού, πράκτορα προς τη ζωγραφική και πιο συγκεκριμένα η κλίση του προς το καλλιτεχνικό ρεύμα του κυβισμού. Επομένως, στην εν λόγω εργασία γίνεται προσπάθεια υλοποίησης της συμπεριφοράς ενός κυβιστή ζωγράφου, ο οποίος εμπνέεται από γεωμετρικά αντικείμενα που του επιδεικνύουν. Στη συγκεκριμένη εργασία, το ρομπότ ζωγραφίζει έναν κύκλο ελλειπτοειδούς μορφής. Έτσι, το ρομπότ φωτογραφίζει το σχήμα που επιθυμεί να σχεδιάσει και αφού επεξεργαστεί κατάλληλα την εικόνα και εξάγει το αντικείμενο σε μια ευδάκριτη, για το ίδιο, μορφή, αναλαμβάνει τελικά να το ζωγραφίσει χρησιμοποιώντας το δεξί του χέρι.

Προσέγγιση του προβλήματος Η εργασία πραγματοποιήθηκε μέσω προσομοιωτή, επομένως, επιλογή γραφικού περιβάλλοντος προσομοίωσης αποτέλεσε το λογισμικό Webots, σε συνδυασμό με τη γλώσσα προγραμματισμού Python, καθώς η Aldebaran παρέχει πλούσιο υλικό σε Python, το οποίο φάνηκε ιδιαίτερα χρήσιμο. Για την υλοποίηση της ζητούμενης συμπεριφοράς, ακολούθησαν τα εξής βήματα: Αρχικά, η τοποθέτηση του ρομπότ σε μια ασφαλή θέση, ώστε να εκκινήσει από εκεί τη συνολική διαδικασία, καταλήγοντας τελικά στην πόζα αρχικοποίησης(standinit) που παρέχεται μέσω της κλάσης ALProxy για τον έλεγχο της κίνησης(motion) του ρομπότ. Αντίστοιχα, η τοποθέτηση σε θέση ηρεμίας κατά την ολοκλήρωση του προγράμματος μέσω της rest(). Ακόμη, αρχικοποιείται η θέση του δεξιού χεριού χρησιμοποιώντας 4 βαθμούς ελευθερίας(dof), μέσω RshoulderPitch, RshoulderRoll, RelbowRoll και RArm. Στη συνέχεια, ξεκινά η διαδικασία λήψης και αποθήκευσης της εικόνας που θα επεξεργαστεί το ρομπότ, επομένως θέτουμε και το κεφάλι στην επιθυμητή στάση, ώστε η κάμερα να φωτογραφίζει το αντικείμενο που υπάρχει μπροστά(στο πλαίσιο της προσομοίωσης, πρόκειται περί του χώρου που απαρτίζει τον κόσμο του ΝΑΟ). Ακολουθώντας τις οδηγίες που παρέχονται από το σχετικό documentation ( http://doc.aldebaran.com/2-1/dev/python/examples/vision/get_image.html ) στην ιστοσελίδα της Aldebaran για τη λήψη και την αποθήκευση της φωτογραφίας μέσω της βιβλιοθήκης PIL(Python Image Library). Παρακάτω φαίνεται το αποτέλεσμα της εικόνας που φωτογραφίζει και αποθηκεύει το ρομπότ μέσω της κάμερας camimage.png : Έπειτα, συνεχίζεται η ανάλυση και επεξεργασία της εικόνας μέσω της βιβλιοθήκης ανοικτού λογισμικού OpenCV(Open Source Computer Vision Library), η οποία αποτελεί εξαιρετικό εργαλείο σε συνδυασμό με την Python. Πιο συγκεκριμένα, έγινε εφαρμογή φίλτρου διάβρωσης(erosion), μετατροπή σε μονοχρωματική εικόνα αποχρώσεων του

γκρι(grayscale), φίλτρο για μείωση θορύβου(gaussianblur) καθώς και κατωφλίωση μέσω της μεθόδου ανίχνευσης ακμών Canny, ώστε να μετατραπεί η αρχική εικόνα σε μορφή πιο ευανάγνωστη για το ρομπότ. Ακόμη, πραγματοποιήθηκε εξαγωγή του περιγράμματος του σχήματος που θα χρησιμοποιηθεί στη συνέχεια για την ανάγνωση του σχήματος καθώς και εύρεση των γωνιών του σχήματος(harris). Παρακάτω φαίνεται το αποτέλεσμα της εικόνας μετά την εφαρμογή των παραπάνω φίλτρων και της επεξεργασίας newimage.png : καθώς επίσης και η αρχική εικόνα, μετά την εύρεση των γωνιών(harris corners) όπως προκύπτει:

Ασφαλώς, χρειάζεται ιδιαίτερη προσοχή στην τιμή κάθε κατωφλίου που εφαρμόστηκε, καθώς προσαρμόζεται ανάλογα την κάθε εικόνα. Εδώ παρουσιάζεται κυρίως ενδεικτικά, καθώς το συνολικό σχήμα που παρατηρεί το ρομπότ είναι ιδιαίτερα περίπλοκο. Τέλος, ολοκληρώνεται το αρχικό εγχείρημα μέσω του ελέγχου της κίνησης του χεριού, ώστε να σχεδιαστεί το αντικείμενο που διαβάστηκε. Όπως γίνεται αντιληπτό, προηγείται η διαδικασία μετατροπής των (x,y) σημείων που διαβάστηκαν από το ρομπότ από pixels σε meters για την κίνηση του χεριού. Επιπλέον, ελέγχεται η διαφορά της επόμενης και της προηγούμενης θέσης του χεριού και για να ολοκληρωθεί η κίνηση, εφαρμόζεται επιλεγμένο API, που αφορά τον καρτεσιανό έλεγχο προγραμματισμένης κίνησης μέσω επίλυσης inverse kinematics( http://doc.aldebaran.com/2-1/naoqi/motion/control-cartesian.html). Έτσι, μετακινούνται τελικά μόνο τα επίπεδα ΧΥ, ενώ παραμένει σταθερό το επίπεδο Ζ. Το κάδρο που επιλέχθηκε ήταν ο κορμός(torso) καθώς προτείνεται από πολλούς προγραμματιστές της εταιρίας Aldebaran για την εν λόγω υλοποίηση. ΝΑΟ ρομπότ σε κάδρο TORSO καθώς και οι αντίστοιχοι ΧΥΖ άξονες: Παρακάτω παρουσιάζεται η μετατροπή pixels σε meters, όπως εφαρμόστηκε: pointlist = [] for p in points: value = [] newx = (float(p[1]/1850))*0.3 newy = (-(float(p[0])/1600)*0.3) value.insert(0,newx) value.insert(1,newy) pointlist.append(value) Αξίζει να σημειωθεί πως λόγω της περιπλοκότητας της παραπάνω εικόνας που φωτογραφίζει το ρομπότ, η κίνηση για το σχεδιασμό του τελικού σχήματος ήταν σχεδόν ανέφικτη. Παρόλα αυτά, υλοποιήθηκε χειροκίνητα η διαδρομή της κίνησης του χεριού ώστε να σχηματιστεί ένα σχήμα που προσεγγίζει έναν κύκλο(ο)-έλλειψη, μέσω ενός αρχείου movements.txt και της εγγραφής αυτού σε schema.p αρχείο, το οποίο φορτώνεται στο πρόγραμμα, ώστε να υλοποιείται η τελική κίνηση μέσω αυτών. Χρησιμοποιείται, βέβαια, η εικόνα που σχολιάστηκε προηγουμένως καθώς και οι αντίστοιχες παραμέτροι, επομένως το τελικό αποτέλεσμα δεν είναι απολύτως ιδανικό, αλλά αποτελεί μια ικανοποιητική προσέγγιση.

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