PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ROS vs. MS Robotics Developer Studio



malthy
19.09.2011, 15:48
Hallo Community!

Mich würde eine Gegenüberstellung von ROS (http://www.ros.org/wiki/) und Micorsofts Robotics Developer Studio (MRDS) (http://www.microsoft.com/robotics/) interessieren. Ich habe bisher nur punktuelle Infos über beide Projekte und bin letztlich völlig im Unklaren, ob und in wie weit sich beide in ihren Features/Möglichkeiten/Anwendungsbereichen überschneiden oder auch unterscheiden. Auch wären natürlich ganz generell Pros und Contras interessant, insbesondere aus praktischer (d. h. Anwendungs-) Perspektive. Soweit ich bisher sehen kann, ist ROS ja wohl als "echtes" Betriebssystem für Roboter konzipiert während MRDS dies nicht explizit ist. Was heißt das in diesem Zusammenhang konkret? - MRDS hat natürlich noch Windows drunter und taugt somit grundsätzlich wohl auch als OS für Roboter. MRDS verfügt offenbar über eine relativ hochentwickelte Simulationsumgebung.

Ich könnte mir vorstellen, dass eine solche Gegenüberstellung nicht nur für mich sondern auch andere hier interessant ist, insofern wäre es doch schön, wenn man hier nach und nach wesentliche Eigenschaften von beiden Systemen zusammentragen und kritisch gegenüberstellen könnte. Vielleicht wurden ja von dem ein oder anderen hier schon Erfahrungen mit einem von den beiden - oder gar beiden - Systemen gesammelt.

Ich danke auf jeden Fall schon mal für alle Infos!

Gruß
Malte

Sebas
19.09.2011, 16:15
Hi,
also ich hab mich mit beidem schon ein wenig beschäftigt (allerdings noch nicht angewendet(leider)) und das sind meine pro und cons:
Ros:
-braucht weniger rechenleistung (toll für netbooks und embedded boards)
-es kann fast alles
-hat auch eine Simulationsumgebung
-viele vorgefertigte Module
-die Installation ist bescheuert (ich scheitere seit geraumer zeit daran)
-läuft auf Linux: ist auch blöd zu installieren und stellt sich selber beine, ein Dualboot mit windows will zumindest bei mir einfach nicht funktionieren

(ja man merkt vll meinen Frust)

MSRDS:
-hat wohl eine bessere Simulationsumgebung
-leichter zu installieren
-sehr Leistungshungrig
-braucht viel Speicherplatz
-groß (ich bin am downloaden)

(mehr kann ich noch nicht sagen)

eine Kinect Unterstützung haben beide

mfg Sebastian

Günter49
19.09.2011, 18:08
Hallo Community!

Soweit ich bisher sehen kann, ist ROS ja wohl als "echtes" Betriebssystem für Roboter konzipiert während MRDS dies nicht explizit ist. Was heißt das in diesem Zusammenhang konkret? - MRDS hat natürlich noch Windows drunter ...
Malte
... und ROS hat (Ubuntu-)Linux drunter. Ganz ohne PC-Betriebssystem geht's bei beiden nicht.
ROS kann man wohl auch auf OS X installieren: http://www.ros.org/news/2011/09/ros-electric-update.html

Über Erfahrung mit ROS gibt es auch einen Thread im Roboternetz:
https://www.roboternetz.de/community/threads/52223-Robot-Operating-System-(ros.org) (https://www.roboternetz.de/community/threads/52223-Robot-Operating-System-%28ros.org%29)

Eine ganz gute Beschreibung über den Einstieg in ROS aus Sicht eines Hobby-Anwenders findet man bei pi-Robot:
http://www.pirobot.org/blog/0014/
Zugegeben pi-Robot scheint mehr ein Power-Hobbyist zu sein.

Als Programmiersprachen verwendet ROS hauptsächlich C++ und Python, MSRDS hat die meisten Programmbeispiele in C#.

Und weil ich mit Windows und C# mehr Erfahrung habe, habe ich mich bisher mehr für MSRDS interessiert, obwohl ich mit Neid die rasante Entwicklung von ROS verfolgt habe, z.B. gab es bei ROS schon Kinect-basierte Anwendungen, die in MSRDS erst ein halbes Jahr später eingeführt wurden.

Ich finde beide Systeme relativ komplex. Um einen kleinen Roboter mit drei Sensoren ohne anzustoßen an einer Wand entlang fahren zu lassen, bin ich jedenfalls mit meinen alten VB6-Programmen schneller zum Ziel gekommen.
Will ich aber eine SLAM-Lösung, die meine Programmierfähigkeiten übersteigt, und das ganze auch noch visualisieren, dann bietet ROS fertige Lösungen an. Der Preis ist die aufwändige Einarbeitung. (Bei MSRDS gibt es meines Wissens keine fertigen SLAM-Lösungen. Die Grid-SLAM-Variante aus Codeplex funktioniert wohl nur bis MSRDS 1.5)

Ich habe bisher den Eindruck, dass im RoboterNetz recht wenig mit solchen Roboter-Betriebssystemen gearbeitet wird. Aber vielleicht täusche ich mich und Maltes Wunsch nach einer Gegenüberstellung bringt die Nutzer des jeweiligen Systems dazu, uns an ihren Erfahrungen teilhaben zu lassen.

Gruß, Günter

just4fun
19.09.2011, 21:35
Hi,
Ros:
-die Installation ist bescheuert (ich scheitere seit geraumer zeit daran)
-läuft auf Linux: ist auch blöd zu installieren und stellt sich selber beine, ein Dualboot mit windows will zumindest bei mir einfach nicht funktionieren

(ja man merkt vll meinen Frust)

Was meinst du mit bescheuert genau?
Offiziell wird Ubuntu supported - alle anderen sind deutlich als "experimental" gekennzeichnet.

Ich hatte es unter Debian probiert, lief alles sauber durch. Bei der Verwendung von ROS und einer nötigen Nachinstallation kam es dann leider auch bei mir zu einer nicht auflösbaren Abhängigkeit oder Störung von installierten Paketen. Leider.

Aber:
Unter Ubuntu (10.10) ist die Installation ein Vierzeiler - wenn man sich traut 4 Zeilen in einer Konsole/Shell/Terminal einzufügen.
Danach läuft es einwandfrei - übrigens auch in einer VM (hier: Parallels unter Mac OS X Lion). Out-of-the-box, zumindest nach Linux-Massstäben. Wer ein grafisches Klicki-Bunti-Setup ;-) erwartet, wird natürlich enttäuscht. Da gebe ich dir Recht.



