Phi - Ein Roboter als Haustier und Gartenbewohner
http://parinor.pureplayaz.de/

OBEN RUNTER Gehäuse und Fahrwerk

Durch sein Einsatzgebiet werden einige Anforderungen an das Chassis gestellt. Der Bot muss gartentauglich sein. Erstens schließt dies Witterungsbeständigkeit ein, zweitens ein Fahrwerk, was zuverlässig mit unebenem Rasen fertig wird, und drittens eine Bauform, die ein Verhaken oder Hängenbleiben an Hindernissen weitestgehend ausschließt.
Zur Auswahl stehen drei mögliche Antriebsarten: Ein Beinapparat, ein Radfahrwerk oder ein Kettenantrieb.
Beine schließe ich für meinen Bot aus. Ein Beinapparat zu konstruieren ist für sich schon eine stattliche Aufgabe und als Resultat hätte ich ein sehr langsames Bewegungsverhalten. Des weiteren können sich Beine sehr schnell an herumliegenden Zweigen verfangen. Betrachtet man andere Hobbyentwicklungen von Laufrobotern sehe ich auch Schwierigkeiten, Elektronik oder Mechanik ausreichend vor auftretender Feuchtigkeit zu schützen.
Bleibt die Frage: "Rad oder Kette?" Der Vorteil von Rädern ist die geringere Verlustleistung durch Reibung und weniger Verschleiß. Normalerweise sind dies ausreichende Gründe, um sich gegen den Kettenantrieb zu entscheiden. Ich habe mich dennoch für das Kettenfahrwerk entschieden und begrüende dies mit leichterer Manövrierbarkeit. Um aufwändiges Lenkgestänge zu vermeiden, kann man Räder wie Ketten gegenläufig ansteuern um Drehungen auf der Stelle zu erreichen. Ich denke aber, daß durch die geringere Auflagefläche, die zudem auf vier einzelne Punkte verteilt ist, auf unebenem Boden das Risiko besteht, daß die Drehbewegung - deren Winkel ja odometrisch vorgegeben wird - verfälscht werden könnte. Bei aufliegenden Ketten ist das gesamte Gewicht auf einer größeren Fläche verteilt und Unebenheiten beeinflußen das Drehverhalten weniger. Wählt man Räder, müssen diese auch einen größeren Durchmesser haben, wodurch durch Drehung seitlich auftretende Scherkräfte eine größere Hebelwirkung erreichen. Kurz gesagt: In der Ebene, z.B. in Gebäuden sind Räder sinnvoller, für meine Bedingungen sind Kettenfahrwerke die beste Wahl.
Da die Entscheidung zum Kettentrieb gefällt ist, bleibt die Frage der Technik. Ich habe schöne Hobbyentwicklungen von selbst gebauten Kettenantrieben im Netz gesehen, die alternativ zu teuren Industrielösungen stehen. Eine eigene Konstruktion stellt zwar hohe Anforderung an handwerkliches Geschick, Zeit und den eigenen Werkzeugkasten, aber ist das nicht gerade der Reiz?
Im Prinzip orientiere ich mich an diesem Projekt. Nur bei der Wahl des Grundwerkstoffes habe ich mich für Holz entschieden. Es hat weniger Gewicht, ist preiswerter und leichter zu bearbeiten.


OBEN RUNTER HOCH Elektronik

