live Objektkoordinaten bei Blender-Physics-Modul?

Blenders Funktionsumfang mit Python-Scripten erweitern.

live Objektkoordinaten bei Blender-Physics-Modul?

Beitragvon Counterfeiter » 08.01.2017, 13:49

Hallo,

ich bin recht neu in Blender und versuche gerade einen kleinen Roboter zu simulieren. Mir geht es dabei hauptsächlich darum die physic-engine von Blender zu verwenden, um realistisch einen Roboter mit Python steuern zu können. Wenn er also den falschen Fuß hebt, muss er umfallen.

Aktuell habe ich 8 Hinge und 8 Motoren installiert. Diese kann ich bereits mit Python ansteuern:
https://www.youtube.com/watch?v=yvk7jB418lI

Ich denke, das sieht schon recht realistisch aus.

Nun wollte ich gern richtig laufen mit dem Roboter, dazu brauche ich die Objektkoordinaten zum Zeitpunkt der Simulation. Ich bekomme bisher nur die Koordinaten zum Startzeitpunkt.
Am einfachsten wäre es, wenn ich den Winkel der Hinge's abfragen könnte. Leider habe ich noch keine Möglichkeit gefunden dies zu tun. Ich mache mir gerade auch etwas sorgen, dass ich auf dem völlig falschem Weg bin. Evtl. ist das was ich vor habe mit Blender gar nicht möglich.

Hier noch etwas mehr Informationen zum Projekt:
https://sebastianfoerster86.wordpress.c ... ablaeufen/

Und hier das Modell + Python-Script wie ich es bisher hinbekommen habe:
https://github.com/Counterfeiter/RoboSimulation

Schon mal danke für eure Hilfe.

VG

Basti
Counterfeiter
 
Registriert:
08.01.2017, 13:36

Re: live Objektkoordinaten bei Blender-Physics-Modul?

Beitragvon alias_ludi » 10.01.2017, 23:05

Ich glaube mit
print(scene.objects["hip_back_r_mot"].matrix_world.translation)
hast du dir einfach das falsche Objekt, nämlich ein constraint ausgesucht.

So weit ich das verstanden habe, bewegen die sich gar nicht, sondern bilden den Fixpunkt für die Objekte, die von ihnen gejoint oder angetrieben werden.

Wenn du es mal mit z.B.
print(scene.objects["Cube"].matrix_world.translation)
versuchst,
kommen die gewünschten Koordinaten.
alias_ludi
 
Registriert:
02.03.2011, 17:15

Re: live Objektkoordinaten bei Blender-Physics-Modul?

Beitragvon Counterfeiter » 14.01.2017, 13:50

Hm, dass stimmt... dann habe ich mich einfach zu sehr auf die Joints versteift.

Demnach muss ich auch sicher selbst die Winkel zwischen den Objekten errechnen und nicht nur "den Winkel" bei der Hinge abfragen?
Counterfeiter
 
Registriert:
08.01.2017, 13:36

Re: live Objektkoordinaten bei Blender-Physics-Modul?

Beitragvon alias_ludi » 14.01.2017, 23:58

Wie hattest du dir das "Winkel abfragen bei hinge" vorgestellt? Ich habe nicht herausbekommen, wie das gehen könnte.

Mit vector1.angle(vector2) kannst du ja den Winkel zwischen zwei Vektoren bestimmen und die Vektoren baust du aus den Koordinaten der Objekte zusammen.
alias_ludi
 
Registriert:
02.03.2011, 17:15

Re: live Objektkoordinaten bei Blender-Physics-Modul?

Beitragvon Counterfeiter » 15.01.2017, 15:52

Nach dem Motto, intern muss ja die Physics-Engine den Winkel irgendwo errechnen, dann könnte ich den gleich nehmen...

Ja, es ist nicht so schwer, den Winkel zwischen den zwei Objekten zu berechnen... Ich komme jetzt erstmal voran! Ich danke dir...

Hab jetzt leider nen Arbeitstand von einer Stunde gelöscht, indem ich die Konsole beendet habe und Blender natürlich komplett ohne Nachfrage geschlossen wurde :(
Schöner wäre es wenn stdout einfach in eine Blender eigene Konsole gekapselt würde :-/
Counterfeiter
 
Registriert:
08.01.2017, 13:36


Zurück zu Blender Python


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste