(this article is also available in English)
Im April 2010 wurde der Bionische Handling-Assistent (BHA) von Festo auf der Hannover Messe der Öffentlichkeit vorgestellt. In den folgenden Monaten sah dieser biologisch inspirierte Roboterarm zu recht eine große Medienpräsenz und wurde mit zahlreichen Preisen, unter anderem dem Deutschen Forschungspreis 2010, ausgezeichnet. Im Februar 2011 bekamen wir dann unseren eigenen BHA, voller Vorfreude, denn wir wussten, dass niemand bislang mit dem BHA tun konnte, was wir mit ihm vorhatten: ihn zu kontrollieren. 1
Die Struktur und Funktionsweise des BHA ist inspiriert von einem Elefantenrüssel, wie in folgender Abbildung unschwer zu erkennen ist. Der Arm wird im Sinne des Rapid Prototypings im 3D-Drucker gedruckt. Als Material wird Polyamid verwendet, wodurch der gesamte Arm leicht-gewichtig und durchgängig verformbar wird: Im Wesentlichen besteht der BHA also aus Plastik und einer Menge Luft. Bewegt wird der Arm von dreizehn pneumatischen Ventilen, die die dreizehn Kammern des Roboters mit Luft füllen oder entleeren. Dies wiederum verbiegt, beugt und streckt die komplette Struktur.
Festo hat mit dem BHA die Vision eines leichten, freibeweglichen Dritte-Hand-Systems, das den Menschen bei seiner Arbeit unterstützen kann. Dank seiner strukturellen Nachgiebigkeit (Compliance) ist der Arm im Kontakt mit Menschen und seiner Umgebung naturgemäß sicher, was die Möglichkeiten von direkter Zusammenarbeit von Mensch und Roboter eröffnet. In industriellem Kontext kann der BHA in Fertigungsprozessen eingesetzt werden, z.B. um mit empfindlichen Gütern wie z.B. Lebensmitteln zu arbeiten.
Als wir uns entschlossen haben, Festos Bionischen Handling-Assistenten zu erwerben, wussten wir, dass wenige der klassischen und bekannten Verfahren mit diesem Roboter funktionieren würden. Trotzdem war überraschend, dass der Roboter ohne jegliche Software ausgeliefert wurde.
Keine Software.
Nichts.
Noch bis vor einem Jahr konnten wir mit dem BHA nicht viel mehr tun, als von Hand die pneumatischen Ventile zu öffnen und zu schließen, um damit entweder vollen Druck oder gar keinen Druck in die Kammern zu geben. Auch damit waren die Bewegungen des Roboters absolut faszinierend und wir hatten großen Spaß, aber ernsthafte Anwendungen waren damit natürlich noch nicht möglich. Wie von Festo zugesagt, bekamen wir dann vor fast genau einem Jahr elektronische Ventile, mit denen wir (mehr oder weniger präzise) den Druck in den Kammern automatisch vorgeben konnten. Nicht mehr und nicht weniger: den Druck kontrollieren.
Um es einmal vorsichtig zu sagen: Der Schritt von dieser Druckregelung zu einer ernsthaften Anwendung mit dem BHA ist groß!
Das tatsächliche Werkzeug, dass man mit dem BHA kontrollieren will, ist der sogenannte Fin Gripper am Ende des Arms. Diesen Greifer zu allerdings genau zu positionieren setzt zuallererst voraus, die Postur des Arms präzise bestimmen zu können. Den Druck in den einzelnen Kammern zu kennen, reicht dafür bei weitem nicht aus; dass dies zum Scheitern verurteilt sein würde, diese Erfahrung hatten wir bereits mir anderen Robotikplattformen gemacht: Zehn Mal den gleichen Druck auf einen pneumatischen Roboter zu geben, ergibt im Regelfall zehn verschiedene Posturen des Roboters. Reibung, Reibung, Hysterese-Effekte und Nicht-Stationaritäten verändern das Ergebnis von Mal zu Mal.
Um diesen Problemen zu begegnen, besitzt der BHA Längensensoren (Kabel-Potentiometer), um an der Außenseite des Arms die Streckung der einzelnen Kammern zu messen (siehe obige Abbildung). Natürlich wollten wir diese Länge nicht nur kennen, sondern auch kontrollieren können. Das ist theoretisch mit klassischer (PID-)Regeltechnik möglich, aber funktioniert auf diese Weise nur sehr schlecht. Um dieses Verhalten zu verbessern, könnte man nun versuchen, all das Wissen über den BHA in eine ausgefeiltere Regelungstechnik zu stecken. Wenn man dieses Wissen bloß hätte …
Eine kurze Liste von Dingen, die man über den BHA nicht weiß:
Das präzise Verhältnis zwischen Druck in den Kammern und der geometrischen Postur im Ruhepunkt (im Equilibrium)
Jegliche Art von Dynamik (nicht nur der Pneumatik selbst, sondern auch des sehr viel langsameren Zusammenspiels zwischen der Pneumatik und Geometrie)
Welche Länge des Arms bzw. der einzelnen Kammern ist überhaupt möglich? Wo liegen die Grenzen?
Und nicht zuletzt: Wie genau ist das Zusammenspiel der obigen Aspekte zwischen den einzelnen Kammern. Denn: Es besteht ein starker Zusammenhang!
Alles zusammen eine große Herausforderung … aber nicht unmöglich. Angenommen also, die Länge des Aktuators lässt sich messen und kontrollieren. Um nun die Endeffektor-Position (die Position des Greifers) zu kontrollieren … muss man die aktuelle Endeffektor-Position kennen!
Die Endeffektor-Position anhand der Geometrie des Roboters und der Stellung der Aktuatoren zu errechnen, nennt sich Vorwärts-Kinematik und ist für handelsübliche Roboter kein großes Problem, sondern einfache Trigonometrie. Der BHA gehört allerdings zu einer anderen Klasse von Morphologien, genannt Continuum Kinematics (also in etwa: kontinuierliche Kinematik). Dank seiner mechanischen Flexibilität besitzt dieser Roboterarm unendlich viele Freiheitsgrade, da jeder Bereich des Roboters unterschiedlich gebogen und gestreckt sein kann. Unendlich viele Freiheitsgrade können weder mit Sensoren gemessen noch berechnet werden.
Als wir unsere Arbeit mit dem BHA begonnen haben, planten wir nicht, die komplizierte Kinematik des BHA zu simulieren. Da wir uns im Kontext des BHA hauptsächlich mit Maschinellem Lernen beschäftigen, wollten wir die Endeffektor-Position schlicht messen, um sie benutzen zu können (tun wir auch). Dass wir trotzdem eine Simulation benötigen würden, stellte sich heraus, als wir Schwierigkeiten in der Visualisierung bekamen. Wir wollten nämlich darstellen, wie die räumlichen Koordinaten mit den Bewegungen des BHA zusammenhängen.
Da Visualisierung Kenntnis der Kinematik voraussetzt, begannen wir, sie anzunähern. Selbst wenn sich die Beugung und Streckung von unendlich vielen Freiheitsgraden nicht berechnen lässt, so lassen sich doch durch die Längensensoren einige Annahmen zur Beugung des Arms treffen. Die einfachste Art der Beugung ist eine kreisförmige; im drei-dimensionalen Fall entspricht dies einem Torus:
Das Bild zeigt, wie sich ein Segment mit drei Aktuatoren (in der Abbildung als graue Röhren dargestellt) entlang eines Torus verbiegt. Diese Geometrie kann mit drei Parametern beschrieben werden: zwei Winkel (in der Abbildung blau dargestellt) und der Radius des Torus (in der Abbildung rot). Diese drei Parameter können anhand der gemessenen Längen an der Außenseite der BHA-Segmente rekonstruiert werden. Sobald diese Parameter bestimmt sind, ist das Berechnen der Vorwärtskinematik und damit die Bestimmung der Endeffektor-Position (also der Position des Greifers) einfach. Ein Problem tritt lediglich im Grenzfall auf, wenn alle Längen gleich sind, wenn also alle Kammern gleich gestreckt sind. Diese Verformung kann durch einen Torus nicht dargestellt werden, obwohl der BHA zu solch einer Bewegung in der Lage ist. Auch für dieses Problem ließ sich allerdings eine einfache, numerisch stabile Lösung finden. Der BHA lässt sich somit durch Aufeinandersetzen dreier solcher Segmente darstellen und simulieren.
Die gezeigten Torusdeformationen sind sehr einfache Annäherungen des Arms im Vergleich zu komplexen Physik des Verformungs-Problems. Üblicherweise ist diese Art von Annäherung daher nicht hinreichend für diese Art von Robotern (siehe z.B. Trivedi 2008 2 ). Nicht jedoch für den BHA: Hier funktioniert die beschriebene Lösung sehr gut, in unseren Tests sehen wir einen durchschnittlichen Fehler von 1cm auf einer Länge von 1m. Nicht perfekt, aber absolut ausreichend für unsere Zwecke und außerdem durchaus konkurrenzfähig zu Lösungen in der Literatur.
Das folgende Video zeigt das simulierte Modell und unseren BHA:
BHA-SimulationDer große Vorteil des benutzten einfachen Torus-Modells ist seine Geschwindigkeit in der Berechnung. Unsere Software-Bibliothek ist auf Basis dieses Modells in der Lage, die Vorwärtskinematik des BHA auf einem einzelnen CPU-Kern mehrere zehntausend Mal in der Sekunde zu berechnen. Auch wenn wir diese Simulation ursprünglich nicht geplant hatten, ist sie damit mittlerweile eine essentielles Werkzeug bei unserer Arbeit mit dem BHA geworden. Die interessanten Dinge machen wir weiterhin auch auf der echten Hardware, aber parallel lassen sich nun viele Dinge bequem vorberechnen und darstellen.
Die Kinematik-Simulation ist in C++ implementiert und als Open-Source-Bibliothek verfügbar. Über die folgende Seite kann sie heruntergeladen werden und enthält sowohl die Vorwärtskinematik als auch die gezeigte OpenGL-basierte 3D-Visualisierung: http://www.cor-lab.de/software-continuum-kinematics-simulation Wir freuen uns über Benutzer und Erfahrungsberichte.
Der folgende einfache Code-Schnipsel berechnet zum Beispiel die Vorwärtskinematik des BHA:
// create robot morphology with segment radii 0.1, 0.09 and 0.08 meters ContinuumRobotKinematics kinematics(RealVector(0.1, 0.09, 0.08));
// specify an end effector offset kinematics.setEndEffectorOffset(RealVector(0.0, 0.0, 0.14));
// this is the forward kinematics function:
Mapping<RealVector,RealVector> fwdKin = kinematics.getForwardPositionKinematics();
// try out some posture (a combination of actuator lengths) RealVector posture = {0.2,0.24,0.24,0.2,0.24,0.24,0.2,0.24,0.24};
// this is the resulting end-effector position RealVector position = fwdKin(posture); // [-0.3808, 0, 0.686287]Neben der in diesem Artikel beschriebenen Kinematik-Berechnung und Simulation des BHA, haben wir in den letzten Monaten noch viele weitere spannende Dinge mit dem BHA gemacht, die wir auf der Automatica-Messe im Mai in München zeigen werden:
Um zu sehen wie wir trotz der zahlreichen obigen Probleme mithilfe maschineller Lernmethoden den Greifer auf dem echten BHA im Arbeitsraum zu kontrollieren gelernt haben, lohnt sich also ein Besuch unseres Standes auf der Automatica in München:
Stand 427 und 429 in Halle B3, vom 22. bis 25. Mai.
Kontakt:
Dipl.-Inform. Matthias Rolf, CoR-Lab – Bielefeld University, mrolf@cor-lab.uni-bielefeld.de
Prof. Jochen Steil, CoR-Lab – Bielefeld University, jsteil@cor-lab.uni-bielefeld.de