comparison das-projekt.tex @ 8:cfa79cdfad27

new picture for camera; some new content about the showcase
author schnalke@localhost.localdomain
date Tue, 13 May 2008 08:11:59 +0200
parents 5bb81f96e7db
children 94535a512cfe
comparison
equal deleted inserted replaced
7:6c18990fc9c3 8:cfa79cdfad27
36 36
37 \begin{figure}[hbt] 37 \begin{figure}[hbt]
38 \centering 38 \centering
39 \label{fig:qs21} 39 \label{fig:qs21}
40 \includegraphics[width=0.6\textwidth]{pics/qs21.jpg} 40 \includegraphics[width=0.6\textwidth]{pics/qs21.jpg}
41 \caption{Ein QS21 Blade-Server mit zwei Cell-Prozessoren} 41 \caption{QS21 Blade-Server mit zwei Cell-Prozessoren}
42 \end{figure} 42 \end{figure}
43 43
44 44
45 \subsection{Cell-Prozessor} 45 \subsection{Cell-Prozessor}
46 46
50 50
51 \begin{figure}[hbt] 51 \begin{figure}[hbt]
52 \centering 52 \centering
53 \label{fig:cellbe-chip} 53 \label{fig:cellbe-chip}
54 \includegraphics[width=0.6\textwidth]{pics/cellbe-chip.png} 54 \includegraphics[width=0.6\textwidth]{pics/cellbe-chip.png}
55 \caption{Der Cell/B.E. Chip} 55 \caption{Cell/B.E. Chip}
56 \end{figure} 56 \end{figure}
57 57
58 Bei der Cell/B.E. handelt es sich um eine heterogene Multicore-Architektur. Das bedeutet, dass der Prozessor aus mehreren Kernen besteht, die (im Gegensatz zu den x86-Multicores aber) aus verschiedenen Kerntypen bestehen. Der Cell verfügt über einen PowerPC-Kern (PPE/PPU) und acht sogenannten Synergistic Prozessor Elemente (SPE/SPU). Die PPE ist ein vollwertiger 64-bit PowerPC Kern. Er kann in herkömmlicher Weise verwendet werden, so kann darauf zum Beispiel ein Betriebsystem oder eine beliebige Anwendung laufen. Die SPEs dagegen sind für große Rechenleistung optimiert, Datentransfer-Operationen sind eher langsam. 58 Bei der Cell/B.E. handelt es sich um eine heterogene Multicore-Architektur. Das bedeutet, dass der Prozessor aus mehreren Kernen besteht, die (im Gegensatz zu den x86-Multicores aber) aus verschiedenen Kerntypen bestehen. Der Cell verfügt über einen PowerPC-Kern (PPE/PPU) und acht sogenannten Synergistic Prozessor Elemente (SPE/SPU). Die PPE ist ein vollwertiger 64-bit PowerPC Kern. Er kann in herkömmlicher Weise verwendet werden, so kann darauf zum Beispiel ein Betriebsystem oder eine beliebige Anwendung laufen. Die SPEs dagegen sind für große Rechenleistung optimiert, Datentransfer-Operationen sind eher langsam.
59 59
60 \begin{figure}[hbt] 60 \begin{figure}[hbt]
98 98
99 \begin{figure}[hbt] 99 \begin{figure}[hbt]
100 \centering 100 \centering
101 \label{fig:lynx6} 101 \label{fig:lynx6}
102 \includegraphics[width=0.6\textwidth]{pics/lynx6.jpg} 102 \includegraphics[width=0.6\textwidth]{pics/lynx6.jpg}
103 \caption{Die von uns verwendeten Roboterarme} 103 \caption{Lynxmotion Lynx6 Roboterarm}
104 \end{figure} 104 \end{figure}
105 105
106 Sie haben fünf Freiheitsgrade (Basisdrehung, Schulter, Ellenbogen, Handgelenk, Handdrehung) und damit einen weniger als gängige Industrieroboter oder der menschliche Arm. Die Zahl ``6'' in der Modellbezeichnung rührt von einem sechsten Gelenk her, das jedoch nur ein Greifer ist und damit keinen weiteren Freiheitsgrad darstellt. 106 Sie haben fünf Freiheitsgrade (Basisdrehung, Schulter, Ellenbogen, Handgelenk, Handdrehung) und damit einen weniger als gängige Industrieroboter oder der menschliche Arm. Die Zahl ``6'' in der Modellbezeichnung rührt von einem sechsten Gelenk her, das jedoch nur ein Greifer ist und damit keinen weiteren Freiheitsgrad darstellt.
107 107
108 Die Bewegung der Gelenke wird von Servomotoren\footnote{Motoren die bestimmte Positionen anfahren und halten können. Häufig im Modellbau eingesetzt.} (kurz ``Servos'') übernommen. 108 Die Bewegung der Gelenke wird von Servomotoren\footnote{Motoren die bestimmte Positionen anfahren und halten können. Häufig im Modellbau eingesetzt.} (kurz ``Servos'') übernommen.
109 109
110 Angeschlossen sind die Roboterarme über USB am Cell-Blade und per serieller Schnittstelle am Roboter, dazwischen sitzt ein USB-zu-Seriell-Konverter. 110 Angeschlossen sind die Roboterarme über USB am Cell-Blade und per serieller Schnittstelle am Roboter, dazwischen sitzt ein USB-zu-Seriell-Konverter.
111 111
112 % FIXME: insert picture with terminology
112 113
113 114
114 \subsection{Kamera} 115 \subsection{Kamera}
115 116
116 Die optische Komponente wurde erst kurz vor meiner Zeit in das Projekt eingeführt. Anfangs wurde noch eine handelsübliche Webcam verwendet. Später wurde diese durch eine professionelle CCD-Kamera der Firma \emph{Matrix Vision} ersetzt. Bei dieser handelt es sich um eine \emph{mvBlueFOX}, die 100 Mal pro Sekunde ein Schwarz-Weiß-Bild mit ein einer Auflösung von 640x480 Pixeln liefert. 117 Die optische Komponente wurde erst kurz vor meiner Zeit in das Projekt eingeführt. Anfangs wurde noch eine handelsübliche Webcam verwendet. Später wurde diese durch eine professionelle CCD-Kamera der Firma \emph{Matrix Vision} ersetzt. Bei dieser handelt es sich um eine \emph{mvBlueFOX}, die 100 Mal pro Sekunde ein Schwarz-Weiß-Bild mit ein einer Auflösung von 640x480 Pixeln liefert.
117 118
118 \begin{figure}[hbt] 119 \begin{figure}[hbt]
119 \centering 120 \centering
120 \label{fig:mvbluefox} 121 \label{fig:mvbluefox}
121 \includegraphics[width=6cm]{pics/mvbluefox.jpg} 122 \includegraphics[width=6cm]{pics/mvbluefox.png}
122 \caption{Unsere Kamera} 123 \caption{Matrix Vision mvBlueFOX}
123 \end{figure} 124 \end{figure}
124 125
125 Zur Bilderkennung verwendeten wir die Open Source Bibliothek \emph{OpenCV}, welche auf den Cell portiert und dafür optimiert ist. 126 Zur Bilderkennung verwendeten wir die Open Source Bibliothek \emph{OpenCV}, welche auf den Cell portiert und dafür optimiert ist.
126 127
127 128
128 % FIXME: Echtzeit-Umgebung 129 % FIXME: Echtzeit-Umgebung?
129 130
130 131
131 \section{Ausgangssituation} 132 \section{Ausgangssituation}
132 133
133 Als ich meine Arbeit antrat waren folgende Dinge bereits vorhanden. 134 Als ich meine Arbeit antrat waren folgende Dinge bereits vorhanden.
137 \item Inverse Kinematik für den Roboterarm 138 \item Inverse Kinematik für den Roboterarm
138 \item Programme mit statischen Bewegungsanweisungen für den Roboter 139 \item Programme mit statischen Bewegungsanweisungen für den Roboter
139 \item Einfache dynamische Bewegungen anhand von Gesichtserkennung mit OpenCV 140 \item Einfache dynamische Bewegungen anhand von Gesichtserkennung mit OpenCV
140 \end{itemize} 141 \end{itemize}
141 142
142 Die alten Arbeiten meiner Vorgänger waren abgeschlossen und mein Teampartner, der schon ein halbes Jahr bei IBM war und während dieser Zeit das Framework ausgearbeitet hatte, feilte daran nur noch herum. Somit fand mit mir eine Art Neubeginn statt. Das Ziel war die \emph{Automatica} eine Messe für Automatisierungstechnik in München. Dafür sollte ein neuer Showcase erstellt werden. 143 Die alten Arbeiten meiner Vorgänger waren abgeschlossen und mein Teampartner, der schon ein halbes Jahr bei IBM war und während dieser Zeit das Framework ausgearbeitet hatte, feilte daran nur noch herum. Somit fand mit mir eine Art Neubeginn statt.
143 144
144 Innerhalb unseres Teams hatte jeder ein Fachgebiet, für das er sich zuständig fühlte. Jedoch arbeiteten wir natürlich gemeinsam am Ganzen und in einer so kleinen Gruppe ist es normal, dass jeder an beliebiger Stelle anpackt wenn es erforderlich ist. Dennoch formierte es sich so, dass mein Teampartner hauptsächlich für das (sein) Framework und Installationen aller Art verantworklich war, zudem hatte er als der mit der meisten Erfahrung die Rolle des Projektleiters inne. Unsere Mitarbeiterin, die einen Monat nach mir dazu stieß, kümmerte sich um die visuelle Thematik. Ich übernahm den Teil der eigentlichen Anwendungsprogrammierung. Das heißt, dass ich die Arbeit der Anderen als Basis nahm um darauf die Anwendungsteile zu konstruieren, die spezifisch für unseren Showcase waren.
145 145
146 \section{Der Showcase}
147
148 Die neue Aufgabe war, einen Showcase zu erstellen, der auf der \emph{Automatica}, einer Messe für Automatisierungstechnik in München, vorgeführt werden sollte.
149
150 Der Showcase sollte vier Roboterarme beinhalten, die sich einen Ball zuspielen. Der Ball sollte einen definierten Bereich nicht verlassen --- dafür sollten die Roboter sorgen. Die Position des Balles sollte durch Patternerkennung im Kamerabild herausgefunden werden.
151
152 %FIXME weg?: Dies alles sollte in Echtzeit berechnet werden können, selbst ohne ein Echtzeitbetriebssystem zur Verfügung zu haben.
153
154 %FIXME: insert photo from our showcase
155