Zitat von MarkusS
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
Putzroboter
Einklappen
X
-
Hi,
also von dem dicken Teppich ca. 2cm dick ist er ja auch wieder runtergekommen. Also ein Abgrund kann das für ihn eigentlich nicht sein.
Ich habe auch gefragt, was die Türme helfen?
Der Romba hat intern einen Speicher, sodass er sich merkt, wo er schon lang ist und stellt so wohl sicher das er überall 3-4 Mal rüber saugt.
Nun ist dieser Speicher aber auch endlich, also sehr Große oder komplizierte Räume können ihn dann wohl doch an die Grenzen des "Gedächnisses" bringen. Wenn man nun durch diese virtuelle Wand den Raum in zwei teilt, wird erst der eine Teil 3-4 gesaugt und dann erst der zweite Teil.
Auch die kleine PAC-MANs brauchen anscheinend bei großen oder komplexen Räumen etwas Hilfe.
Zumindest geht es dann leichter und er wird wohl schneller fertig.
Gruß Tbi
Kommentar
-
Der Roomba speichert keine Grundrisse ab
Hallo, dies ist mein erster Beitrag hier..
Ich habe selbst seit einem halben Jahr zwei solcher Roboter von iRobot, einen Roomba 580 und einen Scooba 385, letzterer ist der Wischroboter.
In diesem Tread wurde an mehreren Stellen erwähnt / angedeutet, dass die Reinigungsroboter von iRobot die Grundrisse der Räume ertasten und sich merken würden für die Wiederholungsfahrt. Dies ist für die Modelle von iRobot nicht richtig und daher geben ich mal meine 50 Cent dazu:
Die iRobot Roboter wie Roomba speichern NICHT die Grundrisse der Räume
Nach meinem Kenntnisstand haben diese Roboter kein Gedächtnis über den / die Räume und speichern auch nichts auf Dauer ab. Schließlich können die Roboter an jeder Stelle eines Raumes gestartet werden.
Ich habe in meiner DHH vier Stockwerke, dazu noch eine Garage und den Kofferraum meines Autos lasse ich auch saugen. Ab und an leihe ich diese auch an den Nachbarn oder lasse ihn in der Firma fahren. Wie sollte er das alles Speichern und wiedererkennen?
An was sollte er den Raum "wiedererkennen", egal wo er gestartet wird? Und was macht er wenn plötzlich die Möbel verschoben wurden, eine bisher nicht vorhandene Reisetasche mitten im Raum steht, der Hund woanders sein Nickerchen macht (okay er müsste fast Taub sein bei dem Lärm), der Einkauf abgestellt wurde usw. So eine Wohnung "lebt".
Es gibt auch keinerlei Spezifikation von Seiten des Herstellers hierrüber. Weder steht in der Anleitung etwas von Kennenlernfahrten (eher das Gegenteil) noch eine Spezifikation, wie viele Räume / Konturen sich der Roboter merken könnte.
Was passiert also? gesteuertes Chaos!
Die Roboter fahren beim Start einfach drauflos, zunächst in einer Spirale vom Startpunkt aus und dann zufällig in eine Richtung. Von dort geht es einigermaßen chaotisch durch die Räume.
Die Roboter haben nur sowas wie eine "Vorstellung" über die Größe der Räume wegen der gefahrenen Weglänge bis zum Hindernis und der Weglänge der Wände entlang (insofern er in Richtung des Wandsensors auf eine Wand trifft).
Nach meiner Info erfolgt daraus eine grobe Einteilung in "Small" oder "Large", vielleicht auch noch "Middle". Bei den älteren Modellen gab es auch Tasten dafür. Entsprechend wird ein Algorithmus für diese Raumgrößen abgefahren, so dass im Schnitt eine Stelle aus allen Richtungen 3 bis 5 mal überfahren wird. Zwar nur ungefähr und nicht immer aber insgesamt doch absolut ausreichend - auch weil er jeden Tag anders fährt.
Die "ungefähre" Erfassung der Raumgröße fängt bei jeder Fahrt von vorne an. Der Algorithmus heißt "Aware" und das sieht dann so aus (Foto von dem Blogger Signaltheorist Roomba, Economics and Long-Exposure Photography | signaltheorist.com mit ausgeschalteter Beleuchtung und einer 30 Minuten Langzeitbelichtung):
Hier nicht so gut ersichtlich, aber die Ränder werden sehr exakt und randnah abgefahren, wofür die rotierende Seitenreinigungsbürste dienlich ist, die auch die Ecken gut erfasst (ab und an muss man da aber manuell nochmal nachsaugen, aber eben nur alle paar Wochen). Einige Stellen werden sehr oft, anderen nur einmal überfahren. Da er dies am nächsten Tag aber ein wenig anders macht, wird es dennoch sauber.
Die wirklich sehr gute Reinigungswirkung entsteht letzlich aus der täglichen - durch Zufall und geänderten Staubverteilung - veränderten Fahrt.
Das Prinzip. Von den Tieren gelernt.
Alle Lebewesen haben als oberstes Ziel die egoistische Arterhaltung durch Reproduktion ihrer selbst (aber das ist jetzt ein anderes Thema :-)), was wiederum erst durch den täglichen Selbsterhalt möglich wird - Fressen.
Auf den Roomba übersetzt: Fahre um Dreck zu Saugen. Entsprechend beginnt zunächst die Spiralfahrt, einfach aus der Annahme heraus, der Besitzer hat den Roomba dorthin gestellt, wo es auch was zum Saugen gibt.
Erst wenn er nichts findet dort - der Roomba hat einen kapazitiven Schmutzsenor im Bürstenmodul - oder er lange genug in Spirale gefahren ist geht er in eine (auch zufällig limitierte) Längsfahrt über bis er eine Kontur erfasst um die er herum / entlang fährt oder er einfach die Richtung wechselt. Tiere laufen auf der Suche nach Futter auch nicht ewig in die gleiche Richtung (von Zugvögeln, bestimmte Walen usw. mal abgesehen) sondern probieren eine andere Richtung aus.
Immer wenn der Schmutzsensor genügend Staub an einer Stelle erfasst ("Fressen gefunden"), geht der Roomba in eine lokale Spiralfahrt ("hier muss es mehr zu Fressen geben"). Alleine schon durch die veränderliche Staubverteilung verändert sich jede Fahrt. Die im Algorithmus enthaltene Zufallskomponente, dazu verschobene Möbel, neu herumstehende Hindernisse, in der Ausrichtung verschobene Leuchttürme usw. tun ein übriges für veränderte Verhältnisse.
Damit: Jede Fahrt ist anders und gespeichert wird praktisch nichts. Der Roboter hat nur ein ungefähres Gefühl, wann er in einem Raum lange genug unterwegs war.
Leuchttürme helfen Räume abzutrennen
Bei komplexen, insbesondere sehr großen oder sehr vollgestellten Räumen, z.B. mit einem großen Raumteiler, kommt der Algorithmus insofern an Grenzen, als dass er zu schnell den neuen Bereich (z.B. hinter dem Raumteiler oder gar den nächsten Raum) befährt ohne dass der Raum zuvor ausreichend besaugt wurde.
Hier helfen sogenannte Leuchttürme (die ältere Version mit anderer Funktionalität ist eine Virtual Wall). Diese Leuchttürme senden je einen Infrarotstrahl im Kreis (damit der Roomba nicht gegen den Leuchtturm fährt und diesen verschiebt) und einen Strahl als virtuellen Balken in Richtung der Vorderseite des Leuchtturms. Ist ein solcher Leuchtturm im Modus "Lighthouse" (es gibt auch den Modus Virtual Wall) - dann fährt der Roboter erst dann über den damit abgetrennten Bereich, wenn er das virtuelle Gefühl hat, den bisherigen Raum ausreichend abgefahren zu haben.
Auf diese Weise lassen sich schwierige oder große Räume aufteilen bzw. dies dient vor allem Räume voneinander zu trennen. Bei mir stehen diese Leuchttürme in den Türdurchgängen.
Diese Leuchttürme laufen mit Batterie und werden vom Roomba per Funk ein- und wieder ausgeschaltet, das spart Energie und führt zu akzeptablen Batterielaufzeiten (mehrere Monate bei täglichem Betrieb). Ein Schalter läßt noch die Möglichkeit zu, die Reichweite des virtuellen IR-Balken in drei Schritten einzustellen, die reduziert ebenfalls die Batterienutzung, wenn die Distanz auf Kurz steht, was in einem Türrahmen meist reicht.
Und die virtual Wall?
Bei den älteren Modellen des Roomba, beim Scooba (Wischroboter) und dem DirtDog (Kehrroboter fürs grobere) gab / gibt es nur die Virtual Wall. Die Leuchttürme können auch in dieser Betriebsart genutzt werden.
Die Virtual Wall ist eine nicht zu überfahrende virtuelle Abtrennung durch einen ausgesendeten Infrarotstrahl. Im Gegensatz zum "Lighthouse"-Mode der Leuchttürme, bei denen der abgetrennte Bereich überfahren werden darf, wenn der Bereich davor "ungefähr" gesaugt wurde.
Ich nutze die Virtual Wall, damit der Saugroboter die Einfahrt saugt, aber nicht auf die Straße fährt (ja, funktioniert bei vollem Sonnenschein) oder die Terasse saugt aber nicht den Rasen... Oder eben um die chaotische Ecke mit wichtigen Bauteilen am Boden zu verschonen (ja, ich gelobe Besserung).
Unterschiede zwischen den Modellen
Die Algorithmen und damit die Verhaltensweisen unterscheiden sich von Modell zu Modell und über Generationen hinweg teils erheblich.
Die Roomba 560/580 haben die neuesten Versionen und deutlich verbesserte Sensoren. Insbesondere muss er nicht mehr mit dem Bumper - das ist ein bewegliches Schild mit Kurzhubtastern dahinter - unbedingt mit hoher Geschwindigkeit gegen ein Hindernis fahren um es zu erkennen, weil er eine kurze Distanzerkennung mit Infrarotsensoren hat und zuvor abbremst bzw. an der Wand entlang mit Abstand fahren kann (ohne mit dem Gehäuse zu schleifen). Stuhlbeine werden allerdings in voller Fahrt gerammt. Meinen Möbeln hat es nicht geschadet.
Update: Seit diesem Jahr gibt es noch die Roomba Professional 600 Serie, die ist hinsichtlich des Algorithmus und doppelter Staubfangbehälter für die Reinigung größerer / mehrerer Geschäftsräume optimiert.
Ältere Modelle des Roomba, der Scooba (Wischroboter) und der DirtDog (Kehrroboter) haben solche Infrarotsensoren nach vorne nicht, die müssen daher anbumpern (was problemlos ist, zumindest bei meinen Möbeln), fahren aber auch langsamer.
Einbindung in die Hausinstallation mit KNX etc. ist schwierig.
Mit meinem Geschäftspartner Michael (ihr kennt ihn als "Makki") haben wir über verschiedene Möglichkeiten nachgedacht.
Leider gibt es meines Wissens nichts richtig fertiges. Beim Roomba ist eine Möglichkeit die bereits in diesem Tread angesprochene Möglichkeit über den Eingriff in die Funk-Fernbedienung - also zerlegen und den Starttaster über einen KNX-Ausgang zu Bedienen.
Eine andere Möglichkeit besteht über eine Modifikation am Roomba selbst. Diese verfügen über eine serielle Schnittstelle und einen vom Hersteller dokumentierten Befehlssatz, über den alle über die Fernbedienung erreichbare Kommandos, sowie Fahrbefehle, teils die Motorsteuerung und Anfrage aller Sensoren mit erfolgen kann.
Wie bekommt man nun die Befehle zur serielle Schnittstelle zum Roomba? Nun, da er beweglich ist nur über Funk. Es gibt diverse Bauanleitungen für Bluetooth und WLAN.
Die Mehrzahl aller Bauanleitungen, insbesondere aus dem Buch "Hacking Roomba" verzichten auf Einbauten / Eingriffe im Inneren. Die zusätzliche Elektronik wird Huckepack oben draufgeklebt. Sieht nicht nur hässlich aus, der Roomba kann auch nicht mehr unters Sofa und bleibt mit dem Huckepack auch noch hängen,weil er schließlich von dem Aufsatz nichts weiß und die Sensoren ihm sagen, hier passe ich durch... Hierdurch kann das Huckepack beim Hängenbleiben am Sofa, dem Hifi-Rack, dem Sessel, dem Hocher auch noch "abgeschert" werden und womöglich bleibt er auch noch stehen, etwa wenn er durch das entstehende Kippmoment zu weit angehoben wird.
Also müsste man etwas einbauen intern, aber das gibt dann Probleme mit der Garantie (korrekt: Sachmängelhaftung, hust)... und die braucht man, wie man weiter unten lesen kann.
Die anderen Modelle wie Scooba und der DirtDog haben eine solche serielle Schnittstelle meines Wissens GAR NICHT und auch keine Funkfernbedienung. Beim Scooba macht es auch keinen Sinn (etwa der automatische Start bei Abwesenheit der Bewohner durch den HS), weil dieser nach etwa 45 Minuten mit frischem Wasser befüllt und das verbrauchte Waschwasser entsorgt werden muss. Mehr als ein großer oder zwei/drei kleine Räume gehen ohnehin nicht. (in die Ecken kommt er übrigens auch nicht mit dem Wischen). Deshalb gibt es auch keine Dockingstation für diesen. Er bleibt einfach stehen wenn der Frischwasserbehälter leer ist - oder der Akku.
Beim Roomba würde bei täglichen Saugen eine Behälterleerung jede Woche reichen. Hier ist der Kärcher ein wenig im Vorteil mit seiner Saugstation in der Dockingstation, kostet aber auch das drei- bis vierfache nach meiner Info. Und diese "Dockingstation" passt nicht unters Sofa...
Auch wenn ich keine fertige Lösung für den Roomba habe, hoffe ich dass ich ein wenig Licht ins Dunkel um die Roboter bringen konnte - und wer weiß, vielleicht fällt Makki und mir ja noch was ein.
BTW: So gut die Roboter funktionieren, meine beiden sind derzeit defekt. Beim einen der Akku, beim anderen liefen die Bürsten nicht mehr und nach der Selbstreparatur gar nichts mehr... Wenn ich den Roomba nun modifiziert hätte mit Elektronik im Inneren, hätte ich wahrscheinlich Probleme mit der Argumentation.
Kommentar
-
Hallo Stefan,
Wow, danke fuer den ausfuehrlichen Bericht. I smell a weihnachtsgeschenk for my holde. Zumal die Katzen derzeit immer nen halben Wald mit reinbringen....
mfg Swen2 Objekte, 6 Linien + KNX/IP-Bereich, HS 3 SW 2.8, Visu mit 2x 15"-Touch, Softwaregateway KNX/IP für 2x Novelan Wärmepumpe, viele Ideen und wenig Zeit
Kommentar
-
domain decompesition hilf
Hallo Stefan,
ich hab ja nie behaupted, dass den Roomba ein/dein Wohnzimmer erkennt.
Es gibt verschiedene "Gedächnisse". Das Kurzzeitgedächnis wäre hier das was dem am nächsten kommt. Es ist ein "gleitendes" Gedächnis. Die ältesten Einträge werden gelöscht.
Roomba sagt, dass jede Stelle 3 mal überfahren wird. So zumindest der Vertreter des Deutschlandvertriebs. Wenn es zu komplex wird kann er auch aus dem Tritt kommen, dann sollte man ihn reseten. Dann started der Lern-Algorithmus neu. (Stichwort: Adaptive Verfahren/Regelungen)
Man sieht auch an dem Bild, dass es nicht Zufall ist sondern ein intelligenter Algorithmus sein muß. Der natürlich geheim ist. Hier ist das Know-How der Firma. Logisch.
Dieser Algorithmus funktioniert bei kleinen Räumen (einfachen Geometrien) natürlich besser. Bei sehr komplexen Geometrien wird er aber sicher versagen. Dafür gibt es einen einfachen Trick, man zerlegt die Geometrie in mehrere kleinere Gebiete und löst dann die vielen leichteren kleinen Probleme. Dies wird durch die Leuchttürme erreicht.
In der Fachwelt nennt man das "domain decompesition". Dies ist ein eigener Forschungbereich, der auch in der Netzgenerierung für numerische Berechnungen wie FEM, etc benötigt wird. Besonders anspriuchsvoll ist das dann in 3D ;-).
Mal die große Suchmaschine anschmeißen, gibt's bestimmt viel zu finden.
So long
Tbi
Kommentar
-
>>Es gibt verschiedene "Gedächnisse". Das Kurzzeitgedächnis wäre
>>hier das was dem am nächsten kommt. Es ist ein "gleitendes" Gedächnis.
Zumdest alles was den Roomba Discovery SE und davor bis zur letzten Softwarerelease betrifft stimmt das nicht. Die sind strunz doof und fahren genau so wie StefanW beschrieben hat.
Aber das ist nicht schlecht, denn genau das sorgt für die hervorragenden Putz-Ergebnisse.
Es gibt einige Ansätze von Hackern über die Schnittstelle den Roomba mit intelligenten (wo war ich den schon) Algorithmen zu steuern. Aber keiner hat damit die gleiche Qualität erzielt, wie die "dumme" zufallsgesteuerte Strategie.
>>Man sieht auch an dem Bild, dass es nicht Zufall ist
>>sondern ein intelligenter Algorithmus sein muß
Grundgütiger.
H-T
Kommentar
-
Hallo H-T,
Grundgütiger.
Erst dann kann er den neuen Bereich entern.
Das ist schon Hightech. Besonders, es in so einem Ding unterzubringen (Sprich wieder so zu vereinfachen, dass es in einen einfachen MikroController paßt).
Wenn das so Dumm wäre, gab es die Dinger auch aus China ;-)
Gruß Tbi
Kommentar
-
Ich will Dich ja nicht persönlich angreifen, aber eigentlich glaube ich, dass Du von den Dingern nicht sehr viel Ahnung hast.
Der iRobot Roomba wird z.B. in China gefertigt. Nur die Konstruktion ist aus den USA.
Hast Du überhaupt einen, dass Du solche Behauptungen von Dir gibst? Dann hättest Du sicher auch das "Made in China" schon gesehen.
Ich habe 5 zu Hause, 2 im Geschäft und einen Scooba. Und ich habe mich mit den Dingern beschäftigt, sie zerlegt, das Buch "Hacking Roomba" gelesen, bin im schweizer Roomba und US "robot reviews" Forum. Mein Wissen beschränkt sich auf die Discovery Klasse bis SE und davor. Aber ich glaube nicht, dass die neueren anders sind.
>>dass es in einen einfachen MikroController
Hast Du die Platine des Roomba schon gesehen? Ich ja, Du kannst mir glauben, die passt in kein aktuelles Handy rein. Und ein aktuelles Handy hat mehr Rechenpower und Speicher als der Roomba. Was willst Du also mit Deiner Aussage also beweisen?
Du sagst, Du kannst alleine an Hand der Fahrlinien des hier gezeigten Bildes Rückschlüsse auf den Algorithmus ziehen. Was ist denn Deine Profession?
Nein. Es ist ganz einfach: Die Fahrstrategie inkl. der Kringelfahrt am Anfang und bei Schmutzerkennung, der Kantenfahrt und der Flächenreinigung ist so wie von StefanW beschrieben.
H-T
Kommentar
-
Ich will Dich ja nicht persönlich angreifen, aber eigentlich glaube ich, dass Du von den Dingern nicht sehr viel Ahnung hast.
Der iRobot Roomba wird z.B. in China gefertigt. Nur die Konstruktion ist aus den USA.
Aber nützt das jetzt ????? Laß uns bei der Sache bleiben.
Aber ich glaube nicht, dass die neueren anders sind.
Ich hab selbst noch keinen, das einzige was es mir bringen würde wäre: Was für ein Chip ist den drauf ? Hast Du ein Foto ?
Du sagst, Du kannst alleine an Hand der Fahrlinien des hier gezeigten Bildes Rückschlüsse auf den Algorithmus ziehen. Was ist denn Deine Profession?
Die "ungefähre" Erfassung der Raumgröße fängt bei jeder Fahrt von vorne an.
von Stefan:
dann fährt der Roboter erst dann über den damit abgetrennten Bereich, wenn er das virtuelle Gefühl hat, den bisherigen Raum ausreichend abgefahren zu haben.
Wenn Du denkst, das wäre für einen MC zu viel Berechnung. Nein, das muß man alles eben vereinfachen. Z.B rechnet man in einem MC Programm nie einen Sinus oder Cosinus aus. Es ist einfacher sich 0-90 Grad als Tabelle in den Speicher zu legen. Ein Fläche könnte man z.B. als Schachbrettmuster ablegen, bitweise merken, ob Feld überfahren ist oder nicht.
Oder hast Du eine andere Idee, wie das gehen soll? Vielleicht hab ich ja was übersehen ?
So long
Gruß Tbi
Kommentar
-
Hi,
also dies ist kein Standard Controller, zumindest die Bezeichnung "iRobot" läßt schon darauf schliessen. Da der Algorithmus auch das wertvollste hier ist, hat man dies hier anscheinend in einen Kundenspezifischen Chip "gegossen". So sollte man es auch machen, um den besten Schutz zu erreichen.
Bei der Größe des Chips, traue ich iRobot aber zu, die oben angedeuteten Algorithmen dort untergebracht zu haben.
Gruß Tbi
Kommentar
-
Zitat von AScherff Beitrag anzeigenJa, da ich schon öfter danach gefragt wurde hier mal die Codes für IRTrans:
so wie es mir scheint, kann ich in meiner Abwesenheit mit diesen Codes den Roomba per IrTrans starten.
Aber kann ich ihn dann mit einem der Befehle auch wieder zur Ladestation schicken, wenn ich zB. wieder nach Hause komme und der saugt noch herum.... ?
Bzw. fährt der autom. wieder zur Ladesation, wenn er fertig ist?
lg
Kommentar
-
Zitat von JMA Beitrag anzeigenAber kann ich ihn dann mit einem der Befehle auch wieder zur Ladestation schicken, wenn ich zB. wieder nach Hause komme und der saugt noch herum.... ? Bzw. fährt der autom. wieder zur Ladesation, wenn er fertig ist?
Zum einen gibt es den Befehl "Docking" damit er zur Ladestation fährt, zum anderen tut der Saugroboter dies automatisch wenn entweder der Akku leer wird oder alle erreichbaren Räume gesaugt wurden.
Hierbei ist zu beachten, dass er nach einem erneuten Start auch wieder von vorne anfängt und nicht etwa dort weitersaugt, wo er unterbrochen wurde. Dies eben weil er keine Grundrisse abspeichert.
Im alltäglichen Betrieb ist es vernünftiger, den Roboter seine Aufgabe fertig machen zu lassen als ihn z.B. jedesmal, wenn man nach Hause kommt, docken zu lassen, weil über kurz oder lang dann Bereiche ungesaugt bleiben.
Diese Angaben beziehen sich nur auf die Staubsaugroboter Roomba von iRobot. Für den Wischroboter gilt dies nicht, da es hierfür keine Dockingstation gibt.
Kommentar
-
Welcher der Befehle ist der für "Docking" in Alfreds Liste für den IrTrans?
Zumeist sollte meine Abwesenheit ausreichen um den gewünschten Bereich saugen zu lassen,
aber wenn ich doch mal nach Hause komme und der (bald angeschaffte) Roomba saugt noch,
hab ich keine Freude drann, daher soll der dann wieder ins "Körbchen"! ;-)
Kommentar
-
Zitat von JMA Beitrag anzeigenWelcher der Befehle ist der für "Docking" in Alfreds Liste für den IrTrans?
Goggle hilft sicher weiter
Kommentar
Kommentar