Positionbestimmung Saugroboter

Gast #4556013
Hallo zusammen,

ich baue mir gerade einen Saugrobotor. Den Raum chaotisch abfahren und 
Hindernissen ausweichen ist ja relativ trivial. Allerdings würde ich den 
Raum gerne systematisch abfahren und v.a. am Ende zurück zur 
Ausgangsposition finden.

Dazu muss natürlich zunächste die Position genau bestimmt werden. Ich 
hab hier schon einiges gelesen. Aber leider war keine Lösung dabei, die 
zu meinem Problem passen würde.

Meine Idee wäre bis jetzt: Roboter sendet Signal (z.B. 433MHz?) an 
"Basisstation". Basis antwortet -> Laufzeit und Richtung bestimmen -> 
Postion.
Hierbei besteht nicht immer Sichtkontakt zur Basisstation.

Nun zu den Problemen: Für die Laufzeitbestimmung müssten Zeiten im 
ns-Bereich gemessen werden. Das ist vmtl nicht mit einem Arduino 
möglich?
Gibt es eine Möglichkeit die Richtung, aus der die Antwort des 
Basisstation kommt zu bestimmen?
Was haltet ihr davon/Ist das machbar?

Ich bin natürlich auf offen für neune Ideen. ;)

Grüße
Stefan
(Firma: matzetronics)
Es ist aussichtslos, in einem Raum durch anpeilen eines UHF Senders 
Richtung bestimmen zu wollen. Die Ausbreitung  der Wellen ist durch 
Auslöschung, Reflektionen und Addition unvorhersehbar. Funkpeilung 
funktioniert nur im Freifeld so, wie man das erwartet.

Eher könnte ein Kreuzpeilung mit Infrarot Baken funktionieren oder der 
gute alte Ultraschall.
Gast
Stefan schrieb:
> Dazu muss natürlich zunächste die Position genau bestimmt werden.

Warum? Du hast einen geschlossenen Raum derwahrscheinlich nicht sehr 
groß ist. Da kannst du Koppeln und mit ein zwei Wegmarken (z,B RFID 
uterm Teppich) die Absolutposition ermitteln.
Gast
Wow das ging ja schnell. Danke schon mal!

Zum Thema Ultraschall:
Ich will nicht mit vorgefertigten Karten arbeiten, um den Roboter 
überall ohne Vorbereitung einsetzen zu können. Ist es also möglich, die 
Karten direkt während der Fahrt zu erstellen? (V.a. mit der begrenzten 
Rechenleisung auf dem Arduino) Würden mir dafür 4 Sensoren (vorne, 
links, rechts, hinten) reichen? Ich könnte mir auch vorstellen, dass der 
Kartenabgleich an der Leistung scheitern wird?

Zu IR Kreupeilung: Danke, noch nie was von gehört... Ich les mich mal 
schlau :D

Mit RFID möchte ich nicht arbeiten. Ich hab dank fehlendem Teppich keine 
Möglichkeit hier Transponder zu verteilen. :/
Gast
Zur Kreuzpeilung: Dazu müsste ich zunächst die Position der Baken exakt 
ausmessen. Und wenn ich das richtig verstehe ist das auch nur bei 
Sichtkontakt möglich?

Wäre es möglich ein "Indoor-GPS" aufzubauen? 3 Sender und dann wieder 
Laufzeitbestimmung der Signale usw.
Stefan schrieb:
> Ich will nicht mit vorgefertigten Karten arbeiten, um den Roboter
> überall ohne Vorbereitung einsetzen zu können.

Da kommst du ja auch mit allen anderen Navigationsarten nicht drum 
herum.
Was nützt eine Position, wenn der Roboter nicht weiss, wo die Wand ist.

