Матрица кросс-произведений в Eigen
Есть ли в Eigen готовая функция или метод для оператора Hat? Это оператор, возвращающий матрицу, которая имитирует перекрестное произведение с этим вектором. Я знаю, что это легко написать, но хотел бы избежать этого:
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;
1 ответ
Решение
Как вы заметили, методы cross и cross3 фактически выполняют умножение. Но вы хотите сделать кососимметричное матричное представление t
,
То, что у тебя есть, похоже, лучшее, что ты можешь сделать для Vector3d
а также Matrix3d
, Обобщая для различных типов t
потребует больше времени, чем у меня сейчас, но это интересный вопрос, поэтому я могу исследовать позже.