Unser vorläufiges Sensorkonzept

Im Folgenden werden unsere vorläufigen Planungen für die Erweiterung des RP6 vorgestellt.

1) Analoge Sensoren:
1.1) Lichtsensoren:
Es soll am Boden des Roboters in jeder Ecke ein Lichtsensor befestigt werden, um die schwarzen Sackgassen vom RoboCup Rescue B zuverlässig zu erkennen. Weniger oder mehr Lichtsensoren zur Erkennung machen wenig Sinn, da der Roboter niemals z.B. nur mit der rechten Seite, aber nicht mit den beiden Kanten, die diese Seite berühren, in die Sackgasse fahren wird.
1.2) Wärmesensoren

Um die Opfer zuverlässig zu erkennen, muss der Roboter normalerweise in zwei Richtungen ,,gucken“ können: nach links und nach rechts (Ich habe in den Regeln noch nicht ganz verstanden, ob der Roboter auch Opfer anzeigen können muss, die sich z.B. in der Front des Roboters befinden). Dafür gibt es für uns zwei Möglichkeiten: Die digitale Fertiglösung (TPA81), wovon man min. zwei Stück für insgesamt 160€ benötigen würde oder die analoge Selbstbaulösung. Dafür benötigt man ein Thermopile Element, was mit Optik mit einem Öffnungswinkel von 7° ca. 20€ kostet. Die Elektronik (grob geschätzt pro Sensor 3-4€) muss man sich eben selbst zusammenbauen und zusammenlöten. Das sind pro Sensor ca. 6 oder 7 Bauteile. Die einzige, halbwegs vernünftige Altnativen wäre das Thermopile Element ohne Optik mit einem Öffnungswinkel von 60° für 7€. Da 60° viel zu viel sind, muss man den Öffnungswinkel verkleinern: entweder mit einer ,,Lochkamera“ (also Pappe mit kleinem Loch drin. Das hätte den Nachteil, dass das Ausgangssignal extrem verstärkt werden müsste.) oder mit einem Hohlspiegel. Einen passenden Hohlspiegel kann man sich ohne weiteres nicht selbst bauen. Man müsste einen fertigen für ca. jeweils 10€ kaufen und weiß dann noch nicht mal, ob alles funktionieren wird. Man muss sich also entscheiden: Entweder die fertige, digitale Lösung für insgesamt 160€, die halbfertige analoge Lösung für insgesamt ca. 50€ oder die letztere, komplizierte Lösung für 6€ weniger, aber mit vermutlich extrem viel Zeitaufwand. Wir werden uns sehr wahrscheinlich für die zweite Lösung entscheiden. Dazu muss man sagen, dass die analoge Lösung aufgrund des geringeren Schaltungsaufwand (unabhängig davon, ob eben alles, wie bei der digitalen Lösung, bestückt ist) zuverlässiger funktioniert. Der Programmieraufwand ist dadurch auch sehr viel geringer.
1) Digitale Sensoren:
1.1) Ultraschallsensoren
Die wichtigste Aufgabe, die es beim RoboCup Rescue B zu lösen gilt, ist es, durch das Labyrinth zu finden. Dafür gibt es diverse, mehr oder weniger schwierige Algorithmen. Der, der für uns normalerweise optimal ist, ist der Wall-Follower Algorithmus:
[img]http://upload.wikimedia.org/wikipedia/commons/f/f7/Maze01-02.png[/img]
Quelle: Wikipedia
Grob gesagt: Der Roboter folgt einfach einer Wand. So muss er zwangsläufig, wenn es keine Säulen gibt, den Ausgang finden. Der Ausgang ist beim RoboCup Rescue B so, wie ich das verstanden habe, immer rechts vom Eingang, es bietet sich also an, der rechten Wand zu folgen. Soviel dazu.
Um der Wand folgen zu können und damit der Roboter sich halbwegs orientieren kann, benötigt man mindestens einen, besser sogar zwei Entfernungssensoren. Um auf eine Regeländerung schnell reagieren zu können, wären 4 Sensoren optimal. Möglichkeit 1 wären Infrarotentfernungssensoren, Möglichkeit 2 Ultraschallentfernungssensoren. Bei Möglichkeit 1 könnte es aufgrund der Opfer, die auch Infrarotstrahlen abstrahlen, Komplikationen geben, von daher ist Möglichkeit 2 optimal.
Ultraschallsensoren sind heute normalerweise grundsätzlich digital. Selbst, wenn man sich (eventuell günstigere) analoge Sensoren besorgen würde, müsste man die Ultraschallsensoren, da die Analogeingangsanzahl der Controller auf dem RP6 begrenzt ist (auf der Erweiterungsplatine insgesamt 8, also wegen der oben genannten Sensoren alle belegt), über eine Porterweiterung entweder digital ansteuern (so ergibt sich kein Vorteil) oder man müsste den in der großen Firma entwickelten Multiplexer verwenden. Da er die Signale auch digital bekommt, ergibt sich dadurch auch kein Vorteil. Von daher werden wir uns wahrscheinlich für den SRF05 entscheiden. Dieser kommuniziert nicht über einen Bus, sondern es wird ein Signal eingegeben und je nachdem, wie weit das zu messende Objekt vom Sensor entfernt ist (min. 3cm, max. 4m), dauert es dann entsprechend, bis ein weiterer Pin vom Sensor auf high gesetzt wird. Daraus lässt sich dann leicht die Entfernung errechnen (was eigentlich unnötig ist, da die normalerweise, soweit ich weiß, sowieso proportional zur Dauer ist). Das hat den Vorteil, dass man selbst steuern kann, wann der Sensor senden und messen soll und wann nicht. Bei mehreren Sensoren ist es also einfacher, dafür zu sorgen, dass sich die Sensoren nicht gegenseitig beeinflussen und stören. Eine Alternative wäre der doppelt so teure SRF10, der über den I²C Bus kommuniziert und das Ausrechnen der Entfernung selbst übernimmt (das ist aber eher unnötig, wofür haben wir schließlich das Erweiterungsboard? Des Weiteren hat der eine Mindestentfernung von 4cm, also schon ziemlich kritisch (der RP6 ist 20cm breit, es bleiben also auf jeder Seite 10cm, aber es ist fast unmöglich, den Roboter genau in der Mitte zu halten) oder der LEGO Ultraschallsensor, der ebenfalls über den I²C Bus kommuniziert. Daten sind vorhanden, das Auswerten ist also das kleinste Problem. Wichtiger ist eher die Tatsache, dass der Sensor sehr ungenau ist. Für die normale Aufgabenstellung ist das eigentlich nicht so wichtig, aber man ist insgesamt eher eingeschränkt. Der Preis ist sehr ähnlich mit dem des SRFs10, man könnte die Möglichkeit also höchstens bevorzugen, da wir eventuell noch LEGO US Sensoren haben, die momentan nicht benötigt werden.
1.2) Beschleunigungssensor
Der Beschleunigungssensor kann dazu eingesetzt werden, Unebenheiten oder die Rampe zu erkennen. Diese Sensoren gibt es auch in analoger Ausführung, die wie immer billiger ist, aber oft nur in SMD Bauform vorhanden sind (insgesamt habe ich noch keinen Beschleunigungssensor in DIL Bauform gesehen). Wir haben uns zu NXT Zeiten bereits einen digitalen, sehr günstigen und ziemlich genauen Sensor gekauft, den wir zwar nicht am NXT zum ,,Laufen“ gekriegt haben, das lag aber an den sehr eingeschränkten Möglichkeiten zur Hardwareänderung am NXT.
1.3) Kompasssensor
Ein Kompasssensor kann die Himmelsrichtung anzeigen, normalerweise in 1/360°, dabei ist 0° normalerweise Norden und 179° entsprechend Süden. So ist es einfacher, sich zu orientieren. Für unsere Aufgabenstellung ist er eigentlich momentan unwichtig, aber es ist gut, wenn man, wie bei den Entfernungssensoren, auf eine Regeländerung schnell reagieren kann. Kompasssensoren gibt es eigentlich nur in digitaler Bauweise, eine analoge Bauform wäre vermutlich aufgrund des Rauschens zu ungenau.

So, das wars erst mal. Eventuell ergänzen wir noch ein paar Sensoren, aber das waren erst mal die wichtigsten.