Niklas Roy

Dokumat 500

Ein vollautomatischer Dokumentationsroboter

Nominiert für den
Digital Sparks Award 2006

Dokumat 500 mit Flightcase

Dokumat 500 mit Flightcase

Technische Beschreibung

Die wesentlichen Bestandteile des Roboters sind die Videokamera, ein VHS-C Camcorder "Explorer" von Philips, ein robustes Videostativ der Marke SABA, und eine HAMA Videoleuchte. Gesteuert und verbunden werden diese Elemente durch zwei Metallgestelle, in denen die Mikrocontroller, die Sensorik, die Stromversorgung, die Leistungselektronik und die Antriebe untergebracht sind. Die Gestelle werden an das Stativ angeschraubt. Über Seilzüge und Kabel werden sie an Kamera, Leuchte und Schwenkkopf angeschlossen.

Die Steuerung besteht aus sechs vernetzten PICAXE Mikrocontrollern, die in BASIC programmiert wurden. Die gesamte Steuerelektronik arbeitet autark; es gibt keine Funk- oder anderweitige Verbindung zu einem Steuercomputer.

Das Interface beschränkt sich auf den An/Aus-Schalter, ein Poti, einen Set-Knopf und ein zweizeiliges LCD-Display, das neben der Anzeige des Menüs zur Ausgabe von Statusmeldungen dient.

Die Sensorik besteht aus 13 analogen Sharp GP2D12 Infrarot Entfernungsmessern. Diese arbeiten im Bereich von 10-80 cm. Sieben davon peilen schräg auf den Boden. Dadurch erkennen sie Hindernisse wie Wände, oder Abgründe. Vier der Entfernungsmesser sind so angebracht, dass sie frei schwebende Hindernisse erkennen können, wie z.B. Tischplatten. Die beiden übrigen zielen knapp über den Boden. Dadurch erkennen sie auch kleine Gegenstände, die den Weg versperren.

Bewegt wird der Roboter mit Hilfe von vier drehmomentstarken Comodrills 12V Gleichstrom Getriebemotoren. Zwei davon treiben jeweils ein Laufrad an. Die beiden anderen sind über Seilzüge mit dem Schwenkkopf verbunden. Die aktuelle Position der beiden Schwenkachsen wird über zwei Potis an die Controller rückgemeldet.

Als Stromversorgung dient ein 12V Blei-Gel Akku. Im Flightcase ist eine weitere Batterie vorhanden, so dass immer eine geladen werden kann, während die andere den Roboter betreibt. Der Akku versorgt alle Verbraucher am Roboter, also Kamera, Steuerelektronik, die Motoren und die Videoleuchte. Die Betriebsdauer mit einer Akkuladung beträgt etwa drei Stunden. Der Akku ist so untergebracht, dass er schnell und einfach gewechselt werden kann.

Die Aufnahmefunktion der Kamera wird über den ohnehin vorhandenen Remote-Anschluss durch die Microcontroller gesteuert. Alle weiteren Kamerafunktionen (Schärfe, Blende) werden automatisch geregelt.

Hardware / Software

Da die Hardware bereits in der technischen Beschreibung ausführlich beschrieben wurde, beschränke ich mich hier auf die Erläuterung der Firmware des Roboters.

In dem Roboter arbeiten sechs Programme parallel. Die beiden wichtigsten sind für die Bewegungssteuerung bzw. für die Steuerung der Videoaufnahmen zuständig. Die anderen vier übernehmen untergeordnete Aufgaben und sind nicht weiter erwähnenswert.

Der Code zur Steuerung der Videoaufnahmen arbeitet vollkommen unabhängig vom Bewegungsprogramm. Die Referenz für sein Tun findet er einzig und alleine in dem vorab eingestellten Drehverhältnis, in der vergehenden Zeit und in einem Zufallsgenerator.
Der Code ist darauf beschränkt, die Aufnahmefunktion der Kamera an- und auszuschalten. Hierfür generiert er Zufallswerte, die zwischen zwei und zwölf Sekunden liegen. Durch den Einbau einer kubischen Funktion kommen kurze Einstellungen wesentlich häufiger vor als lange. Das ist wichtig, denn ohne diese Funktion würden die kurzen Einstellungen nur sehr viel weniger Raum im fertigen Video einnehmen, da sie ja auch wesentlich schneller wieder vorbei sind. Nachdem eine Einstellung gedreht wurde, pausiert die Kamera. Die Länge der Pause ergibt sich dabei aus der Länge der gedrehten Einstellung und dem eingestellten Drehverhältnis. Um diese einfache Regel nicht zu offensichtlich zu machen, verschachtelt der Roboter jeweils eine "Filmen / Pause machen" -Sequenz mit der nachfolgenden.

Das Bewegungsprogramm hört sich komplizierter an, arbeitet aber nach einem ähnlich simplen Prinzip. Der Roboter wechselt phasenweise zwischen stehenbleiben und umherfahren. Die Möglichkeiten der Bewegung beschränken sich auf vorwärts fahren, rückwärts fahren, sowie im und gegen den Uhrzeigersinn drehen. Während er steht, kontrolliert der Roboter alle Sensoren auf mögliche Blockaden. Daraus errechnet er, welche der vier Bewegungen er ausführen kann. Ein Zufallsgenerator wählt anschließend eine der möglichen Bewegungsrichtungen aus. Abhängig davon, wie lange sich der Roboter zuvor am Stück in einer Richtung bewegt hat, ergibt sich ein weiterer Zufallswert, welcher bestimmt, ob die Kamera geschwenkt wird.
Hat er sich weit fortbewegt, so steigt die Wahrscheinlichkeit, dass die Kamera geschwenkt wird. Ist er nur kurz gefahren, sinkt diese Wahrscheinlichkeit. Soll die Kamera geschwenkt werden, so wird die Schwenkrichtung durch die bereits ermittelte nachfolgende Bewegungsrichtung festgelegt. Nach dem Schwenk verharrt der Roboter noch eine Weile (auch hier ist die Dauer von der Länge der Bewegung zuvor abhängig), anschließend fährt er los. Er vollführt diese Bewegung dann so lange, bis er entweder auf ein Hindernis stößt, oder bis ein Timeout abgelaufen ist. Dann bleibt er wieder stehen, orientiert sich neu, und das Ganze beginnt von vorne.

Beispielhaft zusammengefasst sieht ein Bewegungsablauf, der sich aus diesem Algorithmus ergibt, folgendermaßen aus: Der Roboter steht, er schwenkt nach rechts, wartet kurz, dreht sich nach rechts, schwenkt nach vorne und fährt geradeaus. Die Verbindung von Kameraschwenk und nachfolgender Bewegungsrichtung erweckt bei Betrachtern den Eindruck, der Roboter würde sich gezielt etwas ansehen und anschließend dorthin fahren, um es genauer zu beobachten.

Da das Bewegungsprogramm und der Kameracode parallel arbeiten, untereinander aber nicht kommunizieren, sind die erstellten Videos in ihrer Zufälligkeit reich an Varianten. Obwohl es während des Betriebs keine Einflussmöglichkeit auf den letztendlichen Videoschnitt gibt, entscheidet die Beschaffenheit des Raums, in dem der Roboter sich bewegt, durchaus über den Rhythmus des Videos. In großen Räumen mit wenig Menschen und glattem Boden dreht der Roboter recht klare Filme, da er in seinen Bewegungen kaum unterbrochen wird. In kleinen Räumen muss er sich öfter neu orientieren. Das Ergebnis sind häufigere Schwenks und Drehungen, sowie mehr Abwechslung in den Fahrten innerhalb einer Einstellung.