Du kannst die Karte natürlich auch den Roboter herausfinden lassen, 
aufwändig genug wird dein Projekt ja in jedem Fall... ;-)
Gast
Das gesuchte Zauberwort ist Simultaneous localization and 
mapping(https://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping), 
aka "SLAM". Gibt es viele Ansätze, Bücher, Studienfächer und 
Diplomandenstellen dazu.

Sehr einfach ausgedrückt, bedeutet das: Anhand von Sensordaten wie 
Kameras, Ultraschall, LIDAR, IR-Peilung, Trägheitsnavigationssystem, 
etc. wird gleichzeitig eine Karte der Umgebung erstellt und die Position 
mit der höchsten Wahrscheinlichkeit in derselben bestimmt.

Die Universitätsbücherei hilft Dir da gerne weiter.

Aktuelle Anwendungen sind z.B. die bekannten Saugroboter, als auch 
Multikopter und alles sonst, was irgendwie roboterig durch die Gegend 
eiert.

Wie gut das funktioniert, sieht man hier: 
https://www.youtube.com/watch?v=IMSozUpFFkU
Gast
Strömli schrieb:
> Das gesuchte Zauberwort ist Simultaneous localization and
> mapping

Das wird leider den Arduino sprengen... Ich seh schon... Da muss ich 
wohl auf was stäkreres umsteigen.
Dankeschön. Ich werd mich da mal einlesen und ausprobieren.
Gast
Am ehesten ist Indoor-Navigation dieser Art mit Kameras zu erschlagen. 
Aber da muss schon etwas mehr Verarbeitungspower her (schneller ARM oder 
Blackfin). Leider ist die Technik noch nicht mords hoffähig, aber ich 
würde mal versuchen, mit einer gehackten Kinect oder der 
Softkinetics-Kamera (Intel Branded) zum Ziel zu kommen. Probleme gibts 
nur bei zuviel Sonnenlicht, aber solche Fehler lassen sich u.U. durch 
Einlernen etwas mindern. Frage ist: Soll es wirklich eine 
Industrielösung werden?
Da ist der Weg schon noch etwas lang..
Gast
> Zu IR Kreuzpeilung: ...
> Und wenn ich das richtig verstehe ist das auch nur bei
> Sichtkontakt möglich?

Sicher, Licht kann man bei Sichtkontakt sehen, Wenn man es nicht mehr 
Sieht, hat man keinen Sichtkontakt.
Gast
Strubi schrieb:
> Frage ist: Soll es wirklich eine
> Industrielösung werden?

Eine Industrielösung wäre schon der Hammer :D Aber ich seh schon, dass 
meine Vorstellungen etwas über die Stränge schlagen. Vor allem 
finanziell gesehen.

Ich hab noch etwas nachgedacht. Was mir am wichtigsten ist: Der Roboter 
soll nach getaner Arbeit zurück in eine Basisstation fahren. Dort wird 
er automatisch geladen und kann (evtl. mit Zeitplan) von dort wieder 
losfahren.

Daher noch eine weitere Idee:
Auf der Basisstation 2 IR Dioden. Eine so geschirmt, dass sie nur in 
Richtung "Dockingposition" strahlt. Jeweils unterscheidbar. 
(Unterschiedlicher Takt? Machbar?)

Der Roboter fährt chaotisch für eine bestimmte Zeit (Über Taster 
einstellbar) durch den Raum. Nach der Zeit fährt er chaotisch weiter, 
bis er Sichtkontakt zur ersten Diode hat. Fährt darauf zu (bzw dran 
vorbei) bis Sichtkontakt zur zweiten Diode. Und ab dann muss er nur noch 
gerade auf die Diode zufahren, bis er Kontakt zur Basisstation hat.

Auf eine IR Diode zu peilen klingt für mich relativ trivial, oder wird 
das wieder durch Relektion usw. komplizierter als ich es erwarte? Wie 
sieht es mit der Identifizierung der beiden Dioden aus?

Danke nochmal an alle für die vielen Antworten. :)
Gast
> Auf eine IR Diode zu peilen klingt für mich relativ trivial

Ist es auch.

> Wie sieht es mit der Identifizierung der beiden Dioden aus?

Mit unterschiedlicher Frequenz pulsieren lassen.

Bedenke, dass diese IR Dioden je nach Frequenz deine Fernbedienungen der 
Unterhaltungselektronik stören können.
Stefan U. schrieb:
> Bedenke, dass diese IR Dioden je nach Frequenz deine Fernbedienungen der
> Unterhaltungselektronik stören können.

Die Arbeit einses Saugroboters ist ziemlich eintönig und langweilig für 
ihn selbst. Da kann man ihm wenigstens das Umschalten der Sender an der 
Stereoanlage erlauben. Schließlich saugt es sich bei flotter Musik 
gleich besser.

MfG Paul
Gast
Falls es nicht klappt / zu teuer wird, mein (gekaufter) Roboter macht 
das folgendermaßen:
Unten eine "Kamera" - quasi ein Sensor einer optischen Maus.
Er sucht sich eine Wand durch schräg anfahren, weiß dann die Richtung 
der Wand, und fährt dann über die Kamera Quadrate von ca. 150 x 150cm 
ab, eins nach dem anderen, ist schon rel genau.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.