2014-10-01 12 views
10

Gibt es eine fertige Funktion oder Methode in Eigen für die Hat operator? Das ist der Operator, der eine Matrix zurückgibt, die ein Kreuzprodukt mit diesem Vektor nachahmt. Ich weiß, dass kann es leicht geschrieben werden, möchte aber, es vermeiden:Kreuzproduktmatrix in Eigen

Eigen::Vector3d t = // some vector ; 
Eigen::Matrix3d t_hat; 
t_hat << 0, -t(2), t(1), 
    t(2), 0, -t(0), 
    -t(1), t(0), 0; 
+0

Diese Matrix wird normalerweise _antisymmetrische_ oder _schwenksymmetrische_ Matrix genannt. – user2658323

Antwort

3

, wie Sie beide cross zur Kenntnis genommen und die cross3 Methoden tatsächlich die Multiplikation durchzuführen. Aber Sie wollen die skew-symmetric matrix Darstellung von t machen.

Was Sie haben, scheint das Beste, was Sie für Vector3d und Matrix3d tun können. Verallgemeinern für verschiedene Arten von t wird mehr Zeit benötigen als ich gerade habe, aber es ist eine interessante Frage, so kann ich später untersuchen.