Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Towards Safe Robotics

Autoren: Dipl.-Ing. Maximilian Apfelbeck und Dr.-Ing. Stephan Myschik, The MathWorks GmbH, Ismaning

Beitrag - Embedded Software Engineering Kongress 2015

 

In Zukunft wird der Anteil an Robotern, die mit dem Menschen interagieren, rapide ansteigen. Sie 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 auch gemäß Sicherheitsstandards wie IEC 61508-3 [1] entwickelt werden. Eine Möglichkeit, diesen Standards gerecht zu werden, ist die modellbasierte Entwicklung. Diese wird unter anderem schon in Automobilindustrie sehr erfolgreich eingesetzt. In diesem Vortrag wird eine Vorgehensweise zur Verifikation und Validierung von IEC 61508-3 konformen Softwarekomponenten kollaborierender Roboter anhand eines Beispiels diskutiert.

Einleitung

"Ein Roboter darf kein menschliches Wesen verletzen …" ist das Erste der Asimov’schen Gesetze [2]. Damit dieses Gesetz nicht verletzt wird, ist heutzutage ein sehr großer Prozentsatz der eingesetzten Roboter unterschiedlichster Größe durch Zäune oder Lichtschranken vom Menschen getrennt. Diese Trennung muss jedoch durch andere Sicherheitsmechanismen ersetzt werden, so dass mit Robotern neue Applikationen und Einsatzgebiete, vor allem in der Mensch-Roboter-Interaktion, realisierbar werden. Beispiele für neue Anwendungen sind unter anderem der Einsatz von Robotern als Produktionsassistent [3] oder in der Pflege von bedürftigen Personen.

Es gibt unterschiedliche technische Lösungen, um die Sicherheit in der Mensch-Roboter-Interaktion zu gewährleisten. Dies kann zum Beispiel durch das mechatronische Design realisiert werden. Ein Ansatz hierfür ist die Begrenzung des dynamischen Bereiches des Roboters, so dass keine Verletzung des Menschen [4] bei Kontakt möglich ist. Andere Optionen sind das Einbauen von mechanischen Klemmen, die bei einer Überbelastung durchrutschen, oder der Einsatz von seriellen-elastischen Aktuatoren [5]. Bei mechanischen Klemmen verhindert ein Durchrutschen der Klemme einen potentiell gefährlichen Mensch-Roboter-Kontakt. Jedoch ist diese Lösung kaum anwendbar, da eine Neukalibrierung des kompletten Systems nötig wäre. Ein weiterer Lösungsansatz ist der Einsatz von Software und das Überwachen von Sensoren; dies lässt sich mit wenig Aufwand erfüllen. Dazu wird der Roboter mit einer intelligenten, sensitiven Haut ausgestattet, die bei nicht-erwartetem oder hoch-energetischem Kontakt den Roboter stoppt [6]. Für den Fall dass ein Werkzeug, wie zum Beispiel ein Schraubenzieher, potentiell gefährdend für den Menschen ist, wird mehr Intelligenz in den Algorithmen benötigt. Ein möglicher Lösungsansatz wird in [7] vorgestellt. Ein Hauptargument für den Einsatz von derartiger Überwachungs- und Sicherheitssoftware ist der Stückkostenpreis. Dieser nimmt mit der Anzahl der Endprodukte ab. Bevor diese 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 von Regelungsalgorithmen oder Überwachungslogik für diese sicherheitsrelevanten Applikationen unterstützen.  Verifikations- und Validierungskonzepte zum Nachweis der korrekt implementierten Funktionalität im Hinblick auf Anforderungen oder Normen sind Bestandteile der Modellbasierten Entwicklungsmethodik.

