Wegmessung für Roboter

Hallo,

ich habe im Rahmen einer Projektarbeit im Studium die Aufgabe einen Roboter zu programmieren der zu Beginn einer schwarzen Linie folgt und dann die Innenfläche, die von der schwarzen Linie umrandet ist, abfährt. Im Prinzip sollen wir einen Staubsaugerroboter bauen, der die Ideallinie eines Raumes errechnet und diese dann abfährt.
Das Problem ist, dass wir uns nicht schlüssig werden, wie wir die Wegmessung durchführen, da wir keine Wände für Lasersensoren haben.
Meine erste Idee war ein Beschleunigungssensor, dieser hab ich jetzt aber gelesen wird sehr ungenau, durch die Aufsummierung der Fehler.

Hat jemand von euch eine Idee, wie wir relativ leicht an die Distanzen kommen?
Oder gibt es einen viel einfacheren Ansatz der uns allen nicht eingefallen ist? :smiley:

Vielen Dank schon mal und liebe Grüße

Tom

Hi

Hat Euer Roboter Räder?
Dann wird Er Sich damit wohl fortbewegen.
Zähle die Umdrehungen bzw. errechne aus den einzelnen Winkelgraden der Räder den aktuellen Weg des Roboter.
Bei Steppern hast Du bereits die Schritte, Die Du zu den Motoren schickst - bei DC-Motoren musst Du den Winkel anders erfassen - Lochscheibe und Lichtschranke?

MfG

Und du braucht einen Kompass, weil dir dir Schrittezählerei zwar einen ersten Hinweis auf die Orientirung gibt, aber der erreichte Drehwinkel vom Untergrund abhängt. Den Weg aufgrund der Geschwindigkeit messen zu wollen ist ein gewagtes Unterfangen: Integral(vdt)=vt+c ... und das unscheinbare "c" macht dir das Leben zur Hölle.

Ich nehme schon an, daß der Roboter auf einem glatten und genügen reibungsbietenden Testparcours fahren muß und darum es keine durchdrehenden Räder geben wird.
Du brauchst keinen Kompass. Schaden kann er aber auch nicht solange er richtig mißt und nicht durch Ferromagnetische Massen an verschiedenen Punkten verschiedene Richtungen zeigt.

zwieblum:
Den Weg aufgrund der Geschwindigkeit messen zu wollen ist ein gewagtes Unterfangen: Integral(vdt)=vt+c ... und das unscheinbare "c" macht dir das Leben zur Hölle.

Bei der Verwendung eines Beschleunigungssensors wird die Geschwindigkeit aus dem Integral der Beschleunigung berechent und darum ist die Strecke aus der Geschwindigkeit berechnet zweimal ungenau.
Grüße Uwe

Beim ASURO wird zum Beispiel eine schwarz-weiß gestaffelte Scheibe am Rad montiert. Daneben gibt es eine LED, die diese Fläche anleuchtet. Ein Phototransitor erkennt dann, ob eine schwarze oder weiße Fläche anliegt. Daraus lässt sich die Drehzahl ermitteln. Und anhand derer widerum die Entfernung.

Ich nehme schon an, daß der Roboter auf einem glatten und genügen reibungsbietenden Testparcours fahren muß und darum es keine durchdrehenden Räder geben wird.

Gäbe es keine "durchdrehenden" Räder, dann könnte der Roboter nur gerade aus fahren, ohne jemals eine Rotation durchzuführen. --> du hast immer Schlupf, und der ist nicht deterministisch. e.g. Ein Winkelfehler von 1° ist lächerlich gering bei dieser Messmethode, aber versuch' damit mal ein Quadrat 10x abzufahren. Im schlimmsten Fall bist du damm 4101° = 40° daneben.

Bei der Verwendung eines Beschleunigungssensors wird die Geschwindigkeit aus dem Integral der Beschleunigung berechent und darum ist die Strecke aus der Geschwindigkeit berechnet zweimal ungenau.

Geschwindigkeit bekommst du über Rotation der Räder, da brauchst du keinen Beschleunigungsmesser, bei Schrittmotoren brauchst du nicht mal Encoder dafür. Das Problem ist halt, ohne externe Referenz tappst du im Dunkeln.

zwieblum:
Geschwindigkeit bekommst du über Rotation der Räder, da brauchst du keinen Beschleunigungsmesser, bei Schrittmotoren brauchst du nicht mal Encoder dafür. Das Problem ist halt, ohne externe Referenz tappst du im Dunkeln.

Von welchem Rad? Dem Rechten oder dem Linken. Welches hat weniger Schlupf?
Merkst Du nicht daß mit der Aussage den zuvor gemachte Aussage als falsch darstellst?
Grüße Uwe

Wasislos? Es spielt doch keine Rolle, egal wie du misst, es kommt Mist raus, ohne Referenzsystem.

Wasislos? Es spielt doch keine Rolle, egal wie du misst, es kommt Mist raus, ohne Referenzsystem.

Du hast im vorigen Beitrag vorgeschlagen den zurückgelegten Weg durch die Drehung der Räder zu messen.

Wenn der Robotter 2 Räder hat die von 2 Motoren angetrieben werden dann geht das mit der Winkelmessung durch Dehzahlvergleich.

Grüße Uwe

Nein, das geht ja nicht zuverlässig - das hab' ich ja weiter oben gechrieben. z.B. Gerät schut auf 0°, beide Räder drehen gegengleich um Winkel Alpha, dann zurück um Winkel Alpha, führt nicht dazu, dass nachher das Gerät wieder Richtung 0° schaut. Das funktioniert nur unter der Annahme von 100% "Reibung", das entspricht aber z.B. dem Einsatz von Kegelgetriebe, also Platte runter, Gerät heben, drehen, Gerät absenken, aber nicht bei Reibkupplungen wie Rad/Boden.

Hi

Hatte auch Jemand den Anfangspost gelesen?
Dort ging Es zuerst um einen Linienfolger - und auch bei 10x1° kommt Der Robi immer noch die Linie entlang.
Auch kann Er dabei munter zählen, welches Rad sich wie oft gedreht hat.

... ganz nebenbei ... Klugscheißen kann ich auch - alleine durch den Abrieb der Räder verringert sich Deren Umfang - um zumindest 'halbwegs' gerade aus fahren zu können, musst Du zusehen, daß beide Räder sich IMMER gleichmäßig abnutzen ... nicht nur Linkskurven ...

Wie hat's die Menschheit nur von den Bäumen runter geschafft ...

MfG

Wie hat's die Menschheit nur von den Bäumen runter geschafft ...

War wohl irgendwann nicht mehr genug Platz oben und sind dann nicht mehr hinaufgekommen. :wink: :wink: :smiley: :smiley: :wink: :wink:

ii ui ui ... da muss isch aber schon beim i-Tüpfchenreiten ein Schäufchen nachlegen: "der zu Beginn einer schwarzen Linie folgt und dann die Innenfläche, die von der schwarzen Linie umrandet ist, abfährt" ---> ergo: Fläche ausmalen, aber nur innerhalb.

Hi

Dann kann Er zumindest nicht ausbrechen - da man die Grenze auch während des Ausmalen ja immer noch detektieren kann.
Und sofern die Fläche keine Quadratkilometer abdeckt, könnte der mögliche Winkelfehler auch vernachlässigbar sein.

MfG