Kann ich digitale Animationssoftware verwenden, um die Bewegungen humanoider Roboter zu definieren?

11

Ich arbeite mit einem lebensgroßen (~ 130 cm) humanoiden Roboter (Hubo +) und suche nach einer Möglichkeit, neue Bewegungen und Gesten einfach in ihn zu programmieren. Natürlich könnte ich mein eigenes Werkzeug schreiben, aber ich suche nach einer Lösung, die vorhandene Werkzeuge oder Standards für Roboterbewegungen nutzen kann. Mein erster Gedanke war, Animationssoftware wie Blender oder Maya zu verwenden und ein Skript zu schreiben, um die Gelenkwinkel an Keyframes zu extrahieren. Allerdings beherrschen wahrscheinlich nur wenige Robotikforscher Maya. (Ich weiß, dass ich nicht bin!)

Gibt es bereits ein Standard-3D-Posing-Tool für die Robotik? Das einzige, was ich bisher gesehen habe, das nahe kommt, ist das Pose-Dienstprogramm in RoboPlus und Choregraphe für den Nao, aber beide Programme scheinen auf bestimmte Roboter beschränkt zu sein und scheinen nicht auf Hubo erweiterbar zu sein.

Meine Fragen sind also:

  • Gibt es Standarddateiformate für Roboterbewegungen? Keine Roboterbewegung mit 2D-Rädern. Arm- und Beinbewegung! Dies entspricht dem bei der Bewegungserfassung verwendeten .bvh-Dateiformat.
  • Kennen Sie ein WYSIWYGish-Tool zum Erstellen von Roboterbewegungen mithilfe von Keyframes und inverser Kinematik?
William Hilton
quelle
Willkommen bei Stack Exchange William, ich habe Ihren Dank herausgearbeitet, da sie für Stack Exchange-Fragen nicht wirklich benötigt werden und die Leute nur von der Frage selbst ablenken. Wir denken standardmäßig gut an Menschen, daher gehen wir einfach davon aus, dass Menschen dankbar sind, wenn andere mit Kommentaren und Antworten helfen. * 8 ')
Mark Booth
3
Für humanoide virtuelle Modelle gibt es den H-Anim-Standard . Und während nur wenige Robotiker Maya kennen, findet Blender tatsächlich Verwendung in Robotikprojekten
ThomasH
@ Mark-Stand, das ist eine sehr gesunde Einstellung, denke ich!
William Hilton
@ThomasH, ich habe mich neulich für die Blender Robotics Mailingliste registriert! Ich hatte ihre Wiki-Seite allerdings nicht gesehen, danke.
William Hilton
1
Hast du das gesehen? coppeliarobotics.com
Shahbaz

Antworten:

3

Die kurze Antwort lautet: Ich glaube nicht, dass es ein gutes standardisiertes Bewegungsdateiformat gibt, und ich glaube nicht, dass es gute generische Wysiwyg-Roboter-Posing-Tools gibt. Ein gewisses Maß an benutzerdefinierter Programmierung wird erforderlich sein.

RE: Standarddateiformate für Roboterbewegungen

Collada ist als standardisiertes 3D-Datenaustausch-Dateiformat gedacht und unterstützt das Speichern grundlegender Animations- und Physik-Typinformationen in einem Modell. Die Unterstützung ist jedoch nicht für alle Tools einheitlich, insbesondere für die Animations- / Physikdaten.

Darüber hinaus ist es unwahrscheinlich, dass Sie allgemein verwendete Dateiformate zum Speichern von Roboteranimationen finden. (Obwohl nicht zu 100% vergleichbar, lesen Sie die Wikipedia-Liste der Bewegungs- / Gesten-Dateiformate .) Alles, was ich gesehen habe, ist plattformspezifisch und / oder proprietär. Bedenken Sie, dass die Spiele- und CAD-Industrie um Größenordnungen größer und spezifischer ist als die Robotik. Sie haben ähnliche Anforderungen, es gibt jedoch kein Defacto-Dateiformat.

