Entwurf einer nicht linearen Feedbackregelung für die DARPA Robotics Challenge

Von Russ Tedrake, Massachusetts Institute of Technology

Im Dezember 2013 brach ein humanoider Roboter durch eine Wand, räumte eine Tür frei, rollte einen Feuerwehrschlauch ab und schloss ihn an und fuhr auf dem Homestead-Miami Speedway ein Nutzfahrzeug durch einen Hindernisparcours.

Die Regelungsalgorithmen des Roboters wurden von einem Team des Massachusetts Institute of Technology, das an der DARPA Robotics Challenge (DRC) teilnahm, mit MATLAB® und Simulink® entwickelt. Dieser Wettbewerb soll die Forschung an Robotern, die in Gefahrenbereichen eigenständig Arbeiten durchführen können, anregen. Autonom arbeitende Roboter können angewiesen werden, einfache Aufgaben eigenständig durchzuführen, wie zum Beispiel ein Lenkrad drehen oder einen Griff fassen.

Zwischen dem Erhalt des Roboters und dem Wettkampftag blieben dem Team weniger als fünf Monate Zeit, die Regelungsalgorithmen zu entwickeln, debuggen und testen. MATLAB und Simulink halfen dabei, diesen engen Zeitplan einzuhalten, denn so konnte das Team sehr anspruchsvolle, optimierungsbasierte Regelungsalgorithmen zügiger erstellen, als das mit C oder anderen maschinennahen Sprachen möglich gewesen wäre.

Roboter mit Eleganz und Effizienz bewegen

Die Arbeit für den DRC war eine Weiterführung der Forschungsaufgabe, Robotern elegantere Bewegungen in der echten Welt zu ermöglichen. Das Ziel ist es, sowohl Laufroboter zu entwerfen, die sich so gewandt wie Ballerinas bewegen, als auch unbemannte Luftfahrzeuge, die wie Vögel fliegen. Bei diesen Fragestellungen handelt es sich um grundlegende Probleme der Robotik. Diese zwingen Forscher, schwierige nichtlineare Regelungsprobleme zu lösen, die in vielen anderen Bereichen Anwendung finden werden.

Ein Vogel beispielsweise überflügelt ganz nebenbei einige der besten Regelungssysteme, die je von Menschen entworfen wurden. Wenn sich ein Vogel auf einen Ast setzt, bewegt er seine Flügel und seinen Körper so, dass sie fast senkrecht zur Flugrichtung und der anströmenden Luft stehen. Dieses Manöver steigert den Luftwiderstand des Vogels durch die Vergrößerung der dem Luftstrom ausgesetzten Oberfläche und durch die Erzeugung eines Niederdruckluftbereichs hinter dem Flügel (Abbildung 1).

Abbildung 1. Oben: Luftstrom über den Flügel bei zunehmendem Flügelwinkel. Unten: Veranschaulichung des Flügelluftstroms eines Gleitseglers bei steilem Strömungsabriss.

Für das gewünschte schnelle Abbremsen werden Viskosität und Druckkraft gekoppelt. Das Manöver hat erhebliche Folgen: An den Flügeln kommt es zu einem Strömungsabriss, was bedeutet, dass es zu einem dramatischen Auftriebsverlust und möglicherweise auch zum Kontrollverlust kommt. Die Aerodynamik wird instabil (zeitlich veränderlich) und nicht-linear, wodurch es schwierig wird, die aerodynamischen Kräfte zu modellieren und genau vorherzusagen. Und doch setzen Vögel sich scheinbar mühelos auf Äste. Helikopter und Flugzeuge, die senkrecht starten und landen können, benötigen im Vergleich dazu geraume Zeit und Energie, um an einem bestimmten Punkt zu landen. Ebenso sind wohl nur wenige Piloten bereit, zwischen Wolkenkratzern hindurchzufliegen; Eulen und Falken jedoch navigieren mit Leichtigkeit durch dichten Wald.

