Creating A Digital Twin

Für unseren humanoiden Roboter pib haben wir erfolgreich einen digitalen Zwilling erstellt und implementiert. Aber was genau ist ein digitaler Zwilling und welche Vorteile bietet er?

Was ist ein digitaler Zwilling?

Für unsere Zwecke ist ein digitaler Zwilling eine besondere Art der Simulation: Er ist das virtuelle Abbild eines physischen Objekts, an das er eng gekoppelt werden kann. Das Ziel des digitalen Zwillings ist es, dass der physische Roboter und das virtuelle Modell auf jede Interaktion in genau derselben Weise reagieren. Dies ermöglicht eine genaue Annäherung an den Roboter, ohne die Nachteile eines physischen Exemplars zu haben.

Wir erwarten von pibs digitalem Zwilling folgendes:

  • Sieht aus und verhält sich ähnlich wie sein physisches Abbild
  • Auf die gleiche Weise steuerbar wie seine physische Darstellung
  • Kann aus unseren Onshape CAD-Dateien generiert werden
  • Auf dem neuesten Stand sein
  • Einfach zu erzeugen sein

Was ist das Ziel eines digitalen Zwillings?

Unser Ziel war es, eine rein digitale Version von pib zu haben, die sich ähnlich verhält wie der physische pib und die leicht und weithin zugänglich ist. Damit können wir einige der Hardware-Probleme beseitigen, die bei der Entwicklung oder bei der Interaktion mit pib auftreten.

Mit Cerebra, der pib-eigenen Steuerungssoftware, kann jeder einfach eine Weboberfläche öffnen und die Kontrolle über pib übernehmen, indem er zum Beispiel die Motoren bewegt oder den Sprachassistenten benutzt. Wir arbeiten am physischenpib und entwickeln gleichzeitig Cerebra, was zu Frustrationen führen kann. Wenn ein neues Element nicht so funktioniert, wie es sollte, gibt es viele Möglichkeiten – es könnte am Element selbst liegen, am Framework, an der Internetverbindung, am Motor, am Kabel… Wir müssen also viel Zeit und Mühe aufwenden, um den Fehler zu finden, obwohl es mit einem digitalen Zwilling so viel einfacher wäre. Schafft man es, dass sich eine rein virtuelle Version genauso verhält und kontrolliert wird wie die physische, lassen sich solche Fehler viel schneller finden und beheben.

Reinforcement Learning in einer virtuellen Umgebung

Jeder Schieberegler in Cerebra sollte den physischen pib auf die gleiche Weise steuern wie den virtuellen, damit der Benutzer eine gute Vorstellung davon bekommt, wie sich die pib im wirklichen Leben verhält. Ein großer Vorteil eines digitalen Zwillings ist die Möglichkeit, Reinforcement Learnings durchzuführen oder Algorithmen für maschinelles Lernen auf virtuellen Versionen deines Roboters vorzutrainieren. Wenn wir zum Beispiel wollen, dass pib eine Tasse greift und erkennt, könnten wir es auf dem physischen Roboter trainieren und der könnte nach dem ersten Versuch zusammenbrechen, weil die Motoren nachgeben. Deshalb ist es viel günstiger und zeitsparender, das gesamte Vortraining in einer sehr ähnlichen virtuellen Umgebung durchzuführen. Auf diese Weise können wir eine Kopie von pib in unsere Simulation laden und so viele Trainingsläufe durchführen, bis der Roboter weiß, wie er eine Tasse greifen kann. Als Nächstes nehmen wir die Ergebnisse und laden sie auf einen physischen pib, der dann schon weiß, wie er die Tasse greifen muss.

Der digitale Zwilling ist auch ein großer Vorteil für unser pib@school-Programm, bei dem Schülerinnen und Schüler ihre eigene Version von pib drucken und bauen. Es bietet zusätzliche Möglichkeiten für eine Gruppe von Teilnehmenden, gleichzeitig an pib zu arbeiten. Außerdem kann jeder, der hauptsächlich an der Steuerung des Roboters interessiert ist, mit dem digitalen Zwilling arbeiten, ohne zuerst einen kompletten pib zu bauen.

Das erste Hindernis: Der Wechsel von .stl zu .urdf

