здесь https://docs.ros.org/kinetic/api/eigen_conversions/html/eigen__msg_8cpp_source.html#l00093
Я совершенно не понимаю синтаксис этой строки: Eigen::Quaterniond q = (Eigen::Quaterniond)e.linear();
Но в любом случае, если предположить, что e
имеет тип Eigen::Affine3d
(матрица вращения 3x3), где я могу выяснить, как конструируется кватернион из матрицы вращения в библиотеке Eigen, пожалуйста? Я не видел в документе никакого метода, кроме https://eigen.tuxfamily.org /dox/classEigenEigen::Quaterniond q = (Eigen::Quaterniond)e.linear();
1QuaternionBase.html#title25 но я настоящий нуб в С++, поэтому даже этого не понимаю...
Я надеюсь, что он делает что-то вроде этого https://arc.aiaa.org/doi/abs/10.2514/2.4654?journalCode=jgcd, потому что мне нужно нормализовать извлеченный кватернион, и я хотел бы это обеспечить.
(Eigen::Quaterniond)
не обязательно, кстати. - person chtz   schedule 07.11.2018