Im ersten Teil dieser Veröffentlichung wird der modellbasierte Entwicklungsansatz am Beispiel eines Roboters gezeigt. Im zweiten Teil werden Verifikations- und Validierungsschritte diskutiert, so dass die Konformität der erzeugten Softwarekomponente nach dem IEC 61508-3 Standard nachweisbar ist. Abschließend werden Anwendungsbeispiele aus der Luftfahrt und der Medizintechnik für den erfolgreichen Einsatz des aufgezeigten Entwicklungsprozess präsentiert.

Modellbasierte Entwicklung entlang des V-Modells

Im Folgenden wird anhand des V-Modells [8], siehe Abbildung 1 (PDF), die Entwicklung sicherheitsrelevanter Algorithmen für Roboter erklärt. Ein Entwicklungsprozess nach dem V-Modell ist weit verbreitet. Der verwendete Roboter ist in Abbildung 2 als CAD-Modell dargestellt. Das Ziel ist es, "Pick and Place" Applikationen für den Roboter zu entwickeln. Dabei soll erlaubt sein, dass sich ein Mensch im Arbeitsraum des Roboters befindet.

Neben der übergeordneten Aufgabe, "Pick and Place" Operationen durchzuführen, werden technische Anforderungen, wie maximale Leistung, Bauraum oder Wiederholbarkeit, und sicherheitsrelevante Anforderungen im Anforderungsdokument definiert. Die Anforderungen sind vermehrt in einem Anforderungsmanagementsystem hinterlegt. Ein mögliches Requirement zur Gewährleistung einer sicheren Mensch-Roboter-Kollaboration kann Folgendes sein:

  • REQ X.Y: Der Roboter soll innerhalb von x,x Sekunden seine Bewegung in jeder Konfiguration in einer potentiell gefährlichen Situation stoppen. Eine Gefährdung ist dann erreicht, wenn das Gelenkdrehmoment in jeder Achse y% oder z Nm über das erforderliche Moment ü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 aufgeilt werden. Die Software ist in Überwachungslogik, koordinierenden Regler und Gelenkregler zerlegbar; die Hardware in Mechanik und Elektronik. Dieser Ansatz ist in Abbildung 3 (siehe PDF) dargestellt und wurde in Simulink® umgesetzt.

Die Anforderungen werden für eine optimale Nachverfolgung mit den jeweiligen Komponenten bidirektional 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. Somit erhält der Ingenieur sofortige Rückmeldung über die Qualität seines Designs. Er kann frühzeitig im Entwicklungsprozess Fehler erkennen und somit das Projektrisiko erheblich minimieren.

Die Erstellung der einzelnen Modellkomponenten wird durch speziell angepasste Werkzeuge sehr effizient unterstützt. Die Mechanik kann aus CAD-Baugruppen in ein Mehrkörpersystem bestehend aus Gelenken und Einzelkörpern abgeleitet werden. Der CAD-Import in SimMechanics™ stellt somit sicher, dass die korrekten Bauteilparameter, wie Masse, Schwerpunkt oder Schwerpunktslage, in der Simulation verwendet werden. Darüber hinaus wird die grafische Repräsentation der einzelnen Komponenten mit übernommen. Dieser Ansatz kann die Modellierung des mechanischen Systems erheblich beschleunigen [9]. Abbildung 2 (siehe PDF) zeigt die grafische Darstellung der importierten Baugruppe. Das importierte System kann auch als Startpunkt für Kinematikoptimierung oder Aktuatorauslegung verwendet werden. Neben den Motoren können weitere physikalische Komponenten (Getriebe) oder für die Regelung relevante Effekte (Reibung, Spiel, Steifigkeit) sehr einfach mit der Mehrkörpermechanik verknüpft werden. Dies wird in Abbildung 4 (siehe PDF) gezeigt. Die Parametrierung dieser Komponenten kann oft aus Datenblättern entnommen werden.

Zur Modellierung der Regler eignet sich am besten Simulink®; für die Überwachungslogik Stateflow®, siehe Abbildung 5 (siehe PDF).

