next up previous
Nächste Seite: Fassade Aufwärts: Segmentierung Vorherige Seite: Kostenfunktionen

Ausgabe

In dieser Schicht werden die Zeitstempel vergeben, die Geschwindigkeit und Richtung der Objekte berechnet und die Ausgabe aufbereitet. Aus der vorliegenden Liste der Objektgeschichten muß eine Liste der Objekte mit den in Definition 2.3 spezifizierten Angaben erzeugt werden.

Die Geschwindigkeit $v_t$ eines Objektes ist dabei der Abstand von alter und neuer Position:

\begin{displaymath}
v_t=\frac{\Delta p}{\Delta t}=\frac{\Vert\vec{p}_t-\vec{p}_{t-1}\Vert}{t_t-t_{t-1}}
\end{displaymath} (23)

wobei $t_r$ Echtzeit bezeichne. Da die nächste Position zum Zeitpunkt der Bestimmung noch nicht bekannt ist und nicht herangezogen werden kann, hinkt die so bestimmte Geschwindigkeit der tatsächlichen Geschwindigkeit zum Zeitpunkt der Aufnahme des aktuellen Bildes immer ein wenig hinterher (Abbildung 2.15).

Abbildung: Geschwindigkeit eines linear beschleunigten Objekts. Die durchgezogene Kurve ist die tatsächliche Geschwindigkeit, die gestrichelte Kurve ist die aus den Positionsdifferenzen ermittelte Geschwindigkeit.
\resizebox {1\columnwidth}{!}{\includegraphics{geschwindigkeit2.eps}}

Außerdem treten Probleme auf, wenn sich Objekte sehr langsam bewegen. Aufgrund des Gitterrasters und der damit verbundenen diskreten Objektpositionen kann es bei der Bestimmung der Objektpositionen zu Sprüngen von einem Pixel in horizontale und vertikale Richtung kommen. Bewegt sich ein Objekt von einem Bild zum nächsten nur um sehr wenige Pixel, rufen diese Rastersprünge deutliche Geschwindigkeitsschwankungen hervor. Geschwindigkeiten, die deutlich weniger als ein Pixel pro Frame betragen, können überhaupt nicht gemessen werden. Dieser systematische Fehler wird durch höhere Bildraten sogar noch verstärkt.

Da es sich hierbei um einen systematischen Fehler handelt, kann er nicht durch statistische Methoden ausgeglichen werden. Eine Verbesserung ist aber unter bestimmten Vorausetzungen durch eine Glättung zu erreichen. Hier kann zum Beispiel folgende exponentielle Gewichtung der vorherigen Positionen unter Heranziehung der Objektgeschichte verwendet werden:

\begin{displaymath}
v'_t=\frac{\sum_{i=0}^k a^i v_{t-i}}{\sum_{i=0}^k a^i}
\end{displaymath} (24)

wobei $k$ die Anzahl der einzubeziehenden letzten Schritte sei. $a$ ist ein die Gewichtung bestimmender Faktor zwischen 0 und 1. Durch eine einfache Glättung wird allerdings eine ``Trägheit'' der Geschwindigkeitsbestimmung hervorgerufen. Plötzliche Geschwindigkeitsänderungen werden nicht mehr oder erst verspätet erkannt (Abbildung 2.16). Damit kommt ein solches Vorgehen zwar bei den Pendelschwingungen, aber nicht bei der Robotersteuerung in Frage. Während das Pendel eine gleichmäßige Bewegung vollzieht, kann der Roboter plötzliche Richtungs- und Geschwindigkeitswechsel vornehmen. Gerade hier ist eine Verzögerung bei der Wahrnehmung nicht hinnehmbar.

Abbildung: Glättung der Geschwindigkeit (gepunktet) durch Erhöhung der Schrittweite (gestrichelt, Schrittweite 3) und durch Gewichtung der vorherigen Geschwindigkeiten (durchgezogen, $a=0,65$)
\resizebox {1\columnwidth}{!}{\includegraphics{glaettung2.eps}}

Ein anderes Vorgehen könnte es sein, die Framerate der Geschwindigkeit nach Bedarf zu reduzieren. Unterschreitet die Geschwindigkeit eine Schwelle, wird nicht mehr die Differenz zwischen aktueller und letzter, sondern aktueller und vorletzter Position herangezogen. So könnten auch Bewegungen unterhalb der Pixelschwelle gemessen werden. Ein plötzliches Ansteigen der Geschwindigkeit würde sofort bemerkt werden, während bei einem plötzlichen Stopp die gleiche Verzögerung wie beim Glätten auftreten würde.

Mit der vorliegenden Implementierung können beide Techniken verwendet werden.

Die Berechnung der Bewegungsrichtung wird ebenfalls anhand der alten und neuen Position bestimmt. Das Vorgehen und die Probleme bei geringen Objektgeschwindigkeiten sind dieselben wie bei der Bestimmung der Geschwindigkeit und werden deshalb hier nicht näher erläutert.

Nachdem die Geschwindigkeiten und Bewegunsrichtungen bestimmt wurden, wird der Ausgabevektor vorbereitet und zurückgegeben. Damit ist die Analyse abgeschlossen und es liegen alle geforderten Daten vor.


next up previous
Nächste Seite: Fassade Aufwärts: Segmentierung Vorherige Seite: Kostenfunktionen

2001-12-05