Nachdem ich durch kleinere Projekte die Mikrocontroller der Firma Atmel kennen gelernt habe, bilden diese hier auch wieder das Rückrat der Elektronik. Ich werde versuchen, sämtliche Funktionen innerhalb des Bots über einen einzelnen μC zu steuern. Bisher habe ich einen ATmega32 auf einer Experimentierplatine sitzen. Ich plane, die einzelnen Hardwarekomponenten einzeln als Module zu entwickeln, um sie mit meinem Experimentierboard zu testen. Dabei wird sich dann auch zeigen, wie welches Modul vom μC angesteuert werden muss. Sind diese Vorbereitungen abgschlossen, entscheide ich, welcher Atmel-μC dafür genutzt wird.
Anfangs wollte ich sämtliche Elektronik auf Lochrasterplatinen aufbauen. Mittlerweile habe ich mich für geätzte Platinen entschieden und in E.A.G.L.E. eingearbeitet, weil ich einfach Lust dazu hatte.
Generell habe ich zwar die Möglichkeit, auf fertige Platinen und Module zurückzugreifen, die im Internet angeboten werden, mich interessiert aber, die einzelnen Schaltungen selbst aufzubauen und auf das nötigste zu beschränken. Die Schaltungen selber sind aber nicht komplett von mir erdacht, sondern ich lasse mich da von zahlreichen fremden Projekten inspirieren. Entsprechende Quellenangaben werden selbstverständlich gemacht.
Die Energieversorgung soll komplett autark sein. Das Herz bildet ein Blei-Gel-Akku, den der Bot an einer Ladestation selbstständig läd. Ich denke, diese wird, ähnlich einer Hundehütte aufgebaut, zusätzlich Schutz vor schlechter Witterung bieten und ihren Strom aus Solarzellen beziehen. Ob ich die Baken über kleine Akkupacks, kleine Solarpaneels oder via Kabel zur Ladestation mit Strom versorge, entscheide ich später, wenn ich ein paar Erfahrungen mit Solarzellen gemacht habe. Insgesamt möchte ich mein System komplett unabhängig von der konventionellen Stromversorgung haben. Teils, weil ich mir dann keine Gedanken zum Verbrauch bei Dauerbetrieb machen muss, und teils, weil mich die Idee des Unabhängigen einfach reizt.
Ich plane auch eine bidirektionale und drahtlose Datenbrücke um das φ mit meinem Netbook zu verbinden. Erstens sollen Statusdaten an den PC gesendet werden, zweitens will ich einen Notschalter haben, der auch aus der Entfernung den Roboter sofort aufstoppt und drittens möchte ich die erstellte Karte graphisch aufbereiten. Eine direkte Fernsteuerung soll er allerdings nicht bekommen, schließlich soll er so autonom wie möglich sein.
Zur kabellosen Datenbrücke habe ich die Idee, auf die mittlerweile oft verwendete Funktechnik zu verzichten, und stattdessen Schall oder Infrarot als Träger der Daten zu verwenden. Da ich ja schon über ein Bakennetz verfüge, das via Infrarot vom φ angesprochen werden kann, überlege ich, diese um einen IR-Sender zu erweitern, um vom Netbook über die Baken zum Roboter und zurück kommunizieren zu können.
Sollte es da Probleme geben, spiele mit dem Gedanken, stattdessen Schall zu benutzen. Ich muss dann nur aufpassen, daß die US-Sensoren nicht gestört werden und weiche auf den hörbaren Bereich des Schalls aus. Bleibt nur abzuwarten, ob diese Kommunikation den Charme einer R2-Einheit hat, oder einfach nur nervt, weswegen diese Art der Kommunikation auch erstmal die zweite Wahl ist.


OBEN RUNTER HOCH Sensorik

Für eine automatisierte Interaktion mit seiner Umwelt benötigt man eine Reihe von Sensoren. Für mein φ habe ich die Teilbereiche Kollisionsvermeidung, Navigation und Witterung abzudecken.

Beginnen wir mit der Kollisionsvermeidung:
Für den unmittelbaren Nahbereich erhält der Bot eine Fühlerleiste. Diese will ich mit flexiblen Gitarrenseiten aufbauen, die bei mechanischer Biegung schalten. Zur berührungslosen Hinderniserkennung kommt dann eine Kombination aus einem selbst entwickelten Ultraschallsensor und einem Infrarotentfernungssensor zum Tragen. Diese werden auf einem drehbaren Sensorkopf installiert, um mindestens den ganzen Vorrausbereich abzudecken.