Regelungssysteme, die solche Leistungen nachahmen, müssen anspruchsvolle logische Entscheidungen darüber treffen, wie der Roboter sich bewegt und wohin. Obwohl die Gleichungen, die die Systemkinematik und -dynamik beschreiben, nicht-linear sind, haben sie doch eine verwertbare Struktur. Viele können zum Beispiel in Form von rationalen Polynomgleichungen beschrieben werden. Dadurch können wir leistungsstarke Algorithmen schreiben, die zur Beurteilung der Systemstabilität bei einer großen Vielfalt von Einsatzbedingungen numerische algebraische Geometrie und konvexe Optimierung verwenden.

Um einen kleinen Gleitsegler auf einem Draht zu landen, implementierten die Forscher mit MATLAB und Simulink einen Standardansatz zur Flugbahnoptimierung und einen linearen zeitlich-veränderbaren Regler. Mit diesem Ansatz erhielten sie Regler, die das Flugzeug durchgehend landen konnten, so lange es vom gleichen Ort mit der gleichen Geschwindigkeit gestartet wurde. Durch eine rasche Evaluierung der Systemstabilität mithilfe des polynomialen Ansatzes, der als Stabilitätstrichter (Abbildung 2) dargestellt wird, entwarfen sie eine Reglerschar, die das Flugzeug aus einer Reihe verschiedener Ausgangsbedingungen verlässlich landete. Damit kann das Flugzeug von jeder Position aus in Richtung des Drahtes gestartet werden und es gelangt immer zu seinem Ziel.

Abbildung 2. Trichterförmiger Bereich, von dem aus der Gleitsegler verlässlich sein Ziel erreicht.

Warum MATLAB?

Als das Team die Arbeit für die DARPA Robot Challenge begann, stellten manche Kollegen den Einsatz einer interpretierten Sprache wie MATLAB in einer Echtzeit-Feedback-Regelungsschleife in Frage. Sie hatten Bedenken, dass die MATLAB-Algorithmen nicht schnell genug ausgeführt würden und dass Unterbrechungen durch Just-in-time-Kompilierung, Speicherbereinigung oder Hintergrundprozesse zu Jitter führen und die Zeitplanung beeinflussen könnten.

Nach sorgfältiger Prüfung dieser Aspekte stellte das Team fest, dass die MATLAB-Algorithmen auf einem PC mit 300 Hz oder mehr ausgeführt werden können und dass die zeitliche Genauigkeit den Anforderungen unseres Regelungsansatzes entsprach. Außerdem war bekannt, dass bei Bedarf zur Beschleunigung kritischer oder langsamer Komponenten C++ Code in MATLAB-Simulationen verwendet werden konnte. Obwohl höhere Samplingraten und verlässlicheres Timing den Entwurf von Regelungen vereinfachen, war es das Ziel, Regler mit ausreichender Robustheit zu entwerfen, um auch niedrigere Raten und weniger genaues Timing verarbeiten zu können. Das menschliche Nervensystem verarbeitet komplexe Bewegungen mit relativ geringer Bandbreite und hohen Latenzzeiten. Das Bemühen der Forscher ist es, Regler zu entwickeln, die genau das leisten können.

Die Vorteile der Verwendung von MATLAB und Simulink wurden mit fortschreitender Entwicklung offensichtlich, zum Beispiel:

  • MATLAB ist eines der besten zur Verfügung stehenden Tools zur schnellen Algorithmen-Prototypentwicklung für lineare Algebra.
  • Die meisten kommerziellen Optimierungs-Solver, die das Team benutzt, verfügen über eine MATLAB-Schnittstelle, die es leicht macht, diese aus dem MATLAB-Code heraus aufzurufen.
  • MATLAB und Simulink bieten zahlreiche Methoden zur Visualisierung von Daten, Simulationsergebnissen und der Bewegung virtueller Roboter.
  • Simulink ermöglicht die Entwicklung anspruchsvoller Modelle, die Integration von MATLAB-Klassen als S-Funktionen, die Anwendung von ODE-Solvern und die Simulation von Hybridsystemen und Systemen, die diskontinuierliche und kontinuierliche Komponenten kombinieren.
  • Viele der Studenten im DRC-Team hatten MATLAB im Grund- oder Aufbaustudium bei Regelungen, Kommunikationssystemen und Signalverarbeitung verwendet.

