MathWorks Agile Justin: Roboter modellbasiert entwickelt

Bessere Komplexitätsbeherrschung mit deutlich weniger Programmierfehlern: Entwickler und Forscher am Robotik und Mechatronik Zentrum (RMC) des Deutschen Zentrums für Luft- und Raumfahrt (DLR) entwickeln autonome humanoide Roboter wie Agile Justin. Er verfügt über 53 Freiheitsgrade, davon 19 im Oberkörper, 26 in seinen Händen und 8 in seiner mobilen Plattform. Seine Umgebung nimmt Agile Justin über Stereokameras und RGB-D-Sensoren in seinem Kopf, Drehmomentsensoren in allen Gelenken und eine Haut mit Tastsensoren auf seinen Fingern wahr. Zur Entwicklung der raffinierten Regelungs-, Kalibrierungs- und Bahnplanungsalgorithmen für Agile Justin verwendet das DLR RMC-Team Model-Based Design mit MATLAB und Simulink.

Der autonome humanoide Roboter Agile Justin – hier beim Zusammensetzen eines Rohrgestells – verfügt über 53 Freiheitsgrade.

Der autonome humanoide Roboter Agile Justin – hier beim Zusammensetzen eines Rohrgestells – verfügt über 53 Freiheitsgrade.

Die Regelungssysteme hochentwickelter humanoider Roboter müssen schnell Eingangssignale von verschiedenen Sensoren verarbeiten, kontinuierliche Bewegungsbahnen planen und zugleich die Bewegung von Dutzenden Gelenken steuern. Anfangs schrieben DLR RMC-Ingenieure in C/C++ separate Regelungsalgorithmen für die Hände und Arme des Roboters. Als sie begannen, eine einzige Regelungsschleife für alle Freiheitsgrade von den Fingerspitzen bis hin zu den Rädern zu erstellen, stellten sie fest, dass das System zu komplex für die manuelle Codeerstellung war.

Zur Entwicklung der Regelungssysteme für Agile Justin verwendet das DLR RMC Model-Based Design mit MATLAB und Simulink. Nach dem Erstellen und Verifizieren des Reglerdesigns erstellt das Team daraus automatisch den Zielcode für das Hardwaretarget, einen digitalen Signalprozessor.

Zur Entwicklung der Regelungssysteme für Agile Justin verwendet das DLR RMC Model-Based Design mit MATLAB und Simulink. Nach dem Erstellen und Verifizieren des Reglerdesigns erstellt das Team daraus automatisch den Zielcode für das Hardwaretarget, einen digitalen Signalprozessor.

Komplexität braucht Autmatisierung

Zur Bewältigung dieser Herausforderung entwickelte das DLR ein Roboter-Software-Framework. Die verwendeten Softwarewerkzeuge sollten das automatische Generieren von Code aus Design-Modellen und Hardware-in-the-Loop (HIL)-Tests ermöglichten. Eine der Anforderungen an diese Werkzeuge war, dass damit selbst Studenten während ihrer Masterarbeit eigene Regler für komplexe Roboterentwickeln können sollten. Zur Entwicklung fortschrittlicher Regelungssysteme für Agile Justin und anderer autonomer Roboter verwendet das DLR RMC nach dieser Umstellung Model-Based Design mit MATLAB und Simulink.

Für einzelne Gelenke erstellte das Team unter Verwendung von Differentialgleichungen ein Streckenmodell, das in Simulink als S-Funktion integriert wurde. Sie erstellten einen Proportional-Integral-Differential (PID)-Regler mit Simulink und Control System Toolbox und ermittelten per Simulation die Regelungsparameter. Mit dem Simulink Coder erzeugten sie C-Code aus ihrem Reglermodell und führten diesen auf einem PC mit dem Echtzeitbetriebssystem QNX aus. In HIL-Tests wurde das Reglermodell verfeinert, um Sensorrauschen und Genauigkeit sowie erhebliche Elastizitäten in den Getrieben der Gelenke und Nichtlinearitäten des Motordrehmoments zu kompensieren. Nach dem Verifizieren des Reglerdesigns erstellt das Team mit dem Simulink Coder automatisch den Zielcode für das Hardwaretarget, einen digitalen Signalprozessor.

„Mit Model-Based Design mit MATLAB und Simulink erstellen wir sehr viel komplexere Algorithmen, als wir das je mit manueller Programmierung getan haben“, sagt Berthold Bäuml, Leiter des Labors für autonome, lernende Roboter des DLR. „Dennoch konnten wir durch Codegenerierung mit Simulink Coder funktionelle Programmierfehler um ca. 80 Prozent reduzieren.“

„Mit Model-Based Design mit MATLAB und Simulink erstellen wir sehr viel komplexere Algorithmen, als wir das je mit manueller Programmierung getan haben“, sagt Berthold Bäuml, Leiter des Labors für autonome, lernende Roboter des DLR. „Dennoch konnten wir durch Codegenerierung mit Simulink Coder funktionelle Programmierfehler um ca. 80 Prozent reduzieren.“

Passt das Modell, passt auch die Software

Anschließend wurde die Bewegungssteuerung für Agile Justin-Komponenten mit mehreren Gelenken wie Rumpf und Armen entwickelt. Um die komplexere Dynamik dieser größeren, schwereren Mechanismen zu bewältigen, entwarf das Team in Simulink einen kartesischen Impedanzregler. Wie bei den Einzelgelenk-Reglern, stellte das Team die Parameter in Simulink ein und erstellte mit Simulink Coder den Code für HIL-Tests. Während der Tests wurde Stateflow verwendet, um den Ablauf einfacher Aufgaben wie z. B. zweihändiges Greifen und Heben zu programmieren.

Mittels sequentiell quadratischer Programmierungsalgorithmen – sie stehen in der Optimization Toolbox zur Verfügung – führte das Team eine nicht-lineare Optimierung mit Nebenbedingungen für die Planung der gesamten Körperbewegungen durch. Dazu gehört z. B. die Maximierung der Entfernung, die Agile Justin einen Ball werfen kann. Mithilfe der Image Processing Toolbox entstanden automatische Kalibrieralgorithmen in MATLAB, um die Markierungen auf den Händen in den von den Stereo- und RGB-D-Kameras aufgezeichneten Bildern zu identifizieren. Die Algorithmen entfernen mit einem Butterworth-Filter aus der Signal Processing Toolbox Rauschen in der Markerposition. So entwickelte das DLR mittels Model-Based Design neue Regler zu, die die Fähigkeit von Agile Justin verbessern, aus seiner Umgebung zu lernen.

„Model-Based Design mit MATLAB und Simulink deckt eine große Vielfalt von Softwaredomänen ab, die für die Entwicklung von fortschrittlichen Robotersystemen notwendig sind“, sagt Berthold Bäuml, Leiter des Labors für autonome, lernende Roboter des DLR. „Obwohl wir sehr viel komplexere Algorithmen erstellen, als wir das je mit manueller Programmierung getan haben konnten wir durch Codegenerierung mit Simulink Coder funktionelle Programmierfehler um ca. 80 Prozent reduzieren.“

Filtern

Suchbegriff

Unterkategorie

Firmen

Inhaltstyp

Firmentyp

Land