Moin,
es gibt ein paar neue Infos auf unserer Website:
http://smirs.mindrobots.com
Bild hier
Gruß
Johannes
Druckbare Version
Moin,
es gibt ein paar neue Infos auf unserer Website:
http://smirs.mindrobots.com
Bild hier
Gruß
Johannes
Nun gibt es einen Guide, besser gesagt eine Schritt-für-Schritt-Anleitung, mit dem/der ihr ganz einfach die Funktionsweise von s²mirs ausprobieren könnt. Im Downloadbereich befindet sich momentan die aktuelle Version der Main Control CENTRAL 1.0 (beta 2805, auf Java basierend), ein Testmodul, mit Microsoft VB.NET programmiert, sowie eine .NET DLL, mit der sehr schnell Module für s²mirs programmiert werden können.
http://www.mindrobots.de/cgi-bin/rea...ction=readsite
http://www.mindrobots.de/cgi-bin/rea...ction=readsite
http://smirs.mindrobots.de/
Kommentare sind erwünscht!
Gruß
Johannes
Hallo,
ich muß zugeben, ich habe eure Webseite erstmal nur überflogen. Aber irgendwie musste ich dabei immer an CORBA denken ... ich nehme an, CORBA ist euch bekannt? Könnt ihr kurz die Unterschiede / Gemeinsamkeiten zwischen s2mirs und CORBA umreißen?
Moin,
CORBA sagt mir im Moment nichts, da müsste ich mal recherchieren.
Gruß
Johannes
Na dann nur schnell ein paar Links
corba:
www.corba.org
http://www.cs.wustl.edu/~schmidt/corba-overview.html
darauf aufbauend (speziell für Roboter)
http://smart.informatik.uni-ulm.de/MIRO/index.html
was ähnliches (ohne corba):
Player/Stage: http://playerstage.sourceforge.net/player/player.html
Hm, hab im Moment wenig Zeit, aber ich kann dir nochmal ein paar Stichworte zu unserem System geben.
- alle module sind einzelne Programme, die per TCP/IP kommunizieren
- die Vernetzung von mehreren Robotern und deren Synchronisation beim bzw. nach Abbrechen der Verbinmdung untereinander
- das ganze ist kostenlos
- ...
Sorry, ich erzähle gerne mehr darüber, wenn Interesse besteht, denn das wünschen wir uns ja. Ich habe allerdings die letzte Nacht wegen eines ganz anderen Projektes durchgemacht und muss dringend schlafen :-)
Wir können morgen weiterreden, vielleicht hast du ja dann etwas konkretere Fragen und ich schaue mir CORBA mal an.
Gruß
Johannes
Hallo zefram,
ja die Ähnlichkeit ist auf den ersten blick nicht ganz von der Hand zu weisen.
aber es gibt doch ziemliche Unterschiede. Cobra lässt das bauen von eignen Funktionen zu und ist praktisch ein Interface um Funktion irgendwo aus zuführen.
Bei smirs ist das anders und schon ein wenig spezieller es gibt fast kein Funktion sonder eigentlich nur Daten die sich ändern. Durch das ändern der Daten reagiert das System.
Die MC ist eine Art Datenspeicher wo jeder Daten holen und schreiben kann. Und kein Funktionspool. Das hat den Vorteil das man nicht dauert neu Funktion definieren muss.
Ich versuche es mal an einem Beispiel:
MC Befehle : SET|<VarName>|<VarWert>
Jetzt Schickt ein Addon :
SET|Hallo|3
wenn jetzt wird die Variabel Hallo mit dem Wert 3 belegt.
Wenn jetzt niemand damit was tut ist da ok oder wenn jemand auf diese Veränderung
hört passiert was in dem jeweiligen Addon. Aber was passiert definiert das addon nicht
die MC.
Bei mir gibt es 256 Variablen die den Daten Austausch mit dem AVR regeln.
Aber die Bedeutung der Variablen definiere ich erst im AVR Programm.
Das hat den Entscheiden Vorteil das ich immer erst im letzten Glied der Kette die Funktion
definiere. Anders rum genau so im Steuer prg werden nur bestimmte Variablen gesetzt
wenn ich das tuet aber was im Robi damit passiert ist nicht definiert.
Das mach das System sehr frei und erweiterbar. Habe noch nix gefunden was mit diesem
Prinzip nicht funktioniert.
Einige Addon's sind nur Datenmittler so zum Beispiel mein Serial Addon. Das auf die 256 Variablen hört und sie schreibt. Und eine Veränderung dann Serial überträgt in der Form A<ByteVarName><ByteVarinhalt><E>
Um es den Leuten etwas einfacher zu machen die TCP nicht können oder es nicht programmieren
wollen gibt es DLL's und beispiele/klassen die einem das Abnehmen.
TCP war die Wahl weil sprachen unabhängig und Rechner unabhängig Betriebsystem un abhängig.
So könnte man rein theoretisch eine Farm mit Rechnern für den Robi verwenden.
Ich hoffe ich habe dein Interesse geweckt. Und würde mich freuen wenn du dich mit dem System beschäftigst und bei der weiter entwicklung hilfst.
Mfg
Moin,
ich hatte diesen Thread hier ganz vergessen. Numberfive hat es gut beschrieben. smirs ist eigentlich gar nicht auf Roboter beschränkt. Meine Version unterstützt beispielsweise die Vernetzung von mehreren Robotern, aber eine ganz andere Anwendung ist denkbar, die ich mal kurz beschreiben möchte. Die Idee dazu kam mir erst letztens.
Folgendes Roboter-ferne Problem. Ich habe eine DSL-Flatrate, die mehrere Rechner über einen Router nutzen. Der Router ist integriert in einem Switch. Die Flat ist volumengegrenzt und man muss aufpassen, dass die 2GB nicht überschritten werden. Der Router besitzt leider keine Funktion, die transferierten Bytes zu zählen. Der SpeedManager von der Telecom hingegen kann immer nur das zählen, was der eine Rechner transferiert. Es gibt jedoch mehrere Rechner, die das Internet nutzen. Man muss also immer die Werte aller Rechner zusammenzählen.
Mit smirs kann man genau das automatisieren, da dies ein passender Anwendungsfall hierfür ist. Es gibt Daten (transferierte Bytes), die mehrere Einheiten (Rechner) produzieren und die zusammengetragen werden sollen, ohne dass eine zentrale Einheit vorhanden ist. Es gibt also keinen Server, bei dem die Daten zwischengespeichert werden - es gibt eben nur die einzelnen Rechner, die sich hierarchisch auf einer Ebene befinden.
Das smirs System kommt nun folgendermaßen zum Einsatz. Auf jedem Rechner ist eine Main Control und ein Modul vorhanden, dass die Transfers zählt. Diese werden auf der MC gespeichert. Und das passiert auf jedem Rechner. Die Main Controls kommunizieren nun und tauschen ihre Daten aus, sodass jeder die Informationen der anderen Rechner hat. Möchte man nun wissen, wie viel transferiert wurde, müssen die Daten nur noch zusammengezählt und ausgegeben werden.
Ich hoffe ihr könnt es euch vorstellen. Mein Problem bei der Realisierung dieses Volumenzählers ist, die Datenmenge zu zählen, die vom Router kommt bzw. dort hin gesendet wird.
Gruß
Johannes
Hallo,
danke für eure Erläuterungen. Was mich noch interessieren würde: Ist es möglich s2mirs zum Datenaustausch zwischen einzelnen in C/C++ geschriebenen Modulen zu nutzen (über die DLL) oder geht das nur mit .NET? Und: Nutzt ihr oder ein anderer die Software auf einem realen Roboter?
Moin,
wir beide werden die Software selbt auf unseren Robotern verwenden und dann natürlich Infos dazu geben.
>Ist es möglich s2mirs zum Datenaustausch zwischen einzelnen in C/C++ geschriebenen Modulen zu nutzen (über die DLL) oder geht das nur mit .NET?
Ich verstehe die Frage nicht ganz. Es ist prinzipiell egal, in was für einer Sprache die Module geschrieben sind, da sie unereinander mit TCP kommunizieren. Ich habe jedoch eine DLL geschrieben, die in einem .NET-Programm verwendet werden kann, sodass man sich auch um diese TCP-Sache nicht mehr kümmern muss. Numerfive hat soweit ich weiß eine DOM-DLL geschrieben, die das ganze für nicht-.NET-Sprachen übernimmt.
Gruß
Johannes