# HG changeset patch # User schnalke@localhost.localdomain # Date 1210690284 -7200 # Node ID 29268e9521a3044d9dc57cc9bf155e16c8c3ced1 # Parent c1541ca61e6b7439897775529f3193adc3031ab9 added content for logics module diff -r c1541ca61e6b -r 29268e9521a3 taetigkeit.tex --- a/taetigkeit.tex Tue May 13 16:50:52 2008 +0200 +++ b/taetigkeit.tex Tue May 13 16:51:24 2008 +0200 @@ -25,7 +25,8 @@ Ich berechnete die Abstände jedes Kollisionspunktes eines Roboters, mit jedem Kollisionspunkt jedes anderen Roboters.\footnote{Kollisionen innerhalb eines Roboterarms sollten durch die Kinematik abgefangen werden.} Da dabei, vereinfacht, jeder Punkt mit jedem verglichen wird, resultiert daraus eine quadratische Laufzeit: $O(n^{2})$. Für eine größere Anzahl von Robotern, oder mehr Kollisionspunkten pro Strecke, sollten wir also recht schnell viel Zeit brauchen. Diese Vorraussage wurde von den Performance-Messungen meines Teamspartners bestätigt. -Mit unseren vier Robotern konnte ich 16 Kollisionspunkte pro Knochen einfügen, ohne besonders viel Zeit zu verbrauchen; 32 Punkte waren noch machbar. Ich entschied mich für vier Kollisionspunkt pro Knochen, denn dies führte zu einer voll ausreichenden Genauigkeit, wie Abbildung \ref{fig:kollisionszone} zeigt. +Mit unseren vier Robotern konnte ich 16 Kollisionspunkte pro Knochen einfügen, ohne besonders viel Zeit zu verbrauchen; 32 Punkte waren noch machbar. Ich entschied mich für vier Kollisionspunkt pro Knochen, denn dies führte zu einer voll ausreichenden Genauigkeit, wie Abbildung \ref{fig:kollisionszone} %FIXME: bildnr stimmt nicht! +zeigt. \begin{figure}[hbt] \centering @@ -74,6 +75,32 @@ \section{Intelligenz-Modul} +Nachdem ich meine Arbeiten an den ersten zwei Modulen soweit fertig war, haben wir im Team beschlossen, dass ich mit dem Intelligenz-Modul weiter machen sollte. Der bisherige Code war natürlich nicht ganz fertig und es war auch durchaus so gewollt, dass die einzelnen Programmteile kontinuierlich weiterentwickelt werden. Neue Funktionalitäten im einen Modul zogen neue Anforderungen in einem weiteren nach sich. So wurde der gesammte Code stückweise ausgebaut. + +Nichts desto trotz begann ich dann hauptsächlich an der Intelligenz, oder Logik, zu entwickeln. + + +\paragraph{Aufgabe der Intelligenz} +Das Logik-Modul plant, entscheidet und gibt die resultierenden Befehle. Es beherbergt den ``interessanten'' Programmcode, denn hier steckt eine Künstliche Intelligenz (so simpel sie auch sei). + +In unserem Fall hat die Logik die aktuelle und letzte Ballposition, sowie die Roboterpositionen zur Verfügung. Das Modul soll ausgeben welcher Roboterarm was als nächstes tun soll. + + +\paragraph{Grundgedanken} +Unser Showcase ist so aufgebaut, dass es immer mindestens einem Roboter möglich ist, den Ball zu spielen, nie jedoch mehr als zweien. In den meisten Fällen wird der Ball nur von genau einem Arm erreichbar sein, dann wird dieser ihn spielen. Wenn zwei Roboter nah genug sind, übernimmt der Arm mit der geringeren Entfernung (genannt ``Master'') die Kontrolle und spielt den Ball. Der andere Arm (genannt ``Slave'') fungiert als Unterstützung und bewegt sich relativ zum Master. Dieses Verhalten sollte uns bei unvorgesehenen Änderungen des Ballwegs nützlich sein. Die restlichen Arme fahren in eine Warte-Position. + +\paragraph{Die Schussbewegung} % FIXME: die paragraph-zeile weg? +Der Ball sollte nicht nur am Paddle (= Schläger), den wir am Greifer des Arms befestigt haben, abprallen, sondern es sollte ihm wieder neue Bewegungsenergie mitgegeben werden. Es war also klar, dass die Roboter eine gewissen Schussbewegung ausführen mussten. Desweiteren war es notwendig das Paddle im richtigen Winkel auszurichten, um den Ball in eine bestimmte Richtung spielen zu können. Das Schussziel sollte in im Intelligenz-Modul gesetzt werden können. Damit wäre es dann auch möglich, dass sich nur zwei Roboter hin und her spielen. Solche ``Spielereien'' sollten auf jeden Fall machbar sein, denn diese machen einen Showcase erst interessant und zeigen einen Hauch menschlichen Verhaltens, was bei Robotern eine wichtige Komponente ist. + +\paragraph{Mögliche Erweiterungen} +Die Intelligenz bietet Ausbaumöglichkeiten aller Art. Das geht von einer Bibliothek von Entscheidungsmöglichkeiten, über persönliche Verhaltensmuster einzelner Roboter, bis zu Gruppenverhalten, Taktik, oder gar Finten. + + + + + + +