Wenn Sie in einer programmatischen Sicht auf die Daten von diesen proprietären Systemen interessiert sind , aber dann an den Spezialwerkzeugen von diesen Industrien suchen können Sie einige zusätzliche Optionen und Ideen. Beispiele:

Insbesondere die Erstellung, Speicherung und Ausführung von Charakteranimationen (häufig humanoide) ist in der Spieleentwicklungsbranche gut vertreten und sehr weit fortgeschritten. Zu einem Preis. Ich glaube, die meisten größeren Studios haben ein ganzes Team, das sich nur darum bemüht, Daten von einem System in ein anderes zu konvertieren und über eine Produktionspipeline einzuspeisen.

Ein wiederkehrendes Problem bei der Verwendung von Spielentwicklungswerkzeugen (oder kreativen 3D-Werkzeugen im Allgemeinen) für die Robotik besteht darin, dass es in Spielen / Filmen normalerweise in Ordnung ist, wenn die Animation die Realität nicht genau modelliert. Dies kann bei realen Robotern zu Problemen führen.

RE: Posing Tools

Robotersimulatoren (wie Coppelias V-REP oder sogar MS Robotics Studio ) könnten von Nutzen sein, wenn sie eine API / einen Export bereitstellen und humanoide Roboter simulieren könnten. Ich kenne jedoch keine, die ein vollständiges humanoides Modell unterstützen. Die meisten dienen nur zum Modellieren von Armen und Radrobotern. Vielleicht könnten Sie Ihre humanoiden Bewegungen dennoch als eine Sammlung unabhängiger Arm-Subsysteme modellieren? dh das linke Bein ist ein Roboterarm. Wenn ja, dann stehen Ihnen noch ein paar weitere wsyiwyg-Tools zur Verfügung.

Flowstone ist ein weiteres visuelles Werkzeug, das zum Posieren verwendet werden kann, aber wahrscheinlich nicht das Wysiwyg, an das Sie gedacht haben .

Wenn Sie WYSIWYG nicht benötigen und für einige Programmierungen offen sind, sollten Sie PyPose und Nuke ausprobieren .

In ähnlicher Weise, jedoch mit einer fortgeschritteneren Programmierung, könnten verschiedene Physik-Engines von Interesse sein, um alle Eingaben (3D-Modelle und zugehörige Parameter) aufzunehmen und dann Bewegungsergebnisse durch Anwenden von Kräften und inverser Kinematik bereitzustellen. Beispiele sind ODE- und Bullet-Physik . Eine ähnliche programmatisch geneigte Option wäre die Verwendung von ROS. Ich habe einige Projekte und Hinweise zur möglichen ROS-Unterstützung für humanoide Bewegungen gesehen.

Alles in allem ... obwohl Blender3D schwer zu erlernen ist, denke ich immer noch, dass es das Potenzial hat , eine der besseren Allround-Optionen für fortgeschrittene Hobbys und Bewegungsarbeiten zu sein, insbesondere aufgrund der engen Integration in die Programmiersprache Python. Jemand hat bereits in den Kommentaren auf das Blender Robotics-Wiki hingewiesen . Sie sollten auch das YouTube-Video von Grantlo321 mit Blender zur Steuerung von Servos beim Klavierspielen sowie den Blog-Beitrag von Justin Daily lesen, in dem er die Verwendung von Blender / Python zur Servosteuerung beschreibt. Ich bin damit einverstanden, dass Blender3D schwer zu erlernen ist, aber das wird wahrscheinlich bei fast jeder 3D-Software vom Typ Wysiwyg der Fall sein, es sei denn, der Fokus ist sehr eng.

Kaliatech
quelle
0

Wenn Sie Ihren Roboter entwerfen möchten, können Sie SolidWork, CATIA oder ADAMS verwenden, um Ihren Roboter zu animieren. Sie können jedoch den NAO-Simulator (Standard Platform Robot) von Aldebaran verwenden. Dieser Simulator kann für Sie hilfreich sein, aber der NAO-Roboter ist ein Roboter in Kindergröße mit guten Sensoren.

Erfan Jazeb Nikoo
quelle