Informationstechnisches Projekt 2012 Dr.-Ing. R. Heynicke Dipl.-Inf.-Ing. T. Schröder Dipl.-Ing. D. Krüger
Termine 1. Gruppe A 07.05.2011, Gruppe B 08.05.2011 jeweils 14:00 17:00 Uhr. 2. Gruppe A 14.05.2011, Gruppe B 15.05.2011 jeweils 14:00 17:00 Uhr. 3. Gruppe A 21.05.2011, Gruppe B 22.05.2011 jeweils 14:00 17:00 Uhr. 4. Gruppe A??.05.2011, Gruppe B??.05.2011 nach Vereinbarung. 2
Ausstattung LEGO Mindstorm NXT Roboter Ladegerät USB-Programmierkabel 2 x USB-Verlängerungskabel (5m) Logitech C600 WebCam Hama Star 61 Stativ 1 3
Rückgabe Direkt nach Prüfung vom 2. ITP-Teil 1x USB-Verlängerungkabel (5m) Logitech C600 WebCam Hama Star 61 Stativ Bis 29. bzw. 30. Juni in H1 Raum 1491 LEGO Mindstorm NXT Roboter 1x USB-Verlängerungskabel (5m) USB-Programmierkabel Ladegerät 1 4
Software Zu installieren: (Im PC-Pool bereits installiert!) USB-Driver für LEGO Mindstorms NXT "Fantom", version 1.02 or higher http://mindstorms.lego.com/en-us/support/files/driver.aspx Logitech WebCam C600 http://www.logitech.com/de-at/435/5869 Herunterladen und lokal speichern: RWTH-Mindstorms NXT Toolbox for MATLAB: (verwenden Sie version 4.04) http://www.mindstorms.rwth-aachen.de/trac/ Quelle: http://www.mindstorms.rwth-aachen.de/trac/wiki/download4.04 5
Aufgaben 1. Positionsbestimmung mittels Webcam 2. Einparkhilfe 3. Geschwindigkeitskontrolle 6
Aufgabe 1: Steuerung per WebCam Schreiben Sie eine Matlab-Funktion, mit der die Position des sich bewegenden Lego Mindstorm Roboters (mit einen Grünen Punkt gekennzeichnet) auf dem Fussboden an hand von Bilder der Logitech-Webcam berechnet und über die Zeit im 2D-Plot aufgzeigt wird. Verwenden Sie hierzu die auf dem Stativ in 1,5 Meter Höhe montierten Webcam. Der untere Bildrand befindet sich auf dem Fußboden in einen definierten Abstand vom der Kamerazentrum entfernt. Der Roboter fährt entlang einer Schleifer. Matlab-Funktion (vorschlag): videoinput('winvideo'), start, getsnapshot, stop, imshow, ind2sub, figure, conv2, zeros Gegebene Werte: Brennweite [mm] (horizontal,vertikal) = ca. [4.6 5] Sensor Abmaße [mm] (horizontal,vertikal) = [3.416 4.536] Bildauflösung (Standard) = RGB24 640x480 1 7
Matlab Handle-ID Die COM-Schnittstelle besteht aus Eigenschaften, Methoden und Ereignissen. Mit handle_id = COM_OpenNXT() wird ein COM-Objekt zurückgegeben, welches Zugriff auf diese COM-Schnittstelle ermöglicht. Gleiches gilt auch für USB-WebCAM: handle_id = videoinput('winvideo') Um Bilder mit der WebCam zu erstellen ist die Verbindung zu initialisiern start(handle_id) Um ein rgb-bild zu erhalten ist folgender Befehl auszuführen: rgb = getsnapshot(handle_id) Wenn die Verbindung nicht mehr benötigt wird ist diese zu schließen close(handle_id) 8
Geometrie Aufgabe 1: Steuerung per WebCam Die Brennweite b wird in Millimetern angegeben und bedeutet, streng genommen, die Entfernung zwischen der Aufnahmeebene (CCD-Chip oder Film) und der Objektiv- Hauptebene. 1 9
Aufgabe 1: Positionsbestimmung mittels Webcam 10
Aufgabe 2: Einparkhilfe Schreiben Sie eine Matlab-Funktion, welche eine seitliche Einparkhilfe für den Roboter realisiert. Die Einparkbucht ist 30cm breit und 17cm tiefe, die Wände sind mindestens 30 cm hoch und aus Pape. Verwenden Sie den Ultrschallsensor des Roboters. Der Fahrweg des Roboters soll in einem Plot gezeichnet werden. Gegebene Werte: Anfangsabstand zur Wand 5cm Der Roboter soll hinter der Linie in der Einparkbucht stehen 1 11
Aufgabe 2: Einparkhilfe 1 12
Aufgabe 2: Einparkhilfe 13
Aufgabe 3: Geschwindigkeitskontrolle Schreiben Sie eine Matlab-Funktion, welche die Geschwindigkeit in Abhängigkeit der Frequenz des durch die Lautstärke modulierten Sinussignal (zwischen 1 bis 10 Hz) des Roboters während der Fahrt regelt. Der Fahrweg soll der Form einer Schleife wie in der 1. Aufgabe entsprechen. Gegebene Werte: Lautstärkenmodulation für schnelles fahren Lautstärkenmodulation für langsames fahren Die Matlab-Code wird auf der Homepage zum herunterladen zur Verfügung gestellt! 1 14
Aufgabe 3: Geschwindigkeitskontrolle 15
RWTHMindstormsNXT\tools\GUI_WatchSensor.m 16
RWTHMindstormsNXT\tools\GUI_WatchMotorState.m 17
Dokumentation Per Browser unter RWTHMindstormsNXT/doc Functions - Alphabetical List doc/functions/abc.html Beispiele doc/examples/examples.html Direct NXT commands /doc/programming/direct_commands.html High level sensor control. doc/programming/sensor_control.html 18
Funktionen der NXT-Toolbox Verwenden Sie zum Warten auf den NXT den Matlab pause() -Befehl! NXT-Verbindung: COM_CloseNXT, COM_OpenNXT, COM_SetDefaultNXT, COM_GetDefaultNXT NXT-Sensoren: OpenUltrasonic, GetUltrasonic, OpenSound, GetSound, CloseSensor NXT-Motoren: NXT_ResetMotorPosition, DirectMotorCommand, NXC_MotorControl, NXT_GetOutputState 1 19
Heute Es ist ein Projekt und KEINE Übung! Es gibt somit keine einzelnen Aufgaben für jeden Termin. Jede Gruppe hat drei Aufgaben, welche sie lösen soll. Wir helfen euch bei Fragen zur Realisierung. TIP: Setzt euch Deadlines, damit Ihr am letzten Abend nicht alles machen müsst! 20
Heute Für heute sollte mindestens folgendes funktionieren: Verbindung zwischen Matlab und Roboter per Command-Befehl Auslesen von Sensordaten per Command-Befehl Roboter per Command-Befehl bewegen Bild erstellen mittels WebCam unter Matlab per Command- Befehl Verteilung der Aufgaben und vielleicht Deadlines 21
Fragen? Professur 1 22 für Elektrische Messtechnik
dann viel Spaß! Diese Folien findet Ihr auf unserer Homepage http://emt.hsu-hh.de unter Lehre» Informationstechnisches Projekt - Vorlesung Professur 1 23 für Elektrische Messtechnik