Anzeige

Mit Dana zur fehlerfreien ROS-Anwendung

Ganz egal, wo und wann: Roboter müssen zuverlässig und sicher funktionieren. Das Fraunhofer ESK arbeitet an Verfahren, wie das Open-Source-Betriebssystem für Roboter ROS in Echtzeit überwacht und analysiert werden kann, um die Performance von Robotern in der Produktion zu optimieren.

Bild: Fraunhofer-Institut ESKBild: Fraunhofer-Institut ESK
Der Zustandsautomat (links) kann automatisch auf Basis von beobachteter Kommunikation erzeugt werden. Um die Laufzeit-Überwachungsfunktionen von Dana zur Beobachtung von ROS-Systemen möglichst einfach zu demonstrieren, bietet sich Turtle Sim an, eine beka

Viele Roboter, vor allem mobile Roboter, bestehen aus einem System verteilter Softwarekomponenten, die innerhalb einer zentralen oder dezentralen Rechnerarchitektur miteinander kommunizieren. Bei großen Robotersystemen können das dutzende von Softwarekomponenten und -schnittstellen sein. Ein solches System im Fehlerfall zu analysieren, ist eine äußerst komplexe und zeitraubende Angelegenheit. Das gilt auch für Roboter, die mit dem Open Source-Betriebssystem ROS (Robot Operating System) arbeiten. Die Softwarekomponenten werden hier als Knoten (Nodes) bezeichnet, die über einen Publish/Subscribe-Mechanismus untereinander Nachrichten austauschen. Die Bordmittel von ROS erlauben zwar eine Auswertung aller ausgetauschten Nachrichten mit Hilfe von aufgezeichneten Log-Dateien (Offline-Fehleranalyse) oder die Stimulation der Anwendung durch ein wiederholtes Einspielen der Nachrichten in die Anwendung (Replay). Eine Echtzeitanalyse ist damit aber nur bedingt möglich. Hier kann das Analyse-Framework des Fraunhofer ESK, Dana, Abhilfe schaffen: Es bietet die Möglichkeit, das aktuelle Verhalten der ROS-basierten Anwendung mit einem modellbasierten Sollverhalten (Referenzmodell) zu vergleichen. Dazu haben die Forscher am ESK einen eigenen Dana-ROS-Node entwickelt, der ROS-Nachrichten an das Analyse-Framework Dana weiterleitet und dort einen Soll/Ist-Vergleich durchführt. Die Kommunikation zwischen dem Dana-Node und Dana selbst wurde mit MQTT (Message Queue Telemetry Transport) umgesetzt, einem offenen Nachrichtenprotokoll für Machine-to-Machine-Kommunikation.

Beispiel Pick & Place

Ein Beispiel dafür hat das Fraunhofer ESK auf der Automatica 2018 in München gezeigt: die Simulation eines Pick&Place-Szenarios unter Einsatz eines Roboters zusammen mit einem Rundschalttisch. Im Vorfeld wurden mechanische und softwaretechnische Veränderungen nachgebildet, die sich auf die ROS-Anwendung auswirken und mit Hilfe von Dana sichtbar gemacht werden können. Die gezeigte Lösung geht aber noch einen Schritt weiter. Neben der Analyse einer ROS-Anwendung mit einem zuvor manuell erstellten Sollverhalten kann Dana das Sollverhalten der ROS-Anwendung auch selbstständig erlernen. Dazu zeichnet man zunächst alle gesendeten Nachrichten innerhalb einer ROS-Anwendung auf. Mit Hilfe dieser Nachrichten wird dann in Dana ein Verhaltensmodell in Form eines Zustandsautomaten generiert. Dieser lässt sich durch weitere Nachrichten fortlaufend verbessern. Ein Beispiel: Dana hat das Sollverhalten einer bestehenden ROS-Anwendung automatisch erlernt. Jetzt stehen Änderungen an der Anwendung an. Nach diesen Änderungen überwacht Dana, ob die bisherigen zentralen Funktionen auch in der geänderten Anwendung erhalten geblieben sind.

Bild: Fraunhofer-Institut ESKBild: Fraunhofer-Institut ESK
Die Anbindung von ROS an Dana hat das Fraunhofer ESK auf der Automatica in München gezeigt und zwar anhand einer Simulation und eines Rundschalttisches mit Roboterarm. Damit wurde ein Pick&Place-Szenario dargestellt. Die Laufzeitüberwachung von Dana kann

Die Anbindung von Dana an ROS

Um die Laufzeit-Überwachungsfunktionen von Dana zur Beobachtung von ROS-Systemen möglichst einfach zu demonstrieren, bietet sich Turtle Sim an, eine bekannte spielerische Simulation für ROS-Anwender. In diesem Beispiel wird eine Schildkröte anhand einer definierten Befehlsfolge über den Bildschirm bewegt. Der Screen Cast auf der Website des Fraunhofer ESK (https://www.esk.fraunhofer.de/de/mediathek/videos.html) bietet einen kurzen Überblick über die notwendigen Schritte, um das Dana-Turtle-Sim-System-Modell in Echtzeit zu überwachen. Dafür muss zunächst das Dana-Framework konfiguriert werden. Zu diesem Zweck ist die manuelle Erstellung dreier verschiedener Dateien erforderlich: Die erste Datei enthält eine einfache Beschreibung der Struktur jener Schnittstellen, die für den Entwickler interessant sind (ros.fidl). Diese Struktur ist von ROS unabhängig, weswegen der Bezug zu den Nachrichten ('Topics') aus ROS über eine zweite Datei hergestellt werden muss (ros.fdepl). Als Beschreibungssprache kommt Franca IDL zum Einsatz, wobei IDL für Interface Description Language steht. Über die dritte Datei (ros.events) lassen sich Bedingungen für bestimmte Ereignisse beschreiben. Mit diesen Ereignissen kann dann das Verhalten in Form eines Zustandsautomaten modelliert werden (siehe Bild des Zustandsautomaten). Nach der Konfiguration von Dana erfolgt die Verbindung zur ROS-Anwendung, indem die Anbindung an einen sog. Dana-ROS-Feeder konfiguriert wird. Im letzten Schritt startet Dana im Animation Mode, der anhand einer grafisch animierten Version des Zustandsautomaten den aktuellen Zustand der ROS-Anwendung anzeigt. Läuft die ROS-Anwendung nicht entsprechend dem Sollverhalten, erkennt Dana diese Abweichung und zeigt sie an. Da die Abweichung nicht modelliert wurde, ist der neue Zustand des ROS-Systems vorerst unbekannt. Das führt im Normalfall zum Abbruch des Analysevorgangs. Dana ist jedoch durch spezielle Algorithmen in der Lage, die Überprüfung in Echtzeit automatisch wieder aufzunehmen, und das ohne die ROS-Anwendung vorher in einen bestimmten Zustand zu bringen. Auch bei der Erstellung des Modells erleichtert Dana dem Anwender die Arbeit - durch Automatisierung. So lässt sich die Schnittstellenbeschreibung direkt von ROS abfragen, um die notwendigen Dateien zu erzeugen. Selbst der Zustandsautomat kann auf Basis von beobachteter Kommunikation automatisch erstellt werden. Durch die Verwendung von menschenlesbaren Modellen ist es dem Entwickler jederzeit möglich, diese Modelle zu prüfen und anzupassen.

ROS-Kommunikation im Detail

ROS-Knoten kommunizieren untereinander nach dem Publish /Subscribe-Verfahren. Dabei verwaltet ein ROS-Master-Knoten die anderen ROS-Knoten, indem diese über den Master Topics anderer Knoten abonnieren ('subscribe') oder eigene Topics im Master veröffentlichen ('publish'). Der von Dana bereitgestellte Dana-ROS-Knoten (Dana-ROS-Feeder) arbeitet nach demselben Prinzip: Er klinkt sich in eine verteilte ROS-Anwendung ein, indem er für die Analyse relevante Topics abonniert und an Dana weiterleitet. Im Beispiel von Turtle Sim heißt das etwa, dass man die Bewegung der Schildkröte beobachten kann, indem das entsprechende ROS Topic abonniert wird. Im Dana Animation Modus lässt sich dann nachvollziehen, wie die aktuellen ROS-Nachrichten (die Turtle-Bewegungen) auf die Zustände des modellierten Zustandsautomaten abgebildet werden. Das funktioniert mit Live Nachrichten genauso wie mit aufgezeichneten ROS-Nachrichten. Derzeit unterstützt Dana nur Standard-ROS-Nachrichten. Das Framework kann jedoch leicht erweitert werden, um beispielsweise benutzerdefinierte ROS-Nachrichtentypen zu verarbeiten.

Ausblick: Dana sichert künstliche Intelligenz ab

Aktuell steht in ROS mit der Version 2 die Umstellung der proprietären Kommunikationsschnittstelle auf den offenen Standard DDS (Data Distribution Service) an. Dieser basiert ebenfalls auf Publish/Subscribe-Mechanismen, beinhaltet jedoch einen deterministischen Transport der Daten und eine effiziente Bandbreitennutzung der Kommunikationsverbindung. DDS soll in einer kommenden Version von Dana unterstützt werden. Außerdem wächst weiterhin die Bedeutung der Kommunikation auf Basis des Datenaustausch-Standards OPC UA, z.B. bei der Roboter/Roboter-Kommunikation zwischen verschiedenen Herstellern. Auch hier kann Dana einen Beitrag zur effizienten Fehler- und Performanceanalyse leisten. Überhaupt ist das Analyse-Framework Dana vom Fraunhofer ESK in der Lage, viel komplexere heterogene Umgebungen zu analysieren als im oben beschriebenen Turtle-Sim-Beispiel. Es erlaubt, gleichzeitig Topics von mehreren ROS-Master-Knoten zu abonnieren und auch nicht auf ROS-basierende Kommunikation in die Überwachung einzubeziehen. Praktisch jede verteilte Anwendung, wie sie auch in proprietären Softwarearchitekturen verschiedener Roboterhersteller zu finden ist, lässt sich damit effizient und in Echtzeit analysieren. Das gilt auch für komplexe Industrieanlagen, hochgradig vernetzte IoT-Anwendungen oder autonome Fahrzeuge. Künftig ist davon auszugehen, dass modellgetriebene Entwicklungsprozesse in der Robotik bzw. im industriellen Umfeld verstärkt zum Einsatz kommen. Obwohl hier nur Teile nach modellbasierten Ansätzen entwickelt werden, kann Dana aus diesen Teilmodellen und aktuellen Informationen aus der Anlage ein vollständiges Modell generieren. Noch weiter in die Zukunft gedacht, wenn künstliche Intelligenz (KI) zur Optimierung von Prozessen innerhalb von adaptiven Maschinen verwendet werden wird, könnte Dana auch zur Absicherung der KI verwendet werden.

Fraunhofer-Institut ESK

Dieser Artikel erschien in Industrial Communication Journal 3 2018 - 05.10.18.
Für weitere Artikel besuchen Sie www.sps-magazin.de