OSVR-Core
|
Utilities for interacting with a "matrix exponential map vector" rotation parameterization/formalism, where rotation is represented as a 3D vector that is turned into a rotation matrix by applying Rodrigues' formula that resembles a matrix exponential. More...
Classes | |
class | ExponentialMapData |
Contained cached computed values. More... | |
Functions | |
template<typename T > | |
void | avoidSingularities (T &&omega) |
Adjust a matrix exponential map rotation vector, if required, to avoid singularities. More... | |
template<typename Derived > | |
double | getAngle (Eigen::MatrixBase< Derived > const &omega) |
Gets the rotation angle of a rotation vector. More... | |
template<typename Derived > | |
Eigen::Quaterniond | getQuat (Eigen::MatrixBase< Derived > const &omega) |
Gets the unit quaternion corresponding to the exponential rotation vector. More... | |
Utilities for interacting with a "matrix exponential map vector" rotation parameterization/formalism, where rotation is represented as a 3D vector that is turned into a rotation matrix by applying Rodrigues' formula that resembles a matrix exponential.
Based on discussion in section 2.2.3 of:
Lepetit, V., & Fua, P. (2005). Monocular Model-Based 3D Tracking of Rigid Objects. Foundations and Trends® in Computer Graphics and Vision, 1(1), 1–89. http://doi.org/10.1561/0600000001
Not to be confused with the quaternion-related exponential map espoused in:
Grassia, F. S. (1998). Practical Parameterization of Rotations Using the Exponential Map. Journal of Graphics Tools, 3(3), 29–48. http://doi.org/10.1080/10867651.1998.10487493
|
inline |
Adjust a matrix exponential map rotation vector, if required, to avoid singularities.
omega | a 3D "matrix exponential map" rotation vector, which will be modified if required. |
|
inline |
Gets the rotation angle of a rotation vector.
omega | a 3D "exponential map" rotation vector |
|
inline |
Gets the unit quaternion corresponding to the exponential rotation vector.
omega | a 3D "exponential map" rotation vector |