Welche guten Robotersoftwareplattformen / Betriebssysteme gibt es? [geschlossen]


19

Mein Unternehmen wird in Kürze ein brandneues Robotikprojekt starten, und wir versuchen immer noch zu entscheiden, ob wir eine Robotik-Softwareplattform von Grund auf neu entwerfen und codieren sollen oder ob es eine gute vorhandene gibt.

Es wäre sehr nützlich, wenn es eine Software-Plattform gäbe, die sowohl von Wissenschaftlern als auch von der Industrie gemeinsam genutzt wird, damit unser Robotersystem im Allgemeinen mit anderen kompatibel ist und die Menschen bereits damit vertraut sind.

Wir möchten, dass die Softwareplattform in der Lage ist:

  • Einfache Integration neuer Roboterhardwarekomponenten.
  • Enthalten bereits eine Vielzahl nützlicher Datenverarbeitungs- und Visualisierungstools
  • Effiziente Nutzung von Computerhardware

5
Ist das nicht eine Umfragefrage, die subjektiv ist? Das ist gegen den Geist von StackExchange. blog.stackoverflow.com/2010/09/good-subjective-bad-subjective
Chris Mansley

2
Wir können jedoch die Qualität dieses StackExchange verbessern. Wir sollten einen Präzedenzfall für qualitativ hochwertige, objektive Fragen schaffen, auf die geantwortet und daraus gelernt werden kann.
Chris Mansley

2
Ich stimme Ihnen zu, aber 1) Dies war die am häufigsten gestellte Frage in der Definition, und 2) eine kleine Anzahl solcher Fragen schadet der Website nicht (siehe zum Beispiel Elektronik ). 3) Solche Fragen liefern Antworten, die für viele Benutzer wirklich nützlich sind.
Rocketmagnet

4
Wenn wir dies aufrechterhalten wollen, sollte es zumindest zu einem Community-Wiki gemacht werden, idealerweise mit einer einzigen Community-Wiki- Antwort mit den besten Beschreibungen. Dies wäre besser als viele Antworten, die alle unterschiedliche Optionen beschreiben und / oder unterschiedliche Beschreibungen / Meinungen zu denselben Optionen liefern.
Mark Booth

5
Ich denke, dass Umfragefragen wirklich großartig sind, weil sie viel Zeit für jemanden sparen können, der herausfindet, wo er suchen muss. Googeln wird in vielen Fällen nicht einmal alle gängigen Möglichkeiten finden. Ich denke, es ist ein gutes Ergebnis, daraus eine Community Wiki-Antwort zu machen.
Jon Watte

Antworten:


20

ROS wird schnell zum neuen Standard für Industrie- und Forschungsrobotik. Die meisten mir bekannten Forschungsgruppen übernehmen ROS für ihre Arbeit und stellen ihre Ergebnisse dann wieder zur Verfügung, damit sie von allen genutzt und verbessert werden können. Willow Garage entwickelt eine Reihe von Hardware- und Softwareplattformen, die sich alle auf ROS konzentrieren. ROS ist ein guter Ort, um Ihre Suche zu starten.


Hinweis: Obwohl ROS kann auf den meisten Betriebssystemen arbeiten, ist es am gründlichsten Arbeit auf der Ubuntu getestet Linux - Distribution.
Giogadi

1
Darüber hinaus denke ich, dass die ROS-Einführungsseite die Grundvoraussetzungen und -ideale der ROS-Plattform hervorragend abdeckt. Aus Entwicklersicht kann die ROS-Plattform als sehr "dünner" Wrapper für vorhandene Bibliotheken (wie Treiber) verwendet werden, um schnell auf das größere ROS-Ökosystem zuzugreifen.
mjcarroll

5

Der Roboterbaukasten ist eine Alternative zu ROS. Es ist auf modellgetriebenes Engineering und Design / Management komplexer Systeme ausgerichtet. Es ist auch darauf ausgerichtet, "nicht eng von Rock abhängig zu sein". Die meisten Algorithmen / Treiber in Rock sind unabhängig von der Komponentenschicht. Siehe auch diese Seite für eine kurze Zusammenfassung der Unterschiede zwischen Rock und ROS.

Wie bereits in einer früheren Antwort erwähnt, wird ROS hauptsächlich als Thin-Kommunikationsbibliothek verwendet. Die Komponentenschicht von Rock ist dicker, um die für die Skalierung komplexer Systeme erforderlichen Werkzeuge bereitzustellen.