MSRDS:
-hat wohl eine bessere Simulationsumgebung
-leichter zu installieren
-sehr Leistungshungrig
-braucht viel Speicherplatz
-groß (ich bin am downloaden)

(mehr kann ich noch nicht sagen)

eine Kinect Unterstützung haben beide

mfg Sebastian
Da kann ich leider noch nix zu sagen...

just4fun
19.09.2011, 21:40
... und ROS hat (Ubuntu-)Linux drunter. Ganz ohne PC-Betriebssystem geht's bei beiden nicht.
ROS kann man wohl auch auf OS X installieren: http://www.ros.org/news/2011/09/ros-electric-update.html
Ich hatte es (offenbar einen Tag vor dieser Nachricht, am 11.9.) getestet und kann nur sagen: Schrott das Setup unter Mac OS X. Ich nutzt bereits länger MacPorts, aber hier hatte ich nachher das Ergebnis, dass a) die Installation nicht durchlief und b) ich keine Konsole/Shell mehr öffnen konnte!! (War gar nicht leicht zu beheben...!).

Werde das aber sicher noch mal hier testen. Bei MacPorts geht's halt öfter mal was nicht, nach nem Update - leider.

Günter49
20.09.2011, 11:50
Zum Vergleich der beiden Roboterbetriebssysteme ist es sicherlich auch wichtig zu wissen, welche Hardware (Roboter, Microcontroller, Servos, Sensoren ...) unterstützt werden. Besonders für Einsteiger wie mich ist es schwierig, die Treiber, Services und Libraries selbst zu programmieren. Für mich scheint hierin auch eines der Hauptprobleme für die geringe Verbreitung von ROS und MSRDS im Hobbybereich zu liegen.

