PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Simulation HEXABOT



Hardware-Entwickler
25.11.2014, 21:24
Hallo Leute,
also folgendes, ich hatte fürs Studium einen Hexabot gebaut und eine 3D-Simulation mit MATLAB umgesetzt (ganz einfach gehalten). Die Simulation umfasste einen statischen Körper im Ursprung und die Beine bewegten sich entsprechend.
Nun meine Fragen:

Wie realisiert man, dass sich der gesamte Körper in der Simulation fortbewegt? (erstmal ohne Schwerpunktbestimmungen)
Meine Idee: Also ich würde als z-Koordinate z=0 den Boden angeben. Trifft der TCP (Tool-Center-Point = Fußspitze) nun auf diesen stoppt er in z-Richtung und den TCP würde ich nun als Base-Frame annehmen und die Beinaufhängung als TCP setzen und zurückrechnen. Entsprechend würde sich der gesamte Körper mit bewegen.

Ergibt dass überhaupt Sinn? Wie macht man es normalerweise?
Wie machen es die Leute aus dem Bereich CGI (3D-Animation etc.) ?


PS: wenn ich den Code aufbereitet habe (GNU octave) werde ich ihn veröffentlichen

Danke für eure Hilfe!

Hardware-Entwickler
20.12.2014, 22:45
Im roboternetz muss es doch kundige Leute geben? ;)

Rabenauge
21.12.2014, 01:30
Matlab kenne ich gar nicht- nagut "schon mal gesehen" aber weiter nix.

Im 3D-Animationsbereich aber kenn ich mich schon so bissel aus.
Wird allerdings schwer, das so auf die Schnelle zu erkären, denn da führen verschiedene (um nicht zu sagen "ne Menge..") Wege nach Rom.
Teilweise haben die Programme da bereits fertige Templates eingebaut, bei Poser z.B. braucht man sich darum gar nicht weiter kümmern:
Laufparameter einstellen (das sind simple Regler, mit denen man Schrittweite, Geschwindigkeit, verhalten der IK-Ketten...) etwas verstellen kann, Pfad definieren, und den Walkdesigner seinen Job tun lassen.
Was ähnliches, aber weniger spezifisch (soll heissen: flexibler), gibts auch für 3D-Studio Max.
Ich benutze Blender, der hat sowas "fertiges" nicht wirklich (möglicherweise gibts auch da Add-On`s), was für mich allerdings Vorteile hat, da es somit auch keine Einschränkungen gibt. Der Poser-Walkdesigner wird bei einer Ameise kläglichst versagen- in Blender ist die kein Problem, da man sowieso alles selber machen muss.
Da gibts Möglichkeiten ohne Ende, ich häng mal nen Schreenshot eines solchen "Riggs" an, das ist eine relativ "einfache" Puppe, samt IK-Controllern, Gelenkeinschränkungen und so weiter. Das Püppchen düfte voll animierbar sein- ohne Physiksimulation allerdings (hab ich damals nicht gebraucht, im allgemeinen gehts ohne, und spart enorm Rechenzeit).

Du siehst: das ist nich auf die Schnelle erklärt, da muss man sich schon ne Weile reinfuchsen. Zumal es schier unendliche Möglichkeiten gibt, wie man vorgehen kann.

Hardware-Entwickler
21.12.2014, 09:06
Danke für die Antwort.

Wie hast du die Puppe zum Laufen gebracht? Welche Mathematik steckt dahinter?
Es führen zwar viele Wege zum Ziel, aber die Mathematik muss doch bei allen die selbe sein ...

Hier mal was ich machen möchte:
https://www.youtube.com/watch?v=tkLxiNzjHC4

PICture
21.12.2014, 11:22
Hallo!

Auf die Schnelle gefunden: https://www.youtube.com/watch?v=lNBkMv9mY5w . ;)

Rabenauge
21.12.2014, 11:23
Blender verfügt unter anderem über eine recht leistungsstarke Game-Engine.
Heisst: das Programm kann auch 3D-Spiele erstellen und abspielen.
Was da rein mathematisch abgeht, ist allerdings verborgen im Programmcode- wenn du willst kannst du dir den besorgen, das Programm ist OpenSource.

So kompliziert mache ich es mir nicht: zu dem Rigg da gehören noch "Anfasser"-Objekte. Die funktionieren dann praktisch wie die Fäden einer Marionette, und durch die IK-Controller wird das alles dann ans komplette Rigg weiter gegeben.
Im Grunde findet das alles im grafischen Editor (der Screenshot ist aus dem 3D-Fenster, in dem auch modelliert wird usw) statt- von den mathematischen Lösungen dahinter merkt man praktisch nix.
Wenn dich _das_ (ich glaub nicht, dass es das ist, was du suchst?) interessiert dann hast du da:
http://wiki.blender.org/index.php/Doc:2.4/Tutorials/Animation/BSoD/Character_Animation
den Workflow recht gut beschrieben.
Da gibts auch noch deutlich mehr Tutorials und Anleitungen zu- die einfachste dürfte der Pfefferkuchenmann sein:
http://wiki.blender.org/index.php/Doc:DE/2.6/Manual/Your_First_Animation/1.A_static_Gingerbread_Man
Du siehst: um die mathematische Lösung der Probleme kümmern sich im CG-Bereich andere Leute. ;)

Wie gesagt: Blender ist open Source- irgendwo in den Quellen wirst du sie sicher finden....

Das, was da in deinem Video abgeht, lässt sich mit Blender natürlich machen- zumindest mit dem selben Ergebnis, und vermutlich (ich habs nicht so mit der Game-Engine, da ich nicht viel im Echtzeit-Bereich mache) auch noch steuerbar. Aber von den Berechnungen dahinter wirst du kaum was mitbekommen.
Aber sei gewarnt: Blender ist ne wirklich mächtige 3D-Suite- wenn man damit anfängt, peilt man die ersten Wochen nicht viel. Wenn man sich da aber durchbeisst, gibt es oft nen gewissen Suchteffekt, da man von Modellen für den 3D-Drucker, Fräsdaten, Animationen, kompletten Filmen bis hin zu Spielen eigentlich wirklich alles machen kann.
Falls du dich da reinbeissen willst ist dein Hexa keine schlechte Idee: Mechaniken animieren ist nen bissel einfacher als organisches...
Für 3D-Studio Max (ne kostenpflichtige "Alternative" zu Blender) gab es früher mal ein tolles Einführungstutorial mit ner Ameise, die modelliert und dann auch animiert wurde.