Die erste DRC-Veranstaltung: Lenken eines simulierten Roboters in einer virtuellen Umgebung

Die Teams, die nicht mit einem eigenen Roboter am DRC-Wettbewerb teilnehmen konnten, wurden zur Teilnahme an der Virtual Robotics Challenge eingeladen. Dabei wurde unter die Lupe genommen, wie die Softwareteams einen simulierten Roboter bei der Ausführung dreier Aufgaben in einer virtuellen Umgebung regelten. Sieben Finalteilnehmer dieser Runde rückten dann in die DRC-Probeläufe auf und konnten mit einem von DARPA zur Verfügung gestellten ATLAS-Roboter arbeiten. ATLAS ist ein humanoider Roboter mit Hydraulikantrieb, der von Boston Dynamics entwickelt wurde.

Die zu erfüllenden drei Aufgaben waren ziemlich komplex und standen in engem Zusammenhang mit den acht Aufgaben, die der echte Roboter später im Wettbewerb erfüllen musste. Der Roboter musste zum Beispiel über unebenes, schwieriges Gelände laufen und mit einem Feuerwehrschlauch umgehen (Abbildung 3).

Abbildung 3. Virtueller ATLAS-Roboter bei der Bedienung eines Feuerwehrschlauchs in der Simulationsumgebung.

Für den DRC-Wettbewerb mussten wir dafür sorgen, dass Ganzkörperbewegungsplanung und Regelungsalgorithmen für ATLAS schnell genug ausgeführt wurden, um in Echtzeit laufen zu können. Beim Betrieb in einer unbekannten Umgebung wurde der Roboter angewiesen, eine Aufgabe auszuführen. Die Regelung musste die Bewegung des gesamten Roboters unmittelbar planen. Das wurde in MATLAB durch die Nutzung des Wissens über die Struktur des Roboters und die zu seiner Beschreibung verwendeten Gleichungen erreicht. Über mechanische Systeme wie Atlas ist bekannt, dass Energie erhalten wird, die Massenmatrix positiv ist und dass die Dynamik des Massenschwerpunktes durch den Einfluss der Schwerkraft und der Kontaktkräfte zwischen dem Roboter und der Umgebung eindeutig bestimmt wird. Die Gleichungen haben wichtige Strukturbesonderheiten: Die Dynamik der rechten Hand ist mit der Dynamik des linken Fußes nur über die Massenmatrix verbunden.

Vom Auftaktmeeting bis zum eigentlichen Wettbewerb hatte das Team acht Monate Zeit. Bei diesem knappen Zeitplan musste die Entwicklung schnell vonstattengehen. In MATLAB konnten die Teilnehmer schnell komplexe Regelungsideen und Prototypen entwickeln und diese visuell debuggen. Für sie war das wichtiger als einen Code zu haben, der 2 % oder auch 20 % schneller läuft.

Zwei Monate nachdem das Team zu einem der sieben Gewinner der Virtual Robotics Challenge ernannt wurde, erhielt es einen ATLAS-Roboter.

ATLAS aus der virtuellen Umgebung in die echte Welt bringen

Erneut machte die knapp bemessene Zeit schnelle Entwicklung unerlässlich. In der zweiten Wettbewerbsphase waren nur fünf Monate Zeit, um den ATLAS-Roboter so zu programmieren, dass er acht Aufgaben ausführen konnte. Dazu gehörten Laufen auf unebenem Untergrund, Erklimmen einer Leiter, Freiräumen einer Tür, Durchbrechen einer Wand, Aufdrehen eines Ventils, Anschließen eines Feuerwehrschlauchs und Fahren eines Nutzfahrzeugs. Menschen durften den Roboter zwar lenken, allerdings nur über einen Kommunikationskanal mit niedriger Bandbreite, wodurch eine gewisse Eigenständigkeit unbedingt erforderlich war.

Die Möglichkeit, Algorithmen mit MATLAB und Simulink schnell umzusetzen und zu debuggen erwies sich als entscheidend dafür, eine Regelung zu erstellen, die ATLAS durch derart komplexe Aufgaben führen kann.

