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
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.
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.
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. :/
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... ;-)
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?
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
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.
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..
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.
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
> 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.
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. :)
> 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
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.