Was Sie verstehen müssen, ist Folgendes: Heutzutage ist die einzige Open-Source-Robotersoftware, die es wert ist, betrachtet zu werden, Framework-unabhängig (OpenCV, PCL, OpenRave, Gazebo, ...). Sogar Willow Garage verstand das endlich. Daher kann es mit minimalem Arbeitsaufwand in jedes Framework integriert werden.

Jetzt: Ihre beste Wahl hängt auch von Ihrem Ziel ab. Wenn das, was Sie wollen verkaufen Hardware ist, dann ist es gut möglich , dass ein ROS Knoten, ist die beste Wahl (obwohl ein guter Fahrer mit Bibliothek , die dann in einen ROS - Knoten integriert ist , ist noch besser).


Vielleicht, um diese Antwort zu ergänzen, basiert Rock auf Orocos, das in einer anderen Antwort aufgeführt ist, und erleichtert damit Systemen, die darauf basieren, die Echtzeitfähigkeit.
Jakob

5

Orocos

Es ist eines der ältesten Open-Source-Frameworks in der Robotik, das seit 2001 entwickelt und seit etwa 2005 von professionellen Industrieanwendungen und -produkten verwendet wird. Der Fokus von Orocos lag seit jeher auf der Bereitstellung eines harten, echtzeitfähigen Komponenten-Frameworks -called Real-Time Toolkit (RTT) implementiert in C ++ - und so unabhängig wie möglich von Kommunikations-Middleware und Betriebssystem.

Wie @BarretAmes sagte, gibt es Integrationen, die die Implementierung von Hybridsystemen ermöglichen, bei denen Orocos und andere Software Frameworks zusammenarbeiten.


Es gibt auch Möglichkeiten, Orocos mit anderen Frameworks zu koppeln. Zum Beispiel die Nutzung von ROS mit Orocos.
Barrett Ames

1
Zu Ihrer Information, Rock verwendet Orocos / RTT als Komponentenimplementierung und fügt nur eine Menge Werkzeuge und Bibliotheken hinzu
sylvain.joyeux

orocos mag gut sein, aber jetzt aktualisieren ihre offizielle Website und ihre Foren nichts mehr und keine neuen Benutzer können sich in ihren Foren anmelden, so dass orocos jetzt nervt.

3

Meine bevorzugte Plattform ist ROS. Es gibt jedoch einen weiteren starken Konkurrenten von ... ich wage es zu sagen ... Microsoft. Es heißt Robotics Developer Studio (RDS). Beginnen Sie Ihre Suche hier: http://www.microsoft.com/robotics/

Sie haben viele Videos von beeindruckenden Anwendungen. Der größte Vorteil für mich ist die integrierte Unterstützung für Kinect über das Kinect SDK von Microsoft. Technisch gesehen hat das von OpenNI verwendete ROS die gleichen Funktionen, aber es scheint beruhigend zu sein, das von RDS verwendete SDK von derselben Firma zu kennen, die die Hardware hergestellt hat.


2

Player / Stage ist immer noch eines der beliebtesten Open-Source-Roboterprojekte. Es gibt es schon lange und einige seiner Entwickler haben ROS gestartet, was jedoch nicht die Nützlichkeit von Player beeinträchtigt. Tatsächlich wurden alle drei Hauptkomponenten, Player (das Framework), Stage (der 2D-Simulator) und Gazebo (der 3D-Simulator), so gestaltet, dass sie in gewisser Weise mit ROS kompatibel sind .



1

OpenRTM

OpenRTM-aist wurde vom japanischen National Institute of Advanced Industrial Science and Technology entwickelt und trägt auch zur Definition des RT-Middleware-Standards bei.

Es ist ein Open-Source-Framework auf Komponentenbasis, das Echtzeitfunktionen bietet. Neben dem Framework stehen einige Tools zur Verfügung:

  • RTC Builder: Ein Tool zur Generierung von Skelettcode. Es wird in der Eclipse-Entwicklungsumgebung gestartet. OpenRTM-aist unterstützt auch das RTC-Template, ein Tool zur Generierung von Skeleton-Code vom Typ Kommandozeile.
  • RT System Editor: eine Eclipse-basierte Toolchain zum Entwerfen von Komponenten und komponentenbasierten Systemen.
  • rtshell ist ein Befehlszeilentool, das die folgenden Dienste bereitstellt
  • RTC-Debugger: Ein Debugging-Tool für RTCs. RTC-Debugger ist ein Eclipse-Plug-In.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.