Außerdem war die Toolbox Drake, die das Team zur Analyse der Roboterdynamik und für den Entwurf der Steuerungen in MATLAB gebaut hatte, ein wesentlicher Erfolgsfaktor. Die Toolbox unterstützt Flugbahn- und Bewegungsfeedbackplanung, mehrere Hardwareschnittstellen und Methoden zur Visualisierung, Identifizierung und Schätzung. Drake ist Open-Source-Software und steht nun zum Download zur Verfügung.

Um die Bewegungen von ATLAS zu planen und andere Aufgabenstellungen während des Wettbewerbs zu erfüllen, liefen auf PCs fünf oder sechs voneinander getrennte MATLAB- und Simulink-Prozesse. Diese Prozesse kommunizierten mit dem ATLAS-Roboter über UDP unter Verwendung von Lightweight Communications and Marshalling (LCM). Dabei handelt es sich um eine Reihe von Programmbibliotheken, die entworfen wurden, um mit Echtzeitsystemen zu arbeiten, die Datenmarshalling und Message Passing benötigen.

Bei zwei Aufgaben kam der Wert der durch MATLAB und Simulink erreichten Eigenständigkeit besonders zur Geltung. Als der ATLAS-Roboter eine Tür räumte, fiel ein eben von ihm zur Seite geräumtes Brett über seine Füße. ATLAS meistert viele Aufgaben, aber die Kinematik des Roboters machte das Berühren seiner Zehenspitzen zu einer großen Herausforderung. Das Team konnte diesen unerwarteten Rückschlag jedoch bewältigen, indem es vom vorgesehenen Ablauf abwich und ATLAS erfolgreich so steuerte, dass er das Brett von seinen Füßen entfernte, bevor er die restlichen Trümmer beseitigte (Abbildung 4).

Abbildung 4. ATLAS-Roboter entfernt bei den DRC-Probeläufen Trümmer, um eine Tür freizuräumen.

Es gab noch eine weitere Herausforderung. Das Team wusste, dass der Roboter gerade so in das Auto passte, das er fahren musste (Abbildung 5) und hatte keine praktische Möglichkeit, diese Aufgabe vorher in der Nähe des MIT-Campus zu testen. So blieben lediglich 30 Minuten Zeit, um mit dem Auto und ATLAS zu experimentieren, bevor die 30-minütige Aufgabe begann. Keines der vorherigen Teams hatte es geschafft, das Auto über die Startlinie zu bewegen. Das Team konnte den Roboter aber dazu bringen, das Lenkrad zu drehen, das Gaspedal zu drücken und die Hälfte der vorgesehenen Strecke zurückzulegen, bevor die Zeit ablief.

Abbildung 5. MIT-Teammitglieder überlegen, wie sie ATLAS in das DRC-Nutzfahrzeug bekommen.

Vorbereitung auf die DRC-Endrunde

In den DRC-Probeläufen erreichte das Team den 4. Platz und qualifizierte sich dadurch für die DRC-Endrunde, die für Juni 2015 geplant ist. In dieser Phase des Wettbewerbs muss der Roboter bei reduzierter Kommunikation zwischen dem Roboter und dem Team, das ihn bedient, eine Reihe physischer Aufgaben ausführen. DARPA hat vor kurzem bekannt gegeben, dass dabei noch größerer Wert auf autonomes Agieren des Roboters gelegt wird.

Über die Autorin

Russ Tedrake ist Dozent im Fachbereich Elektrotechnik, Informatik, Luft- und Raumfahrt am MIT und Leiter des Robotiklabors für Informatik und künstliche Intelligenz. Seinen Bachelor in Technischer Informatik erhielt er von der University of Michigan in Ann Arbor und seinen Doktor in Elektrotechnik und Information vom MIT. Professor Tedrakes Forschungsgruppe untersucht unteraktuierte motorische Regelungssysteme bei Tieren und Maschinen, die Geschicklichkeitsaufgaben dynamisch ausführen und mit unvorhersehbaren Umgebungen interagieren.

Veröffentlicht 2014 - 92229v00


Artikel für verwandte Branchen anzeigen