Sensoren zur Positionsbestimmung:
Um die eigene Position im Raum zu bestimmen, gibt es mehrere Möglichkeiten. Hierbei ist eine Frage besonders wichtig: Sind dem Roboter zusätzliche Referenzen gegeben oder muß er auf sich alleine gestellt navigieren.
Schwer wird es, wenn dem Bot keine Hilfsmittel zur Verfügung gestellt werden können. Hier wird oft das Katastrophengebiet als Beispiel herangezogen. Mittlerweile sind Prototypen von Suchrobotern entwickelt worden, die hauptsächlich bei der Personensuche zum Einsatz kommen sollen. Da diese Roboter in unbekanntem Gebiet mit zerstörter Infrastruktur eingesetzt werden, müssen sie ohne externe Hilfe navigieren können.
Das klassische Beispiel für ein System mit Hilfstechnik ist GPS. Beim Global Positioning System bilden 24 geostationäre Satelliten die notwendigen Referenzpunkte aus deren Daten die eigene Position bestimmt werden kann.
Für mich kommt nur eine von außen gestützte Navigation in Frage. Meine Zielsetzung gibt mir Terrain, in dem ich problemlos Referenzen installieren und pflegen kann. Mathematisch betrachtet kann die Positionsbestimmung dann via. Vektorrechnung bestimmt werden. Ohne diese Hilfsmittel müsste ich entweder komplett auf Odometrie und Beschleunigungsmessung zurückgreifen oder sehr aufwändig Kameradaten verarbeiten. Ersteres hat den Nachteil, daß sich Fehler mit der Zeit aufsummieren, für zweites reicht mein Wissen bezüglich Datenerfassung und -verarbeitung nicht aus. Außerdem kommt man dann schnell an die Grenzen der Rechenkapazität eines einzelnen μC.
Wenn man wie ich für seinen Bot Navigationshilfsmittel aufbauen möchte, hat man wiederum mehrere technische Alternativen. Beliebt ist die Winkelmessung von angepeilten Sendersignalen. Aus den Winkeln zu drei bekannten Sendern kann sowohl die Position, als auch die eigene Ausrichtung ermittelt werden. Eine weitere populäre Möglichkeit ist das Bestimmen der Abstände zu den Sendern, hier bietet sich die Laufzeitmessung von Schall an. Dieses Verfahren möchte ich mir für meinen Roboter zunutze machen.
Geplant ist, an mehreren bekannten Orten sog. 'Antwortbaken' zu installieren. Jeder Bake wird ein anderes Infrarotsignal zugeordnet. Trifft ein IR-Signal des Bots auf den Empfänger der zugehörigen Bake, antwortet diese mit einem Ultraschallsignal. Die Lichtgeschwindigkeit kann bei den kurzen Strecken vernachlässigt werden, sodaß der Bot nur die Zeit zwischen seinem IR-Signal und dem eintreffenden US-Signal messen muss. Durch die IR-Signalzuordnung einzelner Baken kann der Bot gezielt einzelne Schallsignale abrufen. Aus den Abständen zu drei Baken lässt sich der Standort des Bots berechnen, allerdings nicht seine Ausrichtung. Hier muss man auf andere Sensoren zurückgreifen, wie z.B. ein Magnetfeldsensor als Kompass. Alternativ kann man aber den Kompass komplett weglassen, wenn man anfangs eine Blindfahrt in Kauf nimmt. Dabei sollte die Genauigkeit eines Magnetfeldsensors übertroffen werden. Die Ausrichtung wird bestimmt, indem nach einer Positionsberechnung eine gerade Strecke gefahren wird um danach erneut den Standort zu ermitteln. Der Winkel der gefahrenen Strecke ist dann äquivalent zur Botausrichtung. Von der zweiten Position aus kann der Bot dann normal navigieren. Diese Methode erfordert weniger Hardware und die wesentlichen mathematischen Berechnungen sind schon in den Navigationsroutinen enthalten weswegen ich mich gegen den Magnetfeldsensor entschieden habe.
Ist die Wegfindung abgeschlossen, bewegt sich das φ auf Streckenvektoren deren Winkel und Längen odometrisch abgefahren werden. Hierfür bekommt der Bot Lichtschranken, die die Wellenumdrehungen zählen und der Bot so Informationen über Geschwindigkeit und gefahrene Strecke erhält.

