Benutzer-Werkzeuge

Webseiten-Werkzeuge


ws1314:robotik

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ws1314:robotik [2014/01/09 11:31]
KonstantinTD
ws1314:robotik [2016/05/10 14:46] (aktuell)
Zeile 1: Zeile 1:
 ====== Robotik ====== ====== Robotik ======
  
-Unsere ​Gruppe ​wollte sich zuerst mit dem Quadrocopter beschäftigen ​und dessen Gleichgewichtsstörungen beheben und dannach gucken, was man noch alles implementieren könnte: z.Beigenständig Routen abfliegenan bestimmten Orten Aufnahmen mit einer Kamera machen oder auch ferngesteuert Fotos machen.+Willkommen auf der Wiki-Seite der Gruppe ​4 Robotik! Hier stellen wir unser Projekt vor, geben ein paar Hintergründe ​und einen kleinen Überblick über den Werdegang unseres ProjektesWir hoffendass ihr hier Interessantes findetViel Erfolg!
  
-Darauf gab es dann erste Programmier-Versuche ​über eine Kamera Bilder ​zu vergleichen und daraus auf Bewegungen zu schließen.+[[Dokumentation]] ... Die Hauptseite. Hier sollte man beinahe alles finden, was es über das Projekt ​zu wissen gibt
  
-Dann kam das Treffen mit Felix (Bauer des Quadrocopters und Leiter des Robotiklabors)Der hat uns dann erstmal erklärt, dass der Quadrocopter aufgrund seiner Größe nicht in zu kleinen Innenräumen fliegen darf, weil ihn aufgrund seiner Größe seine eigens verursachte Luftzirkulation selber behindertDraußen ist auch eher schlechtAuf dem Gelände der TU braucht man eine Genehmigung und generell ist das Gerät sehr wasseranfällig und sollte deshalb nach Möglichkeit nur sehr sehr wenig bis gar nicht mit ihm in Berührung kommen.+[[DIE Zukunft^^]] ​..... Ein kleiner Überblick darüber, was wir demnächst vorhaben ​
  
-Also entfernten wir uns etwas von dem Gedanken mit diesem Quadrocopter uns zu beschäftigen und überlegten uns mehr mit kleineren Versionen zu arbeiten, da diese ohne große Probleme drinnen fliegen können. +[[start]] .................. ​Zurück zur Hauptseite
-Damit hatten wir auch nicht mehr das Problem mit dem Gleichgewicht. +
- +
-Wir hatten uns daraufhin auf das Ziel fokussiert das Fluggerät soweit zu programmieren,​ dass es sich eigenständig im (Innen)Raum bewegen kann und zwar ohne irgendwo gegen zu stoßen. Dafür muss es sowohl wissen, wie der Raum aussieht, als auch wo es sich selbst in diesem Raum befindet. +
- +
-Seitdem haben wir uns des zweiten Teils dieses Problems angenommen: Die Ortung von sich selbst. +
- +
-Unser erster Gedankenansatz lief über die Triangulation. D.h. wir haben mehrere festgesetzte Punkte, deren Standort klar ist und die messen den Abstand zu dem Fluggerät, woraus wir dessen genaue Position im Raum bestimmen können. Da wir zeitgleich das Plotten mit Python im Labor kennen gelernt haben, haben wir versucht unsere Idee zumindest im 2-dimensionalen-Raum darzustellen. Dabei hatten wir auch schon ein paar Probleme, da wir nicht genau wussten, wie die Funktion, welche wir aus dem Internet hatten funktioniert. Deshalb haben wir viel rumprobiert,​ bis uns Stefan eine bessere gegeben hat. +
- +
-Am Ende bei rausgekommen:​ +
- +
-import numpy as np +
-import matplotlib.pyplot as plt +
-import matplotlib.path as mpath +
-import matplotlib.lines as mlines +
-import matplotlib.patches as mpatches +
- +
- +
-W = { } +
-N = 5 +
- +
-qx = np.random.randint(30) +
-qy = np.random.randint(30) +
-W["​Referenzpunkt X"] =  qx +
-W["​Referenzpunkt Y"=  qy +
- +
-plt.figure() +
-ax=plt.subplot(111) +
-ax.set_xlim([0,​30]+
-ax.set_ylim([0,​30]) +
-ax.add_patch(mpatches.Circle((qx,​ qy), radius=1,​color="​red",​alpha=0.1)) +
- +
-for i in range(0,​N): ​                            #​scatterplot handles data nonlinear, its not legible for triangulation-use +
-  +
- x = np.random.randint(30) +
- y = np.random.randint(30) +
- ankathete = float(x - qx) +
- gegenkathete = float(y - qy) +
- radius = np.sqrt((ankathete**2) + (gegenkathete**2)) +
- kreisumfang = 2*np.pi*radius +
- area = np.pi * (radius)**2  +
- W[i] =  x,​y,​radius,​area +
-  +
- ax.add_patch(mpatches.Circle((x,​y),​radius=radius,​color='​blue',​alpha=0.1)) +
- #plt.scatter(x, y, s=area*190 , alpha=0.1) +
- +
-plt.draw() +
-plt.show() +
-print W +
- +
-//Es wird etwas komisch angezeigt, aber wenn ihr auf bearbeiten klickt, könnt ihr, wenn ihr wollt, den Code gut rauskopieren und selbst ausprobieren.// +
- +
-Als wir das Grundkonzept hatten, mussten wir allerdings noch eine Möglichkeit finden das Grundkonzept technisch umzusetzen. +
-Wir haben erst über Lichtsignale nachgedacht,​ haben dann ein wenig im Internet nach Möglichkeiten der Entfernungsmessung gesucht und sind dann auf WLAN und Bluetooth gestoßen. +
-Bei Bluetooth haben wir auch gleich eine passende Mod mit Funktion gefunden und das ausprobiert +
- +
-import bluetooth as bluetooth +
- +
-print "​performing inquiry...+
- +
-nearby_devices = bluetooth.discover_devices(lookup_names = True) +
- +
-print "found %d devices"​ % len(nearby_devices) +
- +
-for addr, name in nearby_devices:​ +
-    print " ​ %s - %s" % (addr, name) +
- +
-find_service(name=None,​ uuid=None, address=None)  +
- +
-//Ähnliche Anzeigeprobleme:​ Deshalb bei Bedarf bitte wie obenAllerdings müsst ihr vorher bluepy downloaden//​ +
- +
-Das haben wir dann mehrfach ausprobiert,​ aber es war deutlich zu ungenau für unsere Zwecke. +
-Dann haben wir überlegt unsere eigene Funktion zu schreiben, durch die wir die Entfernung messen können über elektromagnetische WellenDiese bewegen sich aber viel zu schnell für einen Computer, um daraus vernünftige Ergebnisse raus zuziehenAußerdem bräuchte man sehr starke Sender für die Distanz, sodass wir uns auch von dieser Idee verabschieden mussten. +
- +
-Momentan arbeiten wir daran über Kameras, die auf dem Gerät befestigte Leuchtdioden erkennen, deren Abstand zueinander bekannt ist, die Ortung zu ermöglichenDabei stehen wir aber noch am Anfang und versuchen erst einmal eine Diode erkennen zu lassen.+
ws1314/robotik.1389263490.txt.gz · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)