Für uns ist es sehr wichtig, dass der digitale Zwilling von pib aus unseren CAD-Dateien erstellt wird. CAD steht für Computer Assisted Design und unser Programm der Wahl ist Onshape, mit dem du auf unser 3D-Modell von pib zugreifen kannst. Das Modell besteht aus .stl-Dateien, die wir nun in eine simulierbare Kopie von sich selbst verwandeln wollen.

.stl-Dateien werden verwendet, um Teile zu entwerfen und zu drucken – für die Verwendung in Simulationen sind sie jedoch nicht ideal. Das .urdf-Dateiformat (Unified Robot Description Format) verspricht eine Lösung.

Wenn man bedenkt, dass pib ein Open-Source-Projekt ist und sich die CAD-Dateien ständig ändern, wird es für den digitalen Zwilling schwieriger, immer passgenau zu bleiben. Deshalb mussten wir uns eine einfache Lösung einfallen lassen, um ihn zu erstellen. Unser Ziel ist es, eine automatisierte Pipeline zu haben, damit wir auf Knopfdruck eine neue Kopie unseres digitalen Zwillings erstellen können.

.stls sind so gut wie nur Zahlen, während .urdf-Dateien ein sehr spezifisches Format haben. Sie basieren auf .xml. Die .stl-Dateien sind in zwei Teile aufgeteilt: Links und Joints. Der Unterarm ist zum Beispiel ein Link und der Oberarm auch. Das Gelenk ist der Joint zwischen diesen beiden Teilen – es ist kein echtes Teil, aber das Programm weiß, dass es eine Verbindung gibt und nutzt diese Information, um sicherzustellen, dass sich die Teile drehen oder bewegen, wie sie sollen. Wenn du all diese Joints und Links zusammenfügst, erhältst du eine Baumform.

Der „unified“ Teil von .urdf hält jedoch nicht immer, was er verspricht. Er funktioniert gut für Gazebo aber es gibt auch andere Simulationsprogramme, die ihr eigenes Dateiformat haben, wie z.B. Webots die nicht direkt mit .urdf kompatibel ist. Mit MuJoCokannst du .urdf-Dateien nicht direkt verwenden, aber sie bieten eine gewisse Grundkompatibilität: Das MuJoCo-Format kann mit URDF umgehen, indem es einen Header einbindet. Um von .urdf nach .porto zu gelangen, ist eine aufwändigere Konvertierung erforderlich, aber zum Glück gibt es Tools, die bei der Konvertierung und dem Export helfen: onshape2robot bietet eine Schnittstelle, die Onshape-Assemblies in .urdf wandelt, und urdf2webots wandelt diese .urdfs in .porto-Dateien um.

Was kommt als Nächstes?

Wir wollen, dass die Menschen diese digitalen Zwillinge so nutzen können, dass es ihnen leichter fällt, Reinforcement Learnings umzusetzen. Deshalb arbeiten wir daran, die Dateien zu verbessern, damit sie einfacher zu exportieren und zu verwenden sind.

Das heißt: Wir sind gerade dabei, einen digitalen Zwilling für MuJoCo zu erstellen, was bedeutet, dass wir die URDF durch das Hinzufügen von Collidern erweitern. Wir sind auch dabei, eine Pipeline für den Export von digitalen Zwillingen aus unserem CAD-Repository in die Dateitypen verschiedener Simulationsprogramme einzurichten. Als nächstes werden wir den digitalen Zwilling und die dazugehörige Trainingsumgebung für Reinforcement-Learnings öffentlich zugänglich machen

Für alle, die den digitalen Zwilling von pib ausprobieren wollen, wird unser Webots-Paket standardmäßig installiert, wenn du die Software von pib herunterlädst. Das Software-Setup findest du hier: GitHub – pib-rocks/pib-backend

Wir empfehlen, entweder einen RaspberryPi oder eine virtuelle Maschine mit Ubuntu zu verwenden.

Was kann ich tun?

Wir sind immer auf der Suche nach neuen Mitentwicklern, für unsere wachsende Community Unterstütze uns bei diesen Bemühungen! Du weißt nicht, was du in unserer Community tun kannst? Eines unserer Mitglieder hat zum Beispiel bereits eine .proto-Datei für Webots optimiert und sie sogar über Cerebra steuerbar gemacht. Tritt uns jetzt auf Discord bei und nimm dein eigenes Projekt in Angriff!

 

Published On: Mai 28th, 2024