Worum es hier geht

Dieses Blog dokumentiert Fortschritte und Rückschläge der Entwicklung meines ersten Roboterprojektes. Ich habe dem Projekt den Namen vehikel[eins] gegeben - mit mehr oder weniger Hintersinn. Das Vehikel ist als fahrender Roboter konzipiert, der sich mittels einer Kamera visuell orientieren können soll. Die eigentliche Bildverarbeitung findet auf einem PC statt, der Roboter wird deshalb per Funk mit einem Computer in Verbindung stehen. Ich verkneife mir, allzu übermütige Pläne darüber zu schmieden, was im Detail mein Vehikel später visuell leisten können soll. Ich bin in erster Linie von der Idee eines Systems fasziniert, das mit Hilfe selbst gewonnener visueller Informationen in der realen Welt halbwegs sinnvoll agiert - mit der Welt interagiert. Alles noch etwas undurchsichtig? Ja... :)

Der aktuelle Stand

Ich habe das Projekt in drei Etappen aufgeteilt. Die erste Etappe bestand in der mechanischen Realisierung einer motorisierten Plattform für alle späteren Aufbauten. Diese Etappe wurde erfolgreich abgeschlossen. Daraus hervorgegangen ist ein dreirädriges Vehikel, dessen zwei Vorderräder unabhängig über ein Getriebe von jeweils einem Schrittmotor angetrieben werden. Das Hinterrad stellt sich passiv auf die aktuelle Bewegungsrichtung ein. In der zweiten Etappe des Projektes ging es darum, die Elektronik des Vehikels und der Basisstation zu entwickeln. Auch wenn ich noch an Details arbeite, ist diese Etappe in dem Sinne abgeschlossen, dass die gesteckten Ziele erreicht wurden. Der zentrale Mikrocontroller des Vehikels ist ein ATMEL AVR Mega32, die Firmware dafür entwickle ich mit der BASCOM IDE von MCS. Die Schrittmotoren werden durch eine Treiberelektronik auf Basis der Bausteine L297 und L298 angesteuert. Eine Funkverbindung zwischen Vehikel und PC wird mittels eines dazu entwickelten Interfaces hergestellt, das bidirektional mit dem PC über RS-232, mit dem Vehikel per Funk im 433 MHz Band kommuniziert. Die Funkstrecke wurde auf Grundlage der RFM12 Module von HopeRF realisiert. Vorne auf dem Vehikel ist eine mittels Servo bewegliche Funkkamera installiert. Die Kamera unterhält eine eigene Funkstrecke mit ihrem Empfängermodul, das mit PC-Interface und Netzteil die Basisstation bildet. Die am Vehikel befindliche Sensorik kann je nach konkretem Versuch variieren, zur Zeit ist vorne ein SRF05 Ultraschallmodul als Echolot installiert, an den Seiten vorne und hinten befinden sich Infrarot-Abstandssensoren. Die dritte Etappe ist diejenige, die für mich die unberechenbarste ist (aber deshalb auch besonders spannend), denn dabei steht die Implementierung eins visuellen Verhaltens im Mittelpunkt. Mittlerweile habe ich die ersten kleinen "Erfolge" in diesem Bereich zu verzeichnen.

Zum Aufbau dieser Seite


Unterhalb dieses Abschnittes sind die Tagebucheinträge chronologisch angeordnet, der aktuellste steht oben. Es werden nur die jeweils jüngsten acht Einträge auf dieser Seite angezeigt, ältere kann man an ihrem unteren Ende aufrufen. Man kann einen Eintrag kommentieren, in dem man auf "comments" unter dem entsprechenden Posting klickt.

Donnerstag, 27. Dezember 2007

Infrarot Näherungssensoren

Es ist schon einige Zeit her, dass ich mein Vehikel an den Seiten vorne und hinten mit Näherungssensoren ausgestattet habe. Deren Erforderlichkeit hatte sich recht schnell aus meinen ersten Navigationsversuchen ergeben. Ich hatte zunächst mit einigem Aufwand versucht, während einer Drehung aus den verschiedenen vom Echolot gemessenen Entfernungswerten den Winkel, den das Vehikel aktuell zur Wand hat, zu bestimmen. Daraus hätte man dann eine neue Bewegungsrichtung von der Wand weg ableiten können. Das ist leider nur in der Theorie einfach, in der Praxis multiplizieren sich verschiedene Unzulänglichkeiten derart, dass im Falle meines Vehikels dieses Verfahren zwar manchmal, aber längst nicht immer funktioniert. Ich habe gerade keine Lust, auf Details einzugehen, im Endeffekt zeigte sich, dass ich eine Wand, die nahe und tendenziell parallel zum Vehikel verläuft, nicht sicher aus der Echolotinformation erkennen kann. Damit war klar, dass ich an den Seiten Näherungssensoren benötigte, wobei ich allerdings eine binäre Information über den Abstand für ausreichend erachtet habe (Wand oder nicht Wand, das ist hier die Frage). Ich habe mich für eine Infrarot-Variante auf Basis des IS471F (Datenblatt: [link], relativ günstige Bezugsquelle: [link]) entschieden. Der Sensorbaustein enthält neben einem IR-Detektor dessen Auswertungselektronik und die Ansteuerungselektronik für eine extern benötige IR-LED (hier verwendet: Siemens LD274, Datenblatt: [link]). Das Licht einer angeschlossenen LED wird von der sensorinternen Logik mit ca. 8 KHz moduliert, nur reflektiertes Licht dieser Modulation wird von dem Sensor als Signal aufgefasst, im Ergebnis ist er somit recht immun gegen Fremdlicht. Um einstellen zu können, ab welchem Abstand der Sensor schaltet, habe ich den Vorwiderstand für die LED als Spindeltrimmer ausgeführt. Somit kann ich den LED-Strom, damit deren Leuchtstärke und also auch die vom Hindernis reflektierte Lichtmenge variieren. Leuchtet die LED heller, werden also schon weiter entfernte Hindernisse erkannt. Wie sich bei Versuchen zeigte, führt der recht große Öffnungswinkel des Sensors dazu, dass auch Hindernisse detektiert werden, die sehr schräg zur Fahrzeugseite verlaufen. Um dieses Phänomen einzuschränken, habe ich die Sensoren mit kleinen Kappen versehen, die den Sensor seitlich etwas abschatten. Den konkreten Aufbau am Vehikel zeigen die folgenden drei Fotos.
Ergebnisse des ganzen Aufwandes? Naja. Ich habe zwischenzeitlich begonnen, mit der kamerabasierten Navigation zu spielen (dazu bald mehr), weshalb die Experimente mit dem Ultraschall- und den IR-Sensoren vorerst in den Hintergrund getreten sind. Ich kann deshalb nur in aller Kürze von einigen Problemen berichten, die die IR-Sensorik hat. Ein (vorhersehbares) Problem, das ich (dennoch) erheblich unterschätzt habe, ist die Abhängigkeit der Detektionsleistung der Sensoren von der spektralen Reflektanz („Farbe“) der Hindernisoberfläche. Wenn man die Sensoren anhand einer weißen Fläche auf eine Entfernung einstellt, kann eine blaue Fläche dazu führen, dass der Sensor sich nochmal um 50% der Strecke nähern muss, um zu schalten. Außerdem verfügt der Sensor über eine Hysterese, die in vielen Fällen zwar sicherlich sinnvoll ist, mich hier aber eher stört. Im Ergebnis schaltet er bei Annäherung bei einem bestimmten Abstand, bei anschließender Entfernung in der gleichen Achse aber erst deutlich später wieder zurück.


Keine Kommentare:

Malte Ahlers 2007-2008