11 Eigen::Quaternion<double> eiq(m);
16 if ((q0 > 1.0e-10) || (q0 < -1.0e-10)) {
17 th = 2 * std::atan(norm / q0);
23 mlog = (th / norm) * q ;
25 mlog = hrp::Vector3::Zero();
32 Eigen::Quaternion<double> eiq1(m1);
33 Eigen::Quaternion<double> eiq2(m2);
34 Eigen::Quaternion<double> eiq3;
37 m12 = eiq3.toRotationMatrix();
49 if (
eps_eq(omega.norm(),0.0, eps)) {
59 mid_coords.
pos = (1 - p) * c1.
pos + p * c2.
pos;
void difference_rotation(hrp::Vector3 &ret_dif_rot, const hrp::Matrix33 &self_rot, const hrp::Matrix33 &target_rot)
void rotm3times(hrp::Matrix33 &m12, const hrp::Matrix33 &m1, const hrp::Matrix33 &m2)
HRP_UTIL_EXPORT void calcRodrigues(Matrix44 &out_R, const Vector3 &axis, double q)
bool eps_eq(const double a, const double b, const double eps=0.001)
hrp::Vector3 matrix_log(const hrp::Matrix33 &m)
void mid_rot(hrp::Matrix33 &mid_rot, const double p, const hrp::Matrix33 &rot1, const hrp::Matrix33 &rot2, const double eps)
void mid_coords(coordinates &mid_coords, const double p, const coordinates &c1, const coordinates &c2, const double eps)