Wetterfühligkeit:
Mein φ benötigt für die autonome Fahrt Witterungssensoren um sich vor Schlechtwetter zurückziehen zu können oder um die Solarzellen ins richtige Licht zu rücken. Der Helligkeitssensor ist hier das kleinste Problem. Auf dem Sensorkopf montiert kann Sonnenlicht und Tageszeiten erkannt werden.
Um Regen zuverlässig zu erkennen, muss ich mir einen eigenen Sensor basteln. Mein erster Gedanke ist eine Streifenrasterplatine, deren Kupferbahnen alternierend zusammmengefasst an GND und einem Eingangspin angeschlossen werden. Bei auftreffenden Regentropfen kommt es zu leitenden Verbindungen, der Pin wird auf GND gezogen und der Bot sucht Schutz. In bestimmten Zeitintervallen wird der Pin dann kontrolliert, ob der Sensor wieder trocken ist. Stellt sich nur Frage: "Ist Schnee leitend?" Bei Schnee gibt es noch die Möglichkeit, über einen Temperatursensor und regelmäßigem Abfragen des Helligkeitssensors via Algorithmus auf Schnee zu schließen. Temperaturfühler sind eh Pflicht, zum einen zur Erkennung von Überhitzung der Technik, zum anderen, weil sich die Schallaufzeit in Abhängigkeit zur Lufttemperatur signifikant verändert.
Da in unseren Breiten Stürme normal sind, spiele ich mit dem Gedanken, meinem φ ein selbst gebautes Schalenanemometer zu spendieren, sodaß er sich bei entsprechenden Windstärken zurückziehen kann.


OBEN HOCH Navigation

Allgemein bezeichnet die Navigation das Zurechtfinden in einem topographischen Raum, um einen gewünschten Ort zu erreichen. In meinem Fall soll sich mein Bot in meinem Garten zurechtfinden, wodurch ich mich auf eine topographische Ebene beschränken kann.
Grundsätzlich stehen zwei Möglichkeiten der Kartierung zur Verfügung: Vektoriell oder auf einem Rasternetz. Der Nachteil der gerasterten Karten ist die aufkommende Datenflut. Je kleiner das Raster, umso mehr Daten fallen an. Andererseits ist die Datenmenge statisch und im Vorfeld bekannt. Vektoriell ist die Ortung insbesondere bei groben Raster genauer. Oftmals streiten sich die Geister um das "bessere" System, wobei es auf die Gesamtsituation ankommt. Ich denke, kombiniert vereinen sie die Vorteile beider. Während die Standortbestimmung und Wegfindung vektoriell abläuft, kann die Kartierung auf Rasterbasis erfolgen. Hierbei kann jedem Planquadrat der Karte Informationen über dessen Zustand zugeordnet werden und der Bot kann in seiner Streckenplanung "belegte" Felder vektoriell umgehen. Das hat zum Vorteil, daß das Rastermaß vorher auf die vorhandene Speichermenge angepaßt werden kann und das Verarbeiten von Statusdaten einfacher ist. Gleichzeitig habe ich vektorielle Standorte, mit denen die Wegfindung einfacher und genauer ist. Lediglich der Mindestabstand zum kartographierten Hindernis steigt mit gröberem Raster.

OBEN Letzte Änderung: 21. Januar 2013 - © Per Petersen