Für die mobile Robotik erscheinen mir im Rahmen meines Projektes zunächst folgende Sensoren sinnvoll:
Taster - um direkt Kollisionen zu erkennen
Ultraschallsensoren - um Kollisionen zu vermeiden und sinnvoll zu
navigieren
Infrarotsensoren - zur Kollisionsvermeidung im Nahbereich und Navigation
Gabellichtschranken - um die Drehzahl der Räder zu erfassen
Später ist eventuell noch eine einzeilige CCD-Kamera hinzuzufügen, um eine
Linienverfolgung zu realisieren .
Sensoren können in die Kategorien aktiv bzw. passiv eingeordnet werden.
Passive Sensoren leiten ihre Informationen aus der Umgebungsenergie ab. Hierzu
kann man zum Beispiel Taster oder auch die Bildauswertung mit Hilfe von
Kamerabildern zählen. Aktive Sensoren führen ihrer Umgebung aktiv Energie zu.
Als Beispiel hierfür könnten Ultraschall- und Infrarotsensoren dienen.
Taster
Taster stellen bei der Kollisionsvermeidung die letzte Instanz dar, da wenn
sie ein Signal geben, die Kollision bereits erfolgt ist. Trotz allem kann man
nur schwer auf sie verzichten, da unter anderem bei flachen Hindernissen oder
ähnlichen Sachen die nachfolgend angeführten Sensoren wenig Chancen zur
Hinderniserkennung haben.
Erfasst können die Signale der Taster recht einfach durch die digitalen Ports
des Controllers. Es sollten möglichst leichtgängige Taster verwendet werden.
Allerdings ist darauf zu achten, dass ein Schließen der Kontakte während der
Fahrt nicht auftritt, da sonst Fehlreaktionen des Roboters die Folge sein
können. Man kann dieses natürlich auch programmtechnisch ausfiltern, indem man
festlegt, dass ein Taster eine gewisse Zeit geschlossen sein muss, bevor man
dieses als Kontakt deutet. (siehe auch Entprellung von Tastern)
Ultraschallsensoren
Prinzipiell basiert die Entfernungsmessung mit einem Ultraschallsensor auf einer Laufzeitmessung des Schalls. Praktisch heißt das, dass der Roboter ein Schallsignal im nicht mehr hörbaren Bereich abgibt und wartet, bis er das Echo empfängt. Aus der Zeit, welche der Schall hin und zurück gebraucht hat lässt sich dann einfach die Distanz ermitteln.
In der Praxis tauchen jedoch schnell bestimmte Probleme auf. So sendet der
Transmitter einen Schallimpuls von ca. 2,5ms Länge aus. Fast gleichzeitig
beginnt jedoch schon das Analogsignal am Receiver (Empfänger) anzusteigen. Die
Ursache hierfür liegt in der Tatsache, dass sowohl Sender als auch Empfänger im
unten angegebenen Beispiel auf derselben Platine angebracht sind. Auch emittiert
der Sender den Schall nicht nur in eine Richtung, sondern in einer Art
Keulenform.
Dieser Störfaktor muss vom Auswertealgorithmus beseitigt werden, da sonst
Fehlmessungen die Folge wären. Die eigentlich gesuchte Laufzeit ergibt sich aus
der Differenz zwischen dem Zeitpunkt an dem ein Maximum am Empfänger auftaucht
und der halben Einschaltzeit am Sender. Dies soll die folgende Grafik
verdeutlichen.
Selbstverständlich ist das reale Empfängersignal wesentlich verrauschter.
Nach dem Ausschalten des Senders ist das ausgesandte Schallpaket noch immer
unterwegs. Dieses wird von den angetroffenen Gegenständen teilweise reflektiert.
So taucht im Normalfall zeitversetzt am Empfänger wieder ein Ansteigen der
Intensität auf. Aus der Zeit lässt sich der Weg dann wie folgt berechnen:
Soweit so gut, nur leider wurde bis hierhin von einer relativ idealen Umgebung ausgegangen. In der realen Welt funktioniert es zumeist nicht so einfach, es tauchen gewisse Störfaktoren auf.
Die oben angeführten Probleme lassen sich teilweise eliminieren, indem man auf dem Mikrocontroller eine ordentliche Signalauswertung implementiert. Auch kann man die Ultraschallemitter jeweils getrennt ansteuern, um Punkt 4 zu vermeiden.
Aufgrund der Komplexität haben ich der Ultraschall-Entfernungsmessung ein eigenes Kapitel gewidmet.
Selbstverständlich sind auf dem Markt auch fertig aufgebaute Module zur
Entfernungsmessung mittels Ultraschall verfügbar. Hier sei beispielsweise auf
den SRF04 und dessen Weiterentwicklung SRF08 verwiesen. Allerdings schlagen
diese mit nicht unerheblichen Kosten zu Buche. Nähere Daten können den
Datenblättern entnommen werden. Auch verbreitet sind Ultraschallsensoren von
Polaroid und anderen Herstellern.
Eine weitere mir bekannte Variante ist die Realisierung eines Näherungsschalters
mittels Ultraschall. Vom Prinzip her wird nun kein Impuls mehr gesendet, sondern
der Sender ist im Dauerbetrieb. Ausgewertet wird die Intensität des empfangenen
Signals am Empfänger. Hierzu kann man beispielsweise einen bei
Conrad erhältlichen Bausatz
verwenden. Diesen kann man dann mittels Potentiometer auf die gewünschte Distanz
einstellen. Wird ein bestimmter Schwellwert überschritten/unterschritten wird
ein Schaltvorgang ausgelöst. Diesen kann man auswerten.
Infrarotsensoren
Infrarotsensoren gibt es in verschiedenen Bauformen.
In meinem Fall fand der Sensor GP2D120 der Firma Sharp Anwendung. Hierbei handelt es sich um einen Distanzsensor mit einem Entfernungsbereich von 4-30cm. Die Toleranz wird vom Hersteller mit etwa 0,5cm angegeben. Angeschlossen wird der Sensor über ein dreiadriges Kabel: Masse, Betriebsspannung und der Signalpin. Am Signalpin kann eine Spannung zwischen 0,4 und 2,8V abgenommen werden. Diese steht in einem direkten Zusammenhang zur gemessenen Entfernung.
Selbstverständlich gibt es noch andere Infrarotsensoren. Zum Beispiel der
GP2D150A des selben Herstellers. Er verfügt über einen Erfassungsbereich von 3
bis 30cm. Im Unterschied zum obigen Modell kann er jedoch nur feststellen, ob
eine bestimmter Abstand (voreingestellt 15cm) unterschritten bzw. überschritten
wurde. Hierbei wechselt auf dem Signalpin das Potential zwischen low und high.
Das Modell GP2Y0D02YK funktioniert genauso, nur hat es einen Entfernungsbereich
von 20 bis 150cm. Der fest eingestellte Schaltabstand beträgt 80cm.
Nun jedoch zum zuerst angeführten Modell. Wie auch bei den
Ultraschallsensoren weichen Theorie und Praxis voneinander ab. So ist die Stärke
des reflektierten Signal wesentlich von der Oberfläche des detektierten Objekts
abhängig. Doch genau hier liegt die Stärke dieser Sensoren, da sie von der
Intensität nur gering abhängig sind. Auch steigt die Toleranz mit steigender Entfernung nicht unwesentlich
an. Nach Abschluss der Messung stellt der Sensor an seinem Signalpin einen zur
Distanz proportionalen Wert zur Verfügung, welcher nun ausgewertet werden kann.
Für die Auswertung gibt es 2 Möglichkeiten. Für beide sollte man zunächst einmal
die Kennlinie der einzelnen Sensoren aufnehmen, da diese von Sensor zu Sensor
aus fertigungstechnischen Gründen leicht differieren können. Dann kann man
entweder für jeden Sensorwert eine Distanz in einer so genannten Look-Up-Table
speichern, oder man nähert den erhaltenen Grafen einfach einer Funktion an, und
lässt den Mikrocontroller die Entfernung berechnen.
Man kann natürlich auch einfach die reale Distanz ignorieren und arbeitet
einfach mit den erhaltenen Werten.
Nun noch kurz zum Funktionsprinzip des Sensors:
Die Distanzerfassung des von mir verwendeten Infrarotsensors basiert auf dem
Prinzip der aktiven Triangulation. Als Lichtquelle wird eine fokussierte
Infrarot-LED eingesetzt. Diese strahlt das Zielobjekt direkt an. Das
reflektierte Signal wird von einem PSD-Element detektiert (Position Sensitive
Detektor). Hierbei handelt es sich um einen länglichen Fotowiderstand. Der
einzige Unterschied zu einem normalen Widerstand ist, dass die
Widerstandsänderung nicht von der Stärke des eintreffenden Lichtes abhängig ist,
sondern von der Position auf welcher es auf dem PSD eintrifft. Da zwischen dem
Abstand des Objektes und der Abbildung des Lichtes auf dem PSD ein nichtlinearer
Zusammenhang besteht, ist die Auflösung im Nahbereich wesentlich besser, als bei
größeren Distanzen.
Die nachfolgende Grafik soll das zuvor Erklärte verdeutlichen.
Zusätzlich existieren noch Infrarotsensoren, welche wie eine Art
Näherungsschalter funktionieren. Als Beispiel sei hier eine Schaltung mit Hilfe
des IS471F angeführt. Diese vereint diverse Baugruppen bereits in sich.
Angeschlossen werden muss lediglich noch eine IR-LED, welche vom IS471F mit
einer modulierten Spannung versorgt wird. Dies ist notwendig, um die
Störeinflüsse der Umgebung weitgehend zu eliminieren. Wird das von der Diode
ausgesendete Signal von einem Gegenstand reflektiert, so trifft es auf den
IS471F. Dessen Logik schaltet nun automatisch High auf Low.
Wesentlich praktischer ist es, wenn man zusätzlich das Wechselsignal des
Schaltkreises mittels eines Transistors verstärkt und dann mit dem verstärkten
Signal eine leistungsstarke IR-LED ansteuert. Diese sollte optisch gegen den
Schaltkreis abgeschirmt sein, da es sonst durch Streulicht zum sofortigen
Schalten kommen könnte. Hierzu empfiehlt sich die Verwendung einer LED-Fassung.
Ziel der ganzen Aktion war selbstverständlich eine Erhöhung der Reichweite des
Schalters.
Trotz allem ist natürlich auch diese Variante ziemlich stark von den
Oberflächeneigenschaften der angestrahlten Fläche abhängig. Hier noch zum
Abschluss eine Beispielsschaltung:
Das Betreiben einer LED direkt an der Betriebsspannung ist normalerweise für
dieselbe tödlich. Da der Schaltkreis aber immer nur kurz einschaltet, verkraftet
die LED die kurzen Stromstöße. Um die Stromstärke und damit die Leuchtkraft der
LED zu erhöhen, kann man zusätzlich einen pnp-Transistor einfügen. Der
Kondensator dient dazu, Spannungsspitzen direkt gegen Masse kurzzuschließen.
Mittels des Potentiometers kann die Schaltschwelle justiert werden. Zusätzlich
einfügen könnte man noch eine LED geschützt durch einen entsprechenden
Vorwiderstand (bspw. 1K) zwischen Output und Masse. Diese dient als optischer
Indikator, wann der Schaltkreis schaltet. Gerade bei der Justierung erleichtert
dies die Arbeit ungemein, da man direkt die Funktionsfähigkeit prüfen kann.
Die genaue Funktionsweise des Schaltkreises kann einem Blockschaltbild des
Datenblattes entnommen werden und soll hier nicht tiefer gehend erläutert
werden.
Gabellichtschranken
Lichtschranken kann man in drei verschiedene Kategorien einteilen.
Ein Problem können unter anderem Verschmutzungen, Störlichtquellen und eine Dejustage darstellen. Ein probates Mittel gegen Störlichtquellen stellt eine Modulation des Lichtes dar. Allerdings hilft auch diese nichts, wenn die Intensität des Störlichtes ein gewisses Maximum erreicht.