Sobald die physikalische Strecke und erste Softwarekomponente modelliert sind, können erste virtuelle Tests des Gesamtsystems durchgeführt werden. In kleinen Iterationsschritten wird nun immer mehr Intelligenz und Funktionalität zur Software hinzugefügt und durchgehend getestet. Mit jedem Simulationslauf wird das aktuelle Modell gegenüber den Anforderungen validiert und verifiziert. Zusätzlich lässt sich eine optimale Parametrierung der Softwarekomponente in der Simulation ermitteln. Abbildung 5 zeigt das Ergebnis der Sprungantwort eines optimierten PID-Reglers für ein Robotergelenk.

Vorteile der modellbasierten Entwicklungsmethodik:

  • Die Repräsentation eines Gesamtsystems mit Modellen erhöht die Verständlichkeit der erstellen Systeme und verbessert die Kommunikation zwischen den einzelnen Ingenieursdisziplinen in einem Unternehmen.
  • Die Verwendung einer Entwicklungsumgebung reduziert den Aufwand in der Konvertierung von Daten und Informationen zwischen unterschiedlichen Softwaretools.
  • Die Simulation des Gesamtsystems in frühen Phasen hilft erheblich, in sehr frühen Phasen Fehler zu finden und zu beheben.

 

In folgender NASA-Studie [10] wird die Wichtigkeit, Fehler in frühen Entwicklungsstadien zu finden, bestätigt. Je später ein Fehler innerhalb eines Projektes gefunden wird, umso teurer wird es, diesen zu beheben.

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 [11].

Verifikation und Validierung von Modell und generiertem Code

Folgende Fragen in der Software-Verifikation und -Validierung können bei der modelbasierten Entwicklung positiv beantwortet werden [12]:

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

 

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

Design-Verifikation

Das Ziel dieser Phase ist es zu beweisen, 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 die Konformität mit Sicherheitsstandard überprüfbar. Abbildung 6 (siehe PDF) zeigt das Ergebnis für die Überprüfung eines Modellteils nach "Modeling Standards for IEC 61508". Dieser Bericht unterstützt bei der Identifikation von Modellierungsfehlern, Berichtigung und Dokumentation eines erfolgreichen Tests. Über eine Modell-Checksumme kann der Bericht eindeutig einem System und einer Modellversion zugeordnet werden.

Sobald die Modellierungsrichtlinien erfolgreich überprüft sind, wird eine Abdeckungsanalyse des Modells durchgeführt. Ziel ist es, unerwünschte Funktionalität oder fehlende Anforderungen aufzudecken. Ein mögliches Beispiel für den im Abschnitt 2 gezeigten Roboter ist das Berechnen eines richtigen Ergebnisses der Inverskinematik. Die berechneten Gelenkwinkel müssen in jedem Fall innerhalb der Gelenkbegrenzungen liegen. Dies kann z.B. durch das in Abbildung 7 (siehe PDF) gezeigte Konstrukt bewiesen werden.

Damit die funktionale Korrektheit der Inverskinematik nachgewiesen wird, müssen die Ergebnischecks erfüllt werden. Abbildung 8 (siehe PDF) zeigt eine Verletzung dieser Checks aufgrund einer falschen Implementierung.

Außerdem muss auch eine komplette Modellabdeckung der Inverskinematik vorliegen. Das Ergebnis der Analyse eines spezifischen Testfalls in Abbildung 9 (siehe PDF) zeigt, dass  bestimmte Bereiche der Inverskinematik nicht ausgeführt werden. Mit diesem Test ist somit keine Aussage über die funktionale Korrektheit bestimmter Modellteile zu beweisen. 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 bewiesen wurden, wird automatisch Code aus dem Modell generiert. Abbildung 10 (siehe PDF) zeigt schematisch die Vorgehensweise bei der Code-Generierung. Der aus dem validierten Modell abgeleitete Code kann nun auf die Zielplattform übertragen werden. Die Code-Generierung erzeugt einen Bericht, der bei der Nachverfolgbarkeit von den Anforderungen in das Modell und weiter in den Code unterstützt.

