ICH (Diskussion | Beiträge) (→GPS) |
K (→Schreibfehler korrigiert) |
||
(27 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
==Sensoren== | ==Sensoren== | ||
− | Jeder, der sich einen Roboter baut wird schnell zu dem Punkt kommen, wo er möchte dass sein Roboter „sieht“. | + | Jeder, der sich einen Roboter baut, wird schnell zu dem Punkt kommen, wo er möchte, dass sein Roboter „sieht“. |
− | Sensoren müssen hauptsächlich drei Aufgaben erledigen. Die ersten beiden sind | + | Sensoren müssen hauptsächlich drei Aufgaben erledigen. Die ersten beiden sind Kollisionsschutz und Navigation. Diese unterscheiden sich in der Funktionsweise vor allem in der Interpretation, im Programm und im Aufbau am Roboter. Die dritte Art sind Sensoren, die ihn mit der Umwelt in Kontakt treten lassen. |
Grundsätzlich müssen alle Sensoren diese Merkmale aufweisen: | Grundsätzlich müssen alle Sensoren diese Merkmale aufweisen: | ||
− | ===Passiv oder | + | ===Passiv oder aktiv?=== |
− | Manche Sensoren (z.B. IR) brauchen eine aktive Quelle (hier die IR LED) die dann aber einen Mehrverbrauch an Strom bedeutet. Passive Sensoren wie Taster bekommen ihre Signale aus der Umwelt (hier Stoß). Zu ihnen zählen die meisten | + | Manche Sensoren (z.B. IR) brauchen eine aktive Quelle (hier die IR-LED), die dann aber einen Mehrverbrauch an Strom bedeutet. Passive Sensoren, wie zB Taster, bekommen ihre Signale aus der Umwelt (hier Stoß). Zu ihnen zählen die meisten Umweltgrößen, wie Temperatur und Feuchtigkeit, Licht und Vibration oder Kraft (Stoß). |
===Einfachheit=== | ===Einfachheit=== | ||
− | Ein Sensor muss einfach sein. Denn was nützt es uns wenn wir den Sensor nicht kalibrieren können oder der Aufbau zu schwer ist? Doch Sensoren, die nicht in einem einzigen Gehäuse untergebracht sind, sind äußerst selten. Dann besteht nur noch der Wunsch, dass die meist | + | Ein Sensor muss einfach sein. Denn was nützt es uns, wenn wir den Sensor nicht kalibrieren können oder der Aufbau zu schwer ist? Doch Sensoren, die nicht in einem einzigen Gehäuse untergebracht sind, sind äußerst selten. Dann besteht nur noch der Wunsch, dass die meist zweidrahtigen Sensoren auch einfach anzuschließen sind. Deswegen ist es manchmal von Vorteil, sich vorgefertigte Anschlüsse zu kaufen, anstatt diese in mühsamer Kleinarbeit selber zu erstellen. |
===Auswertbarkeit in Echtzeit=== | ===Auswertbarkeit in Echtzeit=== | ||
− | Alle Sensoren, die zunächst in Frage kommen, basieren auf dem Prinzip des Spannungsteilers. Das heißt, es wird eine Urspannung eingegeben und eine Teilspannung kommt heraus. Diese Differenz können wir erfassen und mittels Wertetabelle im Programm auswerten. Aber durch Störeinflüsse in der Umwelt kann es vorkommen, | + | Alle Sensoren, die zunächst in Frage kommen, basieren auf dem Prinzip des Spannungsteilers. Das heißt, es wird eine Urspannung eingegeben und eine Teilspannung kommt heraus. Diese Differenz können wir erfassen und mittels Wertetabelle im Programm auswerten. Aber durch Störeinflüsse in der Umwelt kann es vorkommen, dass die berechneten Werte abweichen. Jeder Messtechniker weiß, dass allein die Messung an sich schon das Messergebnis verfälscht. |
===Robustheit=== | ===Robustheit=== | ||
− | Wir werden am Anfang sicher nicht unseren Roboter in einer Morastlandschaft | + | Wir werden am Anfang sicher nicht unseren Roboter in einer Morastlandschaft einsetzen, aber auch schon ein Stoß gegen die Wand hat manchen Roboter ausgeknockt. Schon normaler Hausstaub kann und wird Linsen trüben und Messwerte verschlechtern. Das heisst: Wenn ein Sensor gekauft wird, muss er der Situation angemessen sein. |
==Aufgaben für Roboter== | ==Aufgaben für Roboter== | ||
− | Natürlich muss man bevor der Roboter steht schon im | + | Natürlich muss man sich, bevor der Roboter steht, schon im Klaren sein, was seine Aufgaben sind. Auch wenn diese so weitgefasst sind wie „Karte erstellen – Raumüberwachung – dabei einer Linie folgen“. Jeder Sensor braucht Platz und verringert die Einsatzdauer. Nicht jeder Sensor ist für jede Arbeit gedacht und zum Schluss spielt das Geld eine Rolle, denn mancher Sensor kostet schon 30 Euro. |
===Sensoren für den Kollisionsschutz=== | ===Sensoren für den Kollisionsschutz=== | ||
− | Die wichtigsten Sensoren auf | + | Die wichtigsten Sensoren auf einem Roboter sind die Kollisionssensoren. Diese schützen den Roboter vor Zusammenstößen und Abstürzen in einen Schacht. Dabei kann man diese Gruppe in direkte und indirekte Sensoren unterteilen. |
====Direkte Sensoren==== | ====Direkte Sensoren==== | ||
− | Sie sollen den Zusammenstoß nicht verhindern sondern dabei das Signal ausgeben. In letzter Zeit werden diese Sensoren noch gepolstert, damit beim Zusammenstoß keine zu großen Kräfte auftreten. | + | Sie sollen den Zusammenstoß nicht verhindern, sondern dabei das Signal ausgeben. In letzter Zeit werden diese Sensoren noch gepolstert, damit beim Zusammenstoß keine zu großen Kräfte auftreten. |
− | Am | + | Am Einfachsten geht dies mit einem Taster, der am Chassis befestigt ist. Da dies sehr kurze Reaktionszeiten mit sich bringt, haben einige Roboter Fühler, um diese Zeit zu verlängern. Eine weitere Methode ist es, eine Stoßstange zu entwickeln, die dann an den Tastern (direkt oder indirekt) befestigt wird. Dabei kann diese Stoßstange auch gepolstert sein. Eine nun neuere Methode ist es, Luftschläuche zu verwenden. Die dämpfen den Stoß ab und sind dabei an einem Drucksensor angeschlossen, der das Zusammenquetschen erkennt und ein Signal ausgibt. |
+ | |||
+ | Als Taster kann auch ein virtueller Bumper verwendet werden. Das Prinzip ist, eine Stromerhöhung eines Antriebsmotors beim Kollidieren mit einem Hindernis als Bumper zu emulieren. Das ermöglicht praktisch einen Roboter so zu steuern, wie wenn auf seinem ganzen Umfang echte Bumpers befestigt wären. Beim Kollidieren mit einem Hindernis wird der Ausgang der Schaltung (siehe Skizze) mit dem GND kurzgeschlossen, genauso wie wenn ein echter Bumper betätigt wäre. Hardware- bzw softwaremäßig kann man den Wirkungsbereich des virtuellen Bumpers nach individuellen Wünschen gestalten (siehe eventuell dazu: http://www.roboternetz.de/community/threads/55075-Selbstsau ). | ||
+ | |||
+ | Der Spannungsabfall auf dem Shunt (Rs) sollte bei normalem Fahren sicher unter der Spannung liegen, die der Transistor (T) zum Leiten braucht (ca. 0,7 V für normale und ca. 1,4 V für Darlington-Transistoren), z.B. 0,4 V. Bei Kollision mit einem Hindernis sollte der Spannungsabfall auf dem Rs sicher die o.g. Spannung überschreiten und z.B. 0,8 V oder höher sein. Der Elko (C) verzögert den Anstieg der Spannung auf dem Rs für den Anlaufstrom des Motors, der bis ca. 5-fach größer als beim unbehinderten Fahren ist. Für einen konkreten Motor und µC müssen die Rs, Rp (eventuell innerer pull-up) und C entsprechend angepasst werden, damit die Schaltung zufriedenstellend funktioniert. | ||
+ | |||
+ | Die Beispielschaltung wurde fur einen DC-Getriebemotor mit folgenden Parametern entwickelt: | ||
+ | |||
+ | - Strom beim unbehindertem Fahren: ca. 0,4 A | ||
+ | |||
+ | - Strom beim gebremstem Motor: ca. 0,8 A | ||
+ | |||
+ | - Anlaufstrom beim Anfahren: ca. 2 A | ||
+ | |||
+ | |||
+ | |||
+ | VCC | ||
+ | + | ||
+ | | | ||
+ | .-. | ||
+ | | | Rp | ||
+ | +-----------------------+ | | 1k | ||
+ | | | '-' | ||
+ | | Rb | | | ||
+ | | +------+-> zum µC Pin | ||
+ | | 1k | | (anstatt Bumper) | ||
+ | | ___ |/ | | ||
+ | von H-Brücke >--------+-|___|-+----| T | | ||
+ | (üblich mit GND | | | |> | | ||
+ | verbunden) | .-. |+ | | | ||
+ | | Rs | | === C === | | ||
+ | | | | /-\ GND | | ||
+ | | 1 '-' | 100µ | | ||
+ | | | | | | ||
+ | | === === | | ||
+ | | GND GND | | ||
+ | | | | ||
+ | +-----------------------+ | ||
+ | virtueller Bumper | ||
+ | |||
+ | Als virtueller Bumper kann auch an ein Antriebsrad angebrachter Impulsgeber softwaremässig emuliert werden. | ||
+ | |||
====Indirekte Sensoren==== | ====Indirekte Sensoren==== | ||
− | Sie sollen helfen, den Zusammenstoß zu vermeiden um | + | Sie sollen helfen, den Zusammenstoß zu vermeiden, um bestenfalls noch Zeit zu geben, einen optimalen Weg ums Hindernis herum zu finden. Diese haben ein größeres Problem, da sie meist keine 360-Grad-„Rundumsicht“ garantieren können. Das bedeutet, dass die meisten Roboter diesen Typ der Sensoren in Fahrtrichtung eingebaut haben, um diese Aufgabe zu erfüllen. Was auch effizient ist, denn solche Sensoren sind sehr teuer und müssen ständig vom Programm überwacht werden. |
− | + | Diese Sensoren werden bei neueren Autos auch als Parkhilfe angeboten. | |
==Probleme== | ==Probleme== | ||
− | Das Problem der Sensoren ist ihre räumliche Begrenztheit. Denn schon 5 Meter sind sehr lang. Aber auf der anderen Seite wollen die meisten | + | Das Problem der Sensoren ist ihre räumliche Begrenztheit. Denn schon 5 Meter sind sehr lang. Aber auf der anderen Seite wollen die meisten ohnehin keine 5 Meter „vorausschauen“. |
− | [[Sensorarten|Es gibt mehrere Typen]]. Am bekanntesten sind die [[Sensorarten#optische_Sensoren|IR Sensoren]]. Diese sind gut für lange Distanzen aber haben das Problem, dass sie gebündelt sind und somit Zwischenräume schwer abdecken können. Besser sind dort [[Sensorarten#Ultraschall_Sensoren|Ultraschallsensoren]], die aber teurer sind. Etwas in der Nische ist das Radar | + | [[Sensorarten|Es gibt mehrere Typen]]. Am bekanntesten sind die [[Sensorarten#optische_Sensoren|IR-Sensoren]]. Diese sind gut für lange Distanzen, aber haben das Problem, dass sie gebündelt sind und somit Zwischenräume schwer abdecken können. Besser sind dort [[Sensorarten#Ultraschall_Sensoren|Ultraschallsensoren]], die aber teurer sind. Etwas in der Nische ist das Radar-System; es ist ein sehr aufwendiges und teures System und die Auswertung der Daten ist komplex. Es bietet aber den besten Schutz gegen Zusammenstöße, da dieses System nicht auf einen Punkt gerichtet ist, sondern die ganze Fläche abscannt. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | Problem beider Systeme: | ||
+ | Das ist die Höhe. Leider ist unser Roboter dreidimensional und bewegt sich zweidimensional. Das heißt, es spannen sich mehrere Ebenen auf, die überwacht werden wollen. Denn wenn dies nicht geschieht, stößt der Roboter gegen eine Tischplatte, weil er diese nicht erkannt hat oder gegen ein Hindernis, das unter den Sensoren hindurch rutschte. | ||
+ | Deswegen bemüht man sich, den Roboter so flach wie möglich zu halten und das Fahrgestell so zu bauen, dass man flache Hindernisse überfahren kann. Es hilft also, sich darüber vorher Gedanken zu machen. | ||
+ | Je nachdem wo der Roboter zum Einsatz kommt tun sich manchmal Abgründe auf (z.B. Tischplatte). Diese müssen erkannt werden. Deswegen ist es erforderlich, Abstandssensoren nach unten zu richten, um einen Absturz zu vermeiden. Dabei sollte man indirekte Sensoren einsetzen, denn was nützt es, wenn der Taster erkannt hat, dass nun ein Loch da ist, aber der Roboter bis zur Reaktion schon auf dem Boden aufschlägt? | ||
==Navigation== | ==Navigation== | ||
− | Nun gibt es hier viele Arten wie die Navigation erfolgen kann. Ich tue 2 Felder auf. Wenn unser Freund neue Welten erkunden soll oder in | + | Nun gibt es hier viele Arten, wie die Navigation erfolgen kann. Ich tue 2 Felder auf. Wenn unser Freund neue Welten erkunden soll oder in einem Spiel gegen eine Mannschaft antritt, dann braucht er andere Sensoren, als wenn er routiniert Wege abfahren soll. Obwohl sich die Felder überschneiden. |
Alle Navigationssysteme bauen auf 2 Quellen der Navigation auf: [[Sensorarten#Drehgeber_Sharp_GP1A30|inkrementale Weggeber]] und Absolutwertgeber. | Alle Navigationssysteme bauen auf 2 Quellen der Navigation auf: [[Sensorarten#Drehgeber_Sharp_GP1A30|inkrementale Weggeber]] und Absolutwertgeber. | ||
− | Dies ist das größte Problem wenn ihr einen Bot bauen wollt. Denn ihr habt das Problem nicht | + | Dies ist das größte Problem, wenn ihr einen Bot bauen wollt. Denn ihr habt das Problem nicht, das euer Bot hat. Euch ist das zu abstrakt, aber wenn ihr das nicht begreift, wird er nie dort hinkommen, wo er hin soll. Ihr habt Augen, die euch ohne zu denken den Absolutwert geben, wie weit der Abstand des Cursors eurer Maus zum Startbutton jetzt ist. Die Maus hat einen Weggeber intern, doch ihr kontrolliert ständig, ob die Werte korrekt sind und korrigiert diese falls nötig! Das kann euer Roboter nicht. Das heisst, wenn eine Achse sich schwerer dreht als die andere, wird er ständig im Kreis fahren. Ohne dass ihr das in den Messwerten sehen könnt. |
==Weggeber== | ==Weggeber== | ||
− | Die [[Sensorarten#Drehgeber_Sharp_GP1A30|Weggeber]] existieren meistens in Form der Odometrie. Das heisst | + | Die [[Sensorarten#Drehgeber_Sharp_GP1A30|Weggeber]] existieren meistens in Form der Odometrie. Das heisst, die Drehung der Antriebsachse wird direkt erfasst. Das kann erfolgen mit einem Schrittmotor (wobei dies indirekt ist, da ihr hier die Werte vorgebt) oder mit einer Lochscheibe, die dann die Schritte mittels Lichtschranke zählt. Oder mit Tastern und einem Zahnrad. |
− | Nicht zur | + | Nicht zur Odometrie gehörend, aber auch Weggeber, sind „mitlaufende“ zählende Räder (z.B eine Kugelmaus) oder aber eine optische Maus. Oder ein Seil, das ihr von einem Lotpunkt mitzieht. |
− | Diese Weggeber sind ungenau | + | Diese Weggeber sind ungenau und verfälschen immer das Ergebnis. Wenn ihr den Roboter über längere Strecken fahren lässt, braucht ihr den 2. Typ, um ihn neu einzukalibrieren. |
===Absolutwertgeber:=== | ===Absolutwertgeber:=== | ||
− | Diese Methode sagt euch, wo auf einer Ebene ihr euch exakt befindet in X und Y Achse aufgesplittet. | + | Diese Methode sagt euch, wo auf einer Ebene ihr euch exakt befindet; in X- und Y-Achse aufgesplittet. |
− | Es gibt | + | Es gibt mehrere Methoden, die ich ohne besondere Reihenfolge aufliste: |
====Peilung==== | ====Peilung==== | ||
− | Das [[Sensorarten#Sharp_GP2D12|IR-Abstandsmessungsprinzip]] funktioniert so | + | Das [[Sensorarten#Sharp_GP2D12|IR-Abstandsmessungsprinzip]] funktioniert so, dass sich ein Turm auf dem Roboter befindet. Diese Sensoren scannen den Raum ab. Mittels weiterer Sensoren ([[Sensorarten#Kompa.C3.9F|Kompasssensoren]]) kann man berechnen, wo im Raum man sich befindet. Nur bedingt einsetzbar, da ja Objekte die Wand verdecken. |
− | Das | + | Das Bakensystem funktioniert nach dem Einpeilungsprinzip. Das heißt, in einem Raum kennen wir mindestens 2 Punkte (Baken), die dann mit dem Roboter ein Ebenendreieck aufspannen. Mittels Berechnungen kann dann die unbekannte Roboter-Position exakt bestimmt werden. Es gibt verschiedene Methoden, doch hier die Wichtigsten: |
− | * Aktive Bake | + | * Aktive Bake: Die Baken senden ein Signal aus, das dann vom Roboter empfangen wird (z.B. IR). Das ist die einfachste Methode, wenn auch nicht die eleganteste. Denn dadurch muss sich die Technik über den Roboter hinaus in den Raum ausbreiten und das wiederum kollidiert mit dem Prinzip des autonomen Roboters. Die meisten Absolutwertgeber mit Baken gehen diesen Weg. |
− | * Passive | + | * Passive Bake: Nur das Signal zu dem Roboter wird zurückgesendet, das dieser ausstrahlt. Das Problem ist, dass bei diesem System der Aufwand auf dem Roboter höher ist und dass der Batterieverbauch größer wird. Aber wir haben dann auch einen wirklich autonomen Roboter. |
-Aus dem Alltag- | -Aus dem Alltag- | ||
− | Es gibt Veranstaltungen / | + | Es gibt Veranstaltungen/Wettkämpfe, die nur eine Bake zulassen. Diese soll dabei nicht helfen, um herauszufinden, wo sich der Roboter im Raum befindet, sondern nur, wo er hin soll bzw. wo sein „Feind“ ist. |
====Das Bodenmarkierungsprinzip==== | ====Das Bodenmarkierungsprinzip==== | ||
− | wird meistens eingesetzt, wenn der Roboter sich nur in einem bestimmten Feld oder auf einer bestimmten Bahn aufhalten soll. Dabei werden passive oder aktive Elemente | + | wird meistens eingesetzt, wenn der Roboter sich nur in einem bestimmten Feld oder auf einer bestimmten Bahn aufhalten soll. Dabei werden passive oder aktive Elemente im Boden eingelassen, die dann von Onboard-Sensoren wahrgenommen werden. Beispiel hierfür sind Rasenmäherbots oder autonome Fahrzeuge in Werkshallen. |
− | ====GPS==== | + | ====[[GPS]]==== |
− | Neben dem | + | Neben dem Bakensystem existiert noch ein raumunabhängiges System; das [[GPS]]. Dieses ist aber sehr aufwändig. Denn es bezieht Zeitsignale von Satelliten, die dann verglichen werden und ist meist draußen besser zu empfangen. Auch ließ das US-Militär das Signal verschlechtern, so dass es nur sehr ungenau war. Heutzutage ohne Störsignal schafft man auch nur Genauigkeiten von einigen Metern. Wenn man genauere Werte braucht, benötigt man mindestens 2 Empfänger und muss diese miteinander vergleichen. Einer der Empfänger steht dann normalerweise an einem festen Punkt. Das nennt sich Differential-GPS (DGPS). Näheres unter dem Artikel [[GPS]]. |
Weitere Methoden sind nicht zu gebrauchen oder sind nur Abarten der hier erwähnten Methoden. | Weitere Methoden sind nicht zu gebrauchen oder sind nur Abarten der hier erwähnten Methoden. | ||
===Umweltsensoren=== | ===Umweltsensoren=== | ||
− | Sie sind meist erst in der letzten Ausbaustufe beim Roboter interessant und sollen | + | Sie sind meist erst in der letzten Ausbaustufe beim Roboter interessant und sollen unserem Freund helfen, sich in der Umwelt zurechtzufinden. |
− | Dabei gibt es Interaktionsensoren, wie Drucksensoren oder Mikrofone. Mikrofone lassen | + | Dabei gibt es Interaktionsensoren, wie Drucksensoren oder Mikrofone. Mikrofone lassen den Roboter erkennen, ob Geräusche vorhanden sind. Genau gesagt stellt der Roboter nur fest dass Geräusche vorhanden sind aber woher sie kommen. Dazu muss das Mikrofon entweder gerichtet sein und sich im Raum drehen können oder aber es müssen sich Mikrofone in vier Ecken starr auf dem Roboter befinden. |
− | Wenn der Roboter eine Solarzelle hat dann braucht er Lichtsensoren die ihn zur | + | Wenn der Roboter eine Solarzelle hat, dann braucht er Lichtsensoren, die ihn zur größten Lichtquelle bringen. |
− | ====Rauchsensoren==== lassen den Roboter zwar erkennen | + | ====Rauchsensoren==== lassen den Roboter zwar erkennen, dass sich Rauch im Raum befindet. Doch was nützt es, wenn dieser Rauch erst in einer Höhe von 40 cm erkannt wird? Um z.B. Räume auf Giftgas zu testen braucht es einen Gasmesser. Beide Sensoren arbeiten unterschiedlich. Während Rauchmelder alle Partikel ohne Ausnahme erkennen, haben Gasmesser nur eine begrenzte Sammlung an zu erkennenden Gasen. |
− | ==== | + | ====Temperatursensoren==== ermöglichen dem Bot die Temperatur zu messen, um z.B. aus der Sonne zu gehen oder um einzelne Bauelemente vor Überhitzung zu schützen. |
==Nachsatz== | ==Nachsatz== | ||
− | Es gibt dutzende Sensoren und | + | Es gibt dutzende Sensoren und Sensoranlagen, die unserem Bot helfen sich in der Umwelt zurechtzufinden. Je mehr man hat, umso mehr kann man mit diesen spielen, um z.B. Gewohnheiten zu programmieren. Aber wenn man seinen Bot auf eine Aufgabe ausrichtet, sind es diese, die das i-Tüpfelchen bringen. |
Aktuelle Version vom 10. Februar 2016, 12:11 Uhr
Inhaltsverzeichnis
Sensoren
Jeder, der sich einen Roboter baut, wird schnell zu dem Punkt kommen, wo er möchte, dass sein Roboter „sieht“. Sensoren müssen hauptsächlich drei Aufgaben erledigen. Die ersten beiden sind Kollisionsschutz und Navigation. Diese unterscheiden sich in der Funktionsweise vor allem in der Interpretation, im Programm und im Aufbau am Roboter. Die dritte Art sind Sensoren, die ihn mit der Umwelt in Kontakt treten lassen.
Grundsätzlich müssen alle Sensoren diese Merkmale aufweisen:
Passiv oder aktiv?
Manche Sensoren (z.B. IR) brauchen eine aktive Quelle (hier die IR-LED), die dann aber einen Mehrverbrauch an Strom bedeutet. Passive Sensoren, wie zB Taster, bekommen ihre Signale aus der Umwelt (hier Stoß). Zu ihnen zählen die meisten Umweltgrößen, wie Temperatur und Feuchtigkeit, Licht und Vibration oder Kraft (Stoß).
Einfachheit
Ein Sensor muss einfach sein. Denn was nützt es uns, wenn wir den Sensor nicht kalibrieren können oder der Aufbau zu schwer ist? Doch Sensoren, die nicht in einem einzigen Gehäuse untergebracht sind, sind äußerst selten. Dann besteht nur noch der Wunsch, dass die meist zweidrahtigen Sensoren auch einfach anzuschließen sind. Deswegen ist es manchmal von Vorteil, sich vorgefertigte Anschlüsse zu kaufen, anstatt diese in mühsamer Kleinarbeit selber zu erstellen.
Auswertbarkeit in Echtzeit
Alle Sensoren, die zunächst in Frage kommen, basieren auf dem Prinzip des Spannungsteilers. Das heißt, es wird eine Urspannung eingegeben und eine Teilspannung kommt heraus. Diese Differenz können wir erfassen und mittels Wertetabelle im Programm auswerten. Aber durch Störeinflüsse in der Umwelt kann es vorkommen, dass die berechneten Werte abweichen. Jeder Messtechniker weiß, dass allein die Messung an sich schon das Messergebnis verfälscht.
Robustheit
Wir werden am Anfang sicher nicht unseren Roboter in einer Morastlandschaft einsetzen, aber auch schon ein Stoß gegen die Wand hat manchen Roboter ausgeknockt. Schon normaler Hausstaub kann und wird Linsen trüben und Messwerte verschlechtern. Das heisst: Wenn ein Sensor gekauft wird, muss er der Situation angemessen sein.
Aufgaben für Roboter
Natürlich muss man sich, bevor der Roboter steht, schon im Klaren sein, was seine Aufgaben sind. Auch wenn diese so weitgefasst sind wie „Karte erstellen – Raumüberwachung – dabei einer Linie folgen“. Jeder Sensor braucht Platz und verringert die Einsatzdauer. Nicht jeder Sensor ist für jede Arbeit gedacht und zum Schluss spielt das Geld eine Rolle, denn mancher Sensor kostet schon 30 Euro.
Sensoren für den Kollisionsschutz
Die wichtigsten Sensoren auf einem Roboter sind die Kollisionssensoren. Diese schützen den Roboter vor Zusammenstößen und Abstürzen in einen Schacht. Dabei kann man diese Gruppe in direkte und indirekte Sensoren unterteilen.
Direkte Sensoren
Sie sollen den Zusammenstoß nicht verhindern, sondern dabei das Signal ausgeben. In letzter Zeit werden diese Sensoren noch gepolstert, damit beim Zusammenstoß keine zu großen Kräfte auftreten. Am Einfachsten geht dies mit einem Taster, der am Chassis befestigt ist. Da dies sehr kurze Reaktionszeiten mit sich bringt, haben einige Roboter Fühler, um diese Zeit zu verlängern. Eine weitere Methode ist es, eine Stoßstange zu entwickeln, die dann an den Tastern (direkt oder indirekt) befestigt wird. Dabei kann diese Stoßstange auch gepolstert sein. Eine nun neuere Methode ist es, Luftschläuche zu verwenden. Die dämpfen den Stoß ab und sind dabei an einem Drucksensor angeschlossen, der das Zusammenquetschen erkennt und ein Signal ausgibt.
Als Taster kann auch ein virtueller Bumper verwendet werden. Das Prinzip ist, eine Stromerhöhung eines Antriebsmotors beim Kollidieren mit einem Hindernis als Bumper zu emulieren. Das ermöglicht praktisch einen Roboter so zu steuern, wie wenn auf seinem ganzen Umfang echte Bumpers befestigt wären. Beim Kollidieren mit einem Hindernis wird der Ausgang der Schaltung (siehe Skizze) mit dem GND kurzgeschlossen, genauso wie wenn ein echter Bumper betätigt wäre. Hardware- bzw softwaremäßig kann man den Wirkungsbereich des virtuellen Bumpers nach individuellen Wünschen gestalten (siehe eventuell dazu: http://www.roboternetz.de/community/threads/55075-Selbstsau ).
Der Spannungsabfall auf dem Shunt (Rs) sollte bei normalem Fahren sicher unter der Spannung liegen, die der Transistor (T) zum Leiten braucht (ca. 0,7 V für normale und ca. 1,4 V für Darlington-Transistoren), z.B. 0,4 V. Bei Kollision mit einem Hindernis sollte der Spannungsabfall auf dem Rs sicher die o.g. Spannung überschreiten und z.B. 0,8 V oder höher sein. Der Elko (C) verzögert den Anstieg der Spannung auf dem Rs für den Anlaufstrom des Motors, der bis ca. 5-fach größer als beim unbehinderten Fahren ist. Für einen konkreten Motor und µC müssen die Rs, Rp (eventuell innerer pull-up) und C entsprechend angepasst werden, damit die Schaltung zufriedenstellend funktioniert.
Die Beispielschaltung wurde fur einen DC-Getriebemotor mit folgenden Parametern entwickelt:
- Strom beim unbehindertem Fahren: ca. 0,4 A
- Strom beim gebremstem Motor: ca. 0,8 A
- Anlaufstrom beim Anfahren: ca. 2 A
VCC + | .-. | | Rp +-----------------------+ | | 1k | | '-' | Rb | | | +------+-> zum µC Pin | 1k | | (anstatt Bumper) | ___ |/ | von H-Brücke >--------+-|___|-+----| T | (üblich mit GND | | | |> | verbunden) | .-. |+ | | | Rs | | === C === | | | | /-\ GND | | 1 '-' | 100µ | | | | | | === === | | GND GND | | | +-----------------------+ virtueller Bumper
Als virtueller Bumper kann auch an ein Antriebsrad angebrachter Impulsgeber softwaremässig emuliert werden.
Indirekte Sensoren
Sie sollen helfen, den Zusammenstoß zu vermeiden, um bestenfalls noch Zeit zu geben, einen optimalen Weg ums Hindernis herum zu finden. Diese haben ein größeres Problem, da sie meist keine 360-Grad-„Rundumsicht“ garantieren können. Das bedeutet, dass die meisten Roboter diesen Typ der Sensoren in Fahrtrichtung eingebaut haben, um diese Aufgabe zu erfüllen. Was auch effizient ist, denn solche Sensoren sind sehr teuer und müssen ständig vom Programm überwacht werden.
Diese Sensoren werden bei neueren Autos auch als Parkhilfe angeboten.
Probleme
Das Problem der Sensoren ist ihre räumliche Begrenztheit. Denn schon 5 Meter sind sehr lang. Aber auf der anderen Seite wollen die meisten ohnehin keine 5 Meter „vorausschauen“. Es gibt mehrere Typen. Am bekanntesten sind die IR-Sensoren. Diese sind gut für lange Distanzen, aber haben das Problem, dass sie gebündelt sind und somit Zwischenräume schwer abdecken können. Besser sind dort Ultraschallsensoren, die aber teurer sind. Etwas in der Nische ist das Radar-System; es ist ein sehr aufwendiges und teures System und die Auswertung der Daten ist komplex. Es bietet aber den besten Schutz gegen Zusammenstöße, da dieses System nicht auf einen Punkt gerichtet ist, sondern die ganze Fläche abscannt.
Problem beider Systeme: Das ist die Höhe. Leider ist unser Roboter dreidimensional und bewegt sich zweidimensional. Das heißt, es spannen sich mehrere Ebenen auf, die überwacht werden wollen. Denn wenn dies nicht geschieht, stößt der Roboter gegen eine Tischplatte, weil er diese nicht erkannt hat oder gegen ein Hindernis, das unter den Sensoren hindurch rutschte. Deswegen bemüht man sich, den Roboter so flach wie möglich zu halten und das Fahrgestell so zu bauen, dass man flache Hindernisse überfahren kann. Es hilft also, sich darüber vorher Gedanken zu machen. Je nachdem wo der Roboter zum Einsatz kommt tun sich manchmal Abgründe auf (z.B. Tischplatte). Diese müssen erkannt werden. Deswegen ist es erforderlich, Abstandssensoren nach unten zu richten, um einen Absturz zu vermeiden. Dabei sollte man indirekte Sensoren einsetzen, denn was nützt es, wenn der Taster erkannt hat, dass nun ein Loch da ist, aber der Roboter bis zur Reaktion schon auf dem Boden aufschlägt?
Nun gibt es hier viele Arten, wie die Navigation erfolgen kann. Ich tue 2 Felder auf. Wenn unser Freund neue Welten erkunden soll oder in einem Spiel gegen eine Mannschaft antritt, dann braucht er andere Sensoren, als wenn er routiniert Wege abfahren soll. Obwohl sich die Felder überschneiden.
Alle Navigationssysteme bauen auf 2 Quellen der Navigation auf: inkrementale Weggeber und Absolutwertgeber.
Dies ist das größte Problem, wenn ihr einen Bot bauen wollt. Denn ihr habt das Problem nicht, das euer Bot hat. Euch ist das zu abstrakt, aber wenn ihr das nicht begreift, wird er nie dort hinkommen, wo er hin soll. Ihr habt Augen, die euch ohne zu denken den Absolutwert geben, wie weit der Abstand des Cursors eurer Maus zum Startbutton jetzt ist. Die Maus hat einen Weggeber intern, doch ihr kontrolliert ständig, ob die Werte korrekt sind und korrigiert diese falls nötig! Das kann euer Roboter nicht. Das heisst, wenn eine Achse sich schwerer dreht als die andere, wird er ständig im Kreis fahren. Ohne dass ihr das in den Messwerten sehen könnt.
Weggeber
Die Weggeber existieren meistens in Form der Odometrie. Das heisst, die Drehung der Antriebsachse wird direkt erfasst. Das kann erfolgen mit einem Schrittmotor (wobei dies indirekt ist, da ihr hier die Werte vorgebt) oder mit einer Lochscheibe, die dann die Schritte mittels Lichtschranke zählt. Oder mit Tastern und einem Zahnrad. Nicht zur Odometrie gehörend, aber auch Weggeber, sind „mitlaufende“ zählende Räder (z.B eine Kugelmaus) oder aber eine optische Maus. Oder ein Seil, das ihr von einem Lotpunkt mitzieht.
Diese Weggeber sind ungenau und verfälschen immer das Ergebnis. Wenn ihr den Roboter über längere Strecken fahren lässt, braucht ihr den 2. Typ, um ihn neu einzukalibrieren.
Absolutwertgeber:
Diese Methode sagt euch, wo auf einer Ebene ihr euch exakt befindet; in X- und Y-Achse aufgesplittet.
Es gibt mehrere Methoden, die ich ohne besondere Reihenfolge aufliste:
Peilung
Das IR-Abstandsmessungsprinzip funktioniert so, dass sich ein Turm auf dem Roboter befindet. Diese Sensoren scannen den Raum ab. Mittels weiterer Sensoren (Kompasssensoren) kann man berechnen, wo im Raum man sich befindet. Nur bedingt einsetzbar, da ja Objekte die Wand verdecken. Das Bakensystem funktioniert nach dem Einpeilungsprinzip. Das heißt, in einem Raum kennen wir mindestens 2 Punkte (Baken), die dann mit dem Roboter ein Ebenendreieck aufspannen. Mittels Berechnungen kann dann die unbekannte Roboter-Position exakt bestimmt werden. Es gibt verschiedene Methoden, doch hier die Wichtigsten:
- Aktive Bake: Die Baken senden ein Signal aus, das dann vom Roboter empfangen wird (z.B. IR). Das ist die einfachste Methode, wenn auch nicht die eleganteste. Denn dadurch muss sich die Technik über den Roboter hinaus in den Raum ausbreiten und das wiederum kollidiert mit dem Prinzip des autonomen Roboters. Die meisten Absolutwertgeber mit Baken gehen diesen Weg.
- Passive Bake: Nur das Signal zu dem Roboter wird zurückgesendet, das dieser ausstrahlt. Das Problem ist, dass bei diesem System der Aufwand auf dem Roboter höher ist und dass der Batterieverbauch größer wird. Aber wir haben dann auch einen wirklich autonomen Roboter.
-Aus dem Alltag- Es gibt Veranstaltungen/Wettkämpfe, die nur eine Bake zulassen. Diese soll dabei nicht helfen, um herauszufinden, wo sich der Roboter im Raum befindet, sondern nur, wo er hin soll bzw. wo sein „Feind“ ist.
Das Bodenmarkierungsprinzip
wird meistens eingesetzt, wenn der Roboter sich nur in einem bestimmten Feld oder auf einer bestimmten Bahn aufhalten soll. Dabei werden passive oder aktive Elemente im Boden eingelassen, die dann von Onboard-Sensoren wahrgenommen werden. Beispiel hierfür sind Rasenmäherbots oder autonome Fahrzeuge in Werkshallen.
GPS
Neben dem Bakensystem existiert noch ein raumunabhängiges System; das GPS. Dieses ist aber sehr aufwändig. Denn es bezieht Zeitsignale von Satelliten, die dann verglichen werden und ist meist draußen besser zu empfangen. Auch ließ das US-Militär das Signal verschlechtern, so dass es nur sehr ungenau war. Heutzutage ohne Störsignal schafft man auch nur Genauigkeiten von einigen Metern. Wenn man genauere Werte braucht, benötigt man mindestens 2 Empfänger und muss diese miteinander vergleichen. Einer der Empfänger steht dann normalerweise an einem festen Punkt. Das nennt sich Differential-GPS (DGPS). Näheres unter dem Artikel GPS.
Weitere Methoden sind nicht zu gebrauchen oder sind nur Abarten der hier erwähnten Methoden.
Umweltsensoren
Sie sind meist erst in der letzten Ausbaustufe beim Roboter interessant und sollen unserem Freund helfen, sich in der Umwelt zurechtzufinden.
Dabei gibt es Interaktionsensoren, wie Drucksensoren oder Mikrofone. Mikrofone lassen den Roboter erkennen, ob Geräusche vorhanden sind. Genau gesagt stellt der Roboter nur fest dass Geräusche vorhanden sind aber woher sie kommen. Dazu muss das Mikrofon entweder gerichtet sein und sich im Raum drehen können oder aber es müssen sich Mikrofone in vier Ecken starr auf dem Roboter befinden.
Wenn der Roboter eine Solarzelle hat, dann braucht er Lichtsensoren, die ihn zur größten Lichtquelle bringen.
====Rauchsensoren==== lassen den Roboter zwar erkennen, dass sich Rauch im Raum befindet. Doch was nützt es, wenn dieser Rauch erst in einer Höhe von 40 cm erkannt wird? Um z.B. Räume auf Giftgas zu testen braucht es einen Gasmesser. Beide Sensoren arbeiten unterschiedlich. Während Rauchmelder alle Partikel ohne Ausnahme erkennen, haben Gasmesser nur eine begrenzte Sammlung an zu erkennenden Gasen.
====Temperatursensoren==== ermöglichen dem Bot die Temperatur zu messen, um z.B. aus der Sonne zu gehen oder um einzelne Bauelemente vor Überhitzung zu schützen.
Nachsatz
Es gibt dutzende Sensoren und Sensoranlagen, die unserem Bot helfen sich in der Umwelt zurechtzufinden. Je mehr man hat, umso mehr kann man mit diesen spielen, um z.B. Gewohnheiten zu programmieren. Aber wenn man seinen Bot auf eine Aufgabe ausrichtet, sind es diese, die das i-Tüpfelchen bringen.
Autor: honkitonk / Wiki Übernahme Picnick