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.

Posts mit dem Label Tipp werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Tipp werden angezeigt. Alle Posts anzeigen

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.


Dienstag, 31. Juli 2007

Umwege.

Immerhin habe ich jetzt schon mal einen Videostream der Vehikel-Kamera in meinem Computer. Das Bild unten zeigt, wie sich mein Vehikel in einem anderen Zimmer im Spiegel betrachtet - das eitle Ding. Die Bildqualität ist recht mittelmäßig, etwas besser könnte sie noch durch optimalere Beleuchtung werden. So weit, so gut. Der Weg hierhin war aber wiedereinmal steinig: Weil das Stromversorgungskabel zur Kamera unverhältnismäßig dick ist (...dafür, dass nur 9 V bei 70 mA drüber sollen) und außerdem so einen seltsamen sperrigen Knubbel hat (zu sehen im Posting vom 24.07. [link]), den ich für eine Filterdrossel hielt (von wegen HF...), habe ich das Kabel gegen ein dünneres getauscht. Das allein war schon mal nichts für schwache Nerven, ich warne Neugierige! Denn im Gehäuse sind Kamera- und Funkeinheit als separate Module enthalten, die durch eine abenteuerliche fliegende Verdrahtung verbunden sind. Ich war die ganze Zeit in Sorge, mir könnte beim Hantieren ein Kabel abreißen, ohne dass ich dann rekonstruieren könnte, wo es abgerissen ist. Mit der nötigen Vorsicht ist diese Operation aber sogar geglückt. Nach dem kleinen Umbau wollte ich testen, ob ich die Kamera (Nennspannung 7,5 – 12 V) stabil an den 7,2V des Akkus betreiben kann. Seltsam, irgendwie funktionierte der Gaincontrol dann nicht mehr richtig, hielt ich die Kamera ins Licht, übersteuerte sie total. Also habe ich die Kamera zum Vergleich wieder über das entferne Kabel an das mitgeliefertes 9 V-Netzteil angeschlossen. So funktionierte sie tadellos. Was schließe ich daraus? Ist doch glasklar: der Gaincontrol funktioniert erst bei Nennspannung, die ich ja um ca. 300 mV unterschritten habe. Also baue ich mir einen kleinen Aufwärtsschaltregler (auf Basis des TL497 [link], nettes Ding, braucht wenig externe Beschaltung), der mir aus meinen 7,2 V des Akkus 9 V macht. Der Wandler funktionierte auf Anhieb - aber der Gaincontrol der Kamera trotzdem nicht. Genaueres Messen und Nachdenken (eine Kombination, die in zahlreichen Lebenslagen wahrlich Wunder wirkt) ergab dann: der Knubbel im Kabel war keine Drossel, sondern ein Spannungsregler, der die ungeregelten 9 V des zur Kamera gehörigen Steckernetzteils auf exakt 5 V abregelt. Ich habe die Kamera also nicht mit Unter- sondern mit Überspannung betrieben, deshalb funktionierte der Gaincontrol nicht richtig. Schon mal nett, dass sie’s überhaupt überlebt hat. Im Ergebnis hätte ich mir also meinen schönen Aufwärtsregler sparen, und schlicht die 5 V, die ich für die Digitaltechnik sowieso schon habe auch zur Versorgung der Kamera verwenden können - was ich jetzt auch getan habe.

Ich fasse also noch einmal für all jene zusammen, die die Pollin Funkkamera auch verwenden wollen: man kann sie problemlos an 5 V betreiben, wenn man das Kabel tauscht. Eben dieser Umbau ist aber nichts für Anfänger. Achja, man kann die Kamera auch mit Überspannung betreiben ohne sie zu schrotten, dann funktioniert aber der Gaincontrol nicht mehr. ;)

Donnerstag, 21. Juni 2007

Hinterrad, Version Zweipunktnull

Jetzt ist das neue Hinterrad endlich montiert. Das Prinzip ist das gleiche wie bei der vorigen Version: an der Akkuwanne (ich nenne diesen Teil des Chassis jetzt mal so...) ist zunächst eine Auslegerplatte montiert. Ich habe dafür Aluminium von drei Millimetern Stärke verwendet, damit es nicht zu Instabilitäten kommt. Die Platte ist mit Messingklötzchen befestigt, wie ich sie auch schon bei der Akkuwanne eingesetzt habe (s.u.). In der Auslegerplatte befindet sich ein präzises Loch, in dem sich der Schaft einer Schaftschraube leichtgängig drehen kann - dieses stellt die Lagerung der Gabel dar. Der Gewindeteil der Schaftschraube greift in einen PVC-Block, an dem zwei Aluminiumschenkel befestigt sind und somit die Gabel bilden, in der das Hinterrad gelagert ist. Bei dieser Version sind die Schenkel deutlicher gegen den Lagerpunkt der Gabel verschoben als bei der Vorversion. Relativ zum Chassis liegt der Lagerpunkt übrigens so, dass das Rad seine Orientierung um 360° ändern kann, ohne ans Chassis anzuecken.
Die Realisierung des Hinterrades könnte dem einen oder anderen als kleiner Tipp dienen. Ich habe als Rad eine Andruckrolle aus einem alten Drucker verwendet, gleichartige Rollen habe ich schon in diversen Druckern gesehen, sie sollten also leicht zu bekommen sein. Sie haben zunächst mal den Vorteil, dass sie materialbedingt eine gute Bodenhaftung aufweisen. Meistens sind sie auf sehr präzise – aber zöllige – Achsen aufgepresst, in diesem Falle war es eine 7,93 mm dicke Achse (gemessen, ich war bisher zu faul nachzusehen, was das "nominal" für ein Maß ist). Das Loch in der Rolle hat somit auch einen Durchmesser von knapp unter acht Millimetern. Ich habe dieses Loch nun mit einer präzisen Maschinenreibahle auf 8 mm aufgerieben. Durch eine minimale Menge Fett läuft das Rad dadurch nun ganz hervorragend auf der 7,93 mm Achse. Also habe ich mir ein Stück von der Achse abgesägt, die Enden abgedreht und mit Bohrungen versehen. Somit hatte ich ein hervorragend gelagertes Hinterrad. Das kurze Stück Achse, zu erkennen auf dem letzten Bild, sitzt fest zwischen den Schenkeln der Gabel. Anlaufscheiben rechts und links verhindern, dass das Rad durch die Gabel gebremst wird.
Auf die Auslegerplatte habe ich nun auch schon mal die Motortreiberplatine montiert, die Befestigung für die – ebenfalls noch nicht vorhandene – Hauptplatine steht noch aus.
Außerdem habe ich die Akkuwanne auch noch etwas gekürzt, damit das Vehikel nicht allzu lang wird, es ist jetzt schon etwas größer geworden, als ich geplant hatte.
Achja, so ganz ausdrücklich hatte ich es ja noch garnicht gesagt: das Hinterrad funktioniert jetzt sehr zufriedenstellend, es richtitet sich immer brav auf die aktuelle Fahrtrichtung aus. Schön.


Malte Ahlers 2007-2008