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.

  1. Oft taucht die Situation auf, dass nicht nur das angepeilte Objekt sondern auch Nachbarobjekte den Schall reflektieren. Ergebnis ist, dass am Ausgang mehrer Maxima auftauchen. Diese getrennt oder nur bestimmte von ihnen auszuwerten bleibt Sache des Anwenders.
  2. Zu allem Überfluss ist der Grad, wie stark ein Objekt den Schall reflektiert, stark von dessen Oberfläche abhängig. So ist darauf zu achten, dass das empfangene Signal nicht im allgemeinen Rauschen oder zwischen den Störungen durch anderweitige Reflektionen verschwindet.
  3. Darf sich das Objekt nicht zu nah am Roboter befinden. Dann würde sich die oben angeführte Messmethode nicht mehr eignen. Eine Lösungsmöglichkeit stellt das Ignorieren des Koppelsignals (Störung) am Anfang dar. Man misst einfach die Zeit zwischen Einschalten des Senders und dem ersten Maximum am Empfänger.
  4. Mehrere am Fahrzeug befestigte Ultraschallentfernungsmesser können dazu führen, dass die Sensoren auch die Signale benachbarter Transmitter empfangen. Dies kann zu Fehlmessungen führen.
  5. Ist die Schallgeschwindigkeit in nicht unerheblichem Maße von der Lufttemperatur abhängig.

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.

  1. Reflexlichtaster
    Hier sind meist Sender und Empfänger in einem Gehäuse integriert. Der Sender emittiert Licht einer bestimmten Wellenlänge und der Empfänger misst die Intensität des reflektierten Lichtes. Helle Flächen reflektieren Licht stärker als dunkle Flächen. Anwendung findet dieses Prinzip beispielsweise bei der Drehzahlmessung. Hier wird auf die Welle eine Scheibe aufgebracht, auf der abwechseln helle und dunkle Flächen aufgetragen sind. Durch eine kontinuierliche Messung der hell/dunkel bzw. dunkel/hell Übergänge kann auf die Drehzahl geschlossen werden. Zur Zeitbestimmung kann einer der integrierten Timer des Controllers genutzt werden.
  2. Reflexlichtschranke
    Eine Reflexlichtschranke besteht analog zum Reflexlichtaster auch aus einem Baustein, in dem Sender und Empfänger untergebracht sind. Dieser Anordnung gegenüber wird ein Reflektor angebracht.  Wird nun ein Objekt zwischen Sender/Empfänger und Reflektor gebracht, so wird der Lichtstrahl unterbrochen. Der Empfänger kann kein Signal mehr empfangen. Praktisch bringt man auf eine Welle eine durchsichtige Scheibe auf, welche wechselnd lichtdurchlässig bzw. mit Hilfe von Bedruckung oder Aufklebern lichtundurchlässig ist. Die Drehzahlmessung erfolgt analog zum Reflexlichttaster.
  3. Durchlichtschranke (Gabellichtschranke)
    Hier sind Sender und Empfänger einander gegenüber angeordnet. Zwischen beide wird eine Scheibe analog zu Punkt 2 gebracht, welche wiederum auf der Welle aufgebracht ist. Die Drehzahlmessung erfolgt durch Messen der hell/dunkel und/oder dunkel/hell Übergänge.

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.

 

Zurück zur Startseite.