Forum: Mikrocontroller und Digitale Elektronik Positionbestimmung Saugroboter


von Stefan (Gast)


Lesenswert?

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

von Joe F. (easylife)


Lesenswert?

Funk wird wohl eher schwierig.
Ultraschall und "Kartenmaterial" deiner Wohnung könnte funktionieren.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von X4U (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

Das macht man normalerweise mit Infrarot Baken.

von Stefan (Gast)


Lesenswert?

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. :/

von Stefan (Gast)


Lesenswert?

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.

von Joe F. (easylife)


Lesenswert?

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... ;-)

von Oliver S. (phetty)


Lesenswert?

Einige kommerzielle Roboter vermessen mit LIDAR 
(https://de.wikipedia.org/wiki/Lidar) den Raum um zu wissen wo sie 
saugen können.
Eine exakte absolute Position kann man so nicht ermitteln, aber ist das 
nicht egal?

: Bearbeitet durch User
von Strömli (Gast)


Lesenswert?

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

von Stefan (Gast)


Lesenswert?

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.

von Strubi (Gast)


Lesenswert?

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..

von Manfred (Gast)


Lesenswert?

Stefan schrieb:
> Wäre es möglich ein "Indoor-GPS" aufzubauen? 3 Sender und dann wieder
> Laufzeitbestimmung der Signale usw.

Da must du aber auch einige kleine Satelliten durch das Wohnzimmer 
fliegen lassen.

von HF (Gast)


Lesenswert?

Demnächst gibt es UWB-Chips für die Indoor-Navigation von Decawave und 
3dB-Technologies:

http://www.decawave.com/technology
http://www.3db-technologies.com/en/Home.1.html

Von Decawave kann man schon Development-Kits als Arduino Aufsatz kaufen.

von Conny G. (conny_g)


Lesenswert?

HF schrieb:
> Demnächst gibt es UWB-Chips für die Indoor-Navigation von Decawave und
> 3dB-Technologies:
>
> http://www.decawave.com/technology
> http://www.3db-technologies.com/en/Home.1.html
>
> Von Decawave kann man schon Development-Kits als Arduino Aufsatz kaufen.

Das ist cool!! Ich hab mir gleich SMD-Module davon bestellt!

von MarkusWi (Gast)


Lesenswert?

Hallo,

was braucht man denn noch zusätzlich, wenn man diese Chips einsetzen 
möchte? Es ist eine Fläche von 100 Quadratmetern (10 x 10 m) abzudecken.

Könnte man damit und einem Moving Head einen autonomen Verfolger 
konstruieren (SW vorausgesetzt)?

https://de.wikipedia.org/wiki/Verfolger_(Scheinwerfer)

Grüße
Markus

von Stefan F. (Gast)


Lesenswert?

> 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.

von Stefan (Gast)


Lesenswert?

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. :)

von Stefan F. (Gast)


Lesenswert?

> 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.

von Paul B. (paul_baumann)


Lesenswert?

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

von klaus (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.