Code-Verfifikation

Zur kompletten Validierung des Algorithmus muss bewiesen werden, dass kein funktionaler Unterschied zwischen Modell und Objektcode vorliegt. Dazu werden Modell und Objektcode mit identischen Testvektoren angeregt. Der Objektcode wird direkt auf der Zielplattform ausgeführt. Embedded Coder bietet dazu "Processor-in-the-Loop"-Simulation (PIL) an. Dies wird in Abbildung 11 (siehe PDF) gezeigt.

Die Ergebnisse der Simulation des verifizierten Modells werden neben den Testvektoren als Erwartungswerte abgespeichert. Bei der PIL-Simulation wird der Objektcode auf die Zielplattform über eine Debug-Schnittstelle, zum Beispiel JTAG, übertragen. Das auf den Prozessor übertragene Simulink-Modell wird im PIL-Modus ausgeführt. Die Kommunikation zwischen dem in Simulink ausgeführten Robotermodell und dem Regler auf der Zielplattform wird über die serielle Schnittstelle oder TCP/IP hergestellt.

Korrekte Funktionalität des Objektcodes ist dann bewiesen, wenn eine ausreichend gute Übereinstimmung zwischen den beiden Simulationen (verifiziertes Modell und PIL) vorhanden ist. Einflüsse unterschiedlicher Compiler oder Fließkommazahl-Einheiten können Unterschiede zwischen Simulation und Objektcode verursachen. Neben dem Nachweis der funktionalen Äquivalenz muss auch bewiesen werden, 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 das Überprüfen der Nachverfolgbarkeit, welche der Embedded Coder® durch eine automatische Dokumentation unterstützt, gezeigt werden. Ein Nachverfolgbarkeitsbericht wird in Abbildung 12 (siehe PDF) gezeigt. Dieser Bericht enthält das komplette Mapping des Models auf den Code und eine Liste von Modellkomponenten, die wegen Codeoptimierung im erzeugten Code fehlen. Eine bidirektionale Verlinkung vom Modell zum Code sowie Links zu den Anforderungen sind ebenso dokumentiert, siehe Abbildung 13 (PDF).

Anwendungen in der Industrie

In den beiden vorausgehenden Abschnitten wird eine mögliche Vorgehensweise zur Erzeugung von zertifizierbarer Software mit modellbasierter Entwicklung erläutert. Dieser Prozess wird ganz oder in Teilen von vielen Unternehmen unterschiedlichster Industrien genutzt. Weinmann [15] verwendet Teile des beschriebenen Entwicklungsprozesses, um Software für neue Transportbeatmungsgeräte zu entwickeln. Bei diesem Produkt ist die Komplexität der Algorithmen um ein Vielfaches höher als in der Vergangenheit. Neben den Algorithmen wurde auch die Funktionalität der menschlichen Lunge und des Ventilators modelliert. Damit war es möglich, das Gesamtsystem bestehend aus Software, Gerät und Mensch vorab zu berechnen und eine Vielzahl unterschiedlicher Designalternativen zu evaluieren und zu testen. Dies war mit deren herkömmlicher Entwicklungsmethodik nicht möglich. Bevor Produktionscode erzeugt wurde, mussten die Algorithmen auch Abdeckungstests auf Modellebene bestehen. Der Wechsel zur modellbasierten Entwicklung beschleunigte den Entwicklungsprozess bei Weinmann, so dass die Zertifizierung für sicherheitskritische Systeme viel schneller möglich ist. Die modellierten Systeme werden in zukünftigen Projekten zudem vielfach wiederverwendet.

