Verwenden von Quaternionen in Jacobian IKC++

Programme in C++. Entwicklerforum
Anonymous
 Verwenden von Quaternionen in Jacobian IK

Post by Anonymous »

Ich arbeite an einem inversen kinematischen System mit Jacobian, aber ich kämpfe mit der Schaffung eines von Teilleitungen für/mit Quaternions besiedelten Jacobian Matirx. Im Moment verwende ich Euler -Winkel mit der aktuellen Formel:

wobei V lokaler x-, y- oder z-Achse ist, der in den Weltraum verwandelt ist.
Hier ist ein Ausschnitt des Code PrettyPrint-Override ">

Code: Select all

    glm::vec3 forward = transforms[parent].forward();
glm::vec3 forwardCross = glm::cross(bone, forward);
ikt.jacobi(index + 0, j + 2) = forwardCross.x;
ikt.jacobi(index + 1, j + 2) = forwardCross.y;
ikt.jacobi(index + 2, j + 2) = forwardCross.z;
< /code>
Und nachdem ich gedämpfte kleinste Quadrate durchgeführt habe, füge ich die Theta-Änderungen durch die Eulers hinzu.glm::vec3 oldEul = transforms[child].getEulerRotation();
glm::vec3 eulDelta = { dTheta(jointNum + 0), dTheta(jointNum + 1), dTheta(jointNum + 2) };
transforms[child].setEulerRotation(oldEul + eulDelta);
Diese Methode ist größtenteils funktional, fällt jedoch auseinander, nähert sich Singularitäten/Gimble Lock. /P>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post