ROS hat eine Liste der unterstützten
Roboter: http://www.ros.org/wiki/Robots
und
Sensoren und zugehörige Interfaces ( = Microcontroller): http://www.ros.org/wiki/Sensors

Für MSRDS gibt es eine Liste von Partnerunternehmen:
http://www.microsoft.com/robotics/#FindPartner
Da tauchen dann aber auch solche Namen wie Graupner oder fischertechnik auf, die nichts (Graupner) oder wenige und veraltete Services (fischertechnik) anzubieten haben.
Für fischertechnik gibt es immerhin einen privaten Entwickler, der für RDS 2008 R3 und den TX-C controller etwas entwickelt hat:
http://forum.ftcommunity.de/viewtopic.php?f=8&t=380

Lego-NXT wird von beiden Systemen unterstützt.

Will man Sensoren auslesen und Servos (und nicht nur Dynamixel) ansteuern und mit den Roboterbetriebssystemen verbinden, kann man das Serializer-Board von RoboticsConnection verwenden:
ROS: http://www.pirobot.org/code/
MSRDS: http://www.roboticsconnection.com/t-RoboticApplications.aspx (unten auf der Seite)
Leider ist der Serializer bei RoboticsConnection „out of stock“ und der früher sehr aktive Chef des Unternehmens hat sich seit Juni nicht mehr im RoboticsConnection-Userforum gemeldet. Nicht sehr ermutigend!

Wenn jemand noch weitere kompatible Hardware kennt, die im Hobbybereich gebräuchlich ist und mit ROS/MSRDS zusammenarbeitet, wäre in diesem Thread ein guter Platz sie vorzustellen.


Gruß, Günter

just4fun
20.09.2011, 15:31
Zum Vergleich der beiden Roboterbetriebssysteme ist es sicherlich auch wichtig zu wissen, welche Hardware (Roboter, Microcontroller, Servos, Sensoren ...) unterstützt werden. Besonders für Einsteiger wie mich ist es schwierig, die Treiber, Services und Libraries selbst zu programmieren. Für mich scheint hierin auch eines der Hauptprobleme für die geringe Verbreitung von ROS und MSRDS im Hobbybereich zu liegen.

ROS hat eine Liste der unterstützten
Roboter: http://www.ros.org/wiki/Robots
und
Sensoren und zugehörige Interfaces ( = Microcontroller): http://www.ros.org/wiki/Sensors
[...]
Wenn jemand noch weitere kompatible Hardware kennt, die im Hobbybereich gebräuchlich ist und mit ROS/MSRDS zusammenarbeitet, wäre in diesem Thread ein guter Platz sie vorzustellen.

Ich würde sagen: JA.
Wie es aussieht, gibt es auch eine Bibliothek, die Sensoren unterstützt, die an ein Arduino-Board (also Standard-Atmel) unterstützt: http://www.ros.org/wiki/ardusim
Hier werden bei "range" Sensoren offenbar sowohl Ultraschall als auch Infrarot-Sensoren untersützt: http://www.ros.org/doc/api/lse_sensor_msgs/html/msg/Range.html

Hier sollte es dem geneigten Bastler möglich sein auch günstig einzusteigen...

Da ich gerade eine fast einwöchige Einführung in ROS erhielt, ist es langfristig mein Ziel, dieses auch zu nutzen. Wenn was draus wird, berichte ich gerne hier. Und da ich mir eh gerade n günstiges Rumspiel-Arduino-Board gekauft hatte, bietet sich das ja gerade zu an damit zu starten... :-)

malthy
20.09.2011, 21:49
Hallo!

Ich wollte mich auch nochmal zu Wort melden, nachdem ich den Thread ja angestoßen habe. Ich habe mich nun auch nochmal etwas tiefergehend "umgesehen" und mein Eindruck ist in der Tat der, der weiter oben auch schon geäußert wurde: für ROS gibt es schon extrem viel fix und feritg. Was mich vor allem für ROS einnimmt ist, dass es schon sehr verbreitet ist, viel verbreiteter als MRDS (das ist zumindest mein Eindruck).

