MegviiRobot/CamOdomCalibraTool

Angle Axis inversion

JadTawil-theonly opened this issue · 2 comments

Can you explain why the following is done when computing the change in angle for the camera frame?

Eigen::AngleAxisd rotation_vector(q_cl);
Eigen::Vector3d axis = rotation_vector.axis();
double deltaTheta_cl = rotation_vector.angle();  
if(axis(1)>0)
{
  deltaTheta_cl *= -1;
  axis *= -1;
} 

What does it mean that axis(1) > 0, and why should you multiply by -1?

Can you explain why the following is done when computing the change in angle for the camera frame?

Eigen::AngleAxisd rotation_vector(q_cl);
Eigen::Vector3d axis = rotation_vector.axis();
double deltaTheta_cl = rotation_vector.angle();  
if(axis(1)>0)
{
  deltaTheta_cl *= -1;
  axis *= -1;
} 

What does it mean that axis(1) > 0, and why should you multiply by -1?

In our case, the z-axis of body (or odom) towards up (0 0 1), and the y-axis of camera towards down which should be [0 -1 0].

Eigen::Matrix3d Rcl = Rwc.inverse() * Rwl; // c: current l: last Eigen::Quaterniond q_cl(Rcl);
您好,这个注释是对的吗,这个求解的是上一帧在当前帧的表示??