VirtualPresentation_5745_¿CUÁNDO USAR INVENTOR SIMULATION YO SIMULATION MECHANICAL YO ROBOT
Programming robot in simulation environment using Pyrobotics module
-
Upload
georgios-marios-papadopoulos -
Category
Technology
-
view
121 -
download
2
description
Transcript of Programming robot in simulation environment using Pyrobotics module
Παρουσίαση Project στο μάθημα
Εισαγωγή στους Υπολογιστές Ι
Από τους (με αλφαβητική σειρά):Βασίλειος ΟρφανόςΑλέξανδρος Οσάνα
Γεώργιος-Μάριος ΠαπαδόπουλοςΔημήτριος Σκρεπετός
Κωνσταντίνος Φραγκάκης
Σκοπός
Ο σκοπός του project είναι ο προγραμματισμός robot σε περιβάλλον προσομείωσης γραφικών (gui),
με την χρήση της γλώσσας προγραμματισμού python(www.python.org), και με την βοήθεια του
module pyrorobot(pyrorobotics.org)
Αρχικά στάδια
Μετά την ανάθεση του project, οι πρώτες 2 εβδομάδες καταναλώθηκαν στην λύση των πολλών τεχνικών προβλημάτων που κυμαίνονταν από την
εύρεση του κατάλληλου module, την επιτυχή εγκατάστασή του, καθώς και την δυνατότητα
χρησιμοποίησής του.
ΣχεδιασμόςΜετά την λύση των τεχνικών προβλημάτων, οι προσπάθειές μας κινήθηκαν στους εξής άξονες:
1) Κατασκευή προγράμματος το οποίο θα επιτρέπει στο robot να κινείται μέσα σε περιβάλλον από εμπόδια
και τοίχους, χωρίς να σταματάει, δηλ. Αποφυγή εμποδίων
2) Κατασκευή πίστας(world) με τοίχους και εμπόδια το οποίο θα δείχνει τις δυνατότητες του παραπάνω
προγράμματος3) Υπήρξε σκέψη για να κατασκευάζει το robot
γράμματα και αριθμούς, υπήρξε κατασκευή προγράμματος σε περιβάλλον turtle, αλλά δεν
επιτεύχθηκε τελικά η υλοποίηση.
ΥλοποίησηΤο πρώτο μέρος υλοποιήθηκε από τους Δημήτριο
Σκρεπετό, Γιώργο Παπαδόπουλου, και Αλέξανδρο Οσάνα
Το δεύτερο μέρος υλοποιήθηκε από τον Βασίλειο Ορφανό και τον Κωνσταντίνο Φραγκάκη
Το τρίτο μέρος υλοποιήθηκε σε περιβάλλον turtle από τον Γεώργιο-Μάριο Παπαδόπουλο και τον
Κωνσταντίνο Φραγκάκη.Η επίλυση των τεχνικών προβλήμάτων και η
επιμελεια της έκθεσης έγιναν από τον Αλέξανδρο Οσάνα.
Η παρουσίαση είναι εργο του Δημήτρη Σκρεπετού και του Βασίλη Ορφανού.
ΚώδικαςΚώδικας
# -*- coding: cp1253 -*-from pyrobot.brain import Brain class AvoidObstacles(Brain): def avoid(self, dist): self.robot.translate(0.5)ListSensors=["front","front-right","front-left","right","left","back","back-right","back-left"] LenghtListSensors=len(ListSensors) ListMinSensors={} for i in range(0, LenghtListSensors): a=min([s.distance() for s in self.robot.range[ListSensors[i]]]) ListMinSensors[ListSensors[i]]=a print ListMinSensors LenghtListMinSensors=len(ListMinSensors) ListSensorsClose={} for i in range (0, LenghtListMinSensors): if ListMinSensors[ListSensors[i]]<dist: ListSensorsClose[ListSensors[i]]=1 else: ListSensorsClose[ListSensors[i]]=0 print ListSensorsClose dist1=dist/4 ListSensorsClose2={} for i in range (0, LenghtListMinSensors): if ListMinSensors[ListSensors[i]]<dist1: ListSensorsClose2[ListSensors[i]]=1 else: ListSensorsClose2[ListSensors[i]]=0
print ListSensorsClose2 a1=ListSensorsClose["front"] a2=ListSensorsClose["front-right"] a3=ListSensorsClose["front-left"] b1=ListSensorsClose2["front"] b2=ListSensorsClose2["front-right"] b3=ListSensorsClose2["front-left"]c1=(b1)*(b2)*(b3) c2=(a1)*(a2) c3=(a1)*(a3) if a1==1: if ListMinSensors["front-right"]<ListMinSensors["front-left"] and c1==0: self.robot.move(0,1.0) elif ListMinSensors["front-right"]>ListMinSensors["front-left"] and c1==0 : self.robot.move(0,-1.0) elif c1==1: self.robot.move(-0.1,0) elif a1==0 and b2==1 and b3==0: self.robot.stop() self.robot.move(0.5,0.5) elif a1==0 and b2==0 and b3==1: self.robot.stop() self.robot.move(0.5,-0.5) else: self.robot.stop() self.robot.move(0.5,0) def step(self): self.avoid(1)
def INIT(engine): return AvoidObstacles('AvoidObstacles', engine)
Αψιμαχίες
● Όπως είναι φυσικό κατά τη διάρκεια του project υπήρχαν και σημαντικές διαφωνίες που ευτυχώς δεν κατέληξαν σε σοβαρούς τραυματισμούς
Ανεκπλήρωτα σχέδια
Θα θέλαμε πάρα πολύ να μπορέσουμε να βελτιστοποιήσουμε στο μέγιστο τα προγράμματα που κατασκευάσαμε, καθώς και να ασχοληθούμε με την κατασκευή άλλων προγραμμάτων, αλλά δυστυχώς ο χρόνος που σπαταλήθηκε για την
επίλυση των τεχνικών προβλημάτων, και η έλλειψη πείρας και γνώσεων στην των προγραμματιστων μας περιόρισαν στο
συγκεκριμένο αποτέλεσμα.