Ich habe mich auf jeden Fall jetzt dazu aufgerafft, ROS zumindest mal zu installieren. Und weil das Thema ja oben auch schon angsprochen wurde, will ich mal kurz meine Erfahrung dazu äußern:
Da ich bisher (fast) nur Windows verwendet habe, musste eine Ubuntu Installation her. Erst wollte ich das Ubuntu auf eine alte Windows-Karre machen, die bei mir noch in der Ecke stand. Das hat im Prinzip auch gut funktioniert, allerdings konnte ich die WLAN PCI Karte nicht zum laufen bringen - nervig! Sicher, ein Linux-begabter Kumpel von mir hätte es sicher geschafft, ich hatte keinen Bock darauf. Also habe ich Ubuntu mit auf meinen aktuellen Hauptrechner (Windows) getan - und das ging wirklich super problemlos. Bei Ubuntu 11.04 ist ein Windows-Installer dabei, d.h. man führt einen Großteil der Installation unter Windows aus (!), beim nächsten Neustart hat man einen Bootmanager, bei dem man sich dann zwischen Windows und Ubuntu entscheiden kann. Beim ersten Start rödelt Ubuntu dann noch ein bißchen, danach ist es einsatzbereit. Ich weiß, ist etwas am Thema vorbei, aber ich will das nochmal eben kurz miterwähnen, für alle, die wie ich "von Null" anfangen. Ergo: dieser Schritt ist zumindest völlig easy. Im Grunde ging es dann auch so weiter. Auf der ROS Seite ist ein Fahrplan, wie die ROS Installation unter Ubuntu funktioniert (http://www.ros.org/wiki/electric/Installation/Ubuntu), ich hab's stumpf nachgekocht - ohne alles im Detail zu verstehen - und auch das klappte auf Anhieb. Also die Installation selbst ist also bei mir absolut garkein Problem gewesen. Alles weitere kommt jetzt, dazu kann ich also noch nichts sagen... Aber das vielleicht erstmal so am Rande.

Gruß
Malte

just4fun
21.09.2011, 12:55
Ja klasse.
Dann halte uns doch mal auf dem Laufenden. Wie gesagt, ich werde auch versuchen einzusteigen...

n0rritt
24.10.2011, 18:00
Hallo,
ich wollte nochmal das Thema hier anstoßen, da ich zufällig bei meinen Recherchen hierher gestoßen bin; es ist erstaunlich wie wenig "ROS vs. RDS" vergleiche es bei Google gibt xD. Ich hab für ein Semesterprojekt mal RDS austesten können, und ich muss sagen das es wirklich nicht schlecht ist. Grade für Einsteiger die eher Interesse an der Softwareentwicklung haben, kann ich RDS wärmstens empfehlen. Leider hatte ich noch keinen Kontakt mit ROS gehabt, aber dafür mit anderen ähnlichen Open Source Systemen wie Player/Stage. und im Vergleich dazu war RDS ... angenehmer xD.
Eine direkte Gegenüberstellung zwischen RDS und ROS ist eher schwer möglich, da beide Systeme eigentlich auf unterschiedliche Bereiche abzielen.
ROS wurde aus der Notwendigkeit heraus entwickelt von Entwicklern für Entwicklern, dem entsprechend sind dort auch mehr libraries und driver vorhanden, wenn nicht direkt als ROS stack dann auf jeden Fall irgendwo als OpenSource und man kann andere Robotics Frameworks wie Player/Stage/Gazebo bedenkenlos mit ROS zusammen nutzen. Das ist halt der Vorteil von OpenSource und der Kommunity von Entwicklern.
Dem gegenüber steht RDS vom großen M, ursprünglich war es eine propritäre Lösung und daher nicht sonderlich attraktiv für Entwickler. Big M hat dies scheinbar auch mitbekommen, und stellt nun alle Features von RDS frei. Und die Features sind sehr nett, das muss man sagen. Also abgesehen von der 3D Simulationsumgebung mit PhysikEgine ähnlich zu Gazebo, wird das Framework noch mit zahlreichen Beispielen & Tutorials mit geliefert, mit denen man sich gut selber bilden kann (zusätzliche Doku in MDSN sollte man aber auf jeden Fall nutzen).
Bei RDS sind Programme praktisch webservices, die für die einzelnen Kompenenten des Roboters stehen: also Service-Instancen für zahlreiche Sensoren, Motoren etc. und die werden dann meisten über einen oder mehrere andere Services zusammen gesteuert (Service Komposition). Die Programm-Dienste können dann mit den mitgelieferten Tool auf auf Netzwerkknoten deployed werden, sprich den Roboter, der dann halt auch eine entsprechende Netzwerk-Infrastruktur haben sollte. Sonst geht es aber auch das er nur auf Dienste von sich selbst als Localhost zugreift.
.... Ja, am sonsten was uns bei der Entwicklung sehr gut gefallen hat ist die DSS und CCR Laufzeitumgebung, die einem vieles beim Implementieren abnehmen. Wir hatten noch das 2008 R3 benutzt, aber ich würde das neue Paket mit Kinect SDK empfehlen. Die Library zur Anbindung der Kinectkamera funktioniert auf jeden Fall besser als andere OpenSource libraries wie OpenNi (zumindest zusammen mit Kinect und RDS).
Achso eines sei noch zu erwähnen RDS is in C#, wer sich nen wenig mit .Net auskennt ist auf jeden Fall im Vorteil. Für Java Leute wie uns war es aber auch recht einfach los zulegen, nach kurzer Einarbeitungszeit.

Ich würde mich freuen, wenn auch auch andere Entwickler hier ihre Erfahurngen mit vergleichbaren Systemen präsentieren würden ;)
Cya