Durch den Einsatz von modellbasierter Entwicklung beschleunigt Eurocopter die Entwicklung von DO-178B zertifizierter Software [16]. Die Hauptherausforderung bestand darin, dass Designfehler durch eine falsche Interpretation der Anforderungen oder falsche Implementierung der Systeme, die sich zwar richtig, aber nicht wie beabsichtigt verhielten, eingeführt wurde. Eurocopter schätzt, dass ungefähr 90% der Probleme, die spät im Projekt gefunden wurden, durch Fehler in der Spezifikations- oder Designphase eingeführt wurden. Die Anzahl der Fehler wurde durch Einführung der modellbasierten Entwicklung aufgrund des frühzeitigen Testens und der kontinuierlichen Verifikation und Validierung erheblich reduziert.

Die erstellten Modelle werden mit Modell-Standardchecks und Modellabdeckung auf Einhaltung von Modellierungsrichtlinien zur Erfüllung der DO-Norm analysiert. Der automatisch generierte Code wird nach erfolgreicher Überprüfung in Objektcode kompiliert. Dieser wird gegen die schon vorhandenen Testvektoren getestet. Der beschriebene Prozess unterstützt Eurocopter, um automatisch Code zu generieren, der dann für die DO-178B Norm der EASA zertifiziert wird. Mit dieser Vorgehensweise wurde die Zeit zum Testen der Software um 2/3 reduziert, und die Requirements konnten viel früher eingefroren werden. Im Vergleich zu ähnlichen Projekten werden diese nun ungefähr 1 Jahr früher endgültig fixiert.

Zusammenfassung

Diskutiert wurde eine Vorgehensweise zum Erstellen von zertifizierten Code nach IEC61508-3 für robotische Systeme. Die Anwendung dieses Software-Entwicklungsprozesses führt zu einer höheren Softwarequalität, verminderten Entwicklungszeiten und zertifiziert Software mit weniger Aufwand. Darüber hinaus unterstützt die Modellierung der Algorithmen und Systeme und deren grafische Darstellung die 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.

Referenzen

[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]   Robert Bosch GmbH, http://www.bosch-apas.com/en/apas/start/bosch_apas.html.

[4]   ABB AG, http://new.abb.com/products/robotics/de/yumi.

[5]   Rethink Robotics, http://www.rethinkrobotics.com/baxter/.

[6]   MRK Systeme GmbH, http://www.mrk-systeme.de/produkte_interaction.html.

[7]   Haddadin, Sami: Towards Safe Robots, Springer Tracts in Advanced Robotics, Vol. 90, 2013.

[8]   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.

[9]   Saneon GmbH, http://www.saneon.de/cms/index.php/en/component/content/article/1-aktuelle-nachrichten/123-simulation-saneon.html.

[10] NASA, Return on Investment for Independent Verification & Validation, 2004.

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

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

[13] The MathWorks, Inc. http://www.mathworks.com/products/iec-61508/.

[14] The MathWorks, Inc. http://www.mathworks.de/products/embedded-coder/.

[15] The MathWorks, Inc. http://www.mathworks.com/tagteam/76574_91946v01_Weinmann_UserStory_final.pdf

[16] The MathWorks, Inc. http://www.mathworks.com/tagteam/77159_92118v00_Eurocopter_UserStory_final.pdf

 

Beitrag als PDF downloaden

 


Unsere Trainings & Coachings

Wollen Sie sich auf den aktuellen Stand der Technik bringen?

Dann informieren Sie sich hier zu Schulungen/ Seminaren/ Trainings/ Workshops und individuellen Coachings von MircoConsult zum Thema Qualität, Safety & Security.


Training & Coaching zu den weiteren Themen unseren Portfolios finden Sie hier.


Qualität, Safety & Security - Fachwissen

Wertvolles Fachwissen zum Thema Qualität, Safety & Security steht hier für Sie zum kostenfreien Download bereit.

Zu den Fachinformationen

 
Fachwissen zu weiteren Themen unseren Portfolios finden Sie hier.