Python And Robotics.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Το αλφαριθμητικό (string)
Advertisements

ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Scripting Language Python
• Php • Joomla • Joomla Module • Παρουσίαση του συστήματος μας.
5η Συνάντηση Εκπαιδευτικών Πληροφορικής στη Δυτική Μακεδονία Πτολεμαΐδα, 29 Σεπτ 2005 Δημιουργία Δυναμικών Ιστοσελίδων με PHP και Dreamweaver MX Στυλιάδης.
Ένα απλό πρόγραμμα σε C /* ********************************************* * This program prints out the sentence “This is a test.” * *********************************************
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ανάπτυξη Δικτύων Καθηγητής: Φουληράς Παναγιώτης
Εργαστήριο Λειτουργικών Συστημάτων Φροντιστήριο 2– Εισαγωγή στη Bash Ντίρλης Νικόλαος.
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Γλωσσική Τεχνολογία Object-Orientation in Python.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Φροντηστήριο Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Eργαλεία.
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 7: Συμβολοσειρές.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΕΡΙΓΡΑΦΗ ΓΛΩΣΣΑΣ PYTHON
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
1 Ολυμπιάδα Πληροφορικής Μάθημα 7. 2 Στόχοι μαθήματος Δημιουργία συναρτήσεων από το χρήστη Δομή προγράμματος με συναρτήσεις Συναρτήσεις και παράμετροι.
ΣΥΝΑΡΤΗΣΕΙΣ.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
Τμήμα Πληροφορικής Πανεπιστημίου Κύπρου ΕΠΛ 371 – Προγραμματισμός Συστημάτων Ονόματα: Αντώνης Μαυρής, Γιώργος Ματθαίου, Χρίστος Κυριάκου Ταυτότητες: ,
ΗΥ302 Διδακτική της Πληροφορικής Η γλώσσα προγραμματισμού LOGO Writer Ομάδα Εργασία: Αλεβίζου Βασιλική (Α.Μ.:1029) Κοφφινά Ιωάννα (Α.Μ.:1035) Τριανταφυλλίδου.
Excel Κεφάλαιο 3.
PHP/MYSQL ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΟΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΜΗΧΑΝΗΣ ΤΥΡΟΛΟΓΟΥ ΓΛΥΚΕΡΙΑ ΑΜ 875 ΡΙΖΟΥ ΔΕΣΠΟΙΝΑ ΑΜ 816.
Γλωσσική Τεχνολογία Εισαγωγικό Φροντιστήριο. Project του μαθήματος  Εργασία 2 ατόμων  Προφορική εξέταση για :  Project (80%)  Θεωρία (20%)  Στο φροντιστήριο.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Κεφάλαιο 10 – Υποπρογράμματα
ΕΠΛ371 – ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΥΣΤΗΜΑΤΩΝ
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
32η Συνάντηση Εκπαιδευτικών στη Δυτική Μακεδονία σε Θέματα Τ. Π. Ε
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ – FILE & PROCESS HANDLING Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
ΗΥ150 – ΠρογραμματισμόςΞ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Αρχεία.
ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία.
Βασικά στοιχεία της Java
Μάθημα 9 Λίγο απ’ όλα! HTML 5 Advanced PHP XML. HTML 5 Πρόκειται για μια νέα έκδοση της HTML που συμπληρώνει τις δυνατότητες της γλώσσας με κάποια Tags.
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κ.ΑΛΑΦΟΔΗΜΟΣ καθηγητής Δ.Παπαχρήστος μέλος ΕΔΙΠ ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΠΑΝΕΠΙΣΤΗΜΙΟ Α ΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.
Υλοποίηση εφαρμογών σε προγραμματιστικά περιβάλλοντα Κεφάλαιο 7.
ΔΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙΔΩΝ Ένας Συνοπτικός Οδηγός Καμήλαλη Δέσποινα Μαθηματικός, MSc Πληροφορικής, Υποψήφια Διδάκτωρ Χαροκοπείου Πανεπιστημίου Αθηνών.
Εισαγωγή στην Python.
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΕΦΑΡΜΟΓΕΣ ΥΠΟΛΟΓΙΣΤΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Εφαρμογές Υπολογιστών
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ανακοινώσεις THN ΑΛΛΗ ΠΑΡΑΣΚΕΥΗ ΣΤΟ ΚΕΝΤΡΟ Η/Υ ΓΙΑ ΦΕΤΟΣ:
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Τεχνολογία και Προγραμματισμός Υπολογιστών
«Από τη MicroWorlds Pro στην Python»
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Ανάπτυξη Εφαρμογών για Φορητές Συσκευές
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό με Python, ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Εισαγωγή στον Προγραμματισμό με Python Εβδομάδα 1: Βασικά στοιχεία.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
Αναδρομή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Μεταγράφημα παρουσίασης:

Python And Robotics

Ομάδα Ω Γιάκα Χρυσούλα Δέλλας Βασίλης Παπαγεωργίου Τάσος Παπασταμόπουλος Γιώργος 4 Ρήγας Τάσος Σαββόπουλος-Βασιλόπουλος Γιώργος Στριγγλής Κων/νος Τσινοπούλου Δέσποινα 8 Υψηλάντης Κων/νος Ψαρρής Νίκος

About Python Γλώσσα προγραμματισμού Guido van Rossum το 1990 Open source Διαχειρηση από Python Software Foundation Προέλευση ονόματος :Monty Python Στόχος: η αναγνωσιμότητα του κώδικά της ευκολία χρήσης της. Πολλές βιβλιοθήκες που διευκολύνουν ιδιαίτερα αρκετές συνηθισμένες εργασίες και για την ταχύτητα εκμάθησης της.

Χαρακτηριστικά Εύκολη Εκμάθηση Αναγνωσιμότητα Συντήρηση Γρήγορη Ανάπτυξη Εφαρμογών Επεκτάσιμη Ανοικτού κώδικα Παίζει σχεδόν παντού Όχι πια segmentation faults Αυτόματη διαχείρηση μνήμης

Ποιοι την χρησιμοποιούν Google NASA Yahoo! MIT RedHat και σχεδόν όλοι οι διανομείς linux Intifex ...και πολλοί άλλοι

Γιατί την χρησιμοποιούν Προγραμματισμός στον παγκόσμιο ιστό Έκπαιδευση Επιστήμη Scripting Robotics Διάφορες εφαρμογές ...πολλές άλλες!!

Non-Numerical Projects Web-page Football Statistics Robot Simulator Robot Programming Language Posting Grades

Numerical Projects Physics Projects Neural Simulators Robotics Projects Mechanisms of the Mind Projects

Ιστορική αναδρομή Η πρώτη έκδοση που δόθηκε στο κοινό ήταν η έκδοση 0.9.0 το 1991. Αρχικά ήταν μια γλώσσα scripting για το λειτουργικό σύστημα Amoeba. Η Python είναι opensource και γλώσσα υψηλού επιπέδου. Κατασκευάστηκε στο CWI του Άμστερνταμ και συνεχίζεται στο CNRI του Reston

Ιστορική αναδρομή

Ιστορική αναδρομή

Εγκατάσταση Python σε Linux Συνήθως εγκαθίσταται με την εγκατάσταση του λειτουργικού συστήματος. Για να μάθετε την έκδοσή σας : Αν όχι, τότε την κατεβάζουμε από την επίσημη ιστοσελίδα www.python.org/download Εκτελούμε #./configure #make #make install Μετά την εγκατάσταση -> export PATH=''$PATH:/usr/local/bin/python/''

Εγκατάσταση Python σε Windows Το κατεβάζουμε εύκολα από την επίσημη ιστοσελίδα www.python.org/download Επιλέγουμε την κατάλληλη έκδοση ανάλογα με το σύστημά μας. Μετά την εγκατάσταση-> path %path%; C:\Python (command prompt)

Εισαγωγή Στην Python

Μεταβλητές Στην Python οι μεταβλητές αποκτούν τύπο δυναμικά. Π.χ. >>> b = 2 # b is now integer >>> print b Output:2 >>> b = b * 2.0 # b is now float Output:4.0

Συμβολοσειρές Η Python παρέχει μεγάλη ευελιξία για πράξεις μεταξύ συμβολοσειρών(strings). Το σύμβολο ‘+’ ενώνει 2 strings, ενώ το σύμβολο ‘:’ αποκόπτει τμήμα ενός string. Π.χ. >>> string1 = ‘Press return to exit’ >>> string2 = ‘the program’ >>> print string1+ ‘ ’ + string2 Press return to exit the program >>> print string1[0:12] Press return

Πλειάδες Μια πλειάδα(tuple) είναι μια σειρά από αυθαίρετα αντικείμενα τα οποία διαχωρίζονται με κόμμα και περικλείονται με παρανθέσεις. Π.χ. >>> rec = (‘Smith’, ‘John’) # this is a tuple >>> lastName,firstName = rec # unpacking >>> print lastName Output: Smith >>> name = rec[1] + ‘ ’ + rec[0] >>> print name Output: John Smith

Λίστες Μια λίστα είναι παρόμοια με μια πλειάδα, όμως μπορεί να μεταλλαχθεί. Π.χ. >>> a = [1.0, 2.0, 3.0] # Create a list >>> a.append(4.0) # Append 4.0 to list >>> print a Output: [1.0, 2.0, 3.0, 4.0] >>> a.insert(0,0.0) # Insert 0.0 in position 0 Output: [0.0, 1.0, 2.0, 3.0, 4.0] >>> print len(a) # Determine length of list Output: 5

Λογικές εκφράσεις/βρόχοι (1) Δομή if else Π.χ. if a < 0.0: sign = ’negative’ elif a > 0.0: sign = ’positive’ else: sign = ’zero’

Λογικές εκφράσεις/βρόχοι (2) For loop Π.χ. nMax = 5 a = [] for n in range(1,nMax): a.append(1.0/n) print a Output: [1.0, 0.5, 0.33333333333333331, 0.25]

Λογικές εκφράσεις/βρόχοι (3) While loop Π.χ. #create the list [1,1/2,1/3,…] nMax = 5 n = 1 a = [] # Create empty list while n < nMax: a.append(1.0/n) # Append element to list n = n + 1 print a Output: [1.0, 0.5, 0.33333333333333331, 0.25]

Συναρτήσεις (1) Η δομή μιας συνάρτησης στην Python είναι : def όνομα_συνάρτησης (παράμετρος,παράμετρος2,…): εντολές return τιμές_επιστροφής

Συναρτήσεις (2) Έτοιμες μαθηματικές συναρτήσεις: - abs(a) Απόλυτη τιμή του a - max(σειρά) Το μεγαλύτερο στοιχείο της σειράς - min(σειρά) Το μικρότερο στοιχείο της σειράς - round(a,n) Στρογγυλοποίηση του a σε n δεκαδικά - cmp(a,b) Επιστρέφει: -1 αν a < b 0 αν a = b 1 αν a > b

Είσοδος / Έξοδος Διάβασμα εισόδου από χρήστη με την χρήση της εντολής raw_input Π.χ. >>> a = raw_input(’Input a: ’) >>> 10 >>> print a Input a: 10 Τύπωση εξόδου με την χρήση της εντολής print Π.χ. >>> a=10 >>> print a Output:10

Βιβλιοθήκες Μαθηματικές συναρτήσεις μέσω της math: Π.χ. >>> import math #import all from math or >>> from math import * #import * from math

Python with MSRDS

Robotics in Python Λογισμικό προσομοίωσης της Microsoft. Χρησιμοποιείται για έλεγχο και προσομοίωση Ρομποτ. Απευθύνεται σε επαγγελματίες και ερασιτέχνες. Είναι συμβατό με μία ευρεία γκάμα αρχιτεκτωνικών.

ΒΑΣΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ  Visual programming.  3D simulation. Έυκολη πρόσβαση στο Hardware(αισθητήρες). Υποστήριξη  script language όπως Iron Python .

Iron Python Υλοποίηση της κλασικής Python. Υλοποιημένη σε c#. Δημιουργήθηκε για την Microsft Windows.

Interface Easy drag and drop

Robot Drive from datetime import datetime import time def RobotPosition(): print 'RobotPosition called' while True: px = str(base1.Position.X) pz = str(base1.Position.Z) print 'Position X and Z -> ' + px + ' / ' + pz time.sleep(0.5) def RobotDrive(left, right): print 'RobotDrive called' base1.Go(left, right) def RobotDrivePattern(): print 'RobotDrivePattern called' base1.GoTo(1.0, 0.3) base1.Turn(90, 0.2) print 'Robot_Drive.py Ready'

Invoke Script

MAZE EXPLORER

ΓΕΝΙΚΗ ΛΥΣΗ Ακολουθούμε μια διαδρομή κατά μήκος του τοίχου επιλέγοντας στην αρχή αν θα τον έχουμε δεξιά η αριστερά μας.

ΓΕΝΙΚΗ ΛΥΣΗ (1) Για τη συγκεκριμένη λύση διαλέξαμε ο τοίχος να είναι στα αριστερά μας. Τοποθετούμε κατάλληλα τους αισθητήρες πάνω στο ρομπότ. τοίχος 270th απόσταση του LRF τοίχος 180th απόσταση του LRF 355th απόσταση του LRF Δεξιά στροφή 30 μοιρών

ΑΛΓΟΡΙΘΜΟΣ Σε κάθε στιγμιότυπο ελέγχει τις τιμές που δίνουν οι 3 αισθητήρες απόστασης και στρίβει δεξιά Αν είναι “κοντά” σε γωνία Αν είναι “κοντά” σε πλαϊνό τοίχο Αν είναι “κοντά” σε μπροστινό τοίχο

ΑΛΓΟΡΙΘΜΟΣ (1) Αν δεν υπάρχει τοίχος στα αριστερά τότε στρίβει αριστερά Αριστερή στροφή 30 μοιρών 355η απόσταση του LRF τοίχος

MAZE Ορισμός περιβάλλοντος Χρήση αισθητήρα.

MAZE (2)

Save and execute script

Maze 2Irs Δύο Αισθητίρες Ir. Turn 90 if ir2 free. Else turn -90.

Ερωτήσεις?