pointhi
10.01.2012, 18:51
erfahrung kann ich derweil nicht wirklich mitbringen, ich arbeite mich aber für robocup in ROS ein. Ist auf den ersten blick für einen junior roboter etwas überdimensioniert, aber ich finde das ganze paketsystem ist wesentlich besser als alles in einem programm zusammenzufassen und mit threads zu arbeiten. (wir werden warscheinlich eine 800MHz ARM embedded computer verwenden). Ich lade grad MRDS runter, aber auf dem roboter kommt das sicher nicht. Bin bei embedded, echtzeit, server, ect. kein freund von windows. Ich weiß nicht wie komplex beide systeme sind, ich würde aber MRDS gerne dann für die visualisierung der sensorwerte nutzen, von ROS gäbe es alternativ RVIZ dazu, werde ich mir also auch sicher anschauen.

Wenn es etwas wird kann ich in ein paar monaten mal ein statement über meine erfahrungen besonderes mit ROS abgeben, weiß noch nicht ob es etwas wird. Wir warten noch immer auf hardware, ect.

mfg. pointhi

Günter49
26.09.2014, 00:05
Der Robotics-Blog von IEEE-spektrum entwickelt sich zum Überbringer schlechter Nachrichten. Nach dem Roboter UBR-1 wird nun das Ende von Microsoft Robotics Developer Studio angekündigt.
http://spectrum.ieee.org/automaton/robotics/robotics-software/microsoft-shuts-down-its-robotics-group?utm_source=feedburner-robotics&utm_medium=feed&utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+ Spectrum%3A+Robotics%29
Dabei kommt das Ende von MSRDS nicht wirklich überraschend. Letzter neuer Blog-Eintrag im MSRDS-Blog war am 29.6.2012! MSRDS sollte zu einem Zeitpunkt Geld verdienen als es im Robotikbereich noch kein Geld zu verdienen gab. Und als man endlich das Gesamtpaket kostenlos abgab, waren der Universitäts- und Forschungsberreich schon bei ROS. So kann man natürlich auch einen in Zukunft wichtigen strategischen Geschäftsbereich verspielen. Etwas wehmütig habe ich mir gerade noch mal meinen ersten RN-Thread zum Microsoft Robtics Studio aus dem Jahr 2006 angesehen.

Schade eigentlich
Günter

HannoHupmann
26.09.2014, 07:09
Damals dachte ich auch, dass MSRDS die Programmierung von Robotern komplett übernehem/vereinfachen würde und man nur noch die Hardware zur Verfügung stellen muss. Die Testversion war aber so umständlich, dass ich auch bei meiner alten Toolchain bleiben konnte.

Im Prinzip ist MS schon zum richtigen Zeitpunkt in das Thema eingestiegen, aber mit der falschen Taktik.