Home
Diplomarbeit - Homepage
Contents
1. 1 Erstellung des Geometriepuffers SVertex aVertex 4 2 Verschiebung der Videotertur auf der X Achse const float excenter DELTA X 2 3 Warte auf Abschluss einer eventuellen Texture Aktualisierung while m pTexfilterLeft IsTextureLocked 4 Videotextur fuer das linke Auge setzen g Direct3D GetDevice gt SetTexture 0 m pTexfilterLeft GetTexture 5 Skalierungs und Translationsmatriz erzeugen D3DXMatrixScaling amp mScale 0 25f 0 25f 0 0f st sy sz D3DXMatrixTranslation amp mTranslation excent 0 0f 0 0f 6 Beide Matrizen zu einer Weltmatriz kombinieren mWorld mTranslation mScale 7 Weltmatriz der Transformationspipeline setzen g Direct3D GetDevice gt SetTransform D3DIS_WORLD DIDMATRIX x 2mWorld 8 Als Dreiecksfolge zeichnen g Direct3D GetDevice gt DrawPrimitiveUP D3DPT_TRIANGLESTRIP 2 aVertex sizeof SVertex Verfahre analogdazu mit der Video Textur fuer das rechte Auge Abbildung 4 37 Listing Aufbau der Render Funktion 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 127 Bevor eine Videotextur endg ltig gezeichnet werden kann muss die Weltmatrix der Transformationspipeline neu gesetzt werden Sie sorgt f r die richtige Posi tionierung und Skalierung des zu zeichnenden Grafikobjekts Die Weltmatrix er rechnet sich dementsprechend durch die Mult
2. AIBO_RMF entpackt werden Das AIBO Remote Framework SDK besteht aus vier Unterordnern In den Ord nern docE und docJ befindet sich eine oberfl chlich gehaltene englische bzw japanische Dokumentation Im Grunde sind es nur Hinweise zur Architektur des Frameworks Die anderen beiden Verzeichnisse INCLUDE und LIB enthal ten wichtige Compiler und Systemdateien Im LIB Verzeichnis befinden sich neben den Compilerbibliotheken die Dynamic Link Libraries DLLs mit den Laufzeitkomponenten des AIBO Remote Frameworks Es empfiehlt sich alle y dll Dateien in das Windows Systemverzeichnis zu kopieren um allen An wendungen Zugriff auf das Framework zu gew hren Alternativ k nnen die Lauf zeitbibliotheken in das Programmverzeichnis der jeweiligen Anwendungen kopiert werden Im n chsten Schritt wird das AIBO Remote Framework SDK in die Entwick lungsumgebung des Visual C Compilers eingebettet Dazu geht man wie in Abschnitt 4 2 1 im Zusammenhang mit dem Direct X SDK beschrieben vor Die Liste der INCLUDE Verzeichnisse des MS VC muss um das INCLUDE Verzeichnis des AIBO Remote Frameworks erweitert werden damit der Com piler die entsprechenden Header Dateien findet Ebenfalls muss die Liste der Linkerbibliotheken Verzeichnisse um das LIB Verzeichnis des Remote Frame works erg nzt werden Sind die Verzeichnisse in die Verzeichnispfade der Entwicklungsumgebung aufge nommen m ssen lediglich noch
3. gerendert werden Im Falle der Stereo View Anwendung werden die zwei vom Video Texture Rendering Filter geliefer ten Videotexturen ber rechteckige Geometrien gelegt Die daraus resultierenden Grafik Objekte sind vergleichbar mit virtuellen Leinw nden Auf diese werden die Bilder der vom Doppelkamerasystems aufgenommenen realen Szene projiziert 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 125 Die Stereo View Anwendung aktualisiert in kurzen Abst nden den Bildschir minhalt Dazu wird das jeweils n chste Bild in einen leeren sekund ren Bildpuf fer Backbuffer gezeichnet und w hrend der Austastl cke des Videosignals auf dem Bildschirm pr sentiert Eine Aktualisierung muss sp testens dann erfolgen wenn einer der vom Doppelkamera System eingehenden Videostreams ein neues Einzelbild liefert Eingang eines Samples Kameras die Videosignale im PAL Format liefern ha ben eine Bildwiederholrate von 25 Vollbildern pro Sekunde Bei gleichzeitiger Darstellung zweier nicht synchronisierter Videostreams muss also mit dem Ein gang von bis zu 50 2x25 Einzelbildern je Sekunde gerechnet werden Die Stereo View Anwendung synchronisiert den Bildaufbau mit der vertika len Bildwiederholfrequenz des Displays Durch diese Technik wird ein eventuell auftretendes Bildflackern vollst ndig vermieden Die vertikale Bildwiederholfre quenz betr gt w hrend des Betriebes des Stereoskopie Zusatztreibers aus An wendu
4. nn 79 Be a ee ipii 79 4 13 Listing Initialisierung der CATPDirectSound Schnittstelle 80 nn 85 4 15 Kamerahalterung Skizzel o 89 4 16 Kamerahalterung mit 2 ZT 810 Kameras 89 dr Bone ee 90 4 18 Osprey 50 USB Videocaptureger t 90 LU a ai 91 PETE 92 93 4 22 Klassendiagramm der Stereo View Anwendung 94 4 23 Filtergraphen der Stereo View Anwendung 97 4 24 Konfigurationsdialog der Stereoview Anwendung 98 10 ABBILDUNGSVERZEICHNIS 4 25 Listing Erstellung eines Video Capture Filters 99 4 26 Videodatenformat o amp 242 44 4a sr ee 101 4 27 Texturdatenformat sr var ear a a a a a Ae 102 4 28 Listing Konvertierungsalgorithmusl 106 4 29 3D Grafikszene in stereoskopischer Darstellung 112 4 30 Konstruktion 3D Grafikszene aus den Bildern eines Doppelkame uah E E Rd A e e ern 113 o be e 117 4 32 Listing Erstellung Direct DDevice9 Schnittstelle 118 HEEN 120 4 34 Kamerapositionierung ooo a 122 4 35 Definition eines Sichtfeldes FOV 122 EEN 124 4 37 Listing Aufbau der Render Funktion 2222 20 126 Tabellenverzeichnis 2 1 Freiheitsgrade AIBO ERS 7 3 1 Umsetzung der Joystickeingaben durch den AIBO ERS 43 3 2 Abbildung der analogen Joystickachsen auf diskreten Werten 44 3 3 Beispiele zur Gener
5. Die Mini Funk Kameras senden die aufgenommenen Bilder im analogen PAL Format zu zwei station ren Empfangsteilen Die bertragung erfolgt mit ei ner Sendeleistung von 10 mW auf dem in Europa freigegebenen 2 4 GHz Frequenzband Die Sender erzielen eine Reichweite die trotz geringerer Sendeleis tung etwa der des Wireless LAN entspricht Abbildung 4 17 zeigt eine Gro auf nahme einer ZT 811 Kamera und den zugeh rigen Receiver mit dem Wahlschalter f r den Funkkanal sowie Audio und Videoausgang Das aus dem Kamera heraus gef hrte Kabel dient lediglich der Betriebsspannungsversorgung Das Videosignal Die Kameras ZT 810 und ZT 811 unterscheiden sich in Gr e und Bildqualit t Die ZT 810 hat die dopellte L nge einer ZT 811 etwa 45 mm Sie liefert eine etwas bessere Bild und bertragungsqualit t Das Doppelkamerasystem kann mit beiden Kameratypen problemlos aufgebaut werden 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 89 Drehgelenke R l Abbildung 4 15 Kamerahalterung Skizze gt 1 Abbildung 4 16 Kamerahalterung mit 2 ZT 810 Kameras 90 KAPITEL 4 TECHNISCHE REALISIERUNG wird ber die im Bild deutlich erkennbare kleine Antenne bertragen Im vor deren linken Teil des Bildes ist das winzige etwa 1 5 mm im Durchmesser gro e Kameraobjektiv zu sehen Abbildung 4 17 ZT 811 Funkkamera und Empf nger Die von den Funkempf ngern erfassten Videosignale werden durch zwei Vid
6. Direct X ist eine von der Firma Microsoft entwickelte Multimediaschnittstelle Sie soll dem Anwendungsentwickler einen einheitlichen Zugriff auf die in einem Rechner installierte Multimediahardware bieten Direct X stellt eine zus tzliche Softwareschicht zwischen einer Anwendung und den Ger tetreibern der Hardware dar Zur Umsetzung der im Rahmen dieser Diplomarbeit gestellten Aufgabe der Entwicklung eines Stereokamera Systems wurde diese Schnittstelle in der Version 86 KAPITEL 4 TECHNISCHE REALISIERUNG 9 0 zur Aufnahme der Bilddaten und der Reproduktion dieser Daten auf einem stereoskopischen Display eingesetzt An dieser Stelle soll dem Leser ein kurzer berblick ber die Architektur und die Verwendeten Komponenten der Direct X 9 Schnittstelle gegeben werden 4 4 1 1 Architektur Direct X baut auf dem Component Object Model auf welches der Organi sation der einzelnen Komponenten dient Das COM fordert die Aufteilung einer gro en Programmbibliothek wie Direct X es ist in verschiedene Schnittstellen Interfaces Jede dieser Schnittstellen deckt einen mehr oder weniger gro en Aufgabenbereich ab Formal sind diese Schnittstellen nichts anderes als C Klassen die aber lediglich Methoden keine Variablen beinhalten Die Namen der COM Schnittstellen beginnen mit dem Pr fix I f r Interface Danach folgt der eigentliche Name der Schnittstelle z b bezeichnet ID3DDevice9 eine Schnittstelle zur S
7. E QO res Ress Objekt Bibliothek Module IV Debug Info generieren IV Alle Standardbibl ignorieren IV Inkrementelles Binden TF Profiler Lauf erm glichen T Map Datei erstellen Projekt Optionen il15 lib VAIBOClient lib LIBC LIB wmvcore lib Msvertd lib winmm lib d3d9 lib d3dx3 lib dxerr9 lib dxguid lib dinput8 lib stmbasd lib quartz lib kernel32 lib user32 lib E Abbrechen ma Klas Erstellen Debug A Suchen in Dateien 1 A Suche 4 Bereit Z 0 5p 0 REC COL 06 READ Abbildung 4 3 Visual C Projekteinstellungen Erg nzen sie zur Erstellung eines Projekts welches Direct 3D Directshow und Directsound einsetzt folgende zus tzlichen Bibliothekseintr ge winmm lib d3d9 lib dsound9 lib d3dx9 lib dxerr9 lib dxrguid lib strmbasd lib quartz lib Es wurde in den vorhergehenden Abschnitten beispielhaft gezeigt wie der Mi crosoft Visual C Compiler f r die Verwendung mit dem Direct X 9 SDK einzurichten ist Zum Erwerb fundierten Wissens ist jedoch das Studium von Fachliteratur z b 2 oder der mit dem Direct X 9 SDK gelieferten Online Dokumentation zu empfehlen 4 2 2 AIBO Remote Framework SDK Das AIBO Remote Framework SDK ist ein Entwicklungspaket zur Erstel lung von Anwendungen die es erm glichen den AIBO ERS 7 ber einen Windows PC fernzusteuern Durch die Verwendung des AIBO Remote Frameworks wird 60 KAPITEL 4 TECHNIS
8. Kontrolle der Bewegungen Die Bewegungen des Roboters Laufen Kopfbe wegung Haltung usw k nnen gesteuert werden Auch vordefinierte Be wegungsabl ufe k nnen auf dem Roboter abgespielt werden Kontrolle ber Autonomous Objects Zu den Autonomous Object Services geh ren die Spracherkennung Verfolgung beweglicher Objekte Gesichts suche Gesichtserkennung Erkennung von Bildmustern Zielobjekt Erken nung Erkennung von Abgr nden und das automatische Aufsuchen der La destation 4 3 1 3 Kommunikation Die Benutzer Anwendung kommuniziert nicht direkt ber das Netzwerk mit ei nem AIBO Roboter Stellvertretend wird der Virtual AIBO Server ber die Lauf zeitbibliotheken des Remote Frameworks von der Anwendung angesprochen Der Virtual AIBO Server organisiert die korrekte Weiterleitung von Daten und Steu erkommandos zwischen PC Anwendungen und Robotern vergl Abb 4 8 Abbildung 4 9 zeigt die wichtigsten Teile der Architektur und Infrastruktur einer Remote Framework Anwendung Eine vollst ndige aber entsprechend komple xere schematische Abbildung kann der AIBO Remote Framework Spezification 12 entnommen werden Die Kommunikation von der PC Anwendung zum Roboter hin erfolgt aus der Sicht des Anwendungsprogrammierers durch den Aufruf von Funktionen der VAIBOClient DLL Die DLL Funktionen sprechen ihrerseits den Virtual AIBO Server an der die Informationen zum entsprechenden Roboter leitet Etwas komplizierte
9. 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 105 Konvertierung des Video Datenformats Nachdem nun der Zugriff auf das zu verarbeitende Bild des Videostreams sowie der Zugriff auf die Textur Bilddaten gew hrleistet ist kann mit der Konvertierung der Bilddaten fortgefahren werden Wie bereits beschrieben werden die Daten eines Videobildes zeilenweise begin nend mit der untersten Bildzeile im Speicher abgelegt Abbildung 4 26 Das Videobild steht also im bertragenen Sinne auf dem Kopf Die Bilddaten einer Textur sind ebenfalls zeilenweise jedoch beginnend mit der obersten Zeile des Bildes im Speicher angeordnet Jede im Speicher abgelegte Texturzeile kann an ihrem Ende zus tzliche Steuerinformationen der Grafikkarte enthalten Abbil dung 4 27 Der Wert um den ein Zeiger auf die Bilddaten einer Textur erh ht werden muss um in die n chste Zeile zu gelangen kann daher nicht durch Auf summierung der bildtragenden Datenbytes errechnet werden Man ben tigt eine weitere Angabe den sogenannten Zeilenabstand Pitch Dieser Wert besagt um wie viele Byte Schritte ein Zeiger erh ht werden muss um von einer Zeile der Textur in die n chste zu gelangen Der Zeilenabstand kann aus der Variablen Pitch der DBDLOCKED_RECT Struktur ausgelesen werden Neben der unterschiedlichen Ausrichtung unterscheiden sich die Bilddaten eines Videostreams von denen der Direct 3D Texturen durch ihre Farbformate Das B8G8R8 Farbformat der Videobilde
10. Byte 4 B8G8R8 Blau Gr n Rot X8R8G8B8 Alpha Rot Gr n Blau 102 KAPITEL 4 TECHNISCHE REALISIERUNG pixel 4 Bytes Spalte m Spaltenzahl pitch Bytes Zeile n Zeilenzahl pitch 4m d Abbildung 4 27 Texturdatenformat Die einzige L sung des oben beschriebenen Problems ist die byteweise Umkodie rung aller Einzelbilder des Videostreams Unter Umst nden ist gar eine bitweise Umkodierung der Pixel erforderlich n mlich dann wenn die in Direct 3D einge stellte Farbtiefe nur 16 Bit statt 32 Bit betr gt Dieser Fall wird von dem f r die Stereo View Anwendung implementierten Video Ausgabe Filter CVidTez Filter ebenfalls abgefangen soll hier aber nicht n her besprochen werden Implementierung des Video Texture Renderers Microsoft stellt dem Anwendungs Entwickler eine Reihe von Hilfsklassen zur Ver f gung welche die Entwicklung eigener Directshow Filter vereinfachen Zur Ent wicklung eines neuen Video Ausgabe Filters wird dessen Programmklasse von der Directshow Basisklasse CBase VideoRenderer abgeleitet Die Basisklasse implementiert alle grundlegenden Funktionen eines Video Rendering Filters Der Programmierer berschreibt lediglich die Methoden die f r die Verarbeitung der Videodaten zust ndig sind und passt diese so dem neuen Verwendungszweck an Neu implementiert werden m ssen folgende Methoden der Basis Klasse CBase VideoRenderer 4 4
11. llen Der Abstand a wurde im Falle der Stereo View Anwendung auf einen festen Wert von 0 28 Koordinatensystemeinheiten festgelegt Mittels der bis dahin bekannten Einstel lungen kann die erforderliche Breite einer Textur b berechnet werden b tana 2a tan 45 2 0 28 0 56 Die Videotexturen werden w hrend des Zeichenvorgangs mit einem Skalierungs faktor S auf die Breite b skaliert Die Vertikalachsen der Texturen werden mit 124 KAPITEL 4 TECHNISCHE REALISIERUNG b tang 2a Abbildung 4 36 Positionierung Skalierung der Videotexturen dem gleichen Faktor Sy Ss 5 skaliert so wird das Bildseitenverh ltnis 4 3 beibehalten und die Textur erh lt die richtige H he Der Skalierungsfaktor S wird folgenderma en berechnet T Terturbreitege fordert Tezrturbreite original Die 3D Grafikszene ist nun vollst ndig eingerichtet Die stereoskopische Wieder gabe der Videostreams kann beginnen 4 4 5 6 Zeichnen der Videotexturen Rendering n den vorigen Abschnitten wurde durch die Initialisierung der Direct 3D Grafikschnittstelle und das Einrichten einer 3D Grafikszene die Eigenschaften eines virtuellen dreidimensionalen Raumes definiert Auch wurde die Abbildung dieses Raumes auf dem Bildschirm des Computers durch die Definition einer virtuellen Kamera genau festgelegt Es k nnen nun 3D Grafikobjekte im Raum platziert und ber die Grafikschnitt stelle auf den Bildschirm gezeichnet
12. nden auch mehrer Ausgabe Pin s werden die ge nderten Daten aus dem Filter hinaus geleitet Typische Verarbeitungs Filter in Video Datenstr men sind z b Farbkonverter und Video En bzw Deco der Die dritte Filterkategorie sind die Video Ausgabefilter Sie haben einen Eingabe Pin jedoch keinen Ausgabe Pin Die Ausgabe erfolgt stattdessen in ei ne Datensenke Eine typische Datensenke ist ein Videorenderer welcher den 9Directshow Filter besitzen h ufig mehrere Ausgabe Pins wenn sie einen zusammengesetz ten Datenstrom in seine Bestandteile zerlegen Demultiplexer oder der ausgeleitete Datenstrom gleichzeitig in unterschiedlichen Formaten bereit gestellt und weiterverarbeitet werden soll 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 97 Videostream auf dem Computerbildschirm darstellt In der Anwendung Stereo View wird als Ausgabe Filter ein spezieller Konverter CVidTexFilter ein gesetzt der die Daten des Videostreams f r die Darstellung auf einem stereosko pischen Display aufbereitet Abbildung zeigt die schematische Darstellung der in der Anwendung Stereo View eingesetzten Filtergraphen Filtergraph 1 Direct 3D Capture Texture D Filter an 2 Eingabefilter Ausgabefilter Stereobild S Generierung En Filtergraph 2 Videobrille Capture Texture D Filter a 2 Eingabefilter _Ausgabefilter Kamera 1 Kamera 2 Abbild
13. neben diesem Dokument den Quellcode des entstandenen Programms Stereoview so wie das fertig compilierte Projekt als ausf hrbare Datei Aufgrund des erhebli chen Umfangs des Quellcodes konnte dieser leider nicht als Anhang der Arbeit abgedruckt werden 1 3 Schriftkonventionen Zur Verbesserung der Strukturierung und Lesbarkeit des vorliegenden Dokumen tes wird an dieser Stelle die Verwendung von Schrifthervorhebungen definiert Kursive Schrift wird verwendet f r Klassen Funktions und Attributnamen Beispiele CDirect3D Init HWND hwnd CDirect3D ScrWidth 800 Fett gedruckte Schrift wird verwendet f r Neu eingef hrte Begriffe Beispiele Wichtige Begriffe zum Verst ndnis des r umliche Sehen sind Vergenz und Akkomodation Nichtproportionalschrift wird verwendet f r Algorithmen bzw Programm code Beispiel 16 KAPITEL 1 EINLEITUNG for int i 0 i lt 10 i cout lt lt Hallo Welt lt Einschluss gt eines Begriffes in spitze Klammern wird verwendet zur Bezeich nung von GUI Steuerelementen Men s Buttons usw H Beispiele lt OK gt Button der Men punkt lt Speichern gt GUI Graphical User Interface Kapitel 2 Grundlagen Im diesem Kapitel werden wichtige zum Verst ndnis der Arbeit notwendige Grundlagen vermittelt Nach einem kurzen Ausflug in die Welt der autonomen Roboter und Teleroboter folgt eine detaillierte Beschreibung des Sony AIBO ERS 7 In de
14. Aktivierung der Audio TP zum Senden von Audio Daten und Anforderung des Net Service NETAUDIO_ID 3 Einstellung des Audio Formats und Starten der bertragung 4 Starten der Klangaufnahme ber die Soundkarte des lokalen PC Mikrofon Im ersten Schritt wird hnlich wie beim Empfangen von Audio Daten das Audio Format festgelegt Da der AIBO Roboter nur ber einen Lautsprecher verf gt und somit nicht in der Lage ist Stereosignale wiederzugeben beschr nkt sich die Bandbreite m glicher Formate auf die in Tabelle 4 3 mit dem Zusatz MO NO MIX versehenen Wave Formate Im zweiten Schritt wird die Audio TP f r die bertragung von Audio Informationen vom lokalen PC zum AIBO hin aktiviert und der zugeh ri ge Net Service angefordert Dies geschieht durch Aufruf der Methode CVAI BO AudioSendOpen int mode Der zu bergebende Parameter ist das zuvor 84 KAPITEL 4 TECHNISCHE REALISIERUNG festgelegte Audio Format Die Anforderung des Net Services geschieht durch den Aufruf CVAIBO RequestNetService NETAUDIO_ ID Das Define Makro NE TAUDIO ID identifiziert den Service zur bertragung von Audio Daten zum AIBO hin In Schritt drei wird das Audio Format zur Wiedergabe der Daten eingestellt und die Audio bertragung gestartet Das Einstellen des Formats geschieht mittels der Methode CVAIBO AudioSendSetMode int format Der Parameter format ist das festgelegte Audio Format Um die Audio bertragung zu starten wird die
15. Die zweite Zeile im Array die vorletzte Zeile des Bildes usw Die Bildausrichtung auf Direct 3D Texturen ist genau umgekehrt Das Bild wird von oben nach unten aufgebaut Die erste Zeile im Bilddatenarray 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 101 E El Sabse 0 m Spaltenzahl n 3m Bytes Zeile n Zeilenzahl ii pitch 3m Abbildung 4 26 Videodatenformat entspricht genau der ersten Zeile des tats chlichen Bildes Dar ber hinaus kann jede Bildzeile der Texturdaten an ihrem Zeilenende Steuerdaten f r die Grafik karte enthalten Zus tzlich zur Bildausrichtung unterscheidet sich die Farbkodierung der Pixel der beiden Formate Ein Bild des Videostreams besitzt das Farbformat B8G8R8 24 Bit Ein Bildpixel besteht demnach aus 3 Bytes 3 x 8 Bit wobei das erste Byte die Blaukomponente das zweite die Gr nkomponente und das dritte Byte die Rotkomponente des Farbtons speichert Ein typisches Pixel Farbformat einer Direct 3D Textur die Verwendung einer modernen Grafikkarte vorausgesetzt ist dahingegen X8R8G8B8 32 Bit Das erste Byte eines solchen Pixels X8 ist unbenutzt bzw speichert die Transparenz eines Pixels Alpha Kanal Die folgen den Bytes enthalten in dieser Reheinfolge die Farbkomponenten Rot Gr n und Blau Tabelle zeigt eine Gegen berstellung eines Video und eines Textur Farbformats Tabelle 4 4 Vergleich Farbformate Video und D3D Textur Farbformat Byte 1 Byte 2 Byte 3
16. Diplomarbeit 72 KAPITEL 4 TECHNISCHE REALISIERUNG Die VAIBOClient DLL wird durch die mit dem AIBO Remote Framework mit gelieferten Compilerbibliotheken und Headerdateien gekapselt Der Zugriff auf die DLL gestaltet sich dadurch sehr einfach Die Erstellung eines Interfaces der CVAIBO DLL geschieht schlicht durch die Konstruktion eines Objektes der Klasse CVAIBO Sollen die Audio Services des Roboters verwendet werden wird zus tzlich ein Objekt der Klasse CATPDirect sound erstellt Im Quellcode des hier entwickelten Fernsteuersystems Klasse CAiboRF wird das oben beschriebenen Interface CVAIBO in der Methode CAiboRF Init erstellt und ein Zeiger auf das Interface Objekt in der Membervariablen m_pVAIBO abgelegt Abbildung 4 10 bool CAiboRF Init HWND hWnd if m_pVAibo NULL m_MsgHwnd hWnd Get CVAIBO Interface m_pVAibo new CVAIBO m_MsgHwnd return true More initializations return false Abbildung 4 10 Listing Erstellen der CVaibo Schnittstelle Dem Konstruktor der Klasse CVAIBO wird als Parameter ein Handle auf das Anwendungsfenster bergeben Dies erm glicht dem Schnittstellenobjekt die von den Robotern eingehenden Nachrichten in die Nachrichtenschleife der Anwendung weiterzuleiten 4 3 3 2 Connect Disconnect Nachdem ein Objekt der Klasse CVAIBO konstruiert wurde muss ber die Me thode CVAIBO Connect LPCTSTR IP_ Address eine Verbindung mit einem 4 3 AIBO RE
17. Ein sehr bekanntes Beispiel f r ein teilautonomes Teleroboter System ist die Marssonde Pathfinder In der im April 1996 gestar teten Mission gelang es der NASA eine Sonde bestehend aus einer Landestation und dem etwa 16 kg schweren Rover Sojourner Abbildung 2 1 auf dem Mars abzusetzen Der mobile Rover diente im Wesentlichen als Tr gerplattform f r ein Alpha Proton R ntgenstrahlenspektrometer einem Messinstrument zur elementaren Untersuchung von Oberfl chenmaterialien Dar ber hinaus verf gte der Rover ber zwei Kameras Front und Heckkamera Gesteuert wurde der Marsrover ber Funkverbindung zur Landestation welche ihrerseits mit der Bo denstation auf der Erde kommunizierte 4 Die gro e Entfernung zwischen Mars und Erde f hrt zu einer erheblichen Ver z gerung der Funksignale zwischen Bodenstation und Mars Sonde Im Idealfall w rden deshalb nur Steuerbefehle h herer Ordnung an ein dort operierendes Ve hikel bertragen Die Zeit zwischen den eintreffenden Funksignalen k nnte der Roboter nutzen um die bergeordneten Befehle intelligent und selbst ndig aus zuf hren Ein solcher Befehl k nnte beispielsweise die Anordnung eines Positions wechsels eines Mars Rovers sein Wie der Rover seine neue Position erreicht oder 20 KAPITEL 2 GRUNDLAGEN auftretende Probleme wie das Umfahren eines Felsens l st bliebe ihm selbst berlassen Teilautonomit t Abbildung 2 1 Marsrover Sojourne
18. Einstellung nur experimentell herausgefunden werden 4 3 4 3 Motions Der AIBO ERS 7 ist in der Lage vordefinierte auf dem Memorystick des Roboters abgelegte Bewegungsabl ufe sogenannte Motions wiederzugeben Ein solcher Bewegungsablauf k nnte beispielsweise ein Tanz oder eine automatische 180 Wende sein Erstellt werden k nnen Motions unter zu Hilfenahme des AIBO Motion Editors Angesto en wird die Wiedergabe vordefinierter Motions durch Aufruf der Me thode OVAIBO PlayMotion LPARAM ImsCmd Der angegebene Parameter ist das sogenannte L M S Command Die Abk rzung L M S steht f r Large Middle Small und bezeichnet lediglich die Aufteilung des 32 Bit breiten Kom mandowertes in einzelne Bytes Large Middle Small Byte Tabelle zeigt die Unterteilung des Kommandowertes in L ID M ID S ID und Level Wert Der Level Wert beschreibt eine Art Kontext unter dessen Voraussetzung der Bewe gungsablauf angesto en werden kann So k nnen beispielsweise in Abh ngigkeit davon ob der Roboter sich in einer stehenden oder liegenden Position befindet unterschiedliche Bewegungsabl ufe angesto en werden Tabelle 4 2 LMS Command 4 Byte 3 Byte 2 Byte 1 Byte L ID M ID S ID Level Die L M und S ID strukturieren die wiederzugebenden Bewegungen in eine dreistufige Hierarchie Zur Erkl rung der Methode soll ein Beispiel herangezogen werden Wir nehmen an die IDs w rden auf folgende vordefinierte Mak
19. IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 103 CheckMediaType Methode zur Abfrage der von einem Filter unterst tz ten Datenformate SetMediaType Methode zum Setzen eines gew hlten Datenformats DoRenderSample Methode zur Verarbeitung eines Einzelbildes Sample des Videostreams Die Methode CheckMediaType wird von Directshow w hrend des Aufbaupro zesses eines Filtergrafen verwendet um zu berpr fen ob der Filter ein angebo tenes Datenformat unterst tzt Der Begriff Datenformat meint im Falle eines Video Ausgabe Filters in erster Linie das Farbformat des Videostreams Der Me thode wird ein Zeiger auf eine Datenstruktur des Typs CMediaType bergeben Durch Auslesen der Datenstruktur ermittelt der Filter das angebotene Datenfor mat und pr ft ob es durch ihn verarbeitet werden k nnte Ist das der Fall muss die durch den Filter implementierte Methode CheckMediaType den Wert des Define Makros S_OK zur ckliefern Kann ein Datenformat nicht verarbeitet werden wird dies durch R ckgabe des Makros E_INVALID_ PARAMETERS signalisiert Die Implementierung dieser Methode in der von CBaseVideoRenderer abgelei teten Filter Klasse C VidTerFilter akzeptiert nur Video Formate mit dem Farb format RGB 24 Dieses entspricht dem in Tabelle angegebenen Farbfor mat B8G8R8 f r Videostreams In der Regel wird dieses Format von allen dem Video Ausgabe Filter vorgeschalteten Video Decoder Filtern
20. Methode CVAIBO AudioSendPlay BOOL isKutipaku true aufgerufen Der Parameter isKutipaku ist optional und standardm ig auf true gesetzt Wird f r diesen Parameter true bergeben so bewegt sich der Mund des Roboter hundes im Takt des ber den AIBO Lautsprecher ausgegebenen Signals Werden Sprachsignale bertragen imitiert er also die Mundbewegung des Sprechers Im vierten und letzten Schritt muss daf r gesorgt werden dass an der Soundkarte des PCs anliegende analoge Audio Signale Mikrofon digitalisiert und block wei se zum AIBO bertragen werden Zum digitalisieren der Audio Signale wird die Schnittstelle CATPDirectsound zu Hilfe genommen Durch Aufruf der Methode CATPDirectsound StartCapture wird die Digitalisierung der Audio Signale gestartet siehe auch Abbildung4 14 Zur bernahme der von der Directsound Hilfsschnittstelle eingehenden Audio Bl cke wird ein Callback Verfahren einge setzt Der Methode CATPDirectsound StartCapture wird neben dem fest gelegten Audio Format ein Funktionszeiger auf eine Callback Prozedur ber geben Diese Prozedur muss vom Anwendungsentwickler nach einer vorgegebe nen Funktionsdeklaration implementiert werden und wird von der Directsound Hilfsschnittstelle immer dann aufgerufen wenn ein neuer Datenblock digitalisiert wurde Als Parameter werden der Prozedur unter anderem ein Zeiger auf den neuen Audio Datenblock und die Gr e des Datenblocks bergeben Innerhalb
21. Roboter senden Soll der Anwendung ein exklusiver Zugriff auf den Roboter gew hrt werden so muss die Verbindung durch Aufruf der Methode CVAIBO Lock gesperrt wer den Durch Aufruf der Methode CVAIBO UnLock wird die Verbindung entsperrt 4 3 3 4 Internal External Control Die AIBO Roboter verf gen unter dem Remote Framework ber zwei verschie dene Kontrollmodi Nach Aufbau einer Verbindung ist ein Roboter im Modus Internal Control interne Kontrolle In diesem Modus verarbeitet er kei 74 KAPITEL 4 TECHNISCHE REALISIERUNG ne Kontrollkommandos die von Au en external kommen mit Ausnahme der Einstellung der Kopfwinkel und einfachen Lauf Befehlen walking Zum Umschalten des Betriebsmodus auf externe Kontrolle exter nal control wird die Methode CVAIBO ErternalControl des CVAIBO Schnittstellenobjekts aufgerufen Um den Roboter auf interne Kontrolle internal Control zu schalten dient die Methode CVAIBO InternalControl 4 3 4 Bewegungssteuerung Standardisierte Bewegungsabl ufe des AIBO wie das Laufen walking Aus richtung des Kopfes und nderung der Haltung liegend sitzend stehend usw k nnen direkt ber die Framework API gesteuert werden Das Schie en mit den Vorderl ufen oder das Wegsto en des AIBO Balls mit dem Roboterkopf wird ebenfalls direkt ber die API gesteuert Weitere vordefinierte Bewegungsabl ufe k nnen durch bermittlung einer MW CID Middl
22. der y Achse des lokalen Koordinatensystems wird durch den Up Vektor up beschrieben Die ser besitzt in der Regel die Komponenten x 0 y 1 z 0 Andere Werte f r den Up Vektor w rden ein Rollen Drehung um die lokale Z Achse der Kame ra bewirken Nachdem die Ausrichtung der Kamera durch Angabe des Look At und Up Vektors definiert ist muss noch die Position der Kamera in der Grafik szene durch Angabe eines Positions Vektors p angegeben werden Va gt Virtuelle Kamera Abbildung 4 33 Virtuelle Kamera unter Direct 3D 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 121 Aus den drei Vektoren die Position und Ausrichtung der virtuellen Kamera beschreiben errechnet eine Direct 3D Funktion eine Transformationsmatrix die Kameramatrix Diese arbeitet nach folgendem Prinzip Wird die virtuelle Kamera verschoben Translation so werden tats chlich die Vektoren der Grafik verschoben und zwar genau in die entgegengesetzte Richtung Wird die Kamera gedreht werden die Vektoren der Grafik mit der Kameraposition als Drehmittelpunkt in die Gegen richtung gedreht Durch diese Vektoren Transformationen entsteht der Eindruck als bef nde sich ein Beobachter in der Szene Dieser Beobachter ist dabei lediglich ein mathematisches Konstrukt Wie sieht es nun mit Position und Ausrichtung der virtuellen Kamera bezogen auf die Stereo View Anwendung aus Abbildung zeig
23. die jeweiligen Projekteinstellungen erg nzt wer den Das hei t die Compilerbibliotheken des AIBO Remote Frameworks AIBO3D lib Cpcinfo lib ijl15 lib VAIBOClient lib VAIBOTTS lib VAIBOUP nP lib m ssen dem Projekt hinzugef gt werden Damit ist die Installation des AIBO Remote Framework SDKs abgeschlossen 4 2 ENTWICKLUNGSUMGEBUNG 63 4 2 2 4 Beispielprogramme Zum Test des AIBO Remote Frameworks liefert Sony einige Beispielprogram me Mittels dieser Programme l sst sich pr fen ob alle Einzelkomponenten des Frameworks korrekt arbeiten Durch Kompilation des Beispielquellcodes kann au erdem festgestellt werden ob die Entwicklungsumgebung richtig eingerichtet wurde Abbildung 4 6 zeigt ein Beispielprogramm welches die Daten der AIBO Sensoren ausliest und auf dem Bildschirm eines lokalen PCs anzeigt Die Beispielquellcodes stellen zu einem gro en Teil die Dokumentation des Re mote Frameworks dar Bedauerlicherweise verzichteten die Sony Entwickler auf aussagekr ftige Kommentare und die Erl uterung wichtiger Zusammenh nge in den Quellcodes Dadurch wird die Arbeit mit dem Remote Framework etwas erschwert Ez GetSensorInfo Connection Settings m Controls 10 0 1 100 Connect Start es A Tail1 LEI Skip A nn Tail2 ms 10 ee Back SW 1 ma EE 20 Back Sw 2 Back SW 3 LAJz Head Tit1 PSD_XY Lasa Head Tit2 PSD_XY_FN R Head Pan PSD_XY_N AFJ2 LeftEar PSD_XY_F
24. in der realen Welt dar Zwei massive K rper ein Zylinder und ein Wiirfel werden durch ein Doppelkamera System aus der Perspektive der menschlichen Augen stereoskopisch aufgenom men Die Bildstr me des Doppelkamerasystems werden durch ein Computer system digitalisiert und in Echtzeit auf Texturen gezeichnet Der mittlere Teil der Abbildung 3D Grafikszene zeigt die Projektion der beiden Texturen in eine virtuelle 3D Grafikszene In einer normalen 3D Anwendung w rde diese Grafikszene aus der Sicht einer einzigen virtuellen Kame ra aufgenommen Das Ergebnis w re dass die Videostreams nebeneinander auf dem Computerbildschirm angeordnet w rden An dieser Stelle werden jedoch die Eigenschaften des Stereoskopie Zusatztreibers der Grafikkarte ausgenutzt Der Zusatztreiber erzwingt die Aufnahme der Szene aus der Perspektive einer zwei ten virtuellen Kamera Die beiden Kameras haben zueinander einen Abstand Ar Ax simuliert den Augenabstand und ist eine Konstante die im Konfigurations men des Stereoskopie Zusatztreibers festgelegt wird Die beiden virtuellen Kameras welche die Grafikszene aufnehmen haben eine exakte Entfernung und Ausrichtung zu den Projektionen der Videotexturen vir tuelle Leinw nde Jede Kamera erfasst exakt das Abbild jeweils einer virtuellen Leinwand Es ist anzumerken dass durch das beschriebene Verfahren keine zus tzliche Belas tung des Hauptprozessors zu bef rchten i
25. nderungen verwen det werden Auf diese Weise k nnen Bildb nde oder 3D Fernsehprogramme f r den Massenmarkt erstellt werden Eine gegen ber der Anaglyphendarstellung sehr viel bessere Technik ist die Ste reokanalkodierung mittels linearer Polarisationsfilter F r das bessere Ver st ndnis dieser Technik wollen wir das Licht als elektromagnetische Wellen in terpretieren Elektromagnetische Wellen sind Transversalwellen Das hei t sie besitzen einen Schwingungsvektor der orthogonal zu ihrer Ausbreitungsrichtung ausgerichtet ist Man kann sie mit Wellen auf einer Wasseroberfl che vergleichen W hrend sich die Wellen in einer bestimmten Richtung entlang der Oberfl che ausbreiten schwingt diese nach oben und unten Der Schwingungsvektor steht 2 3 3D STEREOSKOPIE 33 Abbildung 2 9 Rot Cyan Farbfilterbrille hier genau orthogonal sowohl zur Ausbreitungsrichtung als auch zur Richtung der Schwerkraft Da die Schwerkraft auf Lichtquanten nur eine geringe Wirkung hat steht der Schwingungsvektor der Lichtquelle zwar orthogonal zur deren Aus breitungsvektor ist jedoch um diesen frei drehbar Den Drehwinkel des Schwin gungsvektors nennt man Polarisation des Lichts Herk mmliche Lichtquellen lie fern Lichtwellen mit einer Mischpolarisation Durch den Einsatz von sogenannten linearen Polarisationsfiltern ist es m glich Wellen mit einer bestimmten Polarisa tion herauszufiltern Abbildung 2 10 Abbildung 2 10 Linearer Pol
26. ufig in Form von PC Erweiterungskarten oder externen USB Ger ten erh ltlich 3Video Streaming Server Netzwerkserver zum Sammeln und Verteilein von Videoinforma tionen beispielsweise f r das Internetfernsehen Videocapturekarte mit mehreren parallel nutzbaren analogen Videoeing ngen 5Sofern diese mit der verwendeten Grafikkarte kompatibel sind 92 KAPITEL 3 STEREOKAMERA UND FERNSTEUERSYSTEM 3 3 3 Software Die f r das Stereokamerasystem zu entwickelnde Computersoftware hat die Auf gabe die Videostreams der beiden Stereo Bildkan le nach ihrer Digitalisierung entgegenzunehmen zu verarbeiten und korrekt ber einen stereoskopief higen Grafikadapter darzustellen Da die Software f r die Windows Plattformen entworfen werden soll bietet sich zur Programmierung die integrierte Entwicklungsumgebung Microsoft Visual Studio in Kombination mit dem Microsoft Visual C Compiler an Zur Verarbeitung von Multimediadaten eignet sich die Multimediaschnittstelle Direct X in der Version 9 Sie wird von der Firma Microsoft kostenlos ange boten Direct X 9 erm glicht die Ansteuerung unterschiedlicher Klassen von Videoein gabeger ten durch die Komponente Directshow und die Darstellung von 3D Computergrafik durch die Komponente Direct 3D Leider existiert in der Ver sion 9 der Direct X Softwareschnittstelle keine Funktionalit t zur Darstellung stereoskopischer Bilddaten Dieses Problem l sst sich wie sp
27. zu ungewollten Effekten bei der stereoskopischen Bildwiedergabe 4 3 AIBO Remote Framework Das AIBO Remote Framework SDK ist ein Entwicklungspaket das PC Anwendungen erm glicht ber Wireless LAN auf den AIBO Roboter zuzugreifen und Daten an ihn zu senden bzw von ihm zu empfangen Im folgenden werden wichtige Funktionen des Frameworks beschrieben und zugleich dargelegt wie mit Hilfe dieser Funktionen ein Fernsteuersystem f r den AIBO ERS 7 realisiert wird Die relativ detaillierten Ausf hrungen auf den folgenden Seiten sollen zus tz lich die d rftige Dokumentation des Frameworks erg nzen und den interessierten Leser in die Lage versetzen eigene AIBO Remote Framework Anwendungen zu entwickeln ohne zuvor die mitgelieferten Beispielprogramme bis ins Detail zer pfl cken und analysieren zu m ssen 4 3 1 Grundlagen Zun chst sollen einige Grundlagen ber die Architektur und die Kommunikati onswege des AIBO Remote Frameworks vermittelt werden 4 3 1 1 Programmmodule Eine AIBO Remote Framework Anwendung setzt sich immer aus drei Modulen zusammen 12 1 Die Benutzer Anwendung Eine Applikation die das Framework zur Steuerung des AIBO nutzt 2 Das AIBO Remote Framework API Bestehend aus seinen Programm bibliotheken 3 Der Virtual AIBO Server Eine Serveranwendung welche die AIBO Roboter mit dem AIBO Remote Framework verbindet 4 3 AIBO REMOTE FRAMEWORK 67 Der Virtual AIBO Server wird nur einmal gestartet
28. 2a he rk 4 3 4 2 Kopfwinkeleinstellung 2345 MOONS EE 43 5 Sensorabfrage 4 3 5 1 AIBO Sensor TPJ al a e EE et 4 3 5 2 Sensordatenzustellung IA A 4 3 6 1 AIBO Aude TP 4 3 6 2 Empfangen von Audiodaten o oo aoaaa aaa 4 3 6 3 Senden von Audiodatedl 4 4 Implementierung des Stereokamerasystems 2 22 22 4 4 1 Direct X Grundlagen 4 4 1 1 Architektur a Eed RE EE EE 6 INHALTSVERZEICHNIS 4 4 1 2 Directshow 2 2 87 4 4 1 3 MO rear E EE e ere 87 4 4 2 Eingesetzte Hardwarel 2 2 22 a 88 4 4 2 1 Doppelkamerasystem 22 222 222 88 4 4 2 2 1Glassesl 4242 02 91 4 4 3 Anwendung Stereo View 93 4 4 3 1 Klassendiagramm 21 IEN er e e 93 AE AAA IE 93 4 4 3 3 CStereoCap a porras EEN er 94 4 4 3 4 CValerPilterl 5 u ea rs 95 44 3 5 Ee saeco rate ir a a 95 443G CITE 2 is br ee 95 A AD A 95 4 4 4 1 Filtergraphen lt lt lt 96 4 4 4 2 Video Capture Filter 97 ne ne ea 99 De k ae ne Be ee 108 4 4 5 1 Zwei fehlgeschlagene Programmierans tze zur Dar Pap 109 4 4 5 2 Darstellung stereoskopischer Bilder ber die 3D A 111 4 4 5 3 Direct 3D Initialisierung 115 4 4 5 4 Direct 3D Transformationspipeline 118 4 4 5 5 Einrichtung der 3D Grafikszene 119 4 4 5 6 Zeichnen der V
29. 3DDevice9 Schnittstellenobjekt angelegt es repr sentiert den fertig konfigurierten Grafikadapter und erm glicht der Anwendung den Zugriff auf die ses Ger t In der Datenstruktur D3DPRESENT PARAMETERS m ssen zur Beschreibung des gew nschten Grafik Modus eine Reihe von Parametern eingetragen werden Im wesentlichen beziehen sich diese Parameter auf die Eigenschaften der zu ver wendenden Bildpuffer Festgelegt werden m ssen die Ausma e Breite und H he sowie das Farbformat der Bildpuffer Abbildung 4 31 zeigt die in der Stereo View Anwendung gew hlten Einstellungen 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 117 create an empty structure D3IDPRESENT_PARAMETERS PParams ZeroMemory amp PParams sizeof PParams fill structure with data PParams hDevice Window hWnd Handle to main window PParams Windowed bWindowed Fullscreen or windowed mode PParams BackBufferWidth SCR_WDTH Width of Screen Window PParams BackBufferHeight SCR_HEIGHT Height of Screen Window PParams BackBufferFormat D3IDFMT_A8R8G8B8 Color Format setting Abbildung 4 31 Listing D3DPRESENT_PARAMETERS Zu 3 Die Erstellung der Ger te Schnittstelle Direct3DDevice9 erfolgt durch Aufruf der Methode IDirect3D9 CreateDevice des IDirect3D9 Schnittstellenobjekts Abbildung zeigt den Aufruf dieser Methode in der CDirect3D Klasse der Stereo View Anwendung Der IDirect3D9 CreateDevi
30. 60 0 60 3 2 1 0 1 2 3 Tabelle 3 3 Beispiele zur Generierung von Steuerkommandos Achsstellungen Steuerkommando x 0 y 3 Vorw rtslauf Geschwindigkeitsstufe 3 schnell x 1 y 0 Linksdrehung N Geschwindigkeitsstufe 1 langsam x 0 y 0 Stop x 1 y 2 Rechtskurve Winkelstufe 1 20 Geschw Stufe 2 mittel w re unergonomisch da der Mensch seine Blick und H rrichtung gew hnlich durch das Drehen und Neigen seines Kopfes ndert Um eine nat rliche Steue rung des Roboterkopfes durch den Bediener zu erm glichen wird ein sogenannter Headtracker eingesetzt Dieses Eingabeger t besteht aus einer Infrarotkamera die einen IR Reflexionspunkt verfolgt Dessen Position wird in absolute Ko ordinaten im Bereich des IR Kamerasichtfeldes umgewandelt Bewegliche Ob jekte also auch der Kopf des Bedieners k nnen durch einen IR Reflektionspunkt markiert und verfolgt werden Abbildung illustriert die Funktionsweise des verwendeten Headtrackers Track IR der Firma Natural Point Der Kopf des AIBO ERS 7 verf gt ber drei Freiheitsgrade Abbildung B 3 Die Drehung des Kopfes um die Halsachse 1 die Neigung des Kopfes durch das Kopfgelenk 2 und die Neigung von Hals und Kopf durch das Halsgelenk 3 Das Betriebssystem des ERS 7 koordiniert Hals und Kopfgelenk automa tisch abh ngig von der Haltung des Roboters liegend sitzend stehend Zur Ausricht
31. BO via WLAN ber einen PC AIBO Motion Editor Ein Programm zur Editierung von Bewegungsabl ufen welche auf dem AIBO wiedergegeben werden k nnen Aufgrund dieser umfassenden Hardwareausstattung sowie der Vielzahl inkludier ter Sensoren und der vollst ndigen von Sony freigegebenen Entwicklungsumge bung AIBO SDK st t das Produkt AIBO auf gro es Interesse in der Robo tikforschung und vor allem durch die relativ geringe Anschaffungskosten im universit ren Umfeld 2 2 2 Technische Spezifikation Das Herz des AIBO ERS 7 bildet ein 64 Bit Risc Prozessor System mit 64 Mega bytes internem Speicher Als Programm Medium werden speziell auf den AIBO abgestimmte Sony Memorysticks verwendet Die beigelegte AIBO Mind Software wird auf einem 32 MB Stick geliefert w hrend der separat erh ltliche Program mierstick lediglich ber 16 MB Speicherkapazit t verf gt Der AIBO ERS 7 verf gt ber eine Reihe beweglicher Extremit ten und K rper teile Kopf Maul Beine Ohren und Schwanz Insgesamt bilden die beweglichen Teile 20 Freiheitsgrade Tab 2 1 An der Unterseite des ERS 7 befinden sich die Ladekontakte sowie jeweils ein Schalter zum Einstellen der Lautst rke und zur Aktivierung Deaktivierung des WLAN Moduls Die Bildaufnahme erfolgt ber einen in der Nase eingebauten CMOS Bildsensor mit einer Aufl sung von 350 000 Bildpunkten Zur Aufnahme 2Entwicklung von Software f r eine von der Erstellungsplattform abw
32. Bediener die Absch tzung von Entfernungen zu Objekten in seiner Blickrich tung Der zweite Entfernungsmesssensor sitzt in der Brust des Roboters und ist um einen Winkel von 60 nach unten geneigt Eine automatische Auswertung der Daten dieses Sensors erm glicht der Robotersteuerung das Erkennen von Abgr n den z b Treppenabs tzen Eine Anzeige seiner Daten auf dem Stereodisplay ist aber nicht sinnvoll Sensorinformationen die dem Bediener den Umgang mit dem Roboter erleichtern Batteriezustand Entfernung zum Objekt in der Bildmitte sollten jedoch in der grafischen Benutzerschnittstelle der Fernsteuerungssoftware angezeigt werden Abbildung 5 zeigt eine schematische Darstellung der geplanten Benutzerschnitt stelle Am linken Bildrand werden die wichtigsten Informationen und Daten des Roboters eingeblendet Der weitaus gr te Bildbereich wird zur Anzeige des Ste reobildes verwendet 3 3 STEREOKAMERASYSTEM 49 3 2 4 AIBO Remote Framework Die Firma Sony bietet f r den Roboter AIBO ERS 7 einige kostenlose Software entwicklungspakete zum freien Download an Eines davon ist das AIBO Remote Framework SDK Das AIBO Remote Framework dient zur Entwicklung von Software f r Windows PC Plattformen unter Verwendung des Microsoft Visual C Compilers Ei ne Remote Framework Anwendung kommuniziert ber Wireless LAN mit dem AIBO und ist in der Lage seine Funktionen von einem lokalen PC fernzusteuern Das im Juli 2004 von So
33. CHE REALISIERUNG der ERS 7 zu einem teilautonomen Teleroboter In den folgenden Abschnitten wird grob skizziert wie das Framework auf dem ERS 7 und dem PC installiert wird Die Komponenten des Frameworks k nnen kostenlos von den AIBO Ent wicklerseiten der Firma Sony bezogen werden siehe 6 Dort findet sich auch eine detaillierte FAQ Liste zu diesem Thema 4 2 2 1 Memorystick Image und WLAN Konfiguration Der erste Schritt zur Verwendung des AIBO Remote Frameworks ist das Aufspie len eines neuen Images auf den 16 MByte gro en Programmier Memorystick des ERS 7 Roboters Im Anschluss daran muss das WLAN Modul des Roboters neu konfiguriert werden Zum Aufspielen des neuen Memorystick Images wird der von Sony bereit gestellte PCMCIA Memorystick Adapter Abbildung 4 4 verwendet Legen sie den Adapter mit dem programmierbaren Memorystick in ein Notebook ein und l schen sie die darauf befindlichen Verzeichnisse Formatieren sie den Stick jedoch NICHT Entpacken sie das Archiv mit dem AIBO Remote Framework Image in ein leeres Verzeichnis und kopieren sie die darin befindlichen Ordner und Dateien auf den Memorystick Memory Stick PC Card Adaptor MSAC PC3 Abbildung 4 4 Sony Memorystick und PCMCIA Adapter Im n chsten Schritt werden die WLAN Einstellungen vorgenommen Benutzen sie dazu die mit dem AIBO Roboter ausgelieferten Konfigurationsmanager AIBO WLAN Manager und folgen sie den Instruktionen der Online Hilfe Es
34. MOTE FRAMEWORK 13 im Netzwerk befindlichen AIBO Roboter aufgebaut werden Als Parameter er h lt die Methode die IP Adresse des Roboters mit dem die Verbindung herge stellt werden soll Als R ckgabewert liefert die Methode eine Verbindungs ID Wird ein Wert kleiner 0 zur ckgeliefert so ist der Verbindungsaufbau fehlgeschla gen War der Verbindungsaufbau erfolgreich erh lt die Anwendung au erdem die Windows Nachricht WM _ VAIBO_ CONNECT In der zur Nachricht geh renden Variablen wParam wurde als Referenz zur Nachrichtenquelle die entsprechen de Verbindungs ID abgelegt Die Nachricht signalisiert dass das CVAIBO Objekt nun mit einem realen Roboter verkn pft ist Das Objekt repr sentiert den entfern ten Roboter innerhalb der lokalen Anwendung es stellt also einen virtuellen AIBO Roboter dar Virtual AIBO Durch Aufruf der Methode CVAIBO Disconnect eines mit einem Roboter ver kn pften CVAIBO Objekts kann eine bestehende Verbindung abgebaut werden Bei erfolgreichem Abbau der Verbindung erh lt die Anwendung die Nachricht WM VAIBO DISCONNECT Sollte diese Nachricht eingehen ohne dass ein Verbindungsabbau explizit angeordnet wurde so ist die Verbindung vermutlich unterbrochen worden Roboter au er Reichweite des W LAN St rung 0 4 3 3 3 Lock Unlock Der Zugriff einer lokalen Anwendung auf einen Roboter ist nicht exklusiv Das hei t mehrere AIBO Remote Framework Anwendungen k nnen Steuerkomman dos an denselben
35. NISCHE REALISIERUNG Tabelle 4 3 Wave Formate der Audio TP Makro Wave Format ATP16K_16BIT_STEREO 16k 16Bit Stereo ATP16K_16BIT_MONO_L 16k 16Bit Mono links ATP16K_16BIT_MONO_R 16k 16Bit Mono rechts ATP16K_16BIT_MONO_MIX 16k 16Bit Mono beide ATP8K_16BIT_STEREO 8K 16Bit Stereo ATP8K_16BIT_MONO_L 8K 16Bit Mono links ATP8K_16BIT_MONO_R 8K 16Bit Mono rechts ATP8K_16BIT_MONO_MIX 8K 16Bit Mono beide ATP16K_8BIT_STEREO 16K 8Bit Stereo ATP16K_8BIT_MONO_L 16K 8Bit Mono links ATP16K_8BIT_MONO_R 16K 8Bit Mono rechts ATP16K_8BIT_MONO_MIX 16K 8Bit Mono beide ATP8K_8BIT_STEREO 8K 8Bit Stereo ATP8K_8BIT_MONO_L 8K 8Bit Mono links ATP8K_8BIT_MONO_R 8K 8Bit Mono rechts ATP8K_8BIT_MONO_ MIX 8K 8Bit Mono beide dass die Methode erst zur ckkehren soll wenn das bergebene Kommando aus gef hrt wurde Der dritte Parameter ist das gew hlte Audio Format Um den vom AIBO eingehenden Audiostream h rbar zu machen wird im vier ten Schritt die Audiowiedergabe ber die PC Lautsprecher aktiviert Dazu wird eine Methode der Directsound Hilfsschnittstelle aufgerufen CATPDirect sound StartPlay int format Der bergebene Parameter ist wieder das festge legte Audio Format Der Directsound Hilfsschnittstelle mitzuteilen das sie mit dem Abspielen des Audiostreams beginnen soll reicht selbstverst ndlich noch nicht aus denn die D
36. S Zuneigungsinstinkt R Code Reaktive Verhalten Reflexe Reflexionspunkt Schaukasten Schlafinstinkt Sensor TP Shuttervorsatz Sichtfeld Sichttransformation 119 St bchen Stereo Videosignal Suchinstinkt Teleroboter Transformationspipeline 118 Up Vektor USB Videocapturebox Vergenz Verhalten Video Capture Filter Video Renderer Videocaptureger t Videorenderer Videostreams 133 Literaturverzeichnis 1 Mackenson Von Hollander Das neue W rter ES Fremdw rter Buch XE NOS Verlagsgesellschaft m b H Hamburg 1983 2 Scherfgen David 3D Spiele Programmierung Modern Game Design with Direct X 9 and C Hanser 2003 3 Stenzel Roland Steuerungssrchitekturen f r autonome mobile Roboter Dis sertation RWTH Aachen 2002 4 Nasa Pathfinder Mission http nssde gsfe nasa gov 03 01 2005 5 Sony AIBO ERS 7 Benutzerhandbuch Sony 2003 6 Sony AIBO Entwicklerseiten http openr aibo com openr 03 01 2005 7 Prof Dr Michael Bach R umlich durchs Auge In ct 7 99 S 158 1999 8 Studio 3D Stereo Video http www studio3d com images 03 01 2005 9 Kidsfactory Japan http www kidsfactory co jp nuView image nuView jpg 03 01 2005 10 Universit t Erlangen http www2 chemie uni erlangen de 04 01 2005 11 iO Display Systems Inc Glasses http www i glassesstore com 03 01 2005 12 Sony AIBO Remote Framework Specification So
37. UNIVERSITY OF APPLIED SCIENCES FACHHOCHSCHULE GIESSEN FRIEDBERG DIPLOMARBEIT Entwicklung eines Stereokamerasystems und eines Fernsteuersystems f r den Sony Roboter AIBO ERS 7 Zur Erlangung des akademischen Grades Diplom Informatiker FH Vorgelegt dem Fachbereich Mathematik Naturwissenschaften und Informatik der Fachhochschule Gie en Friedberg von MICHAEL KREUTZER Januar 2005 Referent Prof Dr Ing Axel Schumann Luck Koreferent Prof Dr rer nat Klaus W st Inhaltsverzeichnis 1 Einleitung 1 1 Aufgabenstellung 1 2 berblick ber die Kapitel 1 3 Schriftkonventionen 2 Grundlagen 2 1 2 2 Autonome Roboter und Teleroboting 2 1 1 Autonome Roboterl 2 1 2 Telerobotingl AIBO ERS ie ir wa a 2 2 1 MEI urn E E 2 2 2 Technische Spezifikation 2 3 3D Stereoskopie 2 3 1 Visuelle Wahrnehmung des Menschen 2 3 2 Stereoskopische Aufnahmesystemel 2 3 3 Stereoskopische Darstellungssysteme 2 3 4 Videosignalaufbereitung 3 Stereokamera und Fernsteuersystem 3 1 Aufgabenstellung und Ziele der Arbeit 3 13 13 14 15 17 17 17 19 20 20 23 24 25 29 31 35 39 4 INHALTSVERZEICHNIS Jeg k a dc a o sein 40 3 2 1 Ergonomie AA 40 moa IN 42 Le Been Bee e A ei 46 3 2 4 AIBO Remote Frameworkl 49 Be ee EE 49 3 3 1 Warum Stereo
38. arbeit wurde neben dem Stereokamerasystem eine Fern steuerung fiir den AIBO ERS 7 entworfen und implementiert Sie erm glicht neben der Steuerung des Roboters die Abfrage wichtiger Sensordaten und die Nutzung der Mikrofone und des Lautsprechers des ERS 7 zur bertragung von Audiosignalen Alle dazu n tigen Funktionalit ten wurden in der C Klasse CAiboRF ge kapselt Diese Klasse beinhaltet den gesamten Quellcode des im Rahmen der Arbeit ent wickelten Fernsteuersystems Das Fernsteuermodul kann daher leicht aus dem Projekt extrahiert und unabh ngig vom Stereokamerasystem verwendet werden 4 3 3 Verbindungsaufbau Im Folgenden wird die Erstellung eines CVAIBO Objekts und der damit or ganisierte Aufbau einer Verbindung zwischen einer lokalen Remote Framework Anwendung und einem entfernten AIBO Roboter beschrieben 4 3 3 1 CVAIBO Objekt Um mit dem AIBO Remote Framework arbeiten zu k nnen muss als Erstes eine Schnittstelle zur VAIBO DLL generiert werden Die VAIBO DLL verf gt ber zwei Interfaces welche in Form von C Klassen gekapselt werden k nnen CVAIBO Enth lt alle Funktionen zur Steuerung des AIBO ERS 7 Roboters CATPDirectsound Ist lediglich eine zus tzliche Schnittstelle die das Aufneh men und Wiedergeben von Audiosignalen ber den lokalen PC vereinfacht Dazu wird die Direct X Sound API Directsound verwendet Der Quellcode der Programmklasse findet sich auf der Begleit CD zu dieser
39. ardeingabeger te eines handels blichen PCs Maus und Tastatur reichen nicht aus Zur Auswahl der neuen Eingabeger te soll zun chst er rtert werden welche Funk tionalit ten des AIBOs ferngesteuert werden sollen 1 Der AIBO als mobiler Roboter soll sich in seiner Umgebung soweit es seine Konstruktion zul sst frei bewegen k nnen 2 Der Kopf des AIBO tr gt sp ter die Stereokamera und die Stereomikrofone Aus diesem Grunde muss der Kopf beweglich sein damit der Benutzer Blick und H rrichtung frei variieren kann 3 Der AIBO soll sp ter einige vordefinierte einge bte Verhalten zeigen k n nen Das sind vor allem vordefinierte Bewegungsabl ufe wie eine automati sche 180 Wende Begr ungsbellen oder das Auff hren eines Tanzes Zu 1 Der AIBO ist ein vierbeiniger Roboterhund Die Koordination der Ge lenke f r einen sicheren Gang ist sehr komplex und muss daher von der Robo tersteuerung automatisiert werden Diese Aufgabe bernimmt bereits das Be triebssystem des ERS 7 Durch die Steuerungsautomatisierung reduziert sich die Bewegungssteuerung des ERS 7 auf einige wenige Funktionen Laufen Vorw rts r ckw rts Drehen Linksdrehung Rechtsdrehung auf der Stelle Bogenlauf Vorw rts R ckw rtslauf auf einem Kreisbogen unter Angabe eines Winkels All diese Bewegungen kann der AIBO in den drei Geschwindigkeitsstufen lang sam normal und schnell durchf hren Als Einga
40. arisationsfilter 10 34 KAPITEL 2 GRUNDLAGEN Um mit dieser Technik zwei unterschiedliche Lichtkan le zu definieren bedient man sich zweier Projektoren Abbildung 2 11 deren Lichtkegel berlappend auf eine Leinwand strahlen und in deren Strahleng nge Polarisationsfilter eingebracht werden Die Polarisationsfilter werden um 90 zueinander verdreht so dass ein Filter horizontal polarisiertes Licht durchl sst der andere vertikal polarisiertes Licht Durch eine Brille mit linearen Polarisationsfilterfolien lassen sich die beiden Stereobildkan le unmittelbar vor den Augen des Betrachters wieder dekodieren Abbildung 2 11 Doppelprojektor mit Polarisationsfiltern Eine gute Technik zur Darstellung von Stereobildern auf R hrenbildschirmen Computermonitore Fernsehger te stellen LC Shutterbrillen dar Die Gl ser einer solchen Brille Abbildung 2 12 enthalten Fl ssigkristalle Im Normal zustand sind sie durchsichtig Sie verdunkeln sich jedoch durch Anlegen einer elektrischen Spannung Mittels einer solchen Brille wird jeweils ein Auge des Be trachters zeitlich versetzt zum anderen Auge abgedeckt R hrenbildschirme ha ben eine sehr hohe Bildwiederholrate bei guten Computermonitoren liegt sie bei etwa 160 Hz Das menschliche Auge nimmt das stark flimmernde Bild durch die Tr gheit der Sehsinneszellen ab einer Frequenz von ca 50 Hz als ruhig war Das bedeutet Ab einer Bildwiederholrate von 100 Hz 2x50Hz ist ein zei
41. aten des eingehenden Streams m ssen blockweise zur Audio Ausgabe ber tragen werden Zu diesem Zweck erh lt die Anwendung jedes Mal wenn ein neuer Datenblock zur Abholung bereit steht die Windows Nachricht WM AUDIO UPDATE Die zur Nachricht geh rige Variable lParam enth lt diesmal keinen Zeiger auf den Datenblock sondern beinhaltet lediglich die Gr e des Blocks in Bytes Zur Abholung der Daten muss die Methode CHAT BO AudioGetData unsigned char buff int size aufgerufen werden Als Para 4 3 AIBO REMOTE FRAMEWORK 83 meter werden ein Zeiger auf einen leeren Datenpuffer und die Gr e des Puffers bergeben Die Wiedergabe des Audio Datenblocks auf den Lautsprechern des PC erfolgt durch Aufruf der Methode CATPDirectsound Play WaveData char buf int size Der erste Parameter ist ein Zeiger auf den wiederzugebenden Da tenblock w hrend der zweite Parameter die Gr e des Blocks angibt Um die von den Mikrofonen des AIBO aufgenommenen Audio Signale auf den PC Lautsprechern wiederzugeben muss im f nften und letz ten Schritt die bertragung des Audiostreams aktiviert werden Dies ge schieht durch bersenden eines Start Kommandos an die Audio TP CVAI BO SendCmd APPCMD_ AUDIO_ RECV_START 4 3 6 3 Senden von Audiodaten Die Einstellung und Aktivierung der Audio TP zum Senden von Audio Daten zur Ausgabe ber den internen Lautsprechers des AIBO gliedert sich in folgende Schritte 1 Festlegung des Audio Formats 2
42. atomie eines Vierbeiners Die Halswirbels ule 46 KAPITEL 3 STEREOKAMERA UND FERNSTEUERSYSTEM eines Menschen hat eine nahezu senkrechte Ausrichtung wodurch der Kopf in horizontaler Ebene gedreht werden kann Der Hals des AIBO dagegen ist um ca 35 nach vorne geneigt Abbildung 3 4 verdeutlicht dies Die Folge ist Der Roboter dreht seinen Kopf bei Rotation um die Halsachse nicht nach links oder rechts sondern schaut nach links oben bzw rechts oben Den Sachverhalt kann man sich durch einen einfachen Selbstversuch verdeutlichen indem man den Oberk rper um 90 nach unten beugt den Blick nach vorne richtet und den Kopf nach links oder rechts dreht Der Bediener wird also durch die Nutzung des Fernsteuer und Kamerasystems den Eindruck bekommen sich im K rper eines Hundes zu befinden zu 3 Eine letzte Art von Steuersignalen die der Bediener dem AIBO bermit teln k nnen muss sind Signale die vordefinierte Verhaltensmuster ansto en Da ein solches Verhaltensmuster nicht parametrisiert wird reicht dazu eine bin re Eingabe Es k nnen entweder Tasten der Computertastatur belegt werden oder die Kn pfe des Steuerkn ppels genutzt werden Da moderne Joysticks eine gro e Zahl frei belegbarer digitaler Kn pfe bieten scheint diese M glichkeit sinnvoll Durch das Dr cken einer der Joysticktasten k nnen dann Bewegungsabl ufe 180 Wende Begr ungsbellen oder Tanzen ausgel st werden 3 2 3 Zustandsr ckmeldungen D
43. auf dem 2D Display des Computers abzubilden Das Ziel des noch zu beschreibenden Vorgehens ist die korrekte Abbildung beider Bildkan le des Stereo Kamerasystems auf den Augen des Betrachters unter Ver wendung eines Stereoskopie Zusatztreibers f r die Direct 3D Grafikschnittstelle Das Einrichten der Grafikszene unterteilt sich in folgende Arbeitsschritte 1 Festlegung von Position und Blickrichtung der virtuellen Kamera durch Definition einer Sichtmatrix Kameramatrix 120 KAPITEL 4 TECHNISCHE REALISIERUNG 2 Festlegung der Projektionsmatrix 3 Berechnung von Position und Skalierungsfaktor der Videotexturen Virtu elle Leinw nde zur Aufnahme ber die virtuellen Kamers Zu 1 Alle Vektoren einer dreidimensionalen Grafik werden zur Darstellung auf ei nem zweidimensionalen Display durch die Transformationspipeline der Direct 3D Grafikschnittstelle geleitet Die Pipeline besteht aus einer Reihe von Transforma tionsmatrizen darunter die sogenannte Sichtmatrix auch Kamera Matrix genannt Mithilfe der Kameramatrix l sst sich eine virtuelle Kamera ein Be obachter in eine 3D Szene einf gen Dazu muss die Position und Ausrichtung der Kamera definiert werden Zur Ausrichtung geh rt der Blickpunkt der Ka mera der Punkt dem sie zugewandt ist und die Ausrichtung der y Achse ihres lokalen Koordinatensystems Der Blickpunkt der Kamera wird durch den Look At Vektor la festgelegt Abbildung Daa Die Ausrichtung
44. bandes auf den Roboter montiert Diese Technik hat sich be w hrt da eine solche Klebeverbindung erstaunlich stabil ist und das Klebeband sp ter r ckstandslos entfernt werden kann 4 4 2 2 i Glasses Die i Glasses Abbildung 4 21 ist ein sogenanntes Head Mounted Virtual Reality Display Das Display wird mittels einer Kopfhalterung direkt vor den Augen des Betrachters gehalten und basiert auf zwei kleinen TFT Bildschirmen Die i Glasses wird an den Monitorausgang der Grafikkarte angeschlossen und KAPITEL 4 TECHNISCHE REALISIERUNG J 7 Nickelmetallhydrid e Mikrozellen a 1 2 V Anschlussstecker 8 4 V 800 mAh i 8 4V 220mA4 IR TT S 230Y G C i 680 Bu ag Jr x LED Netzteil AV Receiver Akku Ladeadapter Abbildung 4 20 Schaltskizze Kameraakku und Ladeadapter 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 93 erh lt von dieser ein im Pageflipping Verfahren Abschnitt 2 3 4 kodiertes ste reoskopisches Videosignal Auf der Vorderseite der i Glasses ist deutlich der auf geklebte Infrarot Reflexionspunkt zu sehen Er erm glicht dem Headtracking System die Kopfbewegung des Tr gers zu verfolgen Abbildung 4 21 i Glasses Head Mounted VR Display 4 4 3 Anwendung Stereo View Das Programm Stereo View ist die im Rahmen dieser Diplomarbeit ent wickelte PC Anwendung Sie stellt den programmie
45. beger t zur Steuerung der Laufbewegungen gen gt dank der Vereinfa chungen durch die interne Software des AIBO ein handels blicher Steuerkn ppel 3 2 FERNSTEUERSYSTEM 43 Joystick mit zwei analogen Achsen x und y Achse Die geplante Umsetzung der Joystickeingaben durch den AIBO ERS 7 zeigt Tabelle und Abbildung 3 1 Tabelle 3 1 Umsetzung der Joystickeingaben durch den AIBO ERS 7 Steuerkn ppeleingabe Umsetzung durch AIBO nach vorne l uft vorw rts nach hinten l uft r ckw rts nach links dreht links herum nach rechts dreht rechts herum nach vorne links Bogenlauf Linksbogen nach vorne rechts Bogenlauf Rechtsbogen Abbildung 3 1 Umsetzung der Joystickeingaben durch den AIBO ERS 7 TabelleB 2 zeigt die bertragung analoger Joystickachsen auf diskrete Werte Aus diesen Werten k nnen Steuerkommandos f r den Roboter hergeleitet werden Tabelle 3 3 zeigt einige Beispiele um die Generierung der Steuerkommandos zu verdeutlichen Zu 2 Es wurde bereits darauf hingewiesen dass der Kopf des AIBO das Stereo kamerasystem und die Stereomikrofone tr gt Eine Kopfsteuerung per Joystick 44 KAPITEL 3 STEREOKAMERA UND FERNSTEUERSYSTEM Tabelle 3 2 Abbildung der analogen Joystickachsen auf diskreten Werten Funktion Achse n X Y Laufen Nor rick y 0 3 2 1 0 1 2 3 Drehen Links rechts x 3 2 1 0 1 2 3 0 Bogenlauf xX y
46. bzw Video Capture Filtern unterst tzt Der Programmieraufwand zur Konvertierung eines Videostreams in ein Direct 3D Texturformat kann so ma geblich reduziert wer den Es ist m glich dass ein Filter mehrere durch die Methode CheckMediaType abgefragte Formate unterst tzt Directshow entscheidet sich in diesem Fall f r das Datenformat welches den Aufbau des effizientesten Filtergrafen erm glicht Auf diese Weise kann auf den Einsatz berfl ssiger Konvertierungs Filter verzichtet werden Hat Directshow sich f r ein Datenformat entschieden so wird dieses durch den Aufruf der Filter Klassen Methode SetMediaType festgeschrieben Nach Auf 104 KAPITEL 4 TECHNISCHE REALISIERUNG ruf der Methode und einer positiven Riickmeldung des Filters ist davon auszuge hen dass der Filter korrekt von Directshow in den Filtergrafen eingesetzt wurde Sobald der Filtergraph gestartet wird ruft Directshow f r jedes Einzelbild des Videostreams Sample die Methode DoRenderSample des neuen Ausgabe Filters auf Im Falle der f r die Stereo View Anwendung entwickelten C Vid TexFilter Klasse bernimmt diese Methode die Dekodierung der Einzelbilder und die Neukodierung in das Datenformat einer Direct 3D Textur Der Methode DoRenderSample wird von Directshow ein Zeiger auf ein Objekt der Klasse IMediaSample bergeben Durch Aufruf der Methode GetPointer des IMediaSample Objekts erh lt der Programmierer e
47. ce Methode werden eine Reihe von Parame tern bergeben Der Parameter DIDADAPTER_ DEFAULT weist Direct 3D an den Default Grafikadapter des Systems einzusetzen Der Parame ter D3DDEVTYPE_HAL gibt an welche Art Grafikadapter eingesetzt wer den soll Die Abk rzung HAL steht f r Hardware Abstraction Layer und bezeichnet eine Grafikkarte mit hardwaregest tzter 3D Beschleunigung Der Parameter hwnd ist lediglich ein Handle auf das Hauptfenster der Anwen dung Die n chsten beiden Flags stellen den Betriebsmodus der Direct 3D Grafikschnittstelle f r das zu erzeugende Ger te Schnittstelle ein Das Flag D3DCREATE_ HARDWARE_VERTEXPROCESSING veranlasst die Berech nung aller geometrischen Transformationen durch den Prozessor der Grafik 13Es k nnten mehrere Grafikkarten im System eingebaut sein 118 KAPITEL 4 TECHNISCHE REALISIERUNG create Direct3D Device m_lpD3D gt CreateDevice D3IDADAPTER_ DEFAULT D3DDEVTYPE_HAL hWnd D3DCREATE_ HARDWARE _ VERTEXPROCESSING D3DCREATE MULTITHREADED amp PParams amp lpD3DDevice9 Abbildung 4 32 Listing Erstellung IDirect3DDevice9 Schnittstelle karte Das Flag D3DCREATE_MULTITHREADED weist Direct 3D an ein multithread f higes Device zu erstellen Dadurch k nnen mehrere Programm Threads gleichzeitig mit der Ger te Schnittstelle arbeiten Im Falle der Ste reo View Anwendung konkurrieren drei Threads die beiden Video Textur Filter und die Hauptanwendu
48. d f r das rechte Auge In der Computer Stereografie gibt es einen h ufig eingesetzten Trick um ein stereoskopisches Bild in herk mmlichen Bilddatenfor maten beispielsweise dem Direct 3D Texturformat zu speichern Dazu werden die Einzelbilder des Stereobildes horizontal nebeneinander angeordnet und in den Bildspeicher einer gew hnlichen Direct 3D Textur kopiert Durch die horizonta le Anordnung der beiden Bildkan le vergr ert sich die Textur auf die doppelte Breite eines Einzelbildes Direct 3D kann diese Art stereoskopischer Texturen von gew hnlichen Texturen nicht unterscheiden und l sst daher alle Texturopera tionen problemlos zu Die Zusammensetzung des zweispaltigen Texturbildes zu einem darstellba ren Stereobild erfolgt erst mehrere Softwareebenen unterhalb der Direct 3D Schnittstelle durch den speziellen Stereo Zusatztreiber der NVIDIA Grafikkarten Damit der NVIDIA Stereo Treiber die stereoskopischen Texturen von normalen Texturen unterscheiden kann wird eine spezielle Signatur in die Bilddaten der Stereo Texturen eingebracht Diese Signatur ist nichts weiter als eine Konstante des Typs LONG also eine sehr gro e Zahl Sie wird in der Header Datei des NVIDIA Stereo Blit SDKs definiert Anhand der Signatur erkennt der NVIDIA Stereo Treiber die stereoskopische Textur teilt sie vertikal in ihrer Mitte und trennt die Textur so in die zwei Einzelbilder des Stereobildes auf Diese werden durch die Grafik
49. der Callback Prozedur wird der neue Datenblock mittels der Methode CVAI BO AudioSendData char data int length ber das AIBO Remote Framework zum Roboter bertragen und dort auf dem Lautsprecher wiedergegeben Ab bildung zeigt eine exemplarische Implementierung der Callback Capture Prozedur 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 85 Start capturing PC Audio m pATPDirectSound StartCapture m nNetAudioMode GetCaptureProc NULL A CallBack Function to capture PC Audio BOOL GetCaptureProc void pCaptureData DWORD dwCaptureLength BOOL isEnd void pParam CVAIBOx pVaibo CAiboRF m pVAibo Transmission int err pVaibo gt AudioSendData charx pCaptureData dwCaptureLength if err AUDIOTP NOERROR An error occured return false return true Abbildung 4 14 Listing CATPDirectSound Capture Prozedur 4 4 Implementierung des Stereokamerasystems Das folgende Unterkapitel beschreibt die hard und softwaretechnische Realisie rung des Stereokamerasystems Zun chst werden einige wichtige Grundlagen ber die verwendete Multime diaschnittstelle Direct X vermittelt und die f r die Konstruktion des Kame rasystems verwendete Hardware vorgestellt Darauf folgend wird ein berblick ber die Programmmodule der im Rahmen der Arbeit entwickelten Anwendung Stereoview dargelegt und die eingesetzten Programmiertechniken detailliert be schrieben und erkl rt 4 4 1 Direct X Grundlagen
50. det wird Abbildung 2 2 Akkommodation bezeichnet den Vorgang des Einstellens der Augenlinse so dass ein Motiv bei wechselnder Entfernung scharf auf der Netzhaut abge bildet wird Vergenz und Akkommodation wirken bei normaler Entwicklung des Sehens immer zusammen Wir nehmen an ein Motiv wurde durch die Augen mittels Vergenz und Akkom modation korrekt fixiert Abbildung P 3 zeigt schematisch eine entsprechende Versuchsanordnung Abbildung die resultierenden durch die Augen aufge nommenen Abbilder der Szene 2 3 3D STEREOSKOPIE 27 a Kurze Entfernung zum Objekt gt gro er Winkel Schielen Fixationsebene b Hohe Entfernung zum Objekt gt kleiner Winkel Parallelstellung Fixationsebene Abbildung 2 2 Einstellung der Vergenz Bilder von Motiven die n her als die Fixationsentfernung liegen sind gegen ber den korrespondierenden Netzhautzellen nach au en versetzt F r Bilder die hin ter der Fixationsentfernung liegen gilt das Umgekehrte Sie sind nach innen ver setzt Den seitlichen Versatz nennt man Disparit t An dieser Stelle ist es den Neuronalen Netzen des Sehzentrums m glich die Si gnale der beiden Augen zu verrechnen Signale von korrespondierenden Netz hautzellen aktivieren Fixationsneurone Dahingegen regen Signale die von leicht verschobenen Netzhautzellen kommen Nah oder Fernneurone an je nachdem in welcher Richtung die Bilder auf der Netzhaut verschoben
51. e Ausgabe von Sprache ber den Lautsprecher des Roboters Die VAIBOClient dIP dient als Repr sentation des entfernten Roboters auf dem lokalen PC Sie wird dadurch zur Kernbibliothek des Frameworks 4 3 1 2 Funktionen der VAIBOClient dll Die VAIBOClient DLL stellt ein Application Interface dar das alle wichtigen Funktionen zur Entwicklung eines Fernsteuersystems f r den AIBO ERS 7 ent h lt Alle in den folgenden Abschnitten beschriebenen Methoden zur Steuerung des Roboters basieren auf dieser Bibliothek Die VAIBOClient DLL implementiert folgende Funktionsgruppen des Frame works Verbindungskontrolle Auf Abbau einer Verbindung zu einem Roboter so wie das Sperren Entsperren einer Verbindung um einer Anwendung die exklusive Kontrolle ber einen AIBO Roboter zu bergeben Kontrolle der AIBO Services Direkt auf dem Roboter laufen verschiede ne Serverdienste zur Realisierung einer Datenkommunikation Ton Bild Sensordaten bertragung zwischen dem Roboter und dem lokalen PC Abfrage der AIBO Semantics Semantics sind Informationen ber die n derung innerer Zust nde des Roboters beispielsweise die nderungen des Akkuladezustands oder die Aktualisierung der Sensordaten 3VAIBO Virtual AIBO Repr sentation eines ber das Remote Framework angeschlosse nen AIBO Roboters auf dem lokalen PC 4 3 AIBO REMOTE FRAMEWORK 69 Abfrage von Sensordaten Daten der AIBO Sensoren k nnen angefordert werden
52. e Ware Command ID angesto en werden Ihr Aufbau wird in einem sp teren Abschnitt besprochen 4 3 4 1 Laufen Eine Laufbewegung wird durch Aufruf der Methode CVAIBO DoWalking int walk int angle 0 angesto en Der erste Parameter der Methode ist die Walking ID Sie beschreibt die Art der auszuf hrenden Bewegung Tabelle 4 1 zeigt einige Beispiele m glicher Walking IDs Der zweite Parameter ist optio nal und bezeichnet einen Winkel in Grad Wird ein von 0 abweichender Winkel angegeben bewegt sich der Roboter auf einem Kreisbogen Durch Angabe von negativen Werten beschreitet der Roboter eine Linkskurve positive Werte rufen dagegen das Beschreiten einer Rechtskurve hervor Die m glichen Werte f r die Walking ID zur Beschreibung der Bewegungsart sind in der Header Datei CVAIBO h unter Do Walking parameters definiert und k nnen dort nachgeschlagen werden 4 3 AIBO REMOTE FRAMEWORK 75 Tabelle 4 1 Einige Beispiele m glicher Walking IDs Walking ID Bewegung des AIBO Roboters DW_FORWARD Vorw rtslauf DW_BACK R ckw rtslauf DW_TURN_LEFT Linksdrehung auf der Stelle DW_TURN_RIGHT Rechtsdrehung auf der Stelle DW_STOP Abburch einer Bewegung Anhalten DW_FORWARD_CNORMAL Vorw rtslauf im Hundgang DW_BACK_CNORMAL R ckw rtslauf im Hundgang DW_TURN_LEFT_CNORMAL Linksdrehung im Hundegang DW_TURN_RIGHT_CNORMAL Rechtsdrehung im Hundegang Alle Lauf bzw D
53. e der Arbeit Ziel dieser Arbeit ist es ein Soft und Hardwaresystem zu entwickeln welches den Sony AIBO ERS 7 zu einem Teleroboter erweitert Dazu soll 1 Ein 3D Stereokamerasystem f r den ERS 7 entwickelt werden 2 Eine Software zur komfortablen Fernsteuerung des ERS 7 durch einen menschlichen Bediener realisiert werden Die Entwicklung des Stereokamerasystems welches den ERS 7 um die F higkeit des r umlichen Sehens erweitert steht im Zentrum dieser Arbeit Dennoch soll der Entwurf einer ergonomischen Schnittstelle zur Fernsteuerung des Roboters nicht vernachl ssigt werden 39 40 KAPITEL 3 STEREOKAMERA UND FERNSTEUERSYSTEM Am Ende soll ein System stehen welches dem Menschen erm glicht in die Welt des Roboters einzutauchen Und zwar mittels seiner wichtigsten Sinne Sehen und H ren 3 2 Fernsteuersystem Im folgenden soll das Konzept eines Fernsteuersystems f r den AIBO ERS 7 Ro boter entwickelt werden Zun chst werden einige allgemeine Betrachtungen zu ei ner f r den Menschen handhabbaren ergonomischen Roboter Fernsteuerung er rtert Darauf aufbauend werden Steuerungskomponenten f r eine geeignete Benutzerschnittstelle ausgew hlt und eine Softwareschnittstelle zur Fernsteue rung des AIBO das AIBO Remote Framework vorgestellt 3 2 1 Ergonomie F r den Entwurf einer f r den Menschen ergonomischen Fernsteuerung lohnt es sich die Anatomie und Verhaltensweisen des Menschen in seiner Umwelt n h
54. efertigt Die Konstante Ar beschreibt dabei einen in der Konfiguration des Stereoskopie Treibers einzustellenden virtuellen Augenabstand 122 KAPITEL 4 TECHNISCHE REALISIERUNG Abbildung 4 34 Kamerapositionierung Abbildung 4 35 Definition eines Sichtfeldes FOV Zu 2 Dem aufmerksamen Leser diirfte bereits aufgefallen sein dass in Schritt 1 eine wichtige Eigenschaft der virtuellen Kamera noch nicht festgelegt wurde Die Definition ihres Sichtfeldes FOV Field of vision Die Angabe des Sichtfel des geschieht in der Projektions Matrix der Direct 3D Transformationspipeline Diese Matrix realisiert die Projektion dreidimensionaler Vektoren auf eine zweidi mensionale Ebene Bildschirm Das Sichtfeld wird durch einen ffnungswinkel a definiert siehe Abbildung 4 35 Des weiteren wird durch die Projektionsmatrix eine nahe und eine ferne Ab schnittebene Clippingplane definiert Die Abschnittebenen sorgen daf r dass Objekte die sich zu nahe vor oder gar hinter der Kamera befinden sowie 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 123 Objekte die sehr weit von der virtuellen Kamera entfernt liegen nicht gezeichnet werden Als letzte Einstellung f r die Projektionsmatrix muss das Seitenverh ltnis Aspect Ratio des Sichtfeldes eingestellt werden Es errechnet sich durch teilen der Bildbreite durch die Bildh he und betr gt f r gew hnliche Computerdisplays als auch f r das hier
55. egriert wird Einige Hersteller von Grafikchips tzen ATI NVIDIA bieten jedoch Zu satzmodule f r ihre Chipsatztreiber an welche die stereoskopische Darstellung der unter Direct 3D gezeichneten 3D Vektorgrafiken erzwingen 88 KAPITEL 4 TECHNISCHE REALISIERUNG Durch die Modifikation der Grafiktreiber wird die Darstellung stereoskopischer Bild oder Videodaten ber die Direct 3D Schnittstelle zumindest im Rahmen gewisser Grenzen erm glicht 4 4 2 Eingesetzte Hardware Zur Entwicklung eines Stereokamerasystems f r den AIBO ERS 7 Roboter musste eine spezielle Stereokamera konstruiert werden Die Reproduktion der stereosko pischen Bilddaten erfolgt auf einem Virtual Reality Helm des Typs I Glasses der Firma IO Display Systems 4 4 2 1 Doppelkamerasystem Aufgrund einer relativ geringen Gr e und Tragkraft des Roboters AIBO ERS 7 wurde ein Doppelkamerasystem aus zwei ZT 810 bzw ZT 811 Mini Funk Kameras aufgebaut F r die Montage der Kameras auf dem Kopf des Roboters wurde eine spezielle Halterung Abbildungen und entwickelt Sie besteht aus einem auf die Form des Kopfes zugebogenen Lochblechstreifen Auf die Grundhalterung wurden zwei Winkel aufgeschraubt an denen die Kameras montiert werden Die Konstruktion ist so geschaffen dass die beiden Kameras einen Horizontalabstand von etwa 6 cm besitzen Augenabstand und sowohl in horizontaler als auch in vertikaler Ebene exakt ausgerichtet werden k nnen
56. ehend aus den Modellen eines W rfels und eines Zylinders Die Szene wird aus der Sicht zweier virtueller Kameras aufgenommen und auf die Displays einer Stereo Brille ber tragen Die Kameras sind den Ma stab der virtuellen Szene eingerechnet im Augenabstand angeordnet E O 3D Grafik Szene IAS vitae Kameras Stereo Brille Linkes Auge Rechtes Auge Abbildung 4 29 3D Grafikszene in stereoskopischer Darstellung Nun ist es so dass das f r die Stereo View Anwendung konstruierte Doppelkamera System kein dreidimensionales Modell der abzubildenden Szene liefert sondern lediglich zwei aus unterschiedlichen Perspektiven aufgenommene zweidimensionale Abbilder der realen Welt Diese Abbilder k nnen jedoch in eine dreidimensionale Grafikszene projiziert werden und so ber das Stereoskopie Zusatzmodul des Grafikkartenherstellers dargestellt werden Abbildung zeigt die Konstruktion einer 3D Grafikszene auf Grundlage der Videostreams eines Doppelkamera Systems 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 113 Reale Welt Reale Kameras x virtuelle Leinw nde 3D Grafik y Szene l i virtuelle x Kameras EN A A Stereo Brille Linkes Rechtes Auge Auge Abbildung 4 30 Konstruktion 3D Grafikszene aus den Bildern eines Doppelka merasystems 114 KAPITEL 4 TECHNISCHE REALISIERUNG Das oberste der drei Teilbilder stellt ein Szenario
57. eichen einer guten Bildqualit t ist jedoch der Einsatz hochwertiger Kameras und Vi deocaptureger te Ebenfalls hat sich gezeigt dass die Qualit t des verwendeten Stereodisplays starken Einfluss auf die subjektiv wahrgenommene Bildqualit t nimmt Kapitel 5 Schlussbetrachtungen Zum Abschluss werden die behandelten Themen und erzielten Ergebnisse kurz zusammengefasst Dem Leser werden in Form eines Ausblicks die Anwendungs m glichkeiten des entwickelten Systems und zuk nftige Forschungsideen n her gebracht 5 1 Zusammenfassung In dieser Arbeit wurde die F higkeit des r umlichen Sehens am Beispiel des Menschen erkl rt und wesentliche Grundlagen zur Konstruktion stereoskopischer Aufnahme und Wiedergabesysteme vermittelt Dar ber hinaus wurde ein Kon zept zur Konstruktion eines Stereokamerasystems f r den mobilen Kleinroboter Sony AIBO ERS 7 sowie eines Fernsteuersystems f r diesen Roboter erarbei tet und umgesetzt Die Realisierung des Konzeptes geschah auf der Grundlage kosteng nstiger Hardwarekomponenten Beispielsweise werden die verwendeten Miniatur Funkkameras blicherweise in der berwachungstechnik eingesetzt Zu s tzlich wurden neue mechanische und elektronische Bausteine konstruiert Etwa eine kalibrierbare Halterung und Energieversorgung f r das Doppelkamerasystem In sp teren Kapiteln wird die Programmierung des Roboters AIBO ERS 7 un ter Verwendung des AIBO Remote Frameworks beschrieben und dem Lese
58. eichende Zielplatt form Hier PC als Erstellungsplattform AIBO als Zielplattform 24 KAPITEL 2 GRUNDLAGEN Tabelle 2 1 Freiheitsgrade AIBO ERS 7 K rperteil Freiheitsgrade Kopf 3 Maul 1 Beine 3x4 Ohren 1x2 Schwanz 2 von T nen besitzt der ERS 7 zwei Mikrofone eines auf jeder Seite des Kopfes Die Wiedergabe von T nen erfolgt ber einen in der Brust eingebauten Lautsprecher Der Roboter verf gt ber diverse interne Sensoren Zwei Infrarot Abstandssensoren einen Beschleunigungssensor und einen Schwingungssensor Extern verf gt er ber Einen Kopfsensor drei R ckensensoren einen Kinnsensor und Tastsensoren an allen vier Pfoten Die Leistungsaufnahme des ERS 7 liegt bei durchschnittlich 7 Watt womit bei voll geladenem Akku eine Betriebsdauer von ca 1 5 Stunden einhergeht Zur Kommunikation mit der Au enwelt besitzt der AIBO ERS 7 ein eingebau tes WLAN Modul Dieses ist Wi Fi zertifiziert und kompatibel mit den IEEE 802 11 IEEE 802 11b Standards Durch entsprechende Konfiguration k nnen die Wireless Kan le 1 11 auf dem 2 4 GHz Frequenzband verwendet werden Auf Wunsch kann eine Verschl sselung nach dem WEP 64 oder WEP 128 Standard eingesetzt werden 6 2 3 3D Stereoskopie Die folgenden Abschnitte sollen einen berblick ber das Thema 3D Stereosko pie vermitteln Dazu wird der Vorgang des r umlichen Sehens am Beispiel des Menschen erl utert und einige Ger te zur A
59. eit nur ein von NVIDIA inoffiziell herausgegebenes Direct 3D Beispielprogramm ist Das Pro gramm f hrte auf dem Betriebssystem Windows 2000 unter allen getesteten Kombinationen von Grafikkarten und Computersystemen zu einem Systemab sturz Obwohl der Einsatz des NVIDIA Stereo Blit SDKs f r die Implementierung der hier entwickelten Anwendung Stereo View zu keinen Erfolgen f hrte soll das grunds tzliche Verfahren kurz beschrieben werden Es bestehen gute Chan cen dass die Entwicklung dieses SDKs durch die Firma NVIDIA in naher Zukunft soweit gediehen ist dass es zur Entwicklung von Stereoskopie Anwendungen ein gesetzt werden kann Der folgende Abschnitt soll zuk nftigen Entwicklern auch die aufwendige Analyse des SDK Quellcodes ersparen In dem umfangreichen Direct 3D Programm finden sich keinerlei Hinweise auf die Art des angewen deten Verfahrens oder die wesentlichen Stellen des Quellcodes Hier w rde ein Programmierer der alten Schule m glicherweise anmerken Wozu dokumentieren und kommentieren alles was getan werden soll steht im Programmcode 110 KAPITEL 4 TECHNISCHE REALISIERUNG Die von NVIDIA vorgeschlagene L sung basiert auf einer Erg nzung des Direct 3D Texturformats welche die Definition stereoskopischer Texturen erm glicht Eine stereoskopische Textur besitzt zwei Bildkan le Der erste Kanal speichert das Bild dass f r das linke Auge des Betrachters vorgesehen ist Der zweite Bildkanal das Bil
60. el wie bei der LC Shuttertechnik durch ein zeitliches Multiple xing der Einzelbilder erzeugt Die Elektronik des VR Helms dekodiert das Signal und verteilt die beiden Teile des Stereobildes auf die TFT Displays des linken und rechten Auges Durch die Verwendung zweier Displays fallen die bei LC Shuttern auftretenden Effekte Helligkeitsverlust Geisterbilder weg Virtual Reality Hel me sind meist sehr teuer 700 1400 EUR und nur ein einzelner Beobachter kann am 3D Geschehen Teil haben 2 3 4 Videosignalaufbereitung Um stereoskopische Bilddaten an ein Darstellungssystem zu bermitteln muss ein stereoskopisches Videosignal aufbereitet werden Ein Stereo Audiosignal dient der bertragung zweier getrennter Audiokan le Ein Stereo Videosignal bertr gt analog dazu zwei getrennte Bildkan le Die 36 KAPITEL 2 GRUNDLAGEN Abbildung 2 13 i Glasses Headmounted Displays Hersteller stereoskopief higer PC Grafikhardware unterst tzen im Wesentlichen zwei Verfahren zur Aufbereitung stereoskopischer Videosignale Diese Verfahren sollen hier zum besseren Verst ndnis der weiteren Ausf hrungen kurz erl utert werden Pageflipping Verfahren Das Pageflipping Verfahren ist im Computerbereich die wohl g ngigste Technik zur Aufbereitung stereoskopischer Videosigna le Der Begriff Pageflipping entspringt der Welt der Grafikprogrammie rung und beschreibt das schnelle hin und herschalten Flipping zwi schen Bi
61. enstellend erledigen kann oder ob in gewissen Situationen ein gesunder Menschenverstand eingreifen muss um das Verhalten des Roboters zu steuern oder zumindest zu kontrollieren In diesen F llen empfiehlt sich der Einsatz eines sogenannten Teleroboters der nur in bestimmten Bereichen autonom agiert 2 1 AUTONOME ROBOTER UND TELEROBOTING 19 2 1 2 Teleroboting Teleroboter sind Roboter die eine Kommunikationsverbindung beispielswei se eine Funkverbindung zu einem menschlichen Operator besitzen Dieser kann den Roboter steuern oder kontrollieren und bei Bedarf in den autonomen Ablauf eingreifen F r alle Abl ufe w hrend denen das Eingreifen eines Menschen sinn voll ist und eine Kommunikationsverbindung aufgebaut werden kann besitzen Teleroboter Vorteile gegen ber rein autonomen Robotern Ein interessantes An wendungsgebiet f r Teleroboter ist unter anderem die Automatisierungstechnik H ufig werden hier gro e Produktionslinien bestehend aus einer Vielzahl hinter einandergereihter Robotersysteme aufgebaut Ein menschlicher Operator kann von einem festen Arbeitsplatz steuernd in die Abl ufe mehrerer teilautonomer Roboter eingreifen und diese berwachen In Anbetracht dessen das der Mensch nicht vor Ort sein muss um einen Telero boter zu steuern eignen sich selbige gut f r den Einsatz in lebensgef hrdenden oder unzug nglichen Gebieten Mienenr umung Aufr umarbeiten nach atoma ren oder chemischen Unf llen
62. eo captureger te des Typs Osprey 50 USB der Firma ViewCast digitalisiert und via USB Kabel an einen PC bertragen Abbildung zeigt eines der bei den Videocaptureger te Abbildung 4 18 Osprey 50 USB Videocaptureger t Das im Rahmen der Arbeit entwickelte Programm Stereo View ist grund s tzlich in der Lage mit allen unter Windows betriebenen Videocaptureger ten umzugehen Es gilt jedoch an dieser Stelle zu beachten dass nicht alle Videocap 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 91 tureger te kaskadiert werden k nnen In der Regel lassen die Ger tetreiber nur den Anschluss eines einzigen Ger tes des gleichen Typs zu Zur Energieversorgung der Kameras wurde ein spezieller Akkupack Abbil dungen 4 19 und konstruiert Die Form des aus sieben Nickelmetallhydrid zellen des Typs Micro bestehenden Pakets wurde zum Betrieb auf dem AIBO ERS 7 ausgelegt Der Akku liefert eine Spannung von 8 4 Volt und besitzt eine in Hinsicht auf Gr e und Gewicht beachtliche Kapazit t von 800 mAh Das Kamerasystem mit einer Stromaufnahme von etwa 120 mA wird so ber einen Zeitraum von ca 6 5 h mit Energie versorgt Der Akkupack wird ber den zu geh rigen Ladeadapter am Netzteil eines Funkkamera Empf ngers geladen Der Ladevorgang nimmt etwa 4 h in Anspruch Abbildung 4 19 Kameraakku und Ladeadapter Die Kamerahalterung und der Akku werden unter zu Hilfenahme beidseitig be schichtetem Klebe
63. eobilder pro Sekunde mit halbierter vertikaler Aufl sung bertr gt Dieses Signal l sst sich bei der Darstellung auf einem Fernsehger t mittels einer LC Shutterbrille mit geringem technischen Aufwand in die Abbildungen der zwei urspr nglich aufgenommenen Perspektiven splitten Das linke Auge des Betrach ters erh lt die Informationen des ersten Halbbildes das rechte die des zweiten Die oben beschriebene Methode ist besonders interessant da sie sich mit relativ geringem Aufwand durch Erweiterung herk mmlicher Videohardware kosten g nstig umsetzen l sst Sie hat allerdings den Nachteil dass sich unter Einsatz einer LC Shutterbrille Bildhelligkeit und Bildwiederholrate halbieren 2 3 3 Stereoskopische Darstellungssysteme Das zentrale Problem bei der Darstellung stereoskopischer Bilddaten liegt in der Aufteilung der Teilbilder auf das linke und rechte Auge des Betrachters Her k mmliche Bildschirme und Projektoren k nnen ohne den Einsatz spezieller Tech niken und Methoden lediglich zweidimensionale Bilder wiedergeben 32 KAPITEL 2 GRUNDLAGEN Eine alte einfache Technik zur Darstellung stereoskopischer Bilder ist der Schau kasten In einem kleinen Kasten der an seiner Vorderseite mit zwei L chern versehen ist werden im Augenabstand zwei Dia Positive mit den Teilbildern der Stereoaufnahme platziert Hinter den Bildern befindet sich eine Lichtquelle zur Durchleuchtung Der Schaukasten ist einfach und effektiv da sic
64. er zu betrachten Der Mensch ist ein aufrecht gehendes Wesen seine Wirbels ule beschreibt in etwa eine vertikale Achse Am oberen Ende des K rpers bildet der Hals den bergang zum Kopf mit den Seh und H rsinnesorganen Der Kopf ist ber sieben Halswir bel mit dem K rper verbunden Muskelstr nge entlang der Halswirbel machen den Kopf beweglich Es ergeben sich in der Sprache der Robotik ausgedr ckt drei Freiheitsgrade 1 Der Kopf kann um die Achse der Wirbels ule gedreht werden 2 Der Kopf kann in seitlicher Richtung geneigt werden 3 Der Kopf kann nach vorne und hinten geneigt werden Da der Kopf Tr ger der wichtigen Sinnesorgane Augen und Ohren ist sollte es von Vorteil sein seine Bewegungen in m glichst nat rlicher Art und Weise auf 3 2 FERNSTEUERSYSTEM 41 den Kopf des Roboters zu bertragen Der Roboterkopf sollte also die Bewegun gen des menschlichen Kopfes imitieren und nicht ber Joystick Tastatur oder hnlichem gesteuert werden miissen Als n chstes soll das Verhalten des Menschen in seiner Umwelt betrachtet wer den Menschen erlernen im Verlaufe ihrer Entwicklung zahlreiche Verhaltenswei sen die ihnen zur Orientierung und Fortbewegung in der Umwelt dienen Die Imitation einiger einfacher Verhaltensweisen durch die Roboterfernsteuerung ver einfacht die Steuerung des Teleroboters da dem Bediener berfl ssige Denkar beit abgenommen wird und er sich auf seine eigentliche Aufgabe
65. er AIBO ERS 7 verf gt ber eine ganze Reihe eingebauter Sensoren Die An zeige ausgew hlter Sensordaten k nnte die Bedienung des Roboters erleichtern Es ist sinnvoll dem Bediener einige Informationen ber den inneren Zustand des Roboters zu bermitteln Dazu geh ren der Ladezustand der internen Batterie zur Vermeidung eines unerwarteten Ausfalls des Systems aber auch Informationen ber den aktuellen Betriebszustand des Roboters Wenn AIBO beispielsweise gerade einen vordefinierten Bewegungsablauf ausf hrt kann er nicht auf Eingaben des Steuerkn ppels reagieren Also w re es m glicherweise interessant f r den Bediener zu wissen wann der Bewegungsablauf abgeschlossen ist Des weiteren verf gt AIBO ber zwei Infrarot Entfernungsmesssensoren Die von ihnen gelieferten Daten erleichtern richtig aufbereitet dem Bediener die Navi gation mit dem Roboter Von den beiden Entfernungsmesssensoren befindet sich 3 2 FERNSTEUERSYSTEM 47 Abbildung 3 3 Freiheitsgrade des AIBO Kopfes Abbildung 3 4 Neigung des AIBO Halses 48 KAPITEL 3 STEREOKAMERA UND FERNSTEUERSYSTEM Stereo View Battery Level 89 Distance Sensor 67 cm Abbildung 3 5 Schema Benutzerschnittstelle einer im Kopf des ERS 7 Er misst die Entfernung zu dem Objekt das sich in der Bildmitte der Kamera befindet Die Anzeige der Daten dieses Sensors erleichtert dem
66. er Einheit von Pixel Zeile nach Bytes Zeile pTexture ist ein BYTE Zeiger Der Zeiger pVideo der auf die Daten des Videobildes zeigt steht nach Abarbei tung der inneren For Schleife am unmittelbaren Ende der Bildzeile und muss um zwei Bildzeilen zur ckgesetzt werden Dies entspricht der n chsten Zeile des tats chlichen Videobildes und geschieht durch die Rechenoperation pVideo dwVideo Width 6 Die Variable dwVideo Width gibt die Breite des Videobildes in Pixel an Ein Pixel des Videobildes besteht aus drei Bytes Die Operation dwVideo Width 6 liefert als Ergebnis die L nge von genau zwei Bildzeilen in Bytes und wird von dem Zeiger pVideo subtrahiert Eigenschaften der Filterklasse CVidTexFilter Die Filter Klasse CVidTerxFilter implementiert neben dem in Abbildung dargestellten Konvertierungs Algorithmus eine Anzahl weiterer Algorithmen zur Unterst tzung unterschiedlicher Textur Farbformate Das von der Filter Klasse gew hlte Format f r die Farben der Zieltextur h ngt von den F higkeiten des Grafikadapters und den Einstellungen des Direct 3D Display Formats ab Die 108 KAPITEL 4 TECHNISCHE REALISIERUNG Auswahl des Texturformats und der zugeh rigen Algorithmen geschieht automa tisch Der Filter nutzt zur Konvertierung des Videostreams die Ressourcen des Haupt prozessors Dieser tr gt insbesondere bei der parallelen Konvertierung mehrerer Streams Doppelkamera System eine betr chtliche Arbei
67. erden zwei normalerweise in der berwachungstechnik eingesetzte Mini Funkkameras des Typs ZT 811 verwendet Die 20x20 mm gro en ca 20g schweren Kameras sind intern mit ei nem analogen 2 4 GHz Funksender ausgestattet und werden in der Regel als Set mit dem passenden analogen Empfangsmodul ausgeliefert Die ZT 811 Funkka meras liefern mit einer CMOS Chip Aufl sung von 628x582 Pixel sowie hoher Lichtempfindlichkeit und Bildwiederholrate eine gute Bildqualit t Zur Montage und Ausrichtung der Kameras auf dem Kopf des AIBO ERS 7 ist die Konstruktion einer speziellen Kamerahalterung erforderlich Die Halterung muss zwei ZT 811 Kameras in einem Horizontalabstand von 6 cm Augenabstand 3 3 STEREOKAMERASYSTEM ol aufnehmen Die Kameras m ssen zur Ausrichtung einzeln in horizontaler und vertikaler Ebene eingestellt werden k nnen Bevor die Signale der beiden Kameras durch die PC Software verarbeitet wer den k nnen m ssen die analogen Bilddaten digitalisiert werden Das Capturing dt Einfangen von zwei Videosignalen auf einen PC gestaltet sich schwierig da die blicherweise im Handel erh ltlichen Videocaptureger td nicht kas kadierbar sind Es kann aus treibertechnischen Gr nden immer nur eine Karte in denselben Rechner eingesetzt werden Auch USB Videocaptureger te schaffen hier keine Abhilfe Die einzige M glichkeit dieses Problem angemessen zu l sen ist der Einsatz spezieller Profihardware f r sogenannte Video Streamin
68. erface konstruiert Die Schnittstelle erm glicht das Aufnehmen und Wiedergeben von Audiodaten ber das Mikrofon und die Lautsprecher ei nes lokalen PCs Um die Schnittstelle zu nutzen wird ein Objekt der Klasse CATPDirectsound konstruiert und Initialisiert siehe Abbildung 4 13 Die Audio TP ist in zwei unterschiedliche Services aufgeteilt Ein Service dient dem Empfang von Audiodaten von den AIBO Mikrofonen Der zweite ist f r das Senden von Daten an den Lautsprecher des AIBO Roboters zust ndig Die Audiodaten werden in Form eines Stroms engl Stream kleiner Datenbl cke bertragen 4 3 6 2 Empfangen von Audiodaten Die Einstellung und Aktivierung der Audio TP zum Empfangen von Audio Daten von den internen Mikrofonen des AIBO gliedert sich in folgende Schritte 1 Festlegung des Audio Formats 4 3 AIBO REMOTE FRAMEWORK 81 2 Aktivieren der AUDIO TP und Anforderung des Net Services AU DIO DN Lie 3 Einstellung von Modus und Audio Format 4 Aktivierung der Directsound Schnittstelle zur Wiedergabe des eingehenden Audiostreams 5 Starten des Services zum Empfang von Audiodaten Im ersten Schritt sollte das gew nschte Audio Format gew hlt und in einer Variablen abgelegt werden Das Format muss sp ter sowohl f r die Audio TP als auch f r die Directsound Hilfsschnittstelle eingestellt werden Der AIBO ERS 7 verf gt ber zwei Mikrofone die auf linker und rechter Seite des Kopfes montiert sind Die A
69. erung der Sensor TP 2 Setzen der Skip Rate der Frequenz mit der die Datenpakete der Anwen dung zugestellt werden 3 Start des Datentransfers 78 KAPITEL 4 TECHNISCHE REALISIERUNG Im ersten Schritt muss der zur Sensor TP geh rige Net Service gestartet wer den Dieser Net Service l uft als Task auf dem Roboter und ist f r das Abfragen der Sensoren und das Versenden der Daten verantwortlich Zum Starten des Ser vices bedient man sich der Methode CVAIBO RequestNetService SENSOR_ID Das Makro SENSOR _ ID ist in der INCLUDE Datei VAIBODef h definiert und identifiziert den Sensor Net Service Weitere Net Services sind beispielsweise FTP Audio und Image Service Im zweiten Schritt wird durch Aufruf der Methode CVAIBO SensorSetSkipRate int SkipRate die Sensor Skip Rate gesetzt Das ist die Frequenz mit welcher die Sensordatenpakete der lokalen Anwendung zugestellt werden Die Einheit ist Zustellungen Sekunde Im dritten Schritt muss der Datentransfer gestartet werden Dies erfolgt durch Aufruf der Methode CVAIBO SensorTransferStart Mittels der Methode Sen sorTransferStop wird die Daten bermittlung gestoppt Alle oben beschriebenen Schritte zum Starten und Schlie en der Sensor services sind im Quellcode der AIBO Fernsteuerung in der Methode CAi boRF StartSensorService bool DoStart zusammengefasst 4 3 5 2 Sensordatenzustellung Die Daten aller Sensoren werden der Anwendung im Tak
70. esorgane genauer gesagt den Sehsinn des AIBO ERS 7 durch die Entwicklung und Programmierung zus tzli cher Hardware zu verbessern 13 14 KAPITEL 1 EINLEITUNG Dem Roboter fehlt die F higkeit des r umlichen Sehens Das Tiefensehen ist eine sehr starke und wichtige Art der Wahrnehmung Menschen und Tiere haben die se F higkeit bereits seit ihrer fr hesten Entwicklung Die griechische Mythologie deutet zwar auf die Existenz mystischer ein ugiger Kreaturen der Zyklopen hin tats chlich sind der Wissenschaft aber nur sehr wenige Wesen bekannt die ber einen h herentwickelten Sehsinn jedoch nicht ber die F higkeit des stereoskopi schen und somit r umlichen Sehens verf gen Es liegt also auf der Hand dass ein r umliches Sehverm gen f r die Konstruktion eines hochentwickelten Roboters nicht nur eine hinreichende sondern notwendige Bedingung ist Diese Diplomarbeit verfolgt neben der Umsetzung des Prim rziels der Entwick lung eines 3D Stereokamera Systems f r den AIBO ERS 7 noch ein sekund res Ziel Es soll einem Menschen erm glicht werden in den kleinen AIBO Roboter hineinzuschl pfen seine Sinneswahrnehmungen zu erfahren und ihn durch m g lichst nat rliches menschliches Verhalten zu steuern Zur Umsetzung des Sekund rziels kommt moderne Virtual Reality Technik zum Einsatz welche r umliches H r und Sehverm gen des kleinen Hundes f r den Menschen erfahrbar macht Zugleich werden dessen Bewegungen ber ei
71. f hle eines lebendigen Lebewesens zu simulieren und selbst ndig seine Umgebung zu erkunden AIBO kommuniziert mit dem Menschen indem er Gef hle zeigt und Verhal tensweisen zur Schau stellt welche auf Informationen basieren die er in seiner Umgebung gesammelt hat oder die ihm durch seinen menschlichen Partner vermittelt wurden Auch wird sein Verhalten hnlich wie bei reellen Lebewesen durch eine Reihe von grundlegenden Instinkten beeinflusst Diese Instinkte ordnen sich in Zuneigungsinstinkt Das Bestreben mit Personen Kontakt aufzunehmen Suchinstinkt Das Bestreben Neugier zu befriedigen Bewegungsinstinkt Das Bestreben sich in seiner Umgebung zu bewegen Ladeinstinkt Das Bestreben eine Stromquelle zum Laden des Akkus zu finden entsprechend dem menschlichen Hungergef hl Schlafinstinkt Das Bestreben nach anstrengenden Aktivit ten oder langer Be triebszeit auszuruhen Neben den Instinkten wird das Verhalten des AIBO durch Gef hle und Stim mungen beeinflusst welche er im Zusammensein mit Menschen zur Schau stellt Basierend auf vorhergehenden u eren Ereignissen oder den oben erl uterten Instinkten bringt AIBO Stimmungen wie Fr hlichkeit rger oder Trauer zum Ausdruck Er vermittelt diese Stimmungen ber seine K rpersprache ber T ne und ber die Form und Farbe seiner Augen welche durch eine Reihe mehrfar biger LEDs eindrucksvoll dargestellt werden Das Zusammenspiel von Instinkten und die daraus re
72. g Servei Die amerikanische Firma Viewcast ist einer der wenigen Anbieter solcher Spe zialger te Zur Erstellung einer Notebook kompatiblen L sung viel die Wahl auf zwei kaskadierbare USB Videocaptureboxen des Typs Osprey 50 der Firma Viewcast Eine Alternative w re eine Multikanal Videocapture PCI Kartd zum Einsatz in einem Desktop PC Bei dieser Alternativl sung ist darauf zu achten dass eine Karte ausgesucht wird die mehrere Capturechips tze besitzt Karten die lediglich mehrere Videoeing nge nacheinander auf ein und denselben Capturechipsatz schalten sind ungeeignet Zur Darstellung der durch die 3D Software verarbeiteten stereoskopischen Bild informationen ist ein stereoskopief higer Grafikadapter erforderlich Zurzeit er f llen Grafikadapter des Chipherstellers NVIDIA diese Bedingung am zufrie denstellendsten so dass f r diese Arbeit eine NVIDIA Grafikkarte mit einem GeForce Chipsatz Verwendung fand Stereoskopief hige Grafikkarten an derer Hersteller sind theoretisch auch einzusetzen da bei der Entwicklung der Software auf eine Spezialisierung auf NVIDIA Grafikchips tze verzichtet wurde Als stereoskopisches Darstellungsmedium wird im Rahmen dieser Arbeit ein head mounted Virtual Reality Display verwendet das i Glasses der Firma IO Displays Abbildung P 13 Es ist aber auch m glich andere stereoskopische Darstellungssystemd zu verwenden beispielsweise eine LC Shutterbrille H
73. gang zu seiner Werkstatt gew hrte Nicht zuletzt m chte ich M Eng Dipl Ing FH Jens Foerster f r seine Hilfe und Unterst tzung danken Von ihm stammt zu einem wesentlichen Teil die Idee zum Thema dieser Arbeit Michael Kreutzer 12 Kapitel 1 Einleitung Die moderne Technologie hat in nahezu allen Bereichen menschlichen Lebens unaufhaltsam Einzug gehalten Eine Grenze der Miniaturisierung und der Leis tungsf higkeit von Computersystemen und anderen elektronischen Komponenten scheint in vielen Bereichen nicht absehbar Das Gebiet der Robotik profitiert im gro en Ma e von dem technischen Fortschritt So ist es heute m glich kleine und zugleich leistungsf hige Roboter zu konstruieren die dar ber hinaus mobil sind und sich in unbekannter Umgebung selbstst ndig zurechtfinden also autonom sind Ein bekannter Stellvertreter der Gattung autonomer mobiler Kleinroboter ist der AIBO ERS 7 ein von der Firma Sony entwickelter Roboterhund Der Roboter zeigt autonomes Verhalten k nstliche Intelligenz und sogar k nstliche Emotio nen er macht sein Verhalten also von inneren Stimmungen abh ngig Der ERS 7 wurde in erster Linie f r den Massenmarkt produziert und dient dem Konsu menten als Unterhaltungsroboter Aufgrund des hohen Entwicklungsstandes ist er aber ebenso f r die Forschung als moderne und leistungsstarke Entwicklungs plattform einsetzbar 1 1 Aufgabenstellung Ein wesentliches Ziel dieser Arbeit ist es die Sinn
74. gepasst oder in der Defaulteinstellung beibehalten werden Abbildung 4 7 zeigt einen Screenshot des Konfigurationsdia logs des NVIDIA Stereo Treibers Eigenschaften von Plug und Play Monitor und NVIDIA Gerorce aie JE Allgemein Grafikkarte Monitor Problembehandlung Farbwerwaltung E GeForce 6610 XL ur E GeForce BE10XL Bildschirmanpassung 4 Grafikmodus Timing NVIDIA E Stereo Eigenschaften one Weitere Stereo Eigenschaften REG Stereo Einstellung und Test Aktiviert Spielekonfiguration C Durch Hotkey aktiviert Stereokompatibilit ts Einstellungen C Deaktiviert Leistungs amp Qualit tseinstellungen Stereo Ti Farbkorrektur a Video Overlay E instellungen EH Fehlersuche Rotations Steuerung Anf nger 50 Profi Temperatureinstellungen Stereotyp berschreibg d Bildwiederholfreg Doc VGA glasses 10 Display y O Bildschirmaufl sungen und Bildwiederholfrequenzen H Desktop Verwaltung St Anaglyph Red Blue Glasses DDC VGA glasses 10 Display Men bearbeitung CA A EN Fc estbild Medizinisches T DK Abbrechen bernehmen Abbildung 4 7 NVIDIA Stereo Treiber Konfigurationsdialog Die oben genannte Einstellung des Wertes f r die Stereointensit t ist zwingend da die Software des hier entwickelten Stereokamerasystems auf exakt diesen Wert 66 KAPITEL 4 TECHNISCHE REALISIERUNG abgeglichen wurde Eine falsche Einstellung f hrt
75. glichkeit das vorliegende Problem zu l sen war die Implemen tierung eines neuen Video Ausgabe Filters dem Texture Rendering Filter Klasse CVidTexFilter Ziel des Texture Rendering Filters Das Stereo Kamerasystem liefert nach der Digitalisierung der Kamerasignale zwei Video Daten Streams Die Bilder der Videostreams sollen ber die Grafikschnitt stelle Direct 3D zusammengef hrt und stereoskopisch dargestellt werden Um dies zu realisieren m ssen die Bilder der Videostreams in ein f r Direct 3D verst ndliches Format gebracht werden 2D Bilddaten wie die Einzelbilder eines Videostreams es sind werden in der Welt der 3D Grafik als Texturen bezeichnet Um einen Videostream unter Verwen dung von Direct 3D anzeigen zu k nnen m ssen die Einzelbilder des Streams in Echtzeit auf Direct 3D Texturen bertragen werden An dieser Stelle entsteht folgendes Problem Das Datenformat der Einzelbilder eines Videostreams und das Format der Direct 3D Texturen unterscheiden sich erheblich sowohl in der Ausrichtung der Bildzeilen als auch durch das Farbformat der einzelnen Bildpixel Die Abbildungen und zeigen schematisch die Anordnung der Bilddaten im Speicher des Rechners bei einem Video Datenformat bzw einem Direct 3D Texturdatenformat Bilder eines Videostreams werden von unten nach oben aufgebaut das hei t die erste Bildzeile im Datenarray der zugeh rigen Bitmap repr sentiert die unterste Zeile des tats chlichen Bildes
76. gt das lokale Sys tem von dem der AIBO Roboter ferngesteuert wird Die Benutzerschnittstelle des Systems besteht aus vier Ger ten Joystick Steuert die Laufbewegungen des AIBO ERS 7 Headtracker Steuert die Ausrichtung des Roboterkopfes und der Stereokame ra 54 KAPITEL 4 TECHNISCHE REALISIERUNG Benutzerschnittstelle WLAN Accesspoint v ng i Entferntes ii AIBO ERS 7 ES Stereokamerasystem ck Kabelverbindung Ess Fernsteuersystem gt Wireless LAN es Stereo Display gt Analog Funk Abbildung 4 1 Hardwarearchitektur des Gesamtsystems 4 1 BERBLICK GESAMTSYSTEM 99 Headset Erm glicht die akustische Kommunikation H ren und Sprechen ber den Roboter Stereo Display Erm glicht die stereoskopische Darstellung der Kamerabilder Joystick und Headtracker werden an die USB Schnittstellen des Steuer PCs an geschlossen Das Headset wird mit den Audio Ein und Ausg ngen der Sound karte verbunden Als Stereo Display wurde in dieser Arbeit ein i Glasses Virtual Reality Display verwendet Dieses wird an dem Monitorausgang der Grafikkarte angeschlossen Der lokale Teil des Stereokamerasystems besteht aus zwei 2 4 GHz A V Receivern A V Receiver L und A V Receiver R Die Ger te empfangen die Funksignale der Stereokamera und leiten die analogen Kamerabilder ber Videokabel an die zwei Videocaptureger te Capture L und Capture R Diese digitalisieren die Video
77. h mit ihm sogar Farbaufnahmen problemlos darstellen lassen Er entspricht jedoch nicht mehr den Anforderungen der modernen Video und Computertechnik Eine auch heute noch weit verbreitete Methode zur Trennung der Stereobild kan le ist die Anaglyphen Darstellung Die beiden Einzelbilder der Stereoauf nahme werden durch die Verwendung unterschiedlicher Farbkan le kodiert Bei spielsweise Rot als Farbkanal f r das linke Auge und Cyan als Farbkanal f r das rechte Auge Abbildung 2 8 zeigt ein mit dieser Technik dargestelltes Stereobild Eine Brille mit Farbfilterfolien Abbildung trennt die beiden Stereokan le wieder auf So werden Bildinformationen des linken und rechten Teilbildes kor rekt an die beiden Augen des Beobachters weitergeleitet Die Farbe Cyan k nnte man etwas anders ausgedr ckt als Gr n Blau bezeichnen Beide Filter einer Rot Cyan Filterbrille zusammengenommen k nnen also von rotem gr nen und blauem Licht durchdrungen werden Durch richtiges Mischen dieser drei Farben lassen sich alle vom menschlichen Auge wahrzunehmenden Farbt ne kreieren Man muss dazu allerdings voraussetzen dass das menschliche Gehirn die rot ein gef rbten Bildinformationen auf dem linken Auge mit den Gr n Blau gefilterten Bildinformationen des rechten Auges wieder zu einem Farbbild zusammensetzt In der Praxis f hrt diese Technik zu eher unbefriedigenden Ergebnissen Allerdings k nnen alle farbigen Wiedergabemedien ohne technische
78. hat sich w hrend der Evaluation des AIBO Remote Frameworks in Version Be ta 1 herausgestellt dass nicht ohne Weiteres eine Athok Verbindung zwischen 4 2 ENTWICKLUNGSUMGEBUNG 61 einer WLAN Karte und dem Roboter aufgebaut werden konnte der Versuch f hr te zum Absturz des Frameworks auf Seite des Roboters Es ist daher zu empfehlen einen WLAN Accesspoint zu verwendet auch wenn die Kommunikation lediglich zwischen nur einem PC und nur einem Roboter stattfinden soll 4 2 2 2 VAIBO Server Der VAIBO oder Virtual AIBO Server ist eine PC Server Applikation welche die Kommunikation zwischen den AIBO Robotern und den auf dem Al BO Remote Framework basierenden PC Anwendungen organisiert Die Server Anwendung muss vor Nutzung des Frameworks installiert und gestartet werden Abbildung 4 5 zeigt einen Screenshot des Status Fensters des Virtual AIBO Ser vers Hier werden alle aktiven Verbindungen zwischen Anwendungen und AIBO Robotern aufgelistet YAIBOServer m AIBO connect status Name 1P address AIBO contorol UnKnown The movement mode at the time of autonomy UnKnown Clients Name lock State Abbildung 4 5 Virtual AIBO Server 62 KAPITEL 4 TECHNISCHE REALISIERUNG 4 2 2 3 Einbindung in MS VC Nachdem das AIBO Remote Framework SDK als Dateiarchiv bezogen wurde sollte es am besten in ein neues Verzeichnis auf dem C Laufwerk des Rechners z b c
79. hmung durch das mensch liche Gehirn Das Auge gleicht einer Fernsehkamera mit dem Unterschied dass die lichtemp findlichen Sehsinneszellen Z pfchen und St bchen nicht gleichm ig ber die gesamte Netzhaut verteilt sind An der Stelle des sch rfsten Sehens der Fovea betr gt die Aufl sung der Sehsinneszellen unter Einbezug der Augenoptik et wa 1 60 Nach au en hin f llt die Sehsch rfe auf 1 10 dieses Wertes ab In der Netzhaut finden sich zwei Kategorien von Sehsinneszellen St bchen und Z pf chen Die St bchen sind in relativ geringer Dichte eher im u eren Bereich der Netzhaut angeordnet Sie haben im Vergleich mit den im Zentrum angeordneten Z pfchen eine h here Lichtempfindlichkeit und reagieren schnell auf Helligkeits n derungen erfassen also schnelle Bewegungen oder Flimmern Die Z pfchen sind in gro er Dichte im inneren Bereich der Netzhaut angeordnet und bilden dort den Bereich des sch rfsten Sehens Es existieren drei unterschiedliche Arten die ser Sehsinneszellen die auf unterschiedliche Wellenl ngen des Lichts ansprechen 26 KAPITEL 2 GRUNDLAGEN Farbsehen Sie haben eine geringere Lichtempfindlichkeit als die St bchen und reagieren weniger schnell auf Helligkeits nderungen Die von den Sehsinneszellen aufgenommenen Informationen werden ber Nerven zellen zu den Ganglienzellen weitergeleitet Deren ca 1 um dicken Forts tze b ndeln sich zum Sehnerv und verlassen das Auge im blinden F
80. ideotexturen Rendering 124 4 4 6 Leistungsmerkmale der Stereoview Anwendung 127 INHALTSVERZEICHNIS 5 Schlussbetrachtungen 5 1 Zusammenfassung 5 2 Ausblickl 5 3 Pers nliches Schlusswort Literaturverzeichnis Eidesstattliche Erkl rung 128 128 129 131 134 135 Abbildungsverzeichnis 2 1 Marsrover Sojourner 4 De ee ee 27 ea 28 DA DISpParmal crs s seus EE e A 8 28 2 5 Doppelkamera 2 x Canon Elura mini DV Camcorder 8 29 2 6 Entzerrte Aufnahme mit Prismenvorsatz 2 7 LC Shutter Vorsatz f r Videokameras 9 2 8 Rot Cyan Anaglyphen Darstellung 2 9 Rot Cyan Farbfilterbrille 2 10 Linearer Polarisationsfilter 10 2 11 Doppelprojektor mit Polarisationsfiltern 2 12 LCD Shutterbrille 8 2 13 i Glasses Headmounted Displays 2 14 Pageflipping Verfahren lt lt 38 2 15 Interlaeing Verfahren een 38 3 1 Umsetzung der Joystickeingaben durch den AIBO ERS 43 3 2 Headtracker Track IR der Fa Natural Point 3 3 Freiheitsgrade des AIBO Kopfesl 47 3 4 Neigung des AIBO Halses e 47 ABBILDUNGSVERZEICHNIS 9 3 5 Schema Benutzerschnittstelle 48 4 1 Hardwarearchitektur des Gesamtsystems 2 222 220 54 4 2 Softwarearchitektur der Stereoview Anwendung 56 NARA 59 4 4 Sony Memorystick und PCMUIA Adapter 60 45 Virtual AIBO Server 61
81. ierung von Steuerkommandosl 44 4 1 Einige Beispiele m glicher Walking IDs 4 2 LMS Command 4 3 Wave Formate der Audio T P 4 4 Vergleich Farbformate Video und D3D Iextur 101 11 Vorwort Bereits in meiner Jugend w hrend der Ausbildung zum CNC Programmierer hatte ich ersten Kontakt mit computergesteuerten Werkzeugmaschinen und in dustriellen Robotern und war fasziniert von diesen Anlagen W hrend des Stu diums der Informatik an der Fachhochschule Gie en Friedberg nutzte ich vie le Gelegenheiten mich intensiver mit den Themen K nstliche Intelligenz und Autonome Roboter zu befassen Ein anderes gro es Interesse meinerseits ist die Grafische Datenverarbeitung Als sich mir auf der Suche nach einer passen den Aufgabe an der Fachhochschule Gie en Friedberg die Gelegenheit bot ein Stereo Bildverarbeitungssystem f r einen Sony AIBO Roboter zu entwickeln sah ich keinen Grund mehr zu z gern und so entstand diese Diplomarbeit Ich m chte an dieser Stelle allen meinen Dank aussprechen die mich bei der Umsetzung dieser Arbeit unterst tzten Insbesondere Herrn Prof Dr Ing Axel Schumann Luck der mich als Diplomanden in seinem Team aufnahm das mich hervorragend unterst tzte Nat rlich m chte ich auch meinem Korreferenten Herrn Prof Dr Klaus W st danken Meinen besonderen Dank m chte ich an Dipl Phys Martin Jung aussprechen der mir stets mit Rat und Tat zur Seite stand und mir Zu
82. ige Vorgehen aber durchaus komplex Um das Problem der Reproduktion stereoskopischer Videodaten im Rahmen die ser Diplomarbeit zu l sen mussten drei unterschiedliche Programmier Ans tze getestet werden Der dritte Ansatz f hrte jedoch zu einem ausgezeichneten Er gebnis 10Tn Form angepasster Schnittstellen und Hardware 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 109 Das Unterkapitel befasst sich in erster Linie mit der technischen Realisierung dieses erfolgreichen Ansatzes Der Reproduktion stereoskopischer Bilddaten ber den Umweg der 3D Computergrafik Die ersten fehlgeschlagenen Programmierans tze waren grunds tzlich vielver sprechend und k nnten f r die L sung hnlicher Problemstellungen in der Zu kunft durchaus attraktiv sein Aufgrund dessen soll auf eine kurze Beschreibung nicht g nzlich verzichtet werden 4 4 5 1 Zwei fehlgeschlagene Programmierans tze zur Darstellung stereoskopischer Bilddaten Ansatz 1 Darstellung stereoskopischer Bilddaten mit dem NVIDIA Stereo Blit SDK Die Darstellung stereoskopischer Bilddaten ist in der Direct 3D Grafikschnittstelle aktuelle Version 9 nicht vorgesehen und wurde dementspre chend dort nicht implementiert Um dennoch stereoskopische Bilder darstellen zu k nnen schl gt der Grafikchiphersteller NVIDIA f r seine Grafikkarten eine Speziall sung in Form des NVIDIA Stereo Blit SDKs vor Es soll hier vorweggenommen werden dass dieses SDK in Wahrh
83. iken und hohe Inkompatibilit t zu un terschiedlichen Grafikadaptern zu bef rchten waren wurde die Weiterverfolgung dieses Ansatzes eingestellt 4 4 5 2 Darstellung stereoskopischer Bilder ber die 3D Grafikschnittstelle Direct 3D Nachdem die beiden ersten Ans tze zur Reproduktion stereoskopischer Bilddaten fehlschlugen sollte ein ganz neuer Ansatz verfolgt werden Viele bekannte Hersteller von Grafikchips tzen darunter die Firmen NVIDIA und ATI liefern f r ihre Grafiktreiber Stereoskopie Zusatzmodule zur ste reoskopischen Darstellung dreidimensionaler Computergrafikl Das Stereoskopie Zusatzmodul bildet dazu eine zus tzliche Softwareschicht zwi schen der Direct 3D Grafikschnittstelle und den Treibern der Grafikkarte Direct 3D unterst tzt wie bereits erw hnt keine stereoskopischen Darstellungsverfah ren Das Zusatzmodul zwingt die Grafikkarte jedoch dazu die von der Gra fikschnittstelle gelieferte 3D Modelle aus zwei unterschiedlichen Perspektiven zu Wir kennen solche texturierten 3D Vektorgrafiken aus modernen Computerspielen oder CAD Anwendungen 112 KAPITEL 4 TECHNISCHE REALISIERUNG rendern Eine Perspektive liefert das Bild f r das linke Auge w hrend die zweite Perspektive das Bild f r das rechte Auge liefert Der Betrachter nimmt das dar gestellte 3D Modell also so wahr als w rde er es in der realen Welt mit beiden Augen betrachten Abbildung 4 29 zeigt eine kleine 3D Szene best
84. ilddaten 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 95 4 4 3 4 CVidTexFilter Der Klasse C VidTexFilter nimmt eine besondere Rolle ein Es handelt sich bei dieser Klasse um einen eigens f r das Programm Stereo View entwickelten Directshow Filter zur Verarbeitung von Videodaten Zwei Instanzen dieses Filter eine f r jede Kamera werden durch ein Objekt der Klasse CStereoCap in den Filter Pool der Directshow Schnittstelle eingebunden Jeder der beiden Filter wird in einem eigenen Thread gestartet Die eingehenden Videostreams k nnen so parallel zum restlichen Programm verarbeitet werden 4 4 3 5 CDirect3D Die Klasse CDirect3D vereinfacht die Initialisierung und den Zugriff auf die Di rect X Grafikschnittstelle Direct 3D Sie wird zur Ausgabe der stereoskopischen Bilddaten ben tigt 4 4 3 6 C3DTezxt Die Klasse C3DText wurde entwickelt um w hrend des Betriebs der Direct 3D Grafikschnittstelle auf dem stereoskopischen Display Textdaten anzeigen zu k nnen Die Verwendung der Windows GDP Funktionen zur Textdarstellung ist bei Echtzeit Grafikanwendungen unter Direct 3D nicht m glich Graphikfunktionen des GDI werden nicht direkt durch den Prozessor des Graphikadapters verarbeitet und senken in der Regel die Bildwiederholrate auf inakzeptable Werte 4 4 4 Verarbeitung der Videodaten Die Software des Stereokamerasystems muss zun chst die vom Kamerasystem eingehenden Videodaten aufnehmen und sie in ein Fo
85. inen Byte Zeiger der auf die Bilddaten des zu verarbeitenden Einzelbildes Sample zeigt Ausgabe auf eine Direct 3D Textur Um das Ergebnis der Datenformat Konvertierung in einer Direct 3D Textur ab zulegen wird des weiteren ein Zeiger auf die Bilddaten der Textur ben tigt Die sen erh lt man durch Aufruf der Methode LockRect eines zuvor angelegten Textur Objekts Die Methode erlaubt den exklusiven Zugriff auf ein so gesperr tes Rechteck der Textur Eine von der Methode LockRect mit Daten gef llte Struktur die DIDLOCKED RECT Struktur enth lt eine Zeigervariable mit der Bezeichnung pBits Der Zeiger pBits zeigt auf den Speicherbereich in dem die Bilddaten der Textur abgelegt sind und erm glicht direkten Zugriff auf diese Daten Das Sperren einer Textur durch Aufruf der Methode LockRect sorgt daf r dass die normalerweise im Bildspeicher der Grafikkarte abgelegte Textur in den Hauptspeicher des Rechners kopiert wird Erst dort k nnen die Bilddaten durch den Hauptprozessor bearbeitet werden Solange die Textur gesperrt ist kann die Grafikkarte nicht auf sie zugreifen Bevor die Textur gezeichnet werden kann muss die Methode UnLock des Textur Objekts aufgerufen werden um die Textur zu entsperren Die Erzeugung und allgemeine Benutzung von Direct 3D Texturen wird in der Dokumentation der Direct X Schnitstelle 13 im Unterkapitel Direct X Gra phics exakt beschrieben und kann dort nachgeschlagen werden
86. ines Roboter Steuerprogramms kann ein mobiler autonomer Robo ter selbst ndig auf die Gegebenheiten seiner Umwelt reagieren in ihr navigieren und einfache Aufgaben erf llen Die Anwendungsgebiete mobiler autonomer Roboter sind vielf ltig Interessante Einsatzgebiete sind die automatische berwachung von Geb uden und die auto matisierte Inspektion Mobile Roboter k nnen selbst ndig G nge und R umlich keiten befahren und auf ungew hnliche Begebenheiten oder Ver nderung ihrer Umgebung reagieren beispielsweise durch das Ausl sen eines Alarms wenn sich eine erfasste Person nicht authentifizieren kann Es bietet sich an routinem ige Inspektionsarbeiten beispielsweise in Maschinenparks durch mobile autonome Roboter ausf hren zu lassen Im industriellen Bereich werden mobile Roboter au erdem immer h ufiger als intelligente Transportsysteme eingesetzt Eine Pro duktionsmaschine die nicht mehr ber ausreichend Rohmaterial verf gt kann von einem autonomen mobilen Roboter bei Bedarf nachgeladen werden Insbe sondere f r Arbeiten in schwer zug nglichen Bereichen wie dem Weltraum in denen nur bedingt eine Kommunikation zu einem elektronischen System aufge baut werden kann Funkschatten Signalverz gerung durch gro e Entfernungen im Weltall finden mobile autonome Roboter ihre besondere Verwendung F r alle anderen Anwendungsgebiete muss fallspezifisch entschieden werden ob ein autonomer Roboter die Aufgaben zufried
87. iplikation einer Translationsmatrix mit einer Skalierungsmatrix Die Translationsmatrix verschiebt die Videotextur an die Position 0 0 Vorher wird das Texturobjekt in x und y Achse um den Faktor S 0 25 auf die passende Gr e skaliert Zum Zeichnen des Texturobjektes wird auf das bei der Initialisierung der Direct 3D Schnittstelle erstellte D3DDevice9 Schnittstellenobjekt zur ckgegriffen Es erm glicht in der Anwendung den Zugriff auf die Funktionen des Grafikadap ters Die mit der Videotextur belegte Geometrie wird durch Aufruf der Methode DrawPrimitiveUp in den Backbuffer gezeichnet Analog dazu wird mit dem Zeichnen der zweiten Videotextur rechter Bildkanal fortgefahren In der Austastl cke des Videosignals werden Front und Backbuffer getauscht Der Backbuffer wird zum Frontbuffer und die darin enthaltenen Daten werden auf dem Bildschirm angezeigt 4 4 6 Leistungsmerkmale der Stereoview Anwendung Die Stereo View Anwendung ist in der Lage ausreichende Rechenleistung des Computers vorausgesetzt die Bilddaten eines Doppelkamera Systems in einer PAL Aufl sung von 720 x 576 Bildpunkten und einer Bildrate von 25 Vollbil dern Sekunde zu verarbeiten und auf einem stereoskopischen Display darzustel len Das Bildverarbeitungssystem arbeitet somit verlustfrei Grunds tzlich k nnen alle mit dem Betriebssystem Windows kompatiblen Vi deoeingabeger te verwendet werden Eine wichtige Voraussetzung zum Err
88. irect X 9 Projekts ffnen sie den Visual C Compiler und w hlen sie im Men lt Datei gt den Unterpunkt lt Neu gt W hlen sie in der erscheinenden Dialogbox in der Registerkarte lt Projekte gt den Listenein trag Win32 Anwendung und legen sie ein neues Projekt an Um ein Projekt mit Direct X 9 Unterst tzung erfolgreich compilieren und binden linken zu k nnen ist es notwendig der Entwicklungsumgebung mitzuteilen welche Compilerbibliotheken Libraries in den Linkervorgang einbezogen werden sollen Dazu gehen sie folgenderma en vor W hlen sie im Men punkt lt Projekt gt den Unterpunkt lt Einstellungen gt Im Projekteinstellungsdialog w hlen sie im lin ken oberen Kombinationsfeld WIN32 DEBUG aus um die Einstellungen f r die Debug Konfiguration des Projekts anzupassen Aktivieren sie die Register karte lt Linker gt und setzten sie den Schreibcursor in das Eingabefeld lt Objekt Bibliothek Module gt Dieses Eingabefeld muss um alle zu verwendenden Biblio theken erg nzt werden Abbildung 4 3 4 2 ENTWICKLUNGSUMGEBUNG 99 StereoYiew Microsoft Yisual C StereoCap cpp 8 x la Datei Bearbeiten Ansicht Einf gen Projekt Erstellen Extras Fenster lelx jals ma melo nar a Zu eem CR Ee ES ER Einstellungen f r win32Debua x Allgemein Debug SS Linker Ressol GREG Kategorie Algemen E Zur cksetzen Name der Ausgabedatei Debug StereoView exe
89. isen m chte 4 4 1 2 Directshow Die Direct X Unterkomponente Directshow dient der Aufnahme Verarbeitung und Wiedergabe von Multimediainhalten In dem im Rahmen dieser Diplomarbeit umgesetzten Projekt dem 3D Stereoka mera System wird die Directshow Schnittstelle zur Konfiguration Ansteuerung und Abfrage der Video Eingabeger te verwendet Die Verarbeitung der Videoda ten erfolgt nur teilweise durch Directshow Komponenten In gro en Teilen erfolgt diese durch speziell f r das Projekt entwickelte Programm Modulen die jedoch in die Directshow Architektur eingebettet werden Die Verwendung von Directshow zur Nutzung von Videoeingabeger ten f hrt zu einer sehr gro en Hardware Unabh ngigkeit Das fertige Programm Stereo View ist praktisch zu allen Videoeingabeger ten kompatibel f r welche zum Betriebssystem Windows kompatible Treiber existieren 4 4 1 3 Direct 3D Direct 3D ist eine Direct X Komponente die der Darstellung dreidimensiona ler Computergrafiken auf 3D f higen Grafikadaptern dient Zur Entwicklung des hier vorgestellten Stereokamera Systems wurde die Direct 3D Schnittstelle zur Darstellung entsprechender Videodaten auf einem stereoskopief higen Display verwendet Es soll an dieser Stelle darauf hingewiesen werden dass in Direct 3D Version 9 grunds tzlich die Darstellung stereoskopischer Bilddaten nicht vorgesehen ist Es bleibt zu hoffen dass ein solches Feature in einer zuk nftigen Version int
90. isieren zu lassen Sowohl die Software als auch die Hardware ist modular und flexibel aufgebaut Das Kamerasystem kann durch minimale Umbauten an der Kamerahalterung auf einer Vielzahl von Tr gerrobotern eingesetzt werden vor allem Klein oder Flugroboter die nur geringe Lasten tragen k nnen profitieren von der knapp 40 Gramm leichten energiesparenden Einheit Bei Austausch der Funkkamera module gegen kabelgebundene Kameras w re gar ein Einsatz des Systems unter Wasser oder unter der Erde beispielsweise in Berg oder Kanalbau m glich Die Software des Fernsteuersystems wurde speziell f r den AIBO ERS 7 Roboter ausgelegt und ist daher nicht ganz so flexibel auf andere Roboter bertragbar wie das Stereo Kamerasystem Dennoch bieten die erarbeiteten Konzepte interessan te Grundlagen zur Steuerung von Telerobotern auch wenn deren Anatomie von 130 KAPITEL 5 SCHLUSSBETRACHTUNGEN der des AIBO abweicht Insbesondere die pr zise Steuerung einer Kamera durch Imitation der Kopfbewegungen ihres Bedieners findet viele Anwendungsf lle Als Beispiel sei hier ein Arzt genannt der ber einen Teleroboter eine Operation durchf hrt er k nnte beide H nde zum Lenken der Operationsinstrumente ver wenden w hrend die Kamera des Teleroboters automatisch seiner Blickrichtung folgt Das Stereo Kamerasystem kann durch die Umsetzung weiterf hrender Forschungs ideen in seinen F higkeiten noch wesentlich erweitert werden Beim Einsatz des S
91. iteren Programmablauf die Grafikkarte des Sys 116 KAPITEL 4 TECHNISCHE REALISIERUNG tems Uber die Schnittstelle werden spezielle Ger te Einstellungen vorgenommen und Zeichenoperationen durchgefiihrt Die Initialisierung l uft demnach in drei Schritten ab 1 Erstellung einer Direct3D9 Schnittstelle zur Ermittlung der F higkeiten im System eingebauter Grafikhardware 2 Festlegung der DIDPRESENT_PARAMETERS diese legen den auf die Eigenschaften der Grafikhardware angepassten Grafik Modus fest 3 Erstellung einer IDirect3DDevice9 Schnittstelle diese Schnittstelle dient als Repr sentant der Grafikhardware unter denen in Schritt 2 festgelegten Ei genschaften Zu 1 Die Erstellung eines IDirect3D9 Schnittstellenobjektes geschieht durch Aufruf der Direct X Funktion Direct3DCreate9 D3D_SDK_ VERSION Das Makro D3D_SDK_ VERSION ist in der Direct 3D Headerdatei d3d h festge legt und repr sentiert die Versionsnummer des verwendeten Direct X Software Development Kits Die Funktion liefert als R ckgabewert einen Zeiger auf das Schnittstellenobjekt Zu 2 ber die in Schritt 1 erstellte Schnittstelle Direct3D9 k n nen die Eigenschaften der Grafikhardware abgefragt werden Angelehnt an die F higkeiten der Grafikkarte wird durch Ausf llen einer Datenstruktur D3SDPRESENT PARAMETERS ein Grafik Modus festgelegt Mittels der ausgef llten Datenstruktur wird ber eine Methode der Direct3D9 Schnittstelle ein IDirect
92. iven aufgenommene Aufnahmen des Motivs abgebildet Eine letzte recht interessante Methode zur Aufnahme von stereoskopischen Vi deobildern ist der Einsatz eines LC Shuttervorsatzes Abbildung 2 7 Der Adapter enth lt eine Spiegelkonstruktion die es erm glicht ein Motiv aus zwei leicht unterschiedlichen Perspektiven aufzunehmen 9 Beide Strahleng n ge werden mittels Prisma oder halbdurchl ssigem Spiegel berlagert und dem Kameraobjektiv zugef hrt Damit sich die Bilder der beiden Perspektiven nicht mischen wird in jeden der beiden Strahleng nge ein sogenannter LC Shutter eingesetzt Der aus Fl ssigkristallen engl Liquid Crystal aufgebaute Verschluss engl Shutter ist im Normalzustand durchsichtig Sobald eine Spannung an den 2 3 3D STEREOSKOPIE 31 Abbildung 2 7 LC Shutter Vorsatz f r Videokameras 9 Kristallen angelegt wird verdunkelt sich der Shutter und blockiert den Strah lengang Das Bild einer Fernsehkamera nach PAL Norm wird aus zwei zeitlich versetzt aufgenommenen Halbbildern aufgebaut Zuerst werden alle ungeraden Bildzeilen aufgenommen 1 50 Sekunde sp ter alle geraden Zeilen Synchroni siert man nun die beiden LC Shutter ber den Videoausgang der Kamera mit dem PAL Signal so wird es m glich jeweils eine Perspektive in einem Halbbild des Videosignals abzulegen Statt eines normalen Videosignals mit 25 Vollbildern pro Sekunde in PAL Aufl sung erh lt man auf diese Weise ein Signal welches 25 Ster
93. kamer l 222222 2 m nn nn 49 3 3 2 Mardwardl s lt co csere siset Bee 50 AC III 52 4 Technische Realisierung 53 to es 53 4 1 1 Hardwarearchitektur 44 4 2 2 8 4 2a aa a 53 4 1 2 Softwarearchitekturl 55 4 2 Entwicklungsumgebung 97 4 2 1 Microsoft Visual C 6 und Direct X aDb 97 4 2 1 1 _Inst llabionl 2 2 0000 4 8 4 40 E Are 57 4 2 1 2 Einrichtung eines Projekts 98 4 2 2 AIBO Remote Framework SDK 59 4 2 2 1 Memorystick Image und WLAN Konfiguration 60 4 2 2 2 VATIBO Server 4 26 na Er Er e 61 4 2 2 3 Einbindung in MS VU 62 4 2 2 4 Beispielprogramme 2 2 2222 63 4 2 3 Track IR Enhanced SDK 63 4 2 3 1 Verwendung des Track IR Enhanced SDKs 64 4 2 4 NVidia Stereo Treiberl 64 4 2 4 1 _ Installation 2 2 2 2 om om nn 64 INHALTSVERZEICHNIS 4 2 4 2 Konheuralion zu 4 4 ass HH nr 4 3 AIBO Remote Framework 2 2 o bs add a od ee u de de Beten 4 3 1 1 Programmmodulel 4 3 1 2 Funktionen der VAIBOClient dl 4 3 1 3 _ Kommimikationl 2 2 22 3 2842 4h es A a dado ee A O Be eg 4 3 3 1 CVAIBO Objekt 2 22 42 ense ess 4 3 3 2 Conneet Disconneet 42 44 448244 4 3 3 3 Lock Unloek aan a sur an 4 3 3 4 Internal External Control 4 3 4 Bewegungssteuerung 22a AA A 2 3 44
94. kann ber den Roboter nicht r um lich sehen und die damit verbundenen Vorteile nicht nutzen Die hier angestrebte Entwicklung eines Stereokamerasystems f r den AIBO ERS 7 wird demnach Nachteile des Roboters u a die schlechte Bildqualit t ausglei chen und interessante neue M glichkeiten des Sehens er ffnen Das Stereokamerasystem ist grunds tzlich vom Tr gerroboter unabh ngig und wird nicht zwingend auf dem AIBO ERS 7 eingesetzt werden m ssen Sehr in teressant ist m glicherweise der Einsatz des Systems auf einem Teleroboter mit Greifarmen Mittels eines solchen Roboters k nnten die Vorteile des r umlichen Sehens ausgesch pft werden Mit den Greifern k nnten von einem Menschen ferngesteuert oder sogar durch die Robotersteuerung selbst pr zise Arbeiten ver richtet werden 3 3 2 Hardware F r die Auswahl der passenden Hardware zum Aufbau eines Stereokamerasys tems f r den ERS 7 gibt es zwei wesentliche Parameter Erstens die geringe Gr e des Roboters und zweitens die freie Mobilit t des AIBO ERS 7 Die ge ringen Abmessungen des Roboters vor allem des Kopfes der als Tr ger f r das Kamerasystem dienen soll erfordern sehr kleine und leichte Kameras Der zweite Parameter die Mobilit t erfordert einen drahtlosen bertragungsmechanismus f r die von den Kameras gelieferten Bilder Um den genannten Vorgaben gerecht zu werden bietet sich die Konstruktion ei nes Mini Doppelkamerasystems an Als Kameras w
95. karte verarbei tet und ber ein stereoskopief higes Display an das linke und rechte Auge des Betrachters weitergeleitet Dieses Konzept ist grunds tzlich sehr flexibel und lie e gar die Verwendung ste reoskopischer Texturen in 3D Computerspielen zu wenn die zugeh rige Treiber software technisch ausgereift w re 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 111 Ansatz 2 Manuelle Implementierung des Page Flipping Verfahrens Wie im vorigen Abschnitt bereits angedeutet erwies sich das von NVIDIA ange botene Software Entwicklungs Paket zur Darstellung stereoskopischer Bilddaten zum aktuellen Zeitpunkt als unbrauchbar Ein n chster m glicher Ansatz w re das direkte Ansprechen der Grafikkarte ber ihre Grafiktreiber Auf diesem Wege k nnte ein eigenes Verfahren zur Aufbe reitung eines stereoskopischen Videosignals implementiert werden Im Rahmen dieser Arbeit wurde ein Versuch gestartet das sogenannte Page Flipping Ver fahren hier wird abwechselnd im Takt der vertikalen Bildsynchronisation je weils das Bild f r das linke bzw das rechte Auge angezeigt manuell zu im plementieren Dieser Versuch lieferte interessante Ergebnisse scheiterte jedoch letztlich an Synchronisationsproblemen zwischen Anwendung und Grafikkarte Die mangelnde Synchronisation f hrte im Takt weniger Minuten immer wieder zur Vertauschung der Bildkan le des linken bzw rechten Auges Da durch die sehr hardwarenahe Programmierung weitere Ris
96. konzentrieren kann Die Verhalten des Menschen k nnen grob in drei Kategorien eingeteilt werden 1 Reflex Verhalten 2 Reaktives Verhalten 3 Bewusstes planendes Verhalten Reflexe sind angeborene Verhalten Sie werden durch einen Reiz Stimulus oder eine Kombination von Reizen ausgel st Bekannte Beispiele sind der Kniereflex oder das Niesen Ein ausgel ster Reflex f hrt unmittelbar zu einer Reaktion ohne Einschaltung des Bewusstseins Reaktive Verhalten sind Verhalten die zwar nicht angeboren sind aber durch h ufiges Ein ben so verinnerlicht wurden dass sie ohne bewusstes Nachdenken ablaufen Beispiele f r solche Verhalten beim Menschen sind das aufrechte Ge hen das Verfolgen sich bewegender Objekte oder auch das Drehen des Kopfes in Richtung eines lauten Ger usches Die dritte Kategorie das bewusste planende Verhalten ist zur Simulation durch eine Robotersteuerung ungeeignet Vielmehr ist das planende Verhalten ge rade das Verhalten auf welches sich der Bediener eines Teleroboters konzentrieren k nnen sollte Die beiden anderen Kategorien Reflexe und reaktives Verhalten d rfen jedoch f r die Entwicklung einer guten Steuerung n her betrachtet wer den 42 KAPITEL 3 STEREOKAMERA UND FERNSTEUERSYSTEM 3 2 2 Steuerungskomponenten Zur Steuerung eines zum Teleroboter umgebauten AIBO ERS 7 muss neben der Steuersoftware ein geeignetes hardwareseitiges Benutzer Interface erstellt wer den Die Stand
97. ktoren gespeist und liefert an ihrem Ausgang fertige zweidi mensionale Bildschirmkoordinaten Die Welttransformation wird durch die Weltmatrix durchgef hrt Sie ist daf r verantwortlich dass ein zu zeichnendes 3D Objekt verschoben rotiert und skaliert werden kann Die Weltmatrix entsteht in der Regel durch die Multiplikation einer Einheitsmatrix mit Translations Rotations und Skalierungsmatrizen Die Sichttransformation sorgt daf r dass eine 3D Szene aus der Sicht einer virtuellen Kamera betrachtet werden kann F r die virtuelle Kamera kann durch die Sichtmatrix eine Position und eine Blickrichtung im virtuellen 3D Raum de finiert werden Als letztes durchlaufen die 3D Vektoren die Projektionsmatrix Sie konvertiert die 3D Vektoren zu 2D Bildschirmkoordinaten und sorgt zugleich f r eine korrek te Projektion also f r den 3D Effekt Vereinfacht ausgedr ckt bedeutet dies Objekte nahe der virtuellen Kamera werden gr er abgebildet weiter entfernte kleiner 4 4 5 5 Einrichtung der 3D Grafikszene Die korrekte Einrichtung der 3D Grafikszene ist wesentlich f r das Funktionie ren der Stereo View Anwendung Eine 3D Grafikszene besteht aus dreidimensio nalen Modellen Diese werden beschrieben durch Vektoren geometrische Daten und Texturen Oberfl cheneigenschaften Zus tzlich muss eine virtuelle Kamera im Grafikraum platziert und eingestellt werden Sie dient dazu die 3D Szene aus einer bestimmten Perspektive
98. ldspeicherbereichen Pages einer Grafikkarte Zur Generierung eines Stereo Signals werden im Grafikspeicher zwei unabh ngige Bildpuffer angelegt in denen jeweils ein Kanal des Stereobildes aufgebaut wird Abbil dung 14 Die Grafikhardware koppelt abwechselnd im Takt der vertika len Bildsynchronisation einen der beiden Bildpuffer aufihren Videoausgang aus Zus tzlich wird das Videosignal mit Synchronisationsinformationen ge pr gt sie erm glichen dem Darstellungsmedium sp ter die Zuordnung der Bildrahmen Das Pageflipping Verfahren f hrt zu einer Verdoppelung der Bildwiederholrate des Videosignals unter Beibehalten der Bildaufl sung Interlacing Verfahren Interlacing beschreibt den Aufbau eines Vollbildes aus zwei zeitlich versetzt bermittelten Halbbildern Dabei repr sentiert 2 3 3D STEREOSKOPIE 37 das eine Halbbild alle geraden Bildzeilen w hrend das zweite Halbbild alle ungeraden Bildzeilen enth lt Um auf diese Weise ein stereoskopisches Vi deosignal zu erzeugen wird ein Bildkanal in das erste Halbbild der zweite Bildkanal in das zweite Halbbild eines Vollbildes geleitet Abbildung 2 15 demonstriert diesen Vorgang Die vertikale Aufl sung des so entstandenen Stereo Signals reduziert sich gegen ber dem gew hnlichen Videosignal auf die H lfte Die Bildwiederholrate bleibt jedoch dieselbe Videosignale im PAL Format bertragen pro Sekunde 25 Vollbilder bestehend aus 50 Halb bildern Das Interlaci
99. leck ca 15 ne ben der Stelle des sch rfsten Sehens Beide Sehnerven laufen dann zur partiellen Sehbahnkreuzung dem Chiasma Das Chiasma spielt eine wesentliche Rolle f r das dreidimensionale Sehen Dort werden die rund 1 Million Nervenfasern sortiert Fasern von Sehzellen die Bild informationen links der Fixierlinie diese beschreibt die Mitte des Blickfeldes liefern werden in die rechte Gehirnh lfte weitergeleitet Fasern mit Informatio nen rechts der Fixierlinie in die linke Gehirnh lfte Bei Ankunft der Fasern im prim ren visuellen Cortex Sehzentrum m ssen diese so sortiert sein das die Fasern korrespondierender Netzhautzellen an der gleichen Stelle im Sehzentrum ankommen Korrespondierende Netzhautzellen bedeutet genau die Paare von Netzhautzellen des linken und rechten Auges auf denen gleiche Punkte ei nes Motivs in der Fixationsentfernung Entfernung eines anvisierten Punktes beider Augen abgebildet werden Nimmt man an die Augen einer Testperson fixierten die d nne Spitze eines Blei stiftes so korrespondieren genau jene beiden Netzhautzellen die auf der Netzhaut des linken bzw rechten Auges die Spitze des Bleistiftes abbilden Um ein Motiv scharf abzubilden wirken zwei Regelmechanismen Die Vergenz und die Akkomodation Die Vergenz steuert ber Muskeln die Sichtachsen bei der Augen so dass ein in der Fixationsentfernung befindliches Motiv bei beiden Augen auf den korrespondierenden Netzhautzellen abgebil
100. mcordern zusammenge setzte Stereokamera Die Ausl ser der Kameras m ssen ber die Eing nge f r die Fernausl sung synchronisiert werden Die auf den beiden Videob ndern aufge zeichneten Bilddaten werden auf einem Computer nachbearbeitet und zu einem stereoskopischen Video zusammengef gt Abbildung 2 5 Doppelkamera 2 x Canon Elura mini DV Camcorder 3Rendern im Sinne der 3D Grafik Zeichnen und Texturieren einer dreidimensionalen Vek torgrafik zur Darstellung auf einem Bildschirm 30 KAPITEL 2 GRUNDLAGEN Es ist auch m glich eine Fotokamera horizontal verschiebbar auf einer geraden Metallschiene zu montieren Die Bilder des linken und rechten Auges werden nacheinander manuell aufgenommen Diese Methode macht es jedoch unm glich sich bewegende Motive zu erfassen und ist daher nur f r Landschaftsaufnahmen oder erste Versuche geeignet Eine weitere auch f r bewegte Bilder geeignete Variante ist der Einsatz eines Prismenvorsatzes Die Speziallinse wird vor das Objektiv einer Kamera plat ziert und teilt das aufgenommene Bild an der vertikalen Mittellinie in zwei Halb bilder von denen jedes aus einer etwas anderen Perspektive aufgenommen wurde Nachtr glich wird das in horizontaler Richtung gestauchte Stereobild entzerrt Abbildung 2 6 1024 1024 Abbildung 2 6 Entzerrte Aufnahme mit Prismenvorsatz In der linken und rechten Bildh lfte werden zwei aus leicht unterschiedlichen Perspekt
101. ne rischen Directshow Filter Objekt des Typs IBaseFilter statt Abbildung zeigt ein entsprechendes Code Beispiel Create an empty pointer to a IBaseFilter Interface IBaseFilter pCap NULL Get the Device Interface to the Capture Filter hr pMoniker gt BindTo0bject 0 O IDD_IBaseFilter void amp pCap if FAILED hr 4 An error occured Abbildung 4 25 Listing Erstellung eines Video Capture Filters Als erstes wird ein leerer Zeiger auf ein Basis Filter Interface IBaseFilter erstellt Die Methode IMoniker BindToObject erstellt einen neuen Video Capture Filter und f llt die bergebene Zeigervariable mit der Adresse des Filter Interfaces 4 4 4 3 Video Rendering Filter Video Renderer sind Directshow Ausgabe Filter Sie wandeln einen Videost ream in ein auf dem Computerbildschirm darstellbares Format um oder schrei ben den Stream in eine Datei 100 KAPITEL 4 TECHNISCHE REALISIERUNG Der in Directshow implementierte Standard Video Renderer ffnet zur Darstel lung eines Videostreams ein eigenes Fenster in welchem das Video angezeigt wird Im Bezug auf die Stereo View Anwendung ist der Standard Video Renderer un geeignet Die Anwendung soll die Bilder der angeschlossenen Kameras schlie lich nicht getrennt in zwei Bildschirm Fenstern anzeigen Die Anwendung soll die Vi deostreams mischen und auf einem stereoskopischen Display anzeigen Die einzige M
102. ne Infra rotkamera erfasst um sie auf die Aktorik des Roboters zu bertragen 1 2 berblick ber die Kapitel Dem Leser soll in diesem Abschnitt ein berblick ber die einzelnen Kapitel vermittelt werden um ihm das Suchen und Wiederfinden von Informationen zu erleichtern Kapitel 1 Einleitung Beschreibt die Ziele und den Aufbau der Arbeit sowie die Schriftkonventionen Kapitel 2 Grundlagen Gibt eine Einf hrung in die Welt der autonomen Ro boter und der Telerobotik liefert eine Beschreibung des AIBO ERS 7 Ro boters und vermittelt wichtige Grundlagen der Computerstereoskopie Kapitel 3 Stereokamera und Fernsteuersystem Beschreibt wichtige Konzepte die zur technischen Realisierung der gestellten Aufgaben erarbeitet wurden 1 3 SCHRIFTKONVENTIONEN 15 Kapitel 4 Realisierung Beschreibt zun chst die Einrichtung und Konfigu rieren des Entwicklungsumfeldes Im zweiten Teil des Kapitels wird die Programmierung eines Steuerungssystems f r den AIBO ERS 7 Roboter dargelegt Der dritte Teil des Kapitels behandelt die Realisierung von Pro grammmodulen zur Erfassung und Wiedergabe stereoskopischer Videoda ten Kapitel 5 Schlussbetrachtungen Eine kurze Zusammenfassung der Ergeb nisse Ausblicke auf weiterf hrende Anwendungen der entwickelten Systeme und neue Forschungsideen f r zuk nftige Projekte auf den beschriebenen Fachgebieten Zus tzlich wird die Arbeit durch eine Begleit CD erg nzt Sie enth lt
103. ng um die IDirect3DDevice9 Schnittstelle Dadurch ist die Erstellung einer multithread f higen Ger te Schnittstelle zwingend Der Pa rameter amp PParams ist die Adresse der in Schritt 2 angelegten und mit Daten ge f llten D8DPRESENT PARAMETERS Datenstruktur und beinhaltet den ein zustellenden Grafik Modus Der letzte Parameter 8lpD3DDevice9 ist die Adresse eines noch leeren Objektzeigers Der Zeiger wird durch den erfolgreichen Aufruf der IDirect3D9 CreateDevice Methode mit der Adresse des neu angelegten IDirect3DDevice9 Schnittstellenobjektes gef llt 4 4 5 4 Direct 3D Transformationspipeline Unter Transformation versteht man im Sinne der 3D Computergrafik die Umfor mung und Anpassung geometrischer Daten Vektoren Darunter f llt das Ver schieben Drehen und Skalieren von 3D Objekten ebenso wie die Umformung von 3D Koordinaten in eine bildschirmkompatible 2D Form ganzzahlige Bild schirmkoordinaten Die Transformation f hrt Direct 3D automatisch unter Zuhilfenahme einer Transformationspipeline durch und nutzt f r die notwendigen Berechnungen wenn m glich die Grafikhardware Die Transformationspipeline selbst besteht 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 119 aus drei hintereinandergeschalteten Transformationsmatrizen Die Weltma trix die Sichtmatrix Kameramatrix und die Projektionsmatrix Ist die Pipeline richtig konfiguriert wird sie an ihrem Eingang mit dreidimensio nalen Geometrie Ve
104. ng Verfahren macht es somit m glich stereoskopische Videos auf DVD Medien unter Einhaltung der PAL Norm zu speichern und auf handels blichen Playern wiederzugeben Die Betrachtung eines solchen Videos kann auf einem gew hnlichen Fernsehger t unter Zuhilfenahme ei ner LC Shutterbrille erfolgen Gew hnlich kann in der Treiber Konfiguration eines stereoskopief higen Grafi kadapters zwischen Pageflipping und Interlacing Verfahren frei gew hlt werden Das zu w hlende Verfahren h ngt von Art und Ausf hrung der Darstellungsge r te ab Ger te die f r den Anschluss an ein Computersystem vorgesehen sind erwarten in der Regel ein mittels Pageflipping kodiertes Signal 38 KAPITEL 2 GRUNDLAGEN Linker Bildkanal Rechter Bildkanal 25 Bilder Sek Page flipping Stereosignal A 50 Bilder Sek Abbildung 2 14 Pageflipping Verfahren Linker Bildkanal Ea 3 Rechter Bildkanal 25 Bilder Sek Inter lacing Stereosignal ER Halbbild A 2 Halbbild 25 Bilder Sek Abbildung 2 15 Interlacing Verfahren Kapitel 3 Stereokamera und Fernsteuersystem Dieses Kapitel beschreibt einige grundlegende Konzepte die zur Entwicklung eines Stereokamera und Fernsteuersystems f r den AIBO ERS 7 erarbeitet wur den Zun chst sollen jedoch Aufgabenstellung und Ziele der Arbeit noch einmal ins Ged chtnis gerufen werden 3 1 Aufgabenstellung und Ziel
105. ngssicht etwa 50 60 Herz Diese Frequenz bertrifft die maximale Anzahl pro Sekunde eintreffender Videobilder Somit ist gew hrleistet dass jedes Einzel bild der beiden Videostreams gezeichnet wird Das Zeichnen der Videotexturen wird in der zentralen Programmschleife Win Main der Stereo View Anwendung durch Aufruf der Methode Render der Klasse CStereoCap angesto en Abbildung 4 37 zeigt den prinzipiellen Aufbau der Render Funktion Das Beispiel beschr nkt sich auf das Zeichnen der Videotex tur die auf dem linken Auge des Betrachters abgebildet wird Das Zeichnen der Textur f r das rechte Auge erfolgt hnlich Das Grafikobjekt wird hier jedoch an der Position 0 0 satt amp 0 0 im Koordinatensystems gezeichnet Die besagte Render Methode pr ft nach ihrem Aufruf als erstes ob eine der zu zeichnenden Texturen gerade durch das Einspielen eines neuen Video Einzelbildes aktualisiert wird Ist dies der Fall wartet die Methode auf den Ab schluss dieses Vorgangs um nicht mit dem Video Texture Rendering Filter zu kollidieren Anschlie end wird eine Geometrie in Form eines flachen Rahmens erzeugt Auf diesen Rahmen wird die Textur mathematisch aufgespannt damit Direct 3D sie darstellen kand 4Direct 3D zeichnet im eingestellten Modus nur mit Texturen belegte Vektorgrafiken 126 KAPITEL 4 TECHNISCHE REALISIERUNG HRESULT CStereoCap Render Zeichnen der linken Video Textur
106. ny 2004 13 Microsoft Direct X Online Dokumentation Dokumentation zum Direct X SDK Microsoft 2004 134 LITERATURVERZEICHNIS 135 14 Hilsenstein Volker Design and Implementation of a Passive Stereo Infrared Imaging System for the Surface Reconstruction of Water Waves Dissertati on Universit t Heidelberg Fakult t f r Physik und Astronomie 2004 URN NBN urn nbn de bsz 16 opus 46018 15 NVIDEA Display und Stereotreiber http www nvidia com 03 01 2005 16 Natural Point Track IR Head Tracking System http www naturalpoint com 03 01 2005 Eidesstattliche Erkl rung Hiermit erkl re ich die vorliegende Diplomarbeit selbst ndig verfasst und noch nicht anderweitig zu Pr fungszwecken vorgelegt zu haben Ich habe keine ande ren als die angegebenen Quellen und Hilfsmittel benutzt und habe w rtliche oder sinngem e Zitate als solche gekennzeichnet Gie en den Unterschrift 136
107. ny herausgegebene AIBO Remote Framework ist eine gute L sung zur Entwicklung eines ergonomischen Fernsteuersystems Leider befindet es sich zum Zeitpunkt der Erstellung dieser Diplomarbeit noch in einem Beta Stadium Neben m glichen Fehlern in der Software erschwert eine unzureichende Dokumentation den Einsatz des AIBO Remote Frameworks 3 3 Stereokamerasystem In den folgenden Abschnitten wird er rtert welche Vorteile der Einsatz eines Stereokamerasystems auf dem AIBO Roboter bietet Au erdem wird dargelegt welche Anforderungen ein solches System an die einzusetzenden Hard und Soft warekomponenten stellt 3 3 1 Warum Stereokamera Der AIBO ERS 7 verf gt von Hause aus ber einen in die Nase des Roboters eingebauten CMOS Bildsensor Bilder dieser internen Kamera werden durch die Software des Roboters verarbeitet und ber die Wireless LAN Schnittstelle versendet Trotz des mit gro z gigen 350 000 Bildpunkten angegebenen Sensors ist die zu erzielende Bildqualit t und Bildrate vor allem bei der bertragung bewegter Bilder sehr gering Auch die geringe Lichtempfindlichkeit des Bild sensors schafft viele Probleme Eine stereoskopische Bildaufnahme ist mit der Grundausstattung des AIBO ERS 7 nat rlich ebenfalls nicht m glich Das hei t Diese ist praktisch nur in Form wenig kommentierter Beispielprogramme vorhanden 50 KAPITEL 3 STEREOKAMERA UND FERNSTEUERSYSTEM der Bediener eines AIBO Fernsteuersystems
108. pp RightEar Accl RAJI Mouth Acc2 P R2 I Head Acc3 ARJZ Chin Abbildung 4 6 Beispielprogramm Anzeige der AIBO Sensordaten 4 2 3 Track IR Enhanced SDK Das Track IR Enhanced SDK ist ein Entwicklungspaket f r den Track IR Headtracker der Firma Natural Point Der Bezug des SDKs gestaltet sich sehr b rokratisch und somit aufwendig Das SDK muss schriftlich mittels Brief oder Fax bei der amerikanischen Firma beantragt werden Natural Point verlangt pr zise Angaben ber das Projekt und das Unternehmen in dem das 64 KAPITEL 4 TECHNISCHE REALISIERUNG SDK eingesetzt werden soll Nach Priifung des schriftlichen Antrags wird per Email ein Link versendet ber den das SDK aus dem Internet heruntergeladen werden kann Qualit t und Dokumentation des Entwicklungspaketes sind jedoch vorbildlich Der zum Bezug n tige Aufwand lohnt sich also durchaus 4 2 3 1 Verwendung des Track IR Enhanced SDKs Der Funktionsumfang des Track IR Enhanced SDKs ist so gering dass Natu ral Point keine speziellen Compilerbibliotheken mitliefert Stattdessen wird der direkte Zugriff auf die Laufzeitbibliotheken des Track IR Headtrackers in Form eines Beispielquellcodes beschrieben Die einzelnen Funktionen einer Dynamic Link Library sie repr sentiert die ein zige Laufzeitkomponente des SDKs werden durch die in einer mitgelieferten IN CLUDE Datei enthaltenen Makros gekapselt Das Ansprechen des Headtrackers in eigenen P
109. r 4 2 2 AIBO ERS 7 Der Name AIBO ist die Produktbezeichnung eines von der Firma Sony entwi ckelten Roboterhundes Der AIBO ERS 7 vertritt bereits die dritte Generation dieser Serie Die Bezeichnung AIBO steht f r Artifical Intelligence Robot dt Roboter mit k nstlicher Intelligenz Im englischsprachigen Kontext ist Artifical Intelligence auch als eine Anspielung auf einen Roboter mit Augen zu ver stehen In Japan der Geburtsst tte des kleinen Roboterhundes bedeutet AIBO soviel wie Kumpel oder Partner Vergleiche 5 6 2 2 1 Idee Nach eigenen Angaben hat Sony mit dem ERS 7 ein k nstliches Wesen erschaf fen das sich nicht nur frei bewegen sondern auch selbst ndig denken kann Der ERS 7 kann Gef hle ausdr cken und instinktives Verhalten zeigen Und er kann seine F higkeiten und Pers nlichkeit durch Lernen weiterentwickeln Unter Ler nen ist in diesem Zusammenhang die Ausbildung und nderung von Verhalten durch u ere Einfl sse zu verstehen Nach obiger Definition Abschnitt ist 2 2 AIBO ERS 7 21 der AIBO ERS 7 unter Verwendung der von Sony mitgelieferten AIBO Mind Software ein mobiler autonomer Roboter Die Software setzt sich aus drei mit einander kombinierten Modulen zusammen AIBO Recognition AIBO Life 2 und AIBO Explorer Mittels dieser Programmmodule wird der Roboter in die Lage versetzt Gegenst nde und T ne wiederzuerkennen Instinkte und Ge
110. r Daten eines Entfernungssensors mit der ID PSDWithXY_FN int numOfData aiboID aiboID HIWORD wParam numOfData IOWORD wParam Loop for each sensor rec for int i 0 i lt numOfData i Sensor value long lValue long SensorRec x recArray i value receive Distancesensor data if SensorRec x recArray i sensorID PSDWithXY_FN convert and store distance data m_fDistanceSensor float lValue 10000 0f Abbildung 4 12 Listing Auswertung von Sensor Daten 5Die IDs aller internen Sensoren sind in der INCLUDE Datei CPCInfo h des Frameworks zu finden 80 KAPITEL 4 TECHNISCHE REALISIERUNG Create new DirectSound wrapper and init m pATPDirectSound new CATPDirectSound Initialize CATPDirectSound Object m_pATPDirectSound Init m_MsgHwnd Abbildung 4 13 Listing Initialisierung der CATPDirectSound Schnittstelle 4 3 6 Audio Es ist ber das AIBO Remote Framework m glich sowohl Audiodaten von den Mikrofonen eines AIBO Roboters zu empfangen als auch Audiodaten ber den eingebauten Lautsprecher des Roboters wiederzugeben Die Daten werden dazu ber die Netzwerkverbindung gestreamt 4 3 6 1 AIBO Audio TP Die Audio TP ist hnlich wie die Sensor TP ein auf dem Roboter laufender Service Task der das Streamen von Audio Daten ber das Netzwerk erm glicht Zur Nutzung der Audio TP wird zun chst eine Hilfsschnittstelle das CATP Di rectsound Int
111. r die Realisierung eines Fernsteuersystems f r diesen Roboter dargelegt 128 5 2 AUSBLICK 129 Zum Abschluss der Arbeit wird die Implementierung einer Software zur Echt zeitverarbeitung und Darstellung stereoskopischer Videobilder geschildert Dazu wird das Ansprechen von Videoeingabeger ten unter der Multimediaschnittstelle Direct X beschrieben und die Realisierung eigener Algorithmen zur Echtzeitver arbeitung von Videostreams erkl rt Ein neues Verfahren zur Darstellung der stereoskopischen Bilddaten eines Doppelkamerasystems unter Verwendung der Grafikschnittstelle Direct 3D wurde erarbeitet und realisiert 5 2 Ausblick Ziel der Arbeit war es nicht ein System zur L sung eines konkreten Problems zu entwerfen Vielmehr sollte die Basis f r eine ganze Reihe verschiedener Anwen dungen geschaffen werden Bei den implementierten Funktionen handelt es sich tats chlich um rudiment re F higkeiten die fast allen Lebewesen zukommen In dieser Eigenschaft sind sie nicht dazu da nur einzelne spezielle Probleme zu l sen Vielmehr helfen sie in gro em Umfang bei der Bew ltigung der gesamten Erfahrungswelt So sind die neuen Funktionen des AIBO nicht auf ein festes Problem gerichtet sondern sie sind Instrumente die dazu beitragen unsere konkreten Sinneserfahrungen auf Maschinen zu bertragen und diese so besser kontrollieren und steuern zu k nnen Damit scheinen sich tats chlich eine Vielzahl praktischer Anwendungen real
112. r gestaltet sich die Kommunikation vom Roboter hin zur PC Anwendung Der mit der PC Anwendung verkn pfte Roboter sendet seine Infor mation an den Virtual AIBO Server Der Server seinerseits nutzt das Windows Nachrichtensystem um die Information an die entsprechende PC Anwendung wei terzuleiten Die Anwendung muss dazu der VAIBOClient DLL ein Handle auf ihr Anwendungsfenster bergeben Die vom Virtual AIBO Server eingehenden Nach richten werden ber die VAIBOClient DLL an die Windows Nachrichtenschleife 70 KAPITEL 4 TECHNISCHE REALISIERUNG Anwendung n Anwendung 1 Windows Messages Abbildung 4 9 Architektur und Infrastruktur einer Remote Framework Anwen dung der Anwendung weitergeleitet und m ssen in deren Ereignisbehandlungsroutine verarbeitet werden Der Austausch gr erer Datenmengen Bild Tondaten erfolgt nicht ber die Windows Nachrichtenschleife Diese Daten werden ber einen gemeinsamen Speicherbereich Shared Memory zwischen den Prozessen ausgetauscht Soll beispielsweise ein Datenblock eines Audiostreams von der PC Anwendung ange nommen werden so erh lt diese die Nachricht WA AUDIOTP_ UPDATE Da durch wird signalisiert dass ein neuer Datenblock zur Abholung aus dem Shared Memory bereit steht Ein Zeiger auf den Datenblock wird ber die der Nachricht zugeordneten Variable lParam bermittelt 4 3 AIBO REMOTE FRAMEWORK 71 4 3 2 Die Klasse CAiboRF Im Rahmen dieser Diplom
113. r muss in ein Textur Farbformat beispiels weise das X8R8G8B8 Format umgerechnet werden Beispielalgorithmus zur Bilddatenkonvertierung Abbildung zeigt eine beispielhafte Implementierung des Konvertierungsalgo rithmus Zu Beginn des Beispielalgorithmus wird zun chst jeweils ein Zeiger auf die Da ten des Videobildes und ein Zeiger auf die Daten der Textur ausgelesen Das Speicherabbild des Videobildes ist gegen ber dem Original an der horizontalen Achse gespiegelt Das Bild steht auf dem Kopf Die erste Zeile des Datenblocks entspricht somit der letzten Zeile des Bildes Um die Ausrichtung des Bildes zu korrigieren muss der Konvertierungsvorgang mit der letzten Zeile des Da tenblocks beginnen und mit der ersten Zeile enden Die Operation pVideo 106 KAPITEL 4 TECHNISCHE REALISIERUNG Get pointer to video sample data and set it to the first row of the picture last row in data block BYTE x pVideo pSample GetPointer amp pVideo pVideo dwVideoWidthx dwVideoHeight 1 3 Get pointer to texture data BYTE pTexture BYTEx LockedRect pBits Get pitch and recalculate to pizxel row 4 Bytes per pixel DWORD dwPitch LockedRect Pitch 4 Convert video data to texture data for DWORD y 0 y lt dwVideoHeigth y for DWORD x 0 x lt dwVideoWidth x pTexture 255 unused alpha x pTexture pVideo 2 Red x pText
114. r zweiten H lfte des Kapitels werden die Grundlagen des r umlichen Sehens erl utert und g n gige Ger te und Verfahren zur stereoskopischen Bildaufnahme und Darstellung beschrieben 2 1 Autonome Roboter und Teleroboting 2 1 1 Autonome Roboter Als Autonomie griech autonomia sich selbst Gesetze gebend selbst n dig bezeichnet man Selbst ndigkeit Unabh ngigkeit Selbstverwaltung oder Entscheidungsfreiheit Demnach sind autonome Roboter also Maschinen die selbst ndig handeln k nnen und dabei inneren Gesetzen gehorchen Eine solche Maschine einmal aktiviert handelt nach zuvor eingegebenen Verhaltensvorschriften und bedarf w hrend des Betriebes keiner eingreifenden Steuerung durch einen Menschen Mobile autonome Roboter sind eine besondere Untergruppe der autonomen Roboter Ein Roboter wird als mobil bezeichnet wenn er Aktoren zur freien 17 18 KAPITEL 2 GRUNDLAGEN Ver nderung seiner Position in der Umwelt besitzt Der Aktionsraum eines sol chen Roboters wird in der Regel nur durch Umgebung W nde und begrenzte Energieressourcen beschr nkt Die Orientierung in der Umwelt muss daher durch externe Sensoren erfolgen vergleiche DI Um frei in einer m glicherweise unbekannten Umgebung navigieren und agie ren zu k nnen m ssen Informationen die ber die externen Sensoren aufgenom men wurden im Roboter analysiert und verarbeitet werden Durch entsprechende Auslegung e
115. rasystem Direct Show Direct 3D Abbildung 4 2 Softwarearchitektur der Stereoview Anwendung 4 2 ENTWICKLUNGSUMGEBUNG 97 System Steuer PC als ein Objekt der Klasse Virtual AIBO ber dieses Objekt k nnen die Funktionen des Roboters gesteuert werden und Zust nde abgefragt werden Die Softwaremodule Fernsteuerung und Stereokamera sind unabh ngig vonein ander einsetzbar 4 2 Entwicklungsumgebung Die technische Realisierung des Stereokamera und Fernsteuersystems f r den Al BO ERS 7 geschieht auf Grundlage einer aus verschiedenen Entwicklungspaketen zusammengesetzten Entwicklungsumgebung Im folgenden werden die einzelnen Komponenten der Entwicklungsumgebung und deren Installation beschrieben 4 2 1 Microsoft Visual C 6 und Direct X 9 SDK Der Microsoft Visual C Compiler zusammen mit der zugeh rigen Ent wicklungsumgebung dem Visual Studio eignet sich hervorragend zur Erstellung von Computerprogrammen f r die Microsoft Windows Plattformen Durch das Hinzuf gen des Direct X 9 Software Development Kits wird das Entwick lungspaket um eine sehr leistungsf hige Softwareschnittstelle zur Entwicklung von Multimediaapplikationen erweitert 4 2 1 1 Installation Zur Installation des Visual C 6 Compilers folgen sie nach Einlegen der Installations CD den Anweisungen auf dem Bildschirm Nach erfolgreicher Instal lation des Compilers wird das Direct X 9 SDK nachinstalliert Beim Auf
116. rehbewegungen k nnen in der Regel in den drei Geschwin digkeitsstufen slow normal und fast ausgef hrt werden Die Angabe der Geschwindigkeitsstufe erfolgt durch einen Zusatz in der Bezeichnung der Walking ID Ein schneller Vorw rtslauf wird beispielsweise durch die Walking ID DW _FORWARD_ FAST beschrieben Der Befehl f r den Lauf einer leichten Linkskurve 10 Grad im schnellen Gang lautet demnach beispielhaft Do Walking DW_FORWARD_ FAST 10 4 3 4 2 Kopfwinkeleinstellung Die Einstellung des Blickwinkels des AIBO Kopfes erfolgt mittels der Metho de CVAIBO ChangeHeadAngle int angleH int angleV int nSpeed 2 des CVAIBO Objekts Der erste Parameter angleH beschreibt den Blickwinkel in horizontaler Ebene der zweite Parameter angleV den Blickwinkel in vertikaler Ebene Die Winkelangaben erfolgen jeweils in Grad innerhalb eines Intervalls von 93 0 93 f r den Horizontalwinkel bzw 20 50 f r den Ver tikalwinkel Wird f r beide Winkel ein Wert von 0 angegeben blickt der Roboter nach vorne in Richtung seiner L ngsachse Bei Angabe negativer Winkel dreht er den Kopf nach links bzw nach oben Bei Angabe positiver Werte dreht AIBO den Kopf nach rechts bzw unten 76 KAPITEL 4 TECHNISCHE REALISIERUNG Der dritte Parameter nSpeed ist optional Er gibt die Geschwindigkeit der Be wegung an Leider ist dieser Parameter nicht n her dokumentiert so kann die gew nschte
117. rhalb sehr kurzer Zeit einen dreidimensionalen berblick ber seine unmittelbare Um gebung zu verschaffen Volker Hilsenstein pr sentiert in seiner Dissertation Evaluationen und Vergleiche von Algorithmen zur Echtzeit Analyse stereoskopischer Bilddaten 5 3 PERS NLICHES SCHLUSSWORT 131 Autonome Roboter die unter h heren Geschwindigkeiten kollisionsfrei navigieren m ssen sind auf eine schnelle dreidimensionale Erfassung der im Sichtbereich liegenden Umgebung angewiesen F r sie br chte das zuvor beschriebene System erhebliche Vorteile Als Beispiele seien hier autonome Flugger te Helikopter Flugzeuge genannt Unserem langsamen AIBO der sich auf festem Untergrund bewegt w rde die Kollision mit einem Hindernis wahrscheinlich nicht schaden Ein Flugger t dagegen w rde mit gro er Wahrscheinlichkeit besch digt oder so destabilisiert dass ein Absturz nicht mehr vermieden werden kann 5 3 Pers nliches Schlusswort Die Informatik bietet ein nahezu unersch pfliches Spektrum an interessanten Be reichen mit denen man sich besch ftigen kann Jedoch ist die Robotik meiner Ansicht nach ein besonders interessantes Gebiet Nirgendwo sonst bietet sich die Gelegenheit die Fachgebiete Maschinenbau Elektrotechnik und Informatik auf hnlich spannende Weise zu kombinieren Ich habe das Thema dieser Arbeit mit Begeisterung bearbeitet und die verbrachte Zeit sehr genossen So hoffe ich in der Zukunft die Gelegenheit z
118. rmat bringen dass ber die Direct 3D Grafikschnittstelle dargestellt werden kann Das dazu notwendige Vorgehen wird in den folgenden Abschnitten beschrieben 8GDI Graphics Device Interface 96 KAPITEL 4 TECHNISCHE REALISIERUNG 4 4 4 1 Filtergraphen Videodaten werden unter Directshow in Form von Datenstr men sogenannten Videostreams abgebildet Der gesamte Weg den ein Datenstrom unter Directshow beschreitet wird durch sogenannte Directshow Filter beschrieben Ein Filter besitzt normalerweise einen Eingabe Pin und einen unter Umst nden auch mehrere Ausgabe Pin s Pins sind Anschl sse ber die ein Datenstrom in einen Filter eingeleitet bzw aus ihm ausgeleitet wird Mehrere Filter k nnen ber ihre Ein und Ausgabe Pins miteinander verbunden werden Einen Verbund mehrerer Filter nennt man einen Filtergraphen Es gibt drei Kategorien von Filtern 1 Eingabe Filter 2 Verarbeitungs Filter 3 Ausgabe Filter Ein Video Eingabefilter hat keinen Eingabepin Seine Eingabe bezieht er statt dessen aus einer Datenquelle Datenquellen k nnen unter anderem Videodateien oder Video Eingabeger te sein Eingabefilter die Video Eingabeger te beispiels weise eine USB Kamera ansprechen bezeichnet man als Video Capture Filter Verarbeitungs Filter haben einen Eingabe Pin ber den ein Datenstrom in den Filter eingeleitet wird Innerhalb des Filters wird der eingehende Datenstrom ver arbeitet ber einen unter Umst
119. rogrammen gestaltet sich nach Studium von Dokumentation und Beispielquellcodes einfach und effizient und bedarf keiner weiteren Erl uterung 4 2 4 NVidia Stereo Treiber Der NVIDIA Stereo Treiber stellt eine Erweiterung der herk mmlichen NVIDIA Grafik Chipsatztreiber in Form eines Stereoskopie Zusatztreibers dar Er kann kostenlos ber die Internetseiten der Firma NVIDIAP bezogen werden Es ist darauf zu achten dass die Version des Stereo Treibers mit der Version des verwendeten Grafiktreibers bereinstimmt 4 2 4 1 Installation Die Installation erfolgt durch einfaches Einspielen des Treibers nach vorheriger Installation der NVIDIA Referenz Grafik Chipsatztreiber Das genaue Vorgehen ist auf den Internetseiten von NVIDIA dokumentiert www nvidia com 4 2 ENTWICKLUNGSUMGEBUNG 65 4 2 4 2 Konfiguration Der Stereo Treiber wird ber die erweiterten Grafikeinstellungen des Windows Systems konfiguriert In den Konfigurationsmen s werden diverse Stereoeigen schaften eingestellt und getestet Wichtig f r den Betrieb mit den I Glasses VR Display sind folgende Einstel lungen 1 Der Pageflipping Modus muss aktiviert sein 2 Die Stereo Bildwiederholrate sollte auf max 100 Hz eingestellt werden Eine h here Rate k nnte das angeschlossene Display berfordern 3 Der Wert f r die Intensit t des Stereoeffektes muss auf genau 60 einge stellt werden Alle anderen Werte k nnen nach Wunsch an
120. ros gesetzt e L ID E_MOVEPOS e M ID M_LIE 4 3 AIBO REMOTE FRAMEWORK 77 e S ID 8 SLEEPM Die Makros werden in der Exel Datei REI COD betal xls des AIBO Remote Frameworks n her beschrieben Die L ID gibt die Bewegungsgruppe E MOVEPOS an Das Makro steht f r Mo ve Posture was soviel bedeutet wie ndere Haltung Die M ID legt die Un tergruppe M_ LIE fest Es soll also eine liegende Position eingenommen werden Am Ende gibt die S_ID an wie diese Position genau einzunehmen ist Das Ma kro _SLEEPM steht f r Bone Pillow Sleeping Posture also Knochenkissen Schlafposition Der AIBO Roboter wird demnach falls sein AIBO Knochen vor ihm liegt sich hinlegen und seinen Knochen als Schlafkissen benutzen 4 3 5 Sensorabfrage Die Abfrage der internen Sensoren Entfernungssensoren Batteriesensoren Tast sensoren usw des AIBO Roboters erfolgt ber einen auf dem Roboter laufenden Servicetask Alle Sensordaten werden als Datenpaket in vorher definierten Zeit intervallen der Anwendung zugestellt bzw k nnen von dieser explizit angefordert werden 4 3 5 1 AIBO Sensor TP Die Sensor TP ist der Service der innerhalb des AIBO Remote Frameworks f r die Abfrage der Sensoren und Zustellung der Sensordaten ber das Netzwerk verantwortlich ist Zur Aktivierung der Sensor TP und dem Empfang von Sensordaten sind folgende Schritte n tig 1 Anforderung des entsprechenden Netservices zwecks Aktivi
121. rtechnischen Teil der vorlie genden Arbeit dar und vereinigt ein Stereokamera System mit einem Fernsteuer System f r den AIBO ERS 7 Roboter Im folgenden soll ein berblick ber die Programmkomponenten und deren Zu sammenwirken dargelegt werden 4 4 3 1 Klassendiagramm 4 4 3 2 WinMain Die Funktion WinMain ist die Einsprungfunktion eines jeden Windows Programms Im Falle der Anwendung Stereo View ist sie gleichzeitig ein Steu ermodul welches die anderen Programmmodule koordiniert 94 KAPITEL 4 TECHNISCHE REALISIERUNG WinMain CStereoCap m C3DText StereoView Anwendung Klasse A A B verwendet Klasse B CVidTexFilter Abbildung 4 22 Klassendiagramm der Stereo View Anwendung Durch Aufruf der Funktion WinMain wird das Anwendungsfenster erzeugt und nacheinander alle anderen Programmmodule initialisiert und auf ihren Betrieb vorbereitet In WinMain befindet sich auch die Windows Nachrichtenschleife des Pro gramms Dort erfolgen Reaktionen auf eventuelle Benutzereingaben und die Ko ordination des Programmablaufs Nachdem der Benutzer ein Signal zum Beenden des Programms gegeben hat werden alle Programmmodule heruntergefahren und das Programm beendet 4 4 3 3 CStereoCap Die Klasse CStereoCap implementiert die Programmfunktionen zur Aufnah me Verarbeitung und Wiedergabe der von dem an den PC angeschlossenen Doppelkamera System eingehenden B
122. signale und leiten sie ber zwei USB Schnittstellen in den Steuer PC Der untere Teil der Abbildung zeigt das entfernte System den AIBO Ro boter mit der aufgesetzten Stereokamera Der AIBO ERS 7 ist ber seine W LAN Schnittstelle mit dem Steuer PC verbunden Die Stereokamera funkt die aufgenommenen Bilder auf dem analogen 2 4 GHz Band zu den A V Receivern des lokalen Systems 4 1 2 Softwarearchitektur Abbildung 4 2 zeigt die Architektur der f r das Stereokamera und Fernsteuer system entwickelten Software Die Software wird im folgenden als Stereoview Anwendung bezeichnet Die Anwendung gliedert sich in zwei Programmmodule Das AIBO Fernsteuer system und das Stereokamerasystem Zwischen den Modulen existiert im We sentlichen nur eine Schnittstelle ber diese werden ausgew hlte Sensordaten des AIBO ERS 7 Batteriezustand Entfernungssensor in die stereoskopische Bild ausgabe eingebunden Das Software des Fernsteuersystems baut auf dem AIBO Remote Framework auf Das Framework repr sentiert einen realen AIBO ERS 7 auf dem fernsteuernden KAPITEL 4 TECHNISCHE REALISIERUNG Stereoview Anwendung AIBO Fernsteuerssystem AIBO Remote Framework Audiostream Audio Generierung e Services i Steuerkommando Bewegungs Virtual AIBO Generierung Steuerung T Server Sensordaten Joystick Headtracker AIBO ERS 7 Auswertung Services Stereokame
123. sind In Computeranwendungen die stereoskopische 3D Grafik darstellen wird in der Regel nur die Vergenz also die relative Verschiebung eines Motivs zwischen den 28 KAPITEL 2 GRUNDLAGEN Objekte im Sichtfeld Abbildung 2 3 Fixierung eines Motivs durch ein Augenpaar Abbildung 2 4 Disparit t 2 3 3D STEREOSKOPIE 29 beiden Augen simuliert Dazu wird ein 3D Modell zweimal gerendert und zwar aus der Perspektive jedes der beiden Augen Die Simulation der Akkummodati on des Scharfstellens der Augenlinsen erfordert einen sehr hohen Hardwareauf wand und f hrt zu keiner wesentlichen Verbesserung des Darstellungsergebnisses Auf die Simulation der Akkommodation wird daher in der Regel verzichtet 7 2 3 2 Stereoskopische Aufnahmesysteme Zur Erfassung von 3D Stereo Bildern die nicht aus k nstlich erzeugten Vektorda ten reproduziert werden sondern der realen Welt entspringen werden stereosko pische Bildaufnahmeverfahren eingesetzt Auf dem Markt existiert eine Vielzahl von Ger ten die dem Anwender die Aufnahme von Stereobildern oder Videos erm glichen sollen Eine naheliegende L sung ist der Einsatz einer Doppelkamera Ein solches Ge r t wird nicht f r den Massenmarkt angefertigt und ist daher sehr teuer Aus diesem Grund wird die Doppelkamera h ufig aus zwei handels blichen im Au genabstand von etwa 6 cm angeordneten Foto oder Videokameras konstruiert Abbildung zeigt eine aus zwei Canon Elura DV Ca
124. smesssensoren bereit Einer davon sitzt im Kopf des Roboterhundes und misst die Entfernung zu dem Objekt das sich im Fokus der Kamera befindet Der zweite Sensor in der Brust ist im 60 Winkel nach unten gerichtet und dient in erster Linie dazu AIBO vor nahenden Kanten oder Treppenabg ngen zu warnen Um Ber hrungen seines Besitzers wahrnehmen zu k nnen verf gt AIBO ber drei Ber hrungssen soren am R cken und einen an seinem Hinterkopf Verschiedene Aktoren erm glichen dem Roboter sich zu bewegen und seine K r persprache auszudr cken Vier Beine mit beweglichen Schulter H ft und Ellen bogen Kniegelenken erm glichen ihm das Laufen Drei Gelenke am Kopf erm g lichen das Drehen und Neigen desselben Ein wichtiges Element zum Ausdruck von Gef hlen und Stimmungen eines Hundes ist der Schwanz Ihm wurden beim AIBO ERS 7 zwei Gelenke spendiert Sony stellt f r den AIBO ERS 7 kostenlos ein umfassendes Entwicklungskit das AIBO SDKT bereit Es besteht aus den Komponenten Eine n here Beschreibung der SDK Komponenten findet sich auf den Sony AIBO Entwickler Webseiten 6 2 2 AIBO ERS 7 23 Open R SDK Eine umfassende Entwicklungsumgebung f r das Cross Platform Development R Code SDK Eine vor allem f r Nichtspezialisten geeignete einfache Skript sprache AIBO Remote Framework SDK Eine auf der Programmiersprache C basierende Entwicklungsumgebung zum Entwurf von PC Anwendungen zur Steuerung des AI
125. sowie eine hohe Stabilit t und Ro bustheit da mit der Direct 3D Grafikschnittstelle eine ausgereifte Techno logie zum Einsatz kommt In den folgenden Abschnitten wird gezeigt wie das Darstellen stereoskopischer Videodaten ber Direct 3D realisiert werden kann Dazu wird neben der In itialisierung der Direct 3D Schnittstelle das Einrichten einer entsprechenden 3D Grafikszene und die Ausgabe von Videodaten auf ein stereoskopief higes Display dargelegt 4 4 5 3 Direct 3D Initialisierung Die Initialisierung der Direct 3D Grafikschnittstelle findet in der Programmklas se CDirect3D der Stereo View Anwendung durch Aufruf der Methode CDi rect3D Init statt Dier Erstellung einer Direct3D Grafikschnittstelle ist in der Dokumentation von Direct X und in der einschl gigen Literatur detail liert beschrieben Dementsprechend wird dieser Prozess hier nur kurz und im Bezug auf die speziellen Anforderungen der Stereo View Anwendung dargelegt W hrend der Initialisierung wird ein Direct 3D Schnittstellen Objekt er zeugt welches Informationen ber die Grafik Eigenschaften des vorliegenden Computersystems liefert Abgefragt werden insbesondere die F higkeiten des installierten Grafikadapters Dazu geh ren unter anderem die m glichen Farb formate und Bildschirmaufl sungen Angelehnt an diese F higkeiten wird eine Direct 3D Ger te Schnittstelle erzeugt Direct 3D Device Diese Ger te Schnittstelle repr sentiert im we
126. spie len des Direct X SDKs ist unbedingt darauf zu achten dass die Debug Version installiert wird Diese Version erm glicht sp ter ein einfacheres und gezielteres Debuggen neu entwickelter Software durch den im Visual Studio enthaltenen De bugger Kostenlos erh ltlich unter www microsoft com 98 KAPITEL 4 TECHNISCHE REALISIERUNG Nach der Installation des Direct X SDKs m ssen die Einstellungen im Visual Studio gepr ft und eventuell angepasst werden um die korrekte Einbindung des SDKs zu garantieren W hlen sie dazu im Men punkt lt Extras gt der Entwick lungsumgebung den Punkt lt Optionen gt berpr fen sie dort unter der Register karte lt Verzeichnisse gt ob die INCLUDE und LIB Verzeichnisse des Direct X 9 SDKs korrekt in der Entwicklungsumgebung eingebunden sind Die Verzeichnisse sollten in der Liste ber den compilereigenen Verzeichnissen erscheinen Damit wird vermieden dass der Compiler die mitgelieferten gleichnamigen und in der Regel veralteten Direct X INCLUDE und LIB Dateien verwendet Entsprechen die Einstellungen der obigen Beschreibung kann mit der Einrichtung eines Projekts fortgefahren werden 4 2 1 2 Einrichtung eines Projekts Die Einrichtung eines Visual C Projekts mit Unterst tzung des Direct X 9 SDKs stellt f r Neulinge h ufig eine H rde dar Aus diesem Grunde m chte ich diesen Vorgang hier kurz umrei en und dem Leser einige Hinweise geben Zur Erstellung eines neuen D
127. st Die zur stereoskopischen Darstellung der beschriebenen 3D Grafikszene notwendigen Berechnungen werden praktisch vollst ndig vom Prozessor der Grafikkarte bernommen Eine Prozessorlast ent steht lediglich durch die nicht zu vermeidende Konvertierung des Videodatenfor mats in das Direct 3D Texturdatenformat Der Einsatz des beschriebenen Verfahrens in der Anwendung Stereo View f hrte zu tadellosen Ergebnissen Manchem Leser wird die eingesetzte Methode ungew hnlich oder gar umst ndlich erscheinen Sie bietet jedoch gegen ber anderen Methoden gravierende Vorteile e Es wird eine relative Unabh ngigkeit von der Grafikhardware erreicht 12 Alle Grafikkarten f r die Stereoskopie Zusatztreiber existieren k nnen eingesetzt werden 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 115 e Alle von der Grafikkarte unterst tzten Stereoskopie Videosignal Formate k nnen verwendet werden ohne nderungen an der Anwendung vorzuneh men Durch Umschalten des Signal Formats im Konfigurationsmen des Stereoskopie Zusatztreibers k nnen eine Vielzahl stereoskopischer Darstel lungsverfahren umgesetzt werden Beispielsweise das Anaglyphen Verfahren zum Einsatz eines Standard Videoprojektors mit Farbfilterbrillen oder das Polarisationsfilter Verfahren zum Einsatz eines Doppelprojektor Systems mit Polarisationsfilterbrillen e Die entstehende Software Anwendung erreicht eine gute Kompatibilit t zu unterschiedlichen Computersystemen
128. sultierenden Stimmungen bilden die Pers nlichkeit des kleinen Hausroboters 22 KAPITEL 2 GRUNDLAGEN AIBO ist in der Lage sich im Verlaufe seines Roboterlebens weiterzuentwickeln Dazu passt er seine Verhaltensweisen den Begebenheiten seiner Umgebung an Er simuliert den psychischen Prozess der Konditionierung den wir von realen Lebewesen kennen Das hei t er lernt durch Erfolg und Misserfolg F hrt ein bestimmtes Verhalten zu einem Ziel oder einer Belohnung er findet seine Lade station um seinen Hunger zu stillen oder sein Besitzer lobt ihn so f hrt dies zu einer positiven Konditionierung Er wird dieses Verhalten in Zukunft fter zeigen Im Gegensatz dazu wird er ein Verhalten dass ihn nicht zum Ziel f hrt oder eine Bestrafung zur Folge hat in Zukunft weniger h ufig zeigen Er verlernt dieses Verhalten Um sich in seiner Umgebung zurechtzufinden und zu kommunizieren verf gt der ERS 7 ber zahlreiche Sensoren und Aktoren Er kann durch eine im Kopf einge baute Kamera sehen und Objekte sogar Gesichter von Menschen wiedererken nen und verfolgen Auch ist er in der Lage ber eingebaute Mikrofone Audio informationen aufzunehmen und Ger usche sowie Sprache zu erkennen und eine Vielzahl von Wortbefehlen zu identifizieren Auch verf gt er ber einen Beschleu nigungssensor der ihm erm glicht auf vier Beinen sicher zu laufen Zur Erkennung von Hindernissen oder Abgr nden stehen zwei Infrarot Entfernung
129. t der eingestellten Skip Rate als Paket Sensordaten Array zugestellt Steht ein neues Sensor Datenpaket zur Abholung bereit wird die lokale Anwen dung durch Eingang der Windows Nachricht WM VAIBO_ SENSOR_ DATA benachrichtigt Die zur Nachricht geh rigen Variablen wParam und lParam ent halten wichtige Informationen ber das Datenpaket Die Variable lParam enth lt einen Zeiger auf einen Array welcher eine Liste von Datenstrukturen des Typs SensorRec Abbildung enth lt Jede der Da tenstrukturen enth lt die ID und die Daten eines bestimmten Sensors Im LO WORD der Variablen wParam LOWORD wParam ist die Anzahl der im Array gespeicherten SensorRec Strukturen verzeichnet In AIWORD wParam steht die zur Nachricht geh rige Verbindungs ID Sie identifiziert den Roboter bzw die Verbindung von dem der die Nachricht eingegangen ist 4 3 AIBO REMOTE FRAMEWORK 79 Sensor Data typedef struct SensorRec int sensorlD unsigned long value long percentage_x long percentage_ y SensorRec SensorRecP Abbildung 4 11 Listing Definition der Struktur SensorRec Ein Sensor des AIBO ERS 7 wird durch seine Sensor ID identifiziert Sollen die Daten eines bestimmten Sensors in der lokalen Anwendung ausgewertet werden muss der SensorRec Array mittels einer Schleife durchlaufen und nach der ID des gew nschten Sensors durchsucht werden Abbildung zeigt beispielhaft das Auslesen und das Konvertieren de
130. t die fertig konfigurierte Grafikszene in einer Draufsicht Blick von oben auf die Z X Ebene Die mit Tex bzw Tex bezeichneten dicken Linien stellen die Videotexturen dar auf denen die Videostreams der linken bzw rechten Kamera des Doppelkame rasystems abgebildet werden Die Einstellung der Direct 3D Kamera wurde mit K gekennzeichnet Ihr Look At Vektor zeigt auf den Ursprung des Koordina tensystems 0 0 0 Ihre Position wird durch den Vektor 0 0 a angegeben Die Kamera wurde also ausgehend vom Ursprung um einen kleinen Betrag a in negative Z Richtung verschoben Diese Szenen Konfiguration w rde ohne die Aktivierung der Stereoskopie Zusatztreiber noch keinen Sinn ergeben Auf dem Computerbildschirm w rden nebeneinander Teile der linken und rechten Video textur abgebildet werden Durch die Aktivierung des Stereoskopie Zusatztreibers geschieht nun folgendes Die virtuelle Kamera wird zuerst von ihrer urspr ngli chen Position um den Wert 5 nach links verschoben An dieser Stelle wird eine Abbildung der Szene zur Darstellung auf dem linken Auge des Betrach ters angefertigt Wie auf der Zeichnung zu sehen erfasst die Kamera Kz durch den eingestellten Blickwinkel exakt die linke Videotextur Nachdem ein Abbild f r das linke Auge angefertigt wurde wird die Kamera von ihrer urspr nglichen Position um den Wert 2 nach rechts verschoben Kr und ein Abbild f r das rechte Auge des Betrachters ang
131. ter gezeigt wird auf unterschiedlichen Wegen l sen Zur Darstellung stereoskopischer Bilddaten liefert der Grafikchiphersteller NVI DIA ein spezielles Entwicklungspaket das NVIDIA Stereo Blit SDK Die Bezeichnung SDK Software Development Kit ist stark bertrieben Es handelt sich dabei lediglich um einen Beispielsourcecode der von NVIDIA nicht offiziell freigegeben wurde und dar ber hinaus mit keiner getesteten NVIDIA Grafikkarte funktionierte In Anbetracht der Systemstabilit t und Kompatibilit t zu anderen Grafikchipherstellern wurde daher auf die Verwendung des NVIDIA Stereo Blit SDKs verzichtet Dennoch soll diese M glichkeit hier erw hnt werden um zuk nf tigen hoffentlich brauchbareren Versionen dieses SDKs Rechnung zu tragen Kapitel 4 Technische Realisierung In diesem Kapitel wird zun chst ein berblick ber das Gesamtsystem vermittelt und darauf aufbauend die technische Realisierung des Fernsteuersystems sowie des Stereokamerasystems erl utert 4 1 berblick Gesamtsystem Die folgenden Abschnitte vermitteln einen berblick ber die Hard und Softwa rearchitektur des Stereokamera und Fernsteuersystems und zeigen die Kommu nikationswege zwischen den einzelnen Komponenten 4 1 1 Hardwarearchitektur Abbildungf 4 1 zeigt die Hardwarearchitektur des entwickelten Stereokamera und Fernsteuersystems mit zugeh rigen externen Ger ten Die Abbildung gliedert sich in zwei Teile Der obere Teil zei
132. teuerung eines 3D Grafikadapters Zu jedem Schnittstel lennamen gibt es eine Zeigervariante Diese beginnt mit dem Pr fix P Pointer bzw LP Long Pointer z b PDIRECT3D9 Alle auf COM basierende Schnittstellen sind von der Basisschnittstel le Unknown abgeleitet Die Unknown Schnittstelle definiert alle f r die Schnittstellenverwaltung erforderlichen Methoden Mittels der Methode Un known QueryInterface der Basisschnittstelle kann ein Zeiger auf eine h here Direct X Schnittstelle angefordert werden Jede COM Schnittstelle und somit auch jede Direct X Schnittstelle besitzt zum Zwecke ihrer exakten Beschreibung eine einzigartige Schnittstellen GUIDP Zur Anforderung eines Zeigers auf eine Direct X Schnittstelle wird der Methode Un known QueryInterface die GUID der gew nschten Schnittstelle bergeben Um einen einfachen Umgang mit den GUIDs zu gew hrleisten wurden deren Wer te in Define Makros abgelegt Das Define Makro HD IDirect3D9 steht beispiels weise f r die GUID der Schnittstelle Direct3D9 Die Namen der Define Makros f r Schnittstellen IDs besitzen das Pr fix UD D 6GUID Global Unified Identifier Weltweit eindeutige Identifizierungsnummer 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 87 Detailliertere Informationen zur Architektur und den einzelnen Komponenten Schnittstellen von Direct X finden sich in der Direct X SDK Dokumentation 13 auf die ich an dieser Stelle verwe
133. tlich versetz tes Multiplexing von zwei Stereobildkan len auf einen Mono Bildkanal also den R hrenbildschirm m glich Die LC Shutter werden mit dem Stereo Videosignal synchronisiert und decken jeweils ein Auge des Betrachters ab Das Auge f r welches das aktuell angezeigte Bild vorgesehen ist bleibt offen Durch die hohe Bildwiederholrate nimmt der Betrachter kein Flimmern war Er bemerkt lediglich 2 3 3D STEREOSKOPIE 35 eine Verdunklung des Bildes auf etwa die halbe Bildschirmhelligkeit An diesen Effekt gew hnen sich die Augen schnell vergleichbar mit dem Eintritt von einer hellen in eine etwas dunklere Umgebung Unter Voraussetzung einer guten Ab stimmung zwischen Bildschirm und Bildwiederholraten liefern LC Shutterbrillen eine hinreichende Trennung der beiden Stereobildkan le Mit steigender Bildwie derholrate bzw einer hohen Nachleuchtzeit des Bildschirms steigt die Gefahr des Auftretens sogenannter Geisterbilder Sie beruhen auf mangelnder Trennung der beiden Stereobildteile Abbildung 2 12 LCD Shutterbrille 8 Die f r den 3D Computergrafiksektor vermutlich am besten geeignete L sung sind die Virtual Reality Helme VR Helme manchmal auch unter der Bezeichnung Headmounted Displays im Handel zu finden Abbildung 2 13 Ein solches Ger t verf gt ber zwei kleine TFT Bildschirme die mittels einer optischen Linse direkt vor den Augen des Betrachters platziert werden Das Stereo Videosignal wird in der Reg
134. tslast Zum aktuellen Zeitpunkt gibt es keine M glichkeit den Videostream ber den eigentlich f r sol che Aufgaben ausgelegten Prozessor der Grafikkarte zu konvertieren Das etwas exotisch anmutende Datenformat der Videostreams ist offensichtlich ein Derivat der historischen Entwicklung des Betriebssystems Microsoft Windows Es w re w nschenswert dass der Betriebssystemhersteller Microsoft zusammen mit den Herstellern von Video und Grafikhardware eine akzeptable L sung f r das beschriebene Konvertierungsproblem entwickelt 4 4 5 Reproduktion der Videodaten Das Ziel der Videodaten Reproduktion ist die Wiedergabe der eingehenden Vi deostreams ber ein stereoskopief higes Display In dieser Arbeit wurde zur ste reoskopischen Ausgabe ein Virtual Reality Helm I Glasses Abbildung 2 13 verwendet Das Ger t besitzt zwei kleine TFT Displays die direkt vor den Au gen des Betrachters platziert sind Jedes TFT Display deckt das Gesichtsfeld eines Auges ab Das Bild der linken Kamera des Doppelkamerasystems soll auf dem linken TFT Display abgebildet werden Analog dazu muss das Bild der rechten Kamera auf dem rechten TFT Display der Virtual Reality Brille abgebildet werden Das alles klingt zun chst sehr trivial Aufgrund der Tatsache dass herk mmli che Computersysteme weder von der Hard noch von der Softwareseite f r das Darstellen stereoskopischer Bilddaten ausgelegt sind ist das dazu notwend
135. u haben mich noch intensiver mit k nstlichen Intelligenzen und der Konstruktion neuer Roboter auseinandersetzen zu k nnen Ich hoffe es ist mir gelungen mit meiner Arbeit einen kleinen Teil zur aktuellen Forschung beizutragen und interessierten Studenten und Wissenschaftlern die M glichkeit zu geben auf Grundlage meines Systems neue Forschungsideen zu evaluieren und umzusetzen Index 3D Grafikszene 119 Abschnittebene AIBO AIBO Mind AIBO SDK Akkomodation Anaglyphen autonome Roboter Autonomie Bewegungsinstinkt Bitmap 100 Capturing Chiasma Clippingplane CMOS Bildsensor COM Component Object Model Datenquelle Datensenke Direct 3D Direct Show Filter Directshow Disparit t Doppelkamera Filtergraphen Fixationsentfernung Fixationsneurone Fixierlinie Fovea Ganglienzellen Geisterbilder Headmounted Display Headtracker i Glasses Interlacing IUnknown Kamerahalterung Kameramatrix 120 Konditionierung L M S Command Ladeinstinkt LC Shutter LC Shutterbrille Lernen Look At Vektor Mini Doppelkamerasystem Mini Funkkamera mobile autonome Roboter Motions Netzhautzellen Neuronale Netze 132 INDEX Open R Virtual Reality Helm Visueller Cortex Pageflipping bel Pitch Welttransformation 119 planendes Verhalten Polarisationsfilter Prismenvorsatz Projektionsmatrix 119 Z pfchen Zeilenabstand SE
136. udio TP bietet zur Abfrage der Mikrofone die in Tabelle dargestellten Audio Formate M glich ist jeweils eine Abtastrate von 16 bzw 8 Kilo Samples sec mit einer Aufl sung von 16 bzw 8 Bit in Stereo oder Mono Die zugeh rigen Makros sind in der INCLUDE Datei VAIBODef h definiert Im zweiten Schritt wird die Audio TP aktiviert und der zum Empfangen von Au diosignalen erforderliche Net Service angefordert Das Aktivieren der Audio TP geschieht ber die Methode OVAIBO AudioGetOpen int mode Als Parameter wird das zuvor gew hlte Audio Format bergeben Bei Erfolg liefert die Methode den Wert des Define Makros AUDIOTP_NOERROR zur ck Makros die even tuelle Fehlermeldungen beschreiben sind in der INCLUDE Datei VAIBODef h definiert Als n chstes wird der AUDIO _ IN Net Service angefordert Dazu dient folgender Methodenaufruf CVAIBO RequestNetService AUDIO_ IN ID Das bergebene Makro AUDIO IN JD identifiziert den Net Service f r den Audio Empfang vom AIBO Roboter In Schritt drei wird der Audio Mode und das Audio Format eingestellt Dies geschieht durch folgenden Methodenaufruf CVAIBO SendCmd APP CMD_AUDIO_RECV_MODE true m_nAudioTPMode Der erste Parame ter ist wieder ein Define Makro und beschreibt ein Kommando welches der Audio TP mitteilt dass der Service aktiviert werden soll der das Streaming von Audio Daten vom AIBO zum lokalen PC erm glicht Der zweite Parameter true besagt 82 KAPITEL 4 TECH
137. ufnahme und Wiedergabe stereosko pischer Bilddaten beschrieben Zuletzt werden die beiden wichtigsten Verfahren zur Aufbereitung eines Stereo Videosignals erkl rt 2 3 3D STEREOSKOPIE 25 2 3 1 Visuelle Wahrnehmung des Menschen Die Augen geh ren zu den wichtigsten Sinnesorganen des Menschen Personen die unter dem Verlust des Augenlichts leiden haben in der Regel Schwierigkeiten ihre Umwelt vollst ndig wahrzunehmen und sich in ihr zu orientieren Die F higkeit des Menschen seine Umwelt r umlich wahrzunehmen erm glicht ihm die pr zise und schnelle Absch tzung von Entfernungen zu Objekten in sei ner Umwelt Der urzeitliche Menschen wurde so zum erfolgreichen J ger Der mo derne Mensch kann durch den Einsatz seiner Tiefensehkraft filigranste Maschinen bauen oder Statuen aus einem Stein schlagen ohne sich mit dem Hammer seine Hand zu verletzen Das r umliche Sehen ist ein wesentlich st rkerer Sinneseindruck als das zwei dimensionale Sehen welches wir vom Betrachten von Abbildungen auf Papier oder dem Computerbildschirm kennen Daher ist die Darstellung m glichst ech ter Dreidimensionalit t in allen grafischen Anwendungen in denen die reale oder auch eine fantastische Welt abgebildet werden soll erstrebenswert Die Grundlage f r die Entwicklung stereoskopischer Aufnahme und Darstellungs verfahren ist das Verst ndnis der Erfassung dreidimensionaler Bilder durch die visuellen Sinnesorganen des Menschen und der Wahrne
138. und kann die Verbindungen zwischen mehreren AIBO Robotern und mehreren Remote Anwendungen ver walten Abbildung 4 8 stellt die Kommunikation zwischen PC Anwendungen und Robotern ber das Remote Framework dar Anwendung 1 Be Anwendung n Remote Framework m bot EA Ft LS Ba Ki LS Ba Ki IS Be Ki Abbildung 4 8 Kommunikation ber das Remote Framework Die Laufzeitumgebung des Remote Frameworks besteht aus fiinf dynamischen Bibliotheken DLLs die als Ganzes gesehen den Funktionsumfang des komplet ten Frameworks repr sentieren Jede dieser Bibliotheken deckt ein bestimmtes Aufgabengebiet ab 1 Die VAIBOClient dll Enth lt alle Funktionen die zur Fernsteuerung eines AIBO ERS 7 erforderlich sind Dazu geh ren Verbindungsfunktionen Funktionen zur Bewegungssteuerung Laufen Haltungs nderung usw und Funktionen zur Nutzung der Image Audio und Sensorservices die direkt auf dem Roboter laufen um den Datenaustausch zwischen Ro boter und Remote Framework zu erm glichen 2 Die AIBO3D dll Erm glicht die Anzeige eines 3D Modells des Roboters auf dem PC Bildschirm 68 KAPITEL 4 TECHNISCHE REALISIERUNG 3 Die CPCInfo dll Dient zur Abfrage der Hardwareinformationen eines Roboters 4 Die VAIBOUPnP dll Erm glicht die Suche eines bestimmten Roboters innerhalb des Netzwerks 5 Die VAIBOTTS dll Enth lt Funktionen zum Ansprechen der AIBO Text To Speach Engine sie erm glicht di
139. ung 4 23 Filtergraphen der Stereo View Anwendung 4 4 4 2 Video Capture Filter Video Capture Filter sind Eingabe Filter Innerhalb einer auf Directshow ba sierenden Anwendung repr sentieren sie ein Video Eingabeger t beispielsweise eine an den Computer angeschlossene Kamera oder eine Video Capture Karte Die Anwendung Stereo View verwendet zwei Capture Filter als Repr sentanten der beiden Kameras des Doppelkamera Systems Selektion eines Video Eingabe Ger tes Um einen Capture Filter als Datenquelle eines Directshow Filtergraphen verwen den zu k nnen muss dieser zun chst mit einem Video Eingabe Ger t verkn pft werden 98 KAPITEL 4 TECHNISCHE REALISIERUNG Das Programm Stereoview wei grunds tzlich nicht welche der an dem PC an geschlossenen Video Ger te den linken und rechten Bildkanal des Stereokamera Systems repr sentieren Aus diesem Grund muss der Benutzer beim Start der Anwendung die beiden Videoger te in einem Konfigurationsdialog Abbildung 4 24 manuell ausw hlen Stereoview Application Y1 0 by M Kreutzer e x r Camera Settings Left Camera Settings Right MEDION BDA Analog Capture y Philips PCYC690 VGA Kamera Video USB DI Properties Properties AIBO Robot Settings IP Address CN AIBO Audio Services 192 168 0 30 lv Activate Audio Input M Botivate Audio Output lt gt Stereoview GIESSEN FRIEDBERG v1 0 Quit r Shortke
140. ung des AIBO Kopfes gen gt somit die Angabe eines horizontalen und vertikalen Kopfwinkels engl Headangle Der Kopf kann aus der Mittelstellung um bis zu 93 nach links oder rechts gedreht werden um bis zu 50 nach oben geneigt und um bis zu 20 nach unten geneigt werden Die Haltung des Robo 3 2 FERNSTEUERSYSTEM 45 Trackir s field of view is exactly 32 wide giving you far more head room than you ll ever use Tiny head movements precisely translate to large game movements MU INFRARED LENS CAMERA L E D s Abbildung 3 2 Headtracker Track IR der Fa Natural Point ters beeinflusst dank automatischer Ausgleichsfunktionen die Blickrichtung des Roboters nicht Die Anatomie des Roboters unterscheidet sich in der Beweglichkeit des Kopfes von der des Menschen Ihm fehlt die M glichkeit den Kopf nach links oder rechts zu neigen Diese Begebenheit stellt keinen besonderen Nachteil dar da der Mensch seinen Kopf gew hnlich selten zur Seite neigt Er tut dies haupts chlich um eine seitliche Neigung seines K rpers auszugleichen und den Kopf in einer senkrechten Position zu halten Der Headtracker liefert bei Verfolgung des Reflektionspunktes am Kopf des Be dieners Positionsdaten Diese k nnen ausgewertet und so genutzt werden dass der AIBO ERS 7 die Kopfbewegungen seines Bedieners imitiert Es gibt jedoch noch eine weitere anatomische Besonderheit des Roboters Al BO besitzt im Wesentlichen die An
141. ure pVideo 1 Green x pTexture pVideo 0 Blue pVideo 3 skip additional data and go to the nest row of the teazture pTexture dwPitch dwVideoWidth x4 set pVideo to the next row of the picture one row back in data block pVideo dwVideoWidth x 6 Abbildung 4 28 Listing Konvertierungsalgorithmus 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 107 dwVideo Width dwVideoHeight 1 3 des Beispielalgorithmus setzt den Byte Zeiger pVideo auf die letzte Zeile des Datenblocks und somit auf die erste Zeile des tats chlichen Videobildes Als n chstes wird der Textur Zeilenabstand Pitch aus der D3DLOCKED_RECT Struktur ausgelesen und durch 4 dividiert Mittels der Division durch 4 wird der Zeilenabstand von der Einheit Bytes Zeile in die Einheit Bildpixel Zeile umgerechnet Innerhalb der zweifach verschachtelten For Schleife werden die Farbkomponenten eines jeden Pixels des Videobildes ausgelesen konvertiert und in den Bildpuffer der Textur geschrieben Nach der Bearbeitung einer Bildzeile muss der Zeiger pTexture der auf die Tex turdaten zeigt an den Anfang der n chsten Zeile bewegt werden Da am Ende der aktuellen Zeile noch weitere Daten Steuerinformationen der Grafikkarte stehen k nnen muss der auf den Zeiger zu addierende Wert durch die Rechenoperation dwPitch dwVideo Width 4 bestimmt werden Die Multiplikation mit 4 f hrt zur Umrechnung d
142. verwendete Stereodisplay 4 3 Die Berechnung der vollst ndigen Projektionsmatrix geschieht hnlich wie bei der Kameramatrix durch Aufruf einer Direct 3D Funktion unter Angabe von vier Float Werten Sichtfeldwinkel o siehe Abbildung HA Seitenverh ltnis nahe Abschnittebene und ferne Abschnittebene F r die Stereo View Anwendung wurde ein Sichtfeldwinkel von 45 bzw 5 ge w hlt Der gew hlte Winkel vereinfacht die in Schritt 3 durchzuf hrenden Be rechnungen Zu 3 Nachdem in den Schritten 1 und 2 die Eigenschaften und Position der vir tuellen Kameras festgelegt wurden m ssen im letzten Schritt die Videotexturen skaliert und positioniert werden Die Positionen der beiden Videotexturen lassen sich sehr einfach bestimmen sie he Abbildung 4 36 Die Texturen m ssen zentrisch vor den beiden durch den Stereoskopie Zusatztreiber gegebenen virtuellen Kameras Kz und Kpr platziert werden Die Kamera Kz ist an der Position 2 0 a im Koordinatensystem platziert die Kamera Kp an der Position 2 0 a Umjede Videotextur zen trisch vor einer Kamera zu platzieren wird die Textur fiir den linken Bildkanal Az 2 ben w hrend die Textur f r den rechten Bildkanal Texr um 4 verschoben Tex vom Koordinatenursprung um den Wert 7 auf der X Achse verscho wird Die Texturen m ssen aber noch auf die richtige Gr e skaliert werden sie sollen im Abstand a zu einer Kamera deren Sichtfeld gerade ausf
143. ys F1 ctivate Deactivate Audio Input Service F12 Center Headtrackingsystem F2 ctivate Deactivate Audio Output Service Abbildung 4 24 Konfigurationsdialog der Stereoview Anwendung Dazu werden alle an das System angeschlossenen Video Capture Ger te durch die Methode CStereoCap EnumerateDevices der CStereoCap Klasse aufgelistet Die an einen Computer angeschlossenen Multimediager te sind in Ger te Kategorien aufgeteilt Hier sollen alle Ger te der Kategorie Video Input Devices aufgelistet werden Zur Aufz hlung wird ein entsprechender System Device Enumerator generiert Der System Device Enumerator ist ein Hilfsobjekt Er liefert f r jedes Video ger t ein Beschreibungsobjekt des Typs Moniker Das Beschreibungsobjekt 4 4 IMPLEMENTIERUNG DES STEREOKAMERASYSTEMS 99 erm glicht der Anwendung Informationen ber die einzelnen Ger te abzufragen insbesondere den f r Menschen lesbaren Namen des Ger tes Die Ger tenamen werden von der Stereo View Anwendung ausgelesen und dem Benutzer zur Auswahl eines Ger tes in einer Dialogbox dargestellt Erstellung eines Capture Filters Nachdem der Benutzer die gew nschten Video Eingabe Ger te ausgew hlt hat erstellt die Anwendung die zugeh rigen Video Capture Filter Die Erstellung eines Capture Filters findet programmiertechnisch durch das Ver kn pfen eines Ger te Beschreibungsobjektes des Typs Moniker mit einem ge
144. ystems auf dem kleinen wackligen AIBO ERS 7 Roboter hat sich gezeigt dass eine Stabilisierung des Kamerabildes die Qualit t des Systems verbessern k nnte Eine solche Bildstabilisierung k nnte beispielsweise in einem weiteren Schritt auf mechanischem Wege durch eine Schwingungsentkoppelung der Kamerahalterung geschehen Eine elektronische Bildstabilisierung ber die Kamera Software w re ebenfalls denkbar Diese w rde aber aufgrund der bli cherweise dazu verwendeten Technik mit Verlusten in der Bildaufl sung einher gehen Eine weitere interessante M glichkeit des vorgestellten Stereo Kamerasystems ist dessen Einsatz als eine Art optischer 3D Scanner zur Erfassung eines Umgebungs modells Moderne Computer lassen heute eine mathematische Auswertung stereo skopischer Kameradaten in Echtzeit zu Das Ergebnis einer solchen Bildanalyse w re berechnet aus zwei Teilbildern eines Stereobildes ein einzelnes dreidi mensionales Bild in dem jedem Pixel eine ungef hre Tiefenangabe zugeordnet werden k nnte Durch Weiterverarbeitung der gewonnenen Tiefeninformation w re es m glich mit hoher Geschwindigkeit ein ungef hres dreidimensionales Modell der im Kamerasichtfeld liegenden Umgebung zu erstellen Kombiniert man ein solches topometrisches System mit anderen Sensoren bei spielsweise Ultraschall oder Infrarotsensoren verleiht man einem autonomen mo bilen Roboter eine besondere F higkeit Sich hnlich wie der Mensch inne
Download Pdf Manuals
Related Search
Related Contents
Hikvision Digital Technology DS-7204HGHI-SH digital video recorder Mode d`emploi 3.5 型Mirror Drive AT MODEL AXRE-U Series 取扱説明書 Variador de Velocidad de CA de Frecuencia Ajustable PowerFlex 4 modulo alto sfuso: uso IPLink for Adobe plug-in panel 1.2 User`s Manual Copyright © All rights reserved.
Failed to retrieve file