Technische Artikel

Hin zu sicherer Robotik – Modellbasierte Entwicklung von High Integrity Robotern

Von Dipl.-Ing. Maximilian Apfelbeck und Dr.-Ing. Stephan Myschik, MathWorks


Kurzfassung

In Zukunft wird der Anteil an Robotern, die mit dem Menschen interagieren, rapide ansteigen. Diese sind mit einer großen Anzahl von Sensoren zum Erfassen der dynamischen Umgebung ausgestattet. Die Sensordaten werden bewertet und fließen in Algorithmen ein, die für eine sichere Zusammenarbeit und Reaktion des Roboters sorgen. Die verwendeten Algorithmen müssen gemäß Sicherheitsstandards wie der IEC 61508-3 [1] entwickelt werden. Eine Möglichkeit diesen gerecht zu werden ist die Modellbasierte Entwicklung. Dieser Artikel beschreibt eine Vorgehensweise zur Verifikation und Validierung von IEC 61508-3 konformen Softwarekomponenten kollaborierender Roboter.

Einleitung

„Ein Roboter darf kein menschliches Wesen verletzen …“ ist das Erste der Asimov’schen Gesetze [2]. Damit dieses erfüllt wird, ist heutzutage ein sehr großer Prozentsatz der eingesetzten Roboter durch Barrieren vom Menschen getrennt. Für die Mensch-Roboter-Interaktion, zum Beispiel bei einem Produktionsassistenten, sind jedoch andere Lösungen zum Erfüllen der Sicherheit nötig.

Dies kann durch das mechatronische Design realisiert werden indem die Dynamik des Roboters begrenzt wird, so dass keine Verletzung des Menschen [3] bei Kontakt möglich ist. Ein anderer Lösungsansatz ist der Einsatz von Software, um auf Sensordaten zu reagieren. Bei Detektion eines Kontaktes stoppt der Roboter. Bevor die Überwachungssoftware allerdings in einem fertigen Produkt verwendet werden darf, müssen Fehlerfreiheit und eine Entwicklung in Übereinstimmung mit Sicherheitsnormen nachgewiesen werden.

Modellbasierte Entwicklung kann bei der Entwicklung für diese sicherheitsrelevante Software unterstützen. Verifikations- und Validierungskonzepte zum Nachweis der korrekt implementierten Funktionalität im Hinblick auf Anforderungen oder Normen sind Bestandteile davon.

Modellbasierte Entwicklung entlang des V-Modells

Ein Entwicklungsprozess nach dem V-Modell [4], siehe Abbildung 1, ist in vielen Industrien weit verbreitet.

Abbildung 1: Das V-Modell als Vorgehensmodell der Softwareentwicklung.

Abbildung 1: Das V-Modell als Vorgehensmodell der Softwareentwicklung.

Neben funktionalen Anforderungen werden auch technische und sicherheitsrelevante im Anforderungsdokument definiert. Eine mögliche Anforderung zur Gewährleistung einer sicheren Mensch-Roboter Kollaboration kann sein, dass der Roboter innerhalb von 0,05 Sekunden seine Bewegung in einer potentiell gefährlichen Situation stoppen muss. Eine Gefährdung ist dann erreicht, wenn das Gelenkdrehmoment in jeder Achse eine definierte Grenze übersteigt. Diese Situation kann zum Beispiel in dem Fall eines Kontaktes mit Objekten oder Menschen während des Betriebes auftreten.

Auf Basis des Anforderungsdokuments und des zu entwickelnden Systems wird in der Modellbasierten Entwicklung als erster Schritt die Systemarchitektur definiert. Hier wird eine Segmentierung in unterschiedliche Einheiten durchgeführt und es werden die Schnittstellen zwischen den Komponenten definiert. Ein Roboter kann in Software und Hardware aufgeteilt werden. Die Software ist in Überwachungslogik, koordinierenden Regler und Gelenkregler zerlegbar; die Hardware in Mechanik und Elektronik. Dieser Ansatz ist in Abbildung 2 dargestellt und in Simulink® umgesetzt worden.

Abbildung 2: System Modell in Simulink.

Abbildung 2: System Modell in Simulink.

Die Anforderungen werden für eine durchgängige Nachverfolgung mit den jeweiligen Komponenten verknüpft. Im weiteren Entwicklungsverlauf werden nun die einzelnen Komponenten funktional entwickelt und nach der Interpretation der Anforderungen modelliert. Ein Vorteil von Simulink® ist, dass die Komponenten und somit die Requirements ausführbar sind. Der Ingenieur kann frühzeitig im Entwicklungsprozess Fehler in den Anforderungen erkennen und somit das Projektrisiko erheblich minimieren.

Die Erstellung der einzelnen Modellkomponenten wird durch speziell angepasste Werkzeuge sehr effizient unterstützt. So kann beispielsweise die Mechanik aus CAD-Baugruppen in ein Mehrkörpersystem, bestehend aus Gelenken und Einzelkörpern, abgeleitet werden (Abbildung 3). Dieses Modell wird für die Dimensionierung der Antriebe und dynamische Simulationen verwendet. Darüber hinaus können mit diesem virtuelle Prototypen Parameterstudien durchgeführt und Softwarealgorithmen getestet werden.

Abbildung 3: Screenshot des CAD-Systems und des Mehrkörpersystems in Simscape Multibody™.

Abbildung 3: Screenshot des CAD-Systems (links) und des Mehrkörpersystems in Simscape Multibody™ (rechts).

Hier unterstützt der virtuelle Prototyp bei der Vorhersage des dynamischen Verhaltens des Systems und der Optimierung von Reglerparametern. Die Möglichkeit der frühen Verifikation und Validierung durch Simulation stellt einen wesentlichen Unterscheidungspunkt zur konventionellen Entwicklung nach dem V-Modell dar. Die NASA bestätigt in Ihrer Studie [5] die Wichtigkeit Fehler in frühen Entwicklungsstadien zu finden.

Nachdem das Softwaredesign komplett auf Modellebene entwickelt wurde und die Einhaltung der Anforderungen nachgewiesen ist, kann Produktionscode aus dem Modell mit dem Embedded Coder® erzeugt werden. Dieser ist vom TÜV Süd für die Software Entwicklung für IEC 61508-3 kompatiblen Code vorqualifiziert [6].

Absicherung von Modell und generiertem Code

Folgende Fragen in der Software Verifikation und Validierung bei der Modelbasierten Entwicklung positiv beantwortet werden können [7]:

  • Sind im Modell die textuellen Anforderungen korrekt implementiert?
  • Spiegelt der Objekt Code, der später am Roboter verwendet wird, das Verhalten des Modells korrekt wieder?

MathWorks hat einen Referenzworkflow [8] entwickelt der bei der Beantwortung der beiden Fragen hilft. Die Entwicklung wird in Design Verifikations- und Code Verifikationsphase unterteilt.

Verifikation und Validierung des Designs

Hier wird bewiesen, dass das Modell die Anforderungen erfüllt und keine unerwünschte Funktionalität beinhaltet. Dies wird sowohl durch statische Analysen als auch funktionale Tests gezeigt. Bei der statischen Analyse wird das Modell auf Konstrukte untersucht, die z.B. nicht-optimal für die Codegenerierung sind. Darüber hinaus können vordefinierte oder eigene Modellierungsrichtlinien überprüft werden. Modelle, die in Produktionscode überführt werden, sind auch im Hinblick auf Konformität mit Sicherheitsstandard überprüfbar. Eine Abdeckungsanalyse des Modells hilft zusätzlich unerwünschte Funktionalität oder fehlende Anforderungen aufzudecken. Alle Tests können automatisch durchgeführt und dokumentiert werden. Neben diesen funktionalen Tests ist es auch möglich Testvektoren automatisch abzuleiten. Nachdem alle statischen und funktionalen Tests erfolgreich durchgeführt wurden und eine komplette Abdeckung der Anforderungen durch das Modell beweisen wurden, wird automatisch Code aus dem Modell generiert.

Absicherung des generierten Codes

Zur kompletten Validierung des Algorithmus muss bewiesen werden, dass kein funktionaler Unterschied zwischen Modell und Objekt Code vorliegt. Dazu werden beide mit identischen Test Vektoren angeregt. Der Objekt Code wird direkt auf der Zielplattform ausgeführt. Korrekte Funktionalität des Objekt Codes ist dann bewiesen, wenn ausreichend gute Übereinstimmung zwischen den beiden Simulationen vorhanden ist. Einflüsse unterschiedlicher Compiler oder Fließkommazahl-Einheiten können Unterschiede zwischen Simulation und Objekt Code verursachen. Neben des Nachweises der funktionalen Äquivalenz wird zudem bewiesen, dass bei der Code-Generierung keine unerwünschte Funktionalität eingefügt wurde. Dies kann durch den Vergleich der Abdeckung auf Modell und Code-Ebene sowie durch das Überprüfen der Nachverfolgbarkeit gezeigt werden. Eine automatisierte Dokumentation und eine bidirektionale Verlinkung von Model zum Code sowie Links zu den Anforderungen unterstützen beim Review.

Des Weiteren wird zur statischen Analyse des Codes im Hinblick auf Konformität zu Standards (e.g. MISRA C) und zum formalen Nachweis der Abwesenheit von Fehlern im Code (Division durch 0, Out-Of-Range, …) die Werkzeuge Polyspace Bug Finder™ und Polyspace Code Prover™ eingesetzt.

Zusammenfassung

Es wurde eine Vorgehensweise zum Erstellen von zertifizierten Code nach IEC61508-3 für robotische Systeme diskutiert. Die Anwendung dieses Software Entwicklungsprozesses führt zu einer höheren Software Qualität, verminderten Entwicklungszeiten und zertifizierter Software mit weniger Aufwand. Darüber hinaus unterstützt die Modellierung der Algorithmen und Systeme und deren grafische Darstellung technische Kommunikation sowie das Systemverständnis in Projektteams. Modellbasierte Entwicklung hat das Potential ein wichtiger Baustein für zukünftige Entwicklungen von kollaborierenden Robotern zu werden.

Veröffentlicht 2016

Literatur

  1. International Electrotechnical Commission: Functional safety of electrical/electronic/programmable electronic safety related systems – Part 3: Software requirements, IEC 61508-3 ed.2, Geneva, 2010.

  2. Asimov, Isaac: Runaround, 1942.

  3. Friedrich, Jan; Kuhrmann, Marco; Sihling, Marc and Hammerschall, Ulrike: Das V-Modell XT Für Projektleiter und QS-Verantwortliche kompakt und übersichtlich, Springer-Verlag Berlin Heidelberg 2009.

  4. NASA, Return on Investment for Independent Verification & Validation, 2004.

  5. TÜV SÜD Certificate, Z10 11 12 67052 014.

  6. Conrad, Mirco and Sandmann, Guido: A Verification and Validation Workflow for IEC 61508 Applications, SAE Technical Paper 2009-01-0271, 2009.

Artikel für ähnliche Einsatzgebiete anzeigen

Artikel für verwandte Branchen anzeigen