- Labornetzteil AliExpress         
Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 33

Thema: Roomba 520 und MSRS und 'Open Interface' Fragen

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    19.02.2004
    Alter
    61
    Beiträge
    76

    Roomba 520 und MSRS und 'Open Interface' Fragen

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hi,

    ich bin mal wieder dabei, etwas mit Microsofts Robotics Suite hinzubekommen. Bin jetzt immerhin mal dem Ganzen etwas näher gekommen, stoße aber wie noch jedesmal auf Schwierigkeiten.

    Erste Frage:
    Hat sich hier jemand ernsthaft mit diesem Thema befasst und ist evtl. da auch weiter gekommen?

    Zweite Frage:
    Gibt es für die 500er Serie verbindliche Infos zum Open Interface?
    Ich hab eine 'Roomba' Variante des Manuals aus dem Jahr 2005 und eine neuere Version für den Roomba Create, beide scheinen aber, was die Steuerung betrifft dem 520er nur teilweise zu entsprechen.

    Grüße,
    Christoph

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo Christoph,

    schön mal wieder etwas von dir zu hören.

    Zu 1:

    Theoretisch ja, praktisch nein. D.h. ich hatte mich mal vor einiger Zeit mit der Simulation von MSRS beschäftigt. Da ich keinen Roomba hatte, eben nur virtuell. Zu mehr als die Beispiele auszuprobieren bin ich aber auch nicht gekommen.

    Inzwischen habe ich zwar auch einen Roomba, leider ist mir beim unsachgemässen rumbasteln die serielle Schnittstelle vom Roomba abgeraucht.

    Zu 2:

    Zur 500 Serie kenne ich nur das hier:
    http://www.irobot.lv/uploaded_files/...rface_Spec.pdf
    Das sollte aber die Steuerung für den 520 komplett abdecken.

    Grüße,
    Peter

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    19.02.2004
    Alter
    61
    Beiträge
    76
    Zitat Zitat von m.a.r.v.i.n
    Hallo Christoph,

    schön mal wieder etwas von dir zu hören.
    Nette Begrüßung :)

    Zitat Zitat von m.a.r.v.i.n
    Zu 1:

    Theoretisch ja, praktisch nein. D.h. ich hatte mich mal vor einiger Zeit mit der Simulation von MSRS beschäftigt. Da ich keinen Roomba hatte, eben nur virtuell. Zu mehr als die Beispiele auszuprobieren bin ich aber auch nicht gekommen.

    Inzwischen habe ich zwar auch einen Roomba, leider ist mir beim unsachgemässen rumbasteln die serielle Schnittstelle vom Roomba abgeraucht. :cry:
    Ohmann - der nackte Horror :(
    Aber Jetzt hast Du ja eine gute Entschuldigung, das Ding mal aufzumachen und gründlich zu untersuchen :)

    Zu 2:

    Zur 500 Serie kenne ich nur das hier:
    http://www.irobot.lv/uploaded_files/...rface_Spec.pdf
    Das sollte aber die Steuerung für den 520 komplett abdecken.
    Klasse, Peter. Genau das habe ich vermisst ... wie hast Du das denn aufgetrieben? :)
    Wahrscheinlich ist ein gut Teil meiner Probleme damit schon erledigt.

    ---

    Stand der Dinge ist bei mir:

    - ich habe einen Roomba 520
    - installiert ist (unter Windows 7) Microsoft Robotics Developer Studio 2008 in der letzten Version.
    - ausserdem Visual 2008 Express (beides ja, wie bekannt, kostenlos erhältlich)
    - als 'Tools' habe ich das 'Device Monitoring Studio 6.02' von HHD Software zum Ausspähen des Datenverkehrs und
    - das Programm 'Roomba Status' (u.a. zum direkten Senden von Befehlen)
    - als Verbindung zwischen Roomba und PC verwende ich XBEE Module, die mit 38.400 BAUD senden (die 500er werden ja mit 115.200 BAUD betrieben, da machen meine XBEEs natürlich nicht mehr mit). Die BAUD-Rate wird zu Beginn mittels Roomba-Status und einem seriellen Kabel eingestellt. Der Roomba merkt sich das eine Weile, irgendwann vergißt er es (nein, ein 'Reset' ist nicht die Ursache, das reicht nicht). Dann muß ich das wiederholen.
    - ich kann unter Microsofts "visueller Programmiersprache" VPL auf die vorhandenen iRobot Services zugreifen. Das funktioniert aber nur zum Teil (das scheint alles für die Roomba-Vorgänger bzw. den Create geschrieben zu sein). Services unter C# selbst zu schreiben oder auch nur zu ändern kann ich nicht. Ich finde das, mit meinem bisschen C-Kenntnis doch reichlich, äh, unübersichtlich. Und nur das Vorhandene zu übernehmen ist offenbar nicht genug.
    Es bleibt wohl nur, sich durch die Tutorials durchzunagen, wobei ich schon da nie genau weiss, wo anfangen ;)

    Vielleicht käme ich mal weiter, wenn sich ein paar von uns zusammentun. Unter anderem deshalb habe ich das auch hier mal wieder angesprochen :)

    Grüße,
    Peter
    Auch Grüße,
    Christoph

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo Christoph,

    reparieren wird wohl nichts. Beim Anschliessen eines Microcontroller Boards habe ich RX und TX vertauscht. Damit waren TX vom Roomba mit TX des Controllers verbunden. Danach waren beide seriellen Ports (Roomba und Controller) defekt. Der Roomba funktioniert aber ansonsten ohne Probleme.

    Den Link zur Beschreibung des 500er OI hatte ich in einem anderen Forum entdeckt. iRobot hatte das pdf von seinen Servern entfernt (glücklicherweise nicht vom lettischen Server). Damit sollte wohl verhindert werden, das man bestimmte Features auch bei den preiswerteren Roombas nutzen kann (wie Scheduling) .

    Der 520 sollte sich eigentlich genauso steuern lassen wie ein iCreate. Das Protokoll ist ja identisch, bis auf die neu hinzugekommenen Sensoren.
    Die Roomba MRDS Schnittstelle könnte man sicher dazu aufbohren. Meine C# Kenntnisse sind leider auch nicht sehr gut und das komplette Framework ist wirklich sehr unübersichtlich.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    19.02.2004
    Alter
    61
    Beiträge
    76
    Zitat Zitat von m.a.r.v.i.n
    Hallo Christoph,

    reparieren wird wohl nichts. Beim Anschliessen eines Microcontroller Boards habe ich RX und TX vertauscht. Damit waren TX vom Roomba mit TX des Controllers verbunden. Danach waren beide seriellen Ports (Roomba und Controller) defekt. Der Roomba funktioniert aber ansonsten ohne Probleme.
    Wie, 'funktionieren'? Ich meine: saugen kann ja jeder :)
    Also, rein theoretisch solltest Du RX- und TX- Pin schon mal kurz vertauschen dürfen. Welcher Prozessor ist denn so ein Weichei und ist da sofort hin? Es sei denn, Du hattest eine echte serielle Schnittstelle (mit ihren +/-9 oder so Volt) im Spiel. Dann dürfte es natürlich schon mal rauchen ...

    Den Link zur Beschreibung des 500er OI hatte ich in einem anderen Forum entdeckt. iRobot hatte das pdf von seinen Servern entfernt (glücklicherweise nicht vom lettischen Server). Damit sollte wohl verhindert werden, das man bestimmte Features auch bei den preiswerteren Roombas nutzen kann (wie Scheduling) .
    So weit hatte ich gar nicht gedacht: geht das denn? Dem Roboter einfach per Schnittstelle anstatt per Buttons sagen, wann er zu saugen hat? Gleich morgen mal probieren ...
    (hat der 520er denn überhaupt eine Echtzeit-Uhr??)

    Der 520 sollte sich eigentlich genauso steuern lassen wie ein iCreate. Das Protokoll ist ja identisch, bis auf die neu hinzugekommenen Sensoren.
    Die Roomba MRDS Schnittstelle könnte man sicher dazu aufbohren. Meine C# Kenntnisse sind leider auch nicht sehr gut und das komplette Framework ist wirklich sehr unübersichtlich.
    Und die fehlende Cargo-Bay. Tja. We'll see.

    Eins habe ich anhand Deines 500er OI-Manuals schon heraus: ich (bzw. der iRobot-Service von MSRS) schicke den Befehl '148, 2, 4, 35' an den Robot. Das bedeutet: schicke mir das Group Packet 4 und den Einzelwert 35 als Stream, das sollten (sowohl beim Create als auch beim 500er) 15 Byte sein, es sind aber 20. Das ist schonmal mysteriös ;)

    Ich muß vielleicht auch mal in einem MSRS-Forum nerven ...


    Grüße,
    Christoph

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo Christoph,

    Also, rein theoretisch solltest Du RX- und TX- Pin schon mal kurz vertauschen dürfen. Welcher Prozessor ist denn so ein Weichei und ist da sofort hin?
    Praktisch leider nein. Sowohl die Roomba Schnittstelle sendet nichts mehr, als auch mein mega328 den ich daran anschliessen wollte. Natürlich nur mit 5V Pegel. Naja, jetzt Suche ich halt nach einen günstigen Gebrauchten bei eBay. Alternativ kann ich mir auch ein neues Mainboard aus USA schicken lassen.

    (hat der 520er denn überhaupt eine Echtzeit-Uhr??)
    Versuch macht kluch.

    das sollten (sowohl beim Create als auch beim 500er) 15 Byte sein, es sind aber 20. Das ist schonmal mysteriös
    20 Bytes klingt doch i.O. Siehe S. 18 im Manual, dazu kommen noch Header, Packet IDs, CRC usw.
    The format of the data returned is:
    [19][N-bytes][Packet ID 1][Packet 1 data…][Packet ID 2][Packet 2 data…][Checksum]

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    19.02.2004
    Alter
    61
    Beiträge
    76
    Zitat Zitat von m.a.r.v.i.n
    Hallo Christoph,

    Paktisch leider nein. Sowohl die Roomba Schnittstelle sendet nichts mehr, als auch mein mega328 den ich daran anschliessen wollte. Natürlich nur mit 5V Pegel.
    Na: Gut, daß ich das nicht wusste beim Anschließen. Ich war wie immer völlig gewissenlos ;)
    Alternativ kann ich mir auch ein neues Mainboard aus USA schicken lassen.
    Kostet?
    (hat der 520er denn überhaupt eine Echtzeit-Uhr??)
    Versuch macht kluch.
    Jo. Ist aber nicht so einfach. Ich kann die Uhr, so es sie denn gibt, leider nicht auslesen(?). Ich könnte höchstens versuchen, ein 'Schedule' aufzustellen und wenn das dann funktioniert gibt es eine Uhr. Das hab' ich gestern mal probiert und es tat sich nichts ;)

    Es gibt natürlich ein 'Work-around', das auch ein schönes Projekt abgeben würde: ein irgendwo positionierter Microcontroller, der seinerseits eine Echtzeituhr betreibt und den Roomba über Funk steuert. Oder auch onboard befindlich ist und den 'Bot direkt steuert.
    Ich will mich aber mal nicht von MSRS ablenken lassen. Ich hab das jetzt so oft versucht, entweder kriege ich das hin oder ich lasse das für immer :)
    Ohnehin will ich ja eigentlich etwas ganz anderes machen: ich will einen Schwarm von Eigenbau-Robots mittels MSRS steuern.
    Ich dachte nur, ich fange mit etwas an, was wenigstens schon mal im Ansatz funktioniert. Anstatt etwas eigenes aufzuziehen und dann gar nicht zu wissen, woran ich denn jetzt eigentlich gescheitert bin :)

    das sollten (sowohl beim Create als auch beim 500er) 15 Byte sein, es sind aber 20. Das ist schonmal mysteriös ;)
    20 Bytes klingt doch i.O. Siehe S. 18 im Manual, dazu kommen noch Header, Packet IDs, CRC usw.
    The format of the data returned is:
    [19][N-bytes][Packet ID 1][Packet 1 data…][Packet ID 2][Packet 2 data…][Checksum]
    Tja. Jetzt muss ich das doch mal ganz lesen ;)
    Ich bin halt davon ausgegangen, dass das mit dem Stream ähnlich geregelt ist, wie mit dem Befehl zur Ausgabe von Group- oder Einzel-Packets: da werden nämlich nachweisbar nur die jeweils verlangten Daten gesendet und keinerlei Header.
    Ich hab mal einen Blick geworfen auf den Source-Code zum verwendeten Service und leider bin ich nicht weiter ...


    Danke,
    Christoph

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo Christoph,

    ein Ersatz Board aus USA kostet ca 60€ inkl. Versand, dazu kommt dann noch 19% MwSt. Ich habe 2 Anbieter gefunden die weltweit versenden:
    http://stores.ebay.de/Robotic-Vacuum-Parts
    http://stores.ebay.de/caSino187
    Dort werden auch Upgrade Kits angeboten, um einen 520 oder 530 aufzupimpen inkl. Anzeige und Tasten.

    Mich würde ja interessieren, ob man einen 520 o. 530 auch nachträglich mit einem RF Modul aufrüsten kann, wie die 560 Modelle oder höher. Das Board scheint identisch zu sein, auch die Lötpunkte für das RF Modul sind vorhanden. Fragt sich nur, ob auch die Firmware das unterstützt. Damit könnte man dann auch die Lighthouses und die Wireless Remote Control (WCC) verwenden.

    Ich habe mich in letzter Zeit mit dem Roomba RF Protokoll befaßt, in der Hoffnung ich könnte damit das OI ersetzen. Scheint aber wohl gänzlich anders zu funktionieren, schade.

    Jo. Ist aber nicht so einfach. Ich kann die Uhr, so es sie denn gibt, leider nicht auslesen(?). Ich könnte höchstens versuchen, ein 'Schedule' aufzustellen und wenn das dann funktioniert gibt es eine Uhr. Das hab' ich gestern mal probiert und es tat sich nichts
    Hast du auch vorher die Uhr gestellt (Opcode 16. Bei meinem Roomba (625pro) mußte ich auch zuerst einmal die Uhrzeit einmalig stellen. Die Uhr läuft sonst nicht (zeigt nur ---- an).

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    19.02.2004
    Alter
    61
    Beiträge
    76
    Zitat Zitat von m.a.r.v.i.n
    Hallo Christoph,

    Hast du auch vorher die Uhr gestellt (Opcode 168). Bei meinem Roomba (625pro) musste ich auch zuerst einmal die Uhrzeit einmalig stellen. Die Uhr läuft sonst nicht (zeigt nur ---- an).
    Ja, hatte ich. Tat sich nichts. Naja. Ist jetzt nicht so wichtig ...

    Grüße,
    Christoph

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo Christoph,

    gerade bei Channel9 entdeckt. Es gibt dort eine an die Roomba 500 Reihe angepasste MRDS Library.
    http://channel9.msdn.com/playground/...botics-Studio/

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen