Mercurial > docs